Added a source-only Tyrell Build 15 evidence API candidate so fleet freshness, usage authority/advice, and daemon identity can be displayed without inventing missing data.
Tyrell Build 15 evidence API — rdmsm4x changelog
Date: 2026-09-02 20:51 EDT
Host: rdmsm4x
Scope: source-only isolated worktree; no live runtime or fleet
mutation
What changed
- Created isolated worktree
/Users/richh/dev/_worktrees/tyrell-build15-evidence-api-20260902on branchcodex/tyrell-build15-evidence-api-20260902from exact base8270ed192956b6228fe075bda21c637acf724766. - Added optional typed fleet-row age/freshness/unavailable fields with one tested 30/60/120-minute policy. Missing timestamps stay null/unavailable, never zero.
- Added explicit usage evidence class, authority, observed time, advice/unknown state, and reason while preserving existing schema-v2 fields.
- Added daemon version/build and non-secret executable identity, captured and hashed once at daemon startup and cached for all status requests.
- Updated the existing macOS host-health/Observatory surfaces and mobile dashboard only enough to consume the typed status and show reasons/drift.
- Added values-free compatibility, policy, usage, identity, and
presentation tests; updated
INTERFACES.md,SESSION-STATE.md, andISSUES.md.
Exact repository state
- Implementation commit:
70fd479279ce28f15aacfb30fb733909c6294bbe - Final continuity HEAD:
bb7a361c00257d4b7d72d4e0087e48b6b1b74659 - Diff: 23 files, 794 insertions, 175 deletions
- Handoff:
/Users/richh/dev/_handoff/tyrell-build15-evidence-api-20260902.md - Handoff SHA-256:
22289e6ec43cfe8daad4e9b338b380bbabd94ca3dffb7c5d1368b78731713d80
Files touched are the 23 paths recorded by the exact base-to-HEAD
diff in the handoff: Package.swift,
INTERFACES.md, SESSION-STATE.md,
ISSUES.md, the bounded
TyrellCore/daemon/MCP/menu-bar/app/dashboard source files, and their
values-free tests. The canonical Tyrell checkout and ecs0lib were not
edited or cleaned.
Commands and verification
- Registered and claimed
FEAT-20260902-32; published and synchronized the coordination check-in before source edits. - Ran five focused Swift test filters: 19/19 passed.
- Ran
swift test --no-parallel -j 4: 242 XCTest + 401 Swift Testing = 643/643, zero failures. - Ran release builds for
tyrelld,tyrell-app, andtyrell-mcp: all exited 0. - Ran a synthetic
initialize/tools/listexchange against releasetyrell-mcp: exit 0, no usage values, database, credentials, or private bodies accessed. - Ran exact base-to-HEAD diff whitespace validation: exit 0.
Logs and their SHA-256 values are recorded in the handoff. The
full-test log is
/Users/richh/dev/_handoff/tyrell-build15-evidence-api-20260902-logs/full-swift-test.log
with SHA-256
6864eeb6ebcf60fa42d6cb90b6557e6e6f30a4003b2acc84104ceefd7e3d029e.
Preservation, rollback, and outstanding owner actions
No user data was overwritten, so no data backup was required. The isolated worktree, two Git commits, values-free logs, and handoff are the recovery artifacts. No app, daemon, launchd service, database, CloudKit container, credential, signing identity, canary, or deployment target changed.
To undo after integration, revert
bb7a361c00257d4b7d72d4e0087e48b6b1b74659 first and
70fd479279ce28f15aacfb30fb733909c6294bbe second, then rerun
the same full and release gates. Before integration, retain the evidence
and simply reject/remove only the isolated candidate lane.
Owner action remains: review and integrate onto the selected Build 15
successor, rerun exact-source gates, sign on rdmsm4x,
validate first on the designated rdmbair15m5 canary with
direct typed API observation, then make any fleet rollout a separate
accepted state. The live fleet remains Build 11.