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.
- Session: 2026-09-08 21:48 – 22:02 EDT,
claude@rdmsm4x - Mode: build + test in a throwaway worktree.
No install, no deploy, no signing, no keychain, no daemon
restarted,
~/.tyrell/bundles/untouched,ISSUES.md#54 not run. PR #15 NOT merged. - No GitHub token was created, harvested or reused;
scripts/setup_ci_ecs_libs_token.shnot run.
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
- Merge PR #15 — Rich's or the cloud thread's call, not taken here.
- #70 should land before CI's build job goes green.
ECS_LIBS_TOKENremains Rich's to mint — this run shows the package builds and tests on a fleet Mac with no token at all, so it is optional rather than blocking.- #54 (signing) remains Rich's call and was not run.
No secrets, credentials, tokens or signed URLs appear in this record.