rdmpw3275m-changelog-20260921-1241-resolve-feat-20260905-12-tyrell-approvals-http
rdmpw3275m-changelog-20260921-1241-resolve-feat-20260905-12-tyrell-approvals-http
Migrated Tyrell app approvals UI from process-local singleton to localhost daemon HTTP transport (AD-1), eliminating cross-process divergence and resolving FEAT-20260905-12.
Scope
- Hosts affected: Fleet-wide (
rdmsm4x,rdmbair15m5,rdmbair13m5,rdmpw3265m,rdmpw3275m,jdmbair13m5) via Tyrell repository. - Repository:
apps/Tyrell(canonical root:rdmsm4x:~/dev/apps/Tyrell). - Commits:
ae18eab(feature implementation),1eab3ea(session state update).
Exact Files Touched
Package.swift: ExcludedApprovalClient.swiftfromTyrellRemoteTransportto satisfy explicit source listing.Sources/TyrellCore/Approvals/ApprovalModels.swift: Added sharedApprovalDecisionPayloadandApprovalAPIErrormodels.Sources/tyrelld/ApprovalRoutes.swift: Switched token parsing toServerLogic.extractPresentedTokenand filtered approvals usingApprovalRouteLogic.filterApprovals.Sources/TyrellAppSupport/ApprovalClient.swift(New): DefinedApprovalTransportprotocol,ApprovalTransportError, andTyrellDaemonApprovalClientwith loopback resolver and Bearer/X-Tyrell-Token auth.Sources/tyrell-app/ApprovalsDestination.swift: Injectedclient: any ApprovalTransport, removed direct singleton calls toApprovalQueueActor.shared, and added 3-second ambient polling loop.docs/ARCHITECTURE-DECISIONS.md: Amended AD-4 documenting CQRS tables (projection_pending_approvals), REST endpoints (/api/approvals,/api/approvals/{id}/decision), and AD-1 client HTTP boundary.Tests/TyrellAppSupportTests/ApprovalClientTests.swift(New): Unit tests covering URL construction, query parameters, headers, and error mapping (4/4 passed).Tests/tyrell-appTests/ApprovalsDestinationTests.swift(New): Integration & invariant tests verifying zeroApprovalQueueActorreferences intyrell-app/tyrellbar, loopback communication, and mock resolution (5/5 passed).SESSION-STATE.md: Prepended checkpoint documenting resolution and test verification.
Commands Run
git worktree add -b agy/tyrell-feat-20260905-12-approvals-http ~/dev/_worktrees/tyrell-feat-20260905-12-approvals-http mainswift test --test-product tyrell-appTestsswift test --filter ApprovalClientTestsswift test --filter ApprovalQueueTestsswift test --filter ApprovalQueueAdversarialTestsgit commit -m 'feat(approvals): repoint ApprovalsDestination to localhost HTTP and eliminate cross-process singleton (FEAT-20260905-12)'git merge --ff-only agy/tyrell-feat-20260905-12-approvals-httpgit push fleet main && git push backup main~/bin/ticket resolve FEAT-20260905-12 ...~/.agent-coordination/agent_msg.zsh broadcast ... && ~/.agent-coordination/agent_msg.zsh sync
Verification Evidence
- Swift Testing test results:
TyrellDaemonApprovalClient Tests: 4 passed (0 failures).ApprovalsDestination & ApprovalClient Architecture Invariants & Isolation Tests: 5 passed (0 failures).Supervisor Approval Queue & Permission Policy Engine Tests: 14 passed (0 failures).Adversarial Approval Queue & Recovery Tests: 3 passed (0 failures).tyrell-appTests: 31 passed in 6 suites (0 failures).
- Zero
ApprovalQueueActorreferences in app/bar verified via AST/code sweep invariant test. - Remotes
fleet(git.ecs0.net:git/apps/Tyrell.git) andbackup(github.com/richhdoty/rdmsm4x-dev-apps-tyrell.git) synchronized to tip commit1eab3ea.
Backup Locations & Undo
- Git commits
ae18eaband1eab3eaonmain. To revert:git revert 1eab3ea ae18eab. - Pre-change state preserved at base
b192050.
Outstanding Owner Actions
- None. Shipped code is integrated and verified against the canonical dev tree.