rdmsm4x-changelog-20260827-1756-tyrell-focus-panel-release
rdmsm4x-changelog-20260827-1756-tyrell-focus-panel-release
Tyrell’s native Liquid Glass menu-bar Focus Panel was integrated,
signed, installed, launched, and rollback-proven on the canonical
rdmsm4x host; fleet rollout remains pending because the
designated canary is unreachable.
Scope and result
- Host changed:
rdmsm4xonly. - Canonical project:
/Users/richh/dev/apps/tyrell. - Mode: Production.
- Base:
7b3e0aed3aa05de577ce0b7119f185ba91ba9518. - UI implementation:
3ffec29db26317b1626de7e4bda4d65f42eb9627. - Final local
main:53494a9755de0deadc70fa4faae506c894ae54a0. - Isolated source branch retained:
codex/tyrell-menubar-liquid-glass-20260827. - Isolated worktree retained:
/Users/richh/dev/_worktrees/tyrell-menubar-liquid-glass-20260827. - Installed GUI:
/Users/richh/Applications/Tyrell.app, PID 90507. - Installed menu helper: canonical
.build/release/tyrellbar, managed bycom.eastcoastscience.tyrellbar, PID 92103. - No daemon, usage collector, database, credential, provider account, external service, public site, or remote host was modified.
Product changes
- Replaced the dense menu-bar dropdown with a 520×650 native Focus Panel.
- Added Overview, Usage, and Fleet sections with standard macOS controls.
- Added macOS 26 Liquid Glass, a compatible fallback, and Reduce Transparency behavior.
- Exposed complete host/fleet usage evidence with explicit source, authority, freshness, partiality, and availability semantics.
- Added configurable menu-bar meters with checkmark toggles, pinning, deterministic rotation, critical/offline preemption, stale exclusion, bounded geometry, tooltip, and VoiceOver text.
- Kept LiteLLM visibly unavailable because no proxy-observed ingestion feed exists; no spend or percentage was fabricated.
- Added six light/dark/partial/no-authority/accessibility screenshot targets and live NSStatusItem diagnostics.
Exact tracked project files changed
.codex/environments/environment.toml.gitignoreAGENTS.mdISSUES.mdPackage.swiftSESSION-STATE.mddocs/superpowers/plans/2026-08-27-tyrell-menubar-focus-panel.mddocs/superpowers/specs/2026-08-27-tyrell-menubar-focus-panel-design.mddocs/visuals/tyrellbar-focus-panel/README.mddocs/visuals/tyrellbar-focus-panel/screenshots/SHA256SUMSdocs/visuals/tyrellbar-focus-panel/screenshots/fleet-partial.pngdocs/visuals/tyrellbar-focus-panel/screenshots/meters-light.pngdocs/visuals/tyrellbar-focus-panel/screenshots/overview-light.pngdocs/visuals/tyrellbar-focus-panel/screenshots/overview-reduce-transparency.pngdocs/visuals/tyrellbar-focus-panel/screenshots/usage-dark.pngdocs/visuals/tyrellbar-focus-panel/screenshots/usage-no-authority.pngscript/build_and_run.shscripts/capture_tyrellbar_visuals.zshSources/tyrell-app/TyrellAppMain.swiftSources/tyrellbar/FleetSection.swiftSources/tyrellbar/FocusPanelBackdrop.swiftSources/tyrellbar/FocusPanelFooter.swiftSources/tyrellbar/FocusPanelHeader.swiftSources/tyrellbar/FocusPanelView.swiftSources/tyrellbar/GlassSurface.swiftSources/tyrellbar/LEDActivityRow.swiftSources/tyrellbar/main.swiftSources/tyrellbar/MetersMenu.swiftSources/tyrellbar/OverviewSection.swiftSources/tyrellbar/StatusFeed.swiftSources/tyrellbar/StatusItemController.swiftSources/tyrellbar/StatusItemDiagnostics.swiftSources/tyrellbar/TransparencyEnvironment.swiftSources/tyrellbar/TyrellAppLauncher.swiftSources/tyrellbar/UsageEndpointClient.swiftSources/tyrellbar/UsageEvidenceViews.swiftSources/tyrellbar/UsageSection.swiftSources/tyrellbar/VisualFixtureRunner.swiftSources/TyrellBarSupport/AppNavigationSignal.swiftSources/TyrellBarSupport/DemoFixtures.swiftSources/TyrellBarSupport/FleetPresentation.swiftSources/TyrellBarSupport/FocusPanelState.swiftSources/TyrellBarSupport/MeterModels.swiftSources/TyrellBarSupport/MeterSettingsStore.swiftSources/TyrellBarSupport/OverviewSnapshot.swiftSources/TyrellBarSupport/StatusItemGeometry.swiftSources/TyrellBarSupport/StatusMeterPlanner.swiftSources/TyrellBarSupport/TyrellBarLaunchPolicy.swiftSources/TyrellBarSupport/UsageEvidence.swiftSources/TyrellBarSupport/UsagePolling.swiftSources/TyrellBarSupport/UsagePresentation.swiftTests/TyrellBarSupportTests/AppNavigationSignalTests.swiftTests/TyrellBarSupportTests/DemoFixturesTests.swiftTests/TyrellBarSupportTests/FleetPresentationTests.swiftTests/TyrellBarSupportTests/FocusPanelStateTests.swiftTests/TyrellBarSupportTests/MeterModelsTests.swiftTests/TyrellBarSupportTests/MeterSettingsStoreTests.swiftTests/TyrellBarSupportTests/OverviewSnapshotTests.swiftTests/TyrellBarSupportTests/StatusItemGeometryTests.swiftTests/TyrellBarSupportTests/StatusMeterPlannerTests.swiftTests/TyrellBarSupportTests/TyrellBarLaunchPolicyTests.swiftTests/TyrellBarSupportTests/UsageEndpointPolicyTests.swiftTests/TyrellBarSupportTests/UsageEvidenceTests.swiftTests/TyrellBarSupportTests/UsagePresentationTests.swift
Other local state changed
- Updated the Tyrell entry in
/Users/richh/Library/Mobile Documents/com~apple~CloudDocs/Codex/projects/AGENTS.md principles/PROJECTS.md. - Updated coordination state in
/Users/richh/.agent-coordination/checkins/codex-rdmsm4x-tyrell-menubar-liquid-glass-20260827.json. - Installed the new app at
/Users/richh/Applications/Tyrell.app. - Preserved the prior installed app at
/Users/richh/Applications/Tyrell.pre-focus-panel-20260827-1747.app. - Restarted the existing
com.eastcoastscience.tyrellbarLaunchAgent against the new helper. Its plist content did not change. - Created release backups:
/Users/richh/.tyrell/backups/releases/20260827-1737-pre-focus-paneland/Users/richh/.tyrell/backups/releases/20260827-1747-focus-panel. - Created this changelog file. Apple Notes projection is handled by
~/scripts/notes_changelog.zshfrom the Aqua desktop session.
Commands and validation
- Inspected host, root, branches, worktrees, HEADs, dirty state, signatures, architectures, hashes, processes, LaunchAgent state, and peer coordination traffic.
- Ran
swift testfrom the isolated worktree and again from final canonicalmain. Result: 67 TyrellCore plus 62 TyrellBarSupport tests passed, 129 total, zero failures. - Ran
zsh scripts/capture_tyrellbar_visuals.zshand a separate final render with--output-dir .build/final-visual-verification. All six outputs rendered at 1136×1396 and passed size checks. - Ran
zsh script/build_and_run.sh --verify. The actual NSStatusItem passed width, rendered-pixel, clipping, tooltip, accessibility label/value, and capture checks; the captured status item is 116×44 pixels. - Built universal arm64+x86_64 release products and ran
zsh scripts/make_app_bundle.zsh. - Ran strict signature verification on the staged and installed app
and helper. The app uses Apple Development team
ZU2882L4HTwith hardened runtime. This is a private development-signed build, not a notarized public distribution. - Installed GUI executable SHA-256:
93ac40b6da23e206bcd580fd215abec746a660a6e0a37018a141039703f5f3b8. - Installed helper SHA-256:
7a9b12b4701475cb41e4f163f18a1b9c37542ad61575f6c0472c46a3ee18d867. - Ran an actual helper rollback rehearsal: booted out the new job,
restored exact prior helper SHA-256
b68edfbf64a5e2a79da5799f782f636413795ac3843d06d0a46e67792007080d, bootstrapped it successfully as PID 91980, then restored the signed release helper and bootstrapped it successfully as PID 92103. - Queried live
43118and43117status/usage endpoints. Both status and host usage planes answer; fleet usage correctly falls back from a control-port 404 to the legacy port. Schema v2 reports four of six hosts,partial=true, withrdmbair15m5andrdmpw3265mexplicitly missing/unreachable. - Ran
git diff --check; it passed. - Ran Gitleaks 8.30.1 over the final 13-commit range; 244.43 KB scanned, zero leaks.
- The final visual rerender is visually/layout equivalent to the
committed target. Five PNGs are byte-identical. WindowServer’s Liquid
Glass composite changed two decoded channel samples in
meters-light.png, by 2 and 1 levels respectively, across 1,585,856 pixels; the SHA file is therefore treated as a capture manifest, while geometry/content checks are the regression gate.
Rollback
GUI rollback, using retained recoverable copies:
- Quit the running
/Users/richh/Applications/Tyrell.appprocess. - Move the current bundle to a new timestamped sibling rather than deleting it.
- Restore
/Users/richh/.tyrell/backups/releases/20260827-1737-pre-focus-panel/Tyrell.appto/Users/richh/Applications/Tyrell.appwithditto. - Strictly verify its signature and reopen it.
Helper rollback, already rehearsed successfully:
- Boot out
gui/501/com.eastcoastscience.tyrellbar. - Copy the prior helper from
/Users/richh/.tyrell/backups/releases/20260827-1737-pre-focus-panel/tyrellbarto an explicit staging file beside canonical.build/release/tyrellbar. - Verify the staged SHA-256 above, atomically move it into place, bootstrap the unchanged plist, and verify the new PID remains running.
- The same procedure with the release-backup helper reapplies the Focus Panel build.
Outstanding owner and fleet actions
rdmbair15m5, the designated canary, is unreachable over both tested paths. No different host was silently substituted, and no broader fleet rollout occurred.rdmpw3265mis also unreachable and remains pending.- Claude at
rdmsm4xwas sent four coordination/review messages, including exact range and reproduction commands, but has not replied. Review is pending, not accepted. - LiteLLM remains unavailable in the UI until a real proxy-observed ingestion contract supplies event time, identity, model/provider, token/cost outcome, and explicit budget authority where percentage grading is requested.
- Existing compiler warnings remain: upstream GRDB watchOS deployment
deprecation, a
String(cString:)deprecation, and a redundant nil-coalescing warning. They did not block the verified build and were not introduced as part of the UI scope. - The historical private-history import retire-versus-redesign choice remains unresolved; its archive receipt is provenance only and did not authorize a decision.