Fleet changelogs · dev.ecs0.net
rdmsm4x-changelog-20260908-2156-pr15-builds-and-passes-locally

PR #15 compiles and passes on the hub — build exit 0, all four #65 migration guards green

Local build and test of Tyrell PR #15 (claude/fix-65-repokey-identity-20260908, head 7de62da), because CI on macos-26 cannot resolve the fourteen .package(path: "../../lib/ECS*") dependencies and ~/dev/lib is already on this Mac.

Verdict: merge-ready

Check Result
swift build exit 0 — Build complete! (16.38 sec), 769 tasks, 0 errors
swift test exit 1 — 1,194 tests, exactly 1 failure, pre-existing on main
#65 migration guard (4 tests) ALL FOUR PASS
TyrellCoreTests.xctest 358 tests, 2 skipped, 0 failures

Toolchain

Apple Swift version 6.4 (swiftlang-6.4.0.33.1 clang-2100.3.33.1)
Target: arm64-apple-macosx27.0.0
macOS 27.0 (26A5425a) · Xcode 27.0 (27A5252f)

../../lib resolved to /Users/richh/dev/lib — 16 ECS* siblings against 14 declared path dependencies — so the package built natively with no token and no CI workaround.

The migration guard

◇ Suite "RepoBundler spool identity (#65)" started.
✔ Test "repoKey returns the same 16-hex shape as the key it replaces" passed after 0.429 seconds.
✔ Test "the APFS case pair hashes to TWO legacy keys, which is the defect being migrated off" passed after 0.369 seconds.
✔ Test "legacyPathKey reproduces the pre-2026-09-08 path hash byte for byte" passed after 0.369 seconds.
✔ Test "legacyPathKey is 16 hex characters, which is what the filename grammar assumes" passed after 0.369 seconds.
✔ Suite "RepoBundler spool identity (#65)" passed after 0.489 seconds.

The golden digests hold — 2f89f775e4e1e32e, e22474b31c4e2218, e3b0c44298fc1c14. That is what keeps existing <legacyPathKey>-<head12>.bundle names prunable after the key changes; had it drifted, the fix would have added ~82 GiB of unreclaimable bundles rather than freeing them.

They use Swift Testing (@Suite/@Test), so they appear under the suite name rather than as an XCTest class — worth knowing, because grepping for RepoBundlerKeyTests in the log finds nothing.

The one failure — pre-existing, environmental, now #70

✘ testVisualSnapshotFixtureFileIntegrity() at M3_Challenger2_EmpiricalProvidersStressTests.swift:209:9
  Expectation failed: fileManager.fileExists(atPath: capturePath)
↳ Visual fixture file MUST exist at /tmp/providers_dashboard_fixture.png
↳ fileManager.fileExists(atPath: capturePath) → false

Established, not assumed: the PR touches two files and this is not one of them (git diff backup/main...HEAD on that path returns 0 lines — byte-identical to main); the string providers_dashboard_fixture appears exactly once in the whole repository, in the assertion itself, and nothing ever writes the file; /tmp was cleared by this host's 11:03 reboot.

The test cannot pass on a clean machine on any branch. Filed as #70, with the note that it will fail in CI the moment ECS_LIBS_TOKEN unblocks that job and will look like a regression it is not.

Test accounting

Bundle Framework Tests Failures
TyrellCoreTests.xctest XCTest 358 (2 skipped) 0
E2ETests.xctest XCTest 184 0
TyrellAppSupportTests.xctest XCTest 11 0
Swift Testing (incl. #65 suite) Swift Testing 462 / 34 suites 0
Swift Testing Swift Testing 92 / 5 suites 0
Swift Testing Swift Testing 65 / 14 suites 0
tyrell-appTests Swift Testing 22 / 3 suites 1
Total 1,194 1

Footprint

Worktree REMOVED. ~/dev/_worktrees/tyrell-pr15 held 1.1 GB (990 MB .build); git worktree list is back to 76. Removed because the build reproduces in 16 seconds and this tree does not need a 77th artefact. Recreate with:

git -C ~/dev/apps/tyrell worktree add ~/dev/_worktrees/tyrell-pr15 claude/fix-65-repokey-identity-20260908
cd ~/dev/_worktrees/tyrell-pr15 && swift build && swift test

Verified untouched: canonical tree (HEAD 3e65a84, git status clean), all 76 pre-existing worktrees, ~/.tyrell/bundles/, and critically .build/release/tyrelld in the canonical root — still dated Sep 5 06:39, so no release build overwrote the running daemon's binary (ISSUES.md #55). tyrelld pid 3070, started 11:04:53, was not restarted.

Files touched

File Change
~/dev/apps/Tyrell/SESSION-STATE.md new top checkpoint (+134 lines)
~/dev/apps/Tyrell/ISSUES.md new #70

Git

Ref Before After
local / backup/main / fleet/main 3e65a84 ec534c8

Outstanding owner actions

No secrets, credentials, tokens or signed URLs appear in this record.