HyperCPU H2a adds a configurable dashboard and opt-in Space Blue without changing telemetry or chart internals.
Scope: rdmsm4x handoff clone only. Exact changed source files are
enumerated by git diff --name-only 00cb39a..8e28484 in that
clone; the output is included below.
H2a — Dashboard layout and Space Blue handback
Completed 2026-09-23 on rdmsm4x. Production / App Store-bound
project; isolated handoff clone only. Root:
/Users/richh/dev/_handoff/hypercpu-visibility-20260923-codex/apps/HyperCPU
Branch: codex/chart-visibility-20260923; base:
00cb39a.
Delivered commits (each staged by explicit path)
| Commit | Reason / deliverable |
|---|---|
c4fb618 |
Persist nine dashboard chart visibility flags and order so All Metrics can be personalized. |
0b62f02 |
Expose the same settings bindings in a Charts menu so layout can change without opening Settings. |
533e75d |
Add opt-in ECSUI Space Blue boards while preserving System/current-dark defaults and series colors. |
10d66cd |
Protect layout persistence, migration, reordering, hide/show, restore/reset and appearance resolution with 16 tests. |
8e28484 |
Bump all three requested version files to 4 and record Universal2 build, tests and signature evidence. |
Documentation-only completion commit follows these five commits.
Behavior
- Nine stable module IDs: Power, Frequency, Thermal, Utilization, GPU Utilization, GPU Memory, System, Per-core Histogram, SoC Power Distribution. Default is all shown, in that order.
- Settings → Dashboard lists every module with a toggle, native List drag-to-reorder, Restore default layout, and Reset all settings. The menu-bar popover's Charts menu uses the same AppSettings bindings, in saved order.
- All Metrics renders visible modules in saved order. All-hidden state explains how to show them. Hiding never removes metric tabs or changes sampling. GPU's dedicated tab still shows both charts; System still contains its existing five subcharts as one module.
- Extracted the Intel histogram and exposed the existing Apple Silicon cluster and SoC views for modular layout. All Metrics avoids duplicate embedded charts in the architecture card. Focused metric tabs keep their original architecture cards. Intel displays N/A for the Apple Silicon-specific SoC distribution module.
- Appearance: System / Light / Dark; independent Dark board: Current dark / Space Blue. Space Blue applies only to resolved dark appearance. Existing users remain System + Current dark.
- ECSUI at
19359faexposesECSColorPalette.spaceBlue: cosmic board approximately #0B132B (dependency stores rounded RGB), surface #0F172A, electric accent #3B82F6. Used those dependency tokens directly; no local palette duplication. ECSUI'sColor.spaceBlueprimary is RGB(0.12, 0.45, 0.95), so the exact #3B82F6 electric token is used for control tint. #2563EB exists in the dependency's light palette; this dark-only option does not recolor light mode. - Chart surfaces and dashboard/hardware card backgrounds resolve through environment-aware styles. Series palettes, presence, axes, point projections, samplers and helper interfaces remain unchanged. DEC-HYPERCPU-20260923-01 remains in force.
Verification
Full requested commands, each exit 0 (SwiftPM requires execution outside the harness's nested sandbox):
CLANG_MODULE_CACHE_PATH=/private/tmp/hypercpu-h2a/clang SWIFTPM_MODULECACHE_OVERRIDE=/private/tmp/hypercpu-h2a/swiftpm swift build
CLANG_MODULE_CACHE_PATH=/private/tmp/hypercpu-h2a/clang SWIFTPM_MODULECACHE_OVERRIDE=/private/tmp/hypercpu-h2a/swiftpm swift test
CLANG_MODULE_CACHE_PATH=/private/tmp/hypercpu-h2a/clang SWIFTPM_MODULECACHE_OVERRIDE=/private/tmp/hypercpu-h2a/swiftpm scripts/build.sh269 tests passed, 0 failures: 210 Swift Testing in 22 suites
+ 59 XCTest. Base count: 253 (210 + 43). Added: 16 XCTest. None
removed. Existing unused baselinePacketData warning at
TelemetryPulseDampingChallengerTests.swift:121 remains;
production slices compile with -warnings-as-errors
successfully.
Logs: docs/evidence/h2a/swift-build.log,
swift-test.log, release-build.log,
artifact.txt. git diff --check passes. The
base-to-task diff for Sources/PowerGadgetCore,
Charts/SeriesPresence.swift, and
Models/ChartDataModels.swift is empty.
Artifact
- App:
/Users/richh/dev/_handoff/hypercpu-visibility-20260923-codex/apps/HyperCPU/dist/HyperCPU.app - ZIP: same directory,
HyperCPU.zip. lipo -archs dist/HyperCPU.app/Contents/MacOS/HyperCPU: x86_64 arm64.- Embedded helper: x86_64 arm64.
- Bundle: com.eastcoastscience.HyperCPU, 1.0.0 (4).
- Version sources:
Support/Info.plist(used by build.sh), rootInfo.plist,project.yml; CFBundleVersion 4 in all three. Existing marketing-version difference in root plist (1.0) versus Support (1.0.0) is preserved. - Authority: Apple Development: Richard Doty (S65Q255HA8) → Apple Worldwide Developer Relations Certification Authority → Apple Root CA.
- TeamIdentifier: ZU2882L4HT; CodeDirectory
flags=0x10000(runtime). codesign --verify --deep --strict dist/HyperCPU.app: exit 0 (verified outside sandbox; trust-service access is sandbox-sensitive).- Executable SHA-256:
bf55933373fbaf3581229299168a473de90001e5eae646b12194cfc5bfb0335b.
Boundaries / not proven
- Not installed, launched, pushed, or merged into canonical source. No helper installation or root execution.
- Live native UI interactions (drag gesture, menu checkmarks, pixel appearance and resize behavior) have not been visually accepted. Model/binding behavior and rendering compilation are verified; no screenshot claim.
- Intel runtime, fleet runtime and live telemetry acceptance are not proven by lipo.
- This is the default
scripts/build.shlocal-development artifact. Not Apple Distribution/App Store signed, not App Store packaged or preflighted, not Developer ID notarized/stapled. Signing, entitlements and build script were not changed. - Existing SoC bar caching/animations and hardware-card telemetry behavior were preserved, not audited or changed by this lane.
- Ticket CLI could not open its database under the sandbox. Local
scope check-in is
../../CHECKIN-H2a.json; no fleet dispatch claimed.
Preservation and rollback
Original source is retained at base 00cb39a; every
functional change is in the five commits above. Revert the relevant
commits in reverse order to undo source changes. Build outputs remain in
this clone and are ignored by Git. No existing installation was touched,
so installed-app rollback is unnecessary. New preference keys are
HyperCPU_dashboardOrder,
HyperCPU_dashboardHidden, HyperCPU_appearance,
HyperCPU_darkBoard; Restore default layout resets only
layout, Reset all settings also restores appearance and all previous
settings.
Durable completion record:
docs/evidence/h2a/rdmsm4x-changelog-20260923-2323-hypercpu-h2a.md.
Archive and Apple Notes publication succeeded; receipt:
docs/evidence/h2a/notes-publication.txt. Notes account [email protected], host folder
rdmsm4x, note ID suffix ICNote/p76969.
Exact changed paths
Info.plist Sources/PowerGadgetUI/Cards/AppleSiliconCard.swift Sources/PowerGadgetUI/Cards/IntelCard.swift Sources/PowerGadgetUI/Charts/FrequencyChartView.swift Sources/PowerGadgetUI/Charts/GPUAndSystemCharts.swift Sources/PowerGadgetUI/Charts/PowerChartView.swift Sources/PowerGadgetUI/Charts/TemperatureChartView.swift Sources/PowerGadgetUI/Charts/UtilizationChartView.swift Sources/PowerGadgetUI/Dashboard/DashboardView.swift Sources/PowerGadgetUI/MenuBar/MenuBarPopoverView.swift Sources/PowerGadgetUI/Settings/AppSettings.swift Sources/PowerGadgetUI/Settings/DashboardAppearance.swift Sources/PowerGadgetUI/Settings/DashboardLayout.swift Sources/PowerGadgetUI/Settings/SettingsView.swift Support/Info.plist Tests/PowerGadgetCoreTests/DashboardSettingsTests.swift docs/evidence/h2a/artifact.txt docs/evidence/h2a/release-build.log docs/evidence/h2a/swift-build.log docs/evidence/h2a/swift-test.log project.yml
Completion docs: HANDBACK.md, SESSION-STATE.md, PROJECTS.md, this changelog. Local check-in: ../../CHECKIN-H2a.json. No outstanding owner-only action required for this handoff.