rdmbair15m5-changelog-20260923-1852-issue-20260923-06-tyrelld-managed-launchagent-preservation
rdmbair15m5-changelog-20260923-1852-issue-20260923-06-tyrelld-managed-launchagent-preservation
Resolved ISSUE-20260923-06 by ensuring Tyrell's SelfBootstrap preserves existing managed LaunchAgents, prefers stable managed daemon binary paths, and adding fleet-wide automated audit probe CHECK 15 in nightly_audit.zsh v1.3.
Scope
- Hosts:
rdmbair15m5(author & canary),rdmsm4x(hub / authority), fleet-wide (all 6 hosts) - Repos:
apps/Tyrell(commit5bb36a7),fleet(commit9314607),issues(commitc457f83)
Files Touched
apps/Tyrell/Sources/TyrellCore/Bootstrap/SelfBootstrap.swift:- Updated
generateServicePlists(): ResolvestyrelldPathto~/Library/Application Support/Tyrell/bin/tyrelldwhenever that managed path exists, rather than unconditionally pointing toContents/Helpers/tyrelld. - Updated
registerLaunchAgents(): Checks if an existing plist already exists on disk pointing to a managed daemon path (Library/Application Support/Tyrellor/releases/). If so, preserves it intact without overwriting the plist or booting out the active daemon process.
- Updated
apps/Tyrell/Tests/TyrellCoreTests/MockOnboardingTests.swift:- Added unit test
test_registerLaunchAgents_preservesExistingManagedLaunchAgent()verifying that pre-staged managed plists are preserved with intact arguments and marked as installed/bootstrapped.
- Added unit test
fleet/ops/audit/nightly_audit.zsh:- Added CHECK 15: Audits
com.eastcoastscience.tyrelld.plistProgramArguments[0]across all 6 fleet hosts, alerting if any host runs an unmanaged or bundled helper daemon. - Bumped to
SCRIPT_VERSION="1.3".
- Added CHECK 15: Audits
issues/resolved/ISSUE-20260923-06-launching-tyrell-app-rewrites-the-tyrell.md: Moved fromopen/with resolution details, verification evidence, and verifier identity.
Verification Evidence
swift test --filter MockOnboardingTests: All 10/10 tests passed in 0.05s.nightly_audit.zshsyntax check passed (zsh -n).- Live fleet audit probe across all 6 hosts:
rdmsm4x:/Users/richh/Library/Application Support/Tyrell/bin/tyrelld(managed)rdmbair15m5:/Users/richh/Library/Application Support/Tyrell/bin/tyrelld(managed)rdmbair13m5:/Users/richh/Library/Application Support/Tyrell/bin/tyrelld(managed)jdmbair13m5:/Users/richh/Library/Application Support/Tyrell/bin/tyrelld(managed)rdmpw3265m:/Users/richh/Library/Application Support/Tyrell/bin/tyrelld(managed)rdmpw3275m:/Users/richh/Library/Application Support/Tyrell/bin/tyrelld(managed)
- Commits pushed to all canonical remotes:
apps/Tyrell:5bb36a7->origin(git.ecs0.net:git/apps/Tyrell.git) andbackup(GitHub).fleet:9314607->fleet(git.ecs0.net:git/root/fleet.git) andbackup(GitHub).issues:c457f83->fleet(git.ecs0.net:git/dev/issues.git) andbackup(GitHub).
- Broadcast sent across message bus (
20260923-185250-...) and synced fleet-wide.
Rollback / Undo
git -C ~/dev/apps/Tyrell revert 5bb36a7.git -C ~/dev/fleet revert 9314607.ticket reopen ISSUE-20260923-06onrdmsm4x.