rdmbair15m5-changelog-20260911-0556-m4-tcc-permissions-and-space-blue-palette
rdmbair15m5-changelog-20260911-0556-m4-tcc-permissions-and-space-blue-palette
Implemented Milestone M4 (Modernized TCC Permissions Architecture & Space Blue UI/UX Palette) covering Features 26, 27, 28, and 29 across ECSPermissions, ECSUI, ECSTerminal, ecs0lib, and terminal_color_profiles.
Summary of Changes
Feature 26: Modernized TCC Permissions Architecture:
- Implemented
TCCDomainenum covering 8 domains (fullDiskAccess,accessibility,screenRecording,appleEvents,localNetwork,camera,microphone,bluetooth) withIdentifiable,Sendable,CaseIterable, andCodableconformances. - Implemented
PermissionStateenum with all 8 standard states:.authorized,.denied,.notDetermined,.restricted,.limited,.unqueryable,.promptPending,.preflightFailed. - Implemented non-prompting
checkPermission(for domain: TCCDomain) async -> PermissionStateonPermissionProber. - Used non-prompting passive checks: Safari/Mail file handle probing
for FDA,
AXIsProcessTrustedWithOptions(["AXTrustedCheckOptionPrompt": false])for Accessibility,CGPreflightScreenCaptureAccess()for Screen Recording,AEDeterminePermissionToAutomateTargetwithaskUserIfNeeded: falsefor AppleEvents,AVCaptureDevice.authorizationStatusfor Camera & Microphone, andCBManager.authorizationfor Bluetooth. - Identified
localNetworkas inherently unqueryable without network activity (.unqueryable).
- Implemented
Feature 27: Headless & CI Environment Detection:
- Implemented
HeadlessProbeResultstruct withisHeadless: Boolandreason: String. - Implemented
HeadlessDetectorwith decoupled dependency-injected evaluationevaluate(managerName:env:isStdinTTY:). - Inspects
launchctl managername(detectingBackgroundvsAqua),SSH_CONNECTION/SSH_CLIENT/SSH_TTY,isatty(STDIN_FILENO) == 0, andCI/NONINTERACTIVEvariables. - Exposed
PermissionProber.isHeadlessSession: Boolnonisolated static property.
- Implemented
Feature 28: Space Blue Semantic Palette & Color Tokens:
- Implemented
Color.spaceBlue,NSColor.spaceBlue, andUIColor.spaceBluewith RGB(0.12, 0.45, 0.95). - Implemented
ECSColorPalettewith cosmic dark (#0B132B), slate dark (#0F172A), luminous primary (#2563EB), electric accent (#3B82F6), cyan/sky (#38BDF8), light background (#F0F4F8), and dynamic resolverspaceBlue(for colorScheme:). - Implemented
SpaceBlueSurfaceModifierand.spaceBlueSurface()SwiftUI view modifier. - Added
.spaceBlue = "Space Blue"toTerminalColorProfilein bothECSUIandECSTerminal. - Added
ECS0ChartPalette.spaceBlueinECS0GraphEngine.swift.
- Implemented
Feature 29: Terminal Styling & Manifest Integration:
- Implemented
TerminalColorProfile.spaceBlueinECSTerminalwith truecolor ANSI foreground (\u{001B}[38;2;37;99;235m), background (\u{001B}[48;2;11;19;43m), and 256-color fallback (33). - Added
spaceBlueandbgSpaceBlueescape properties toFootlightsColors. - Implemented
FootlightsTheme.spaceBluepreset andBlocksTheme.spaceBlueBanner(). - Appended
space-blueprofile entry toterminal_color_profiles/manifest.json.
- Implemented
Dual-Surface Parity & Test Suites:
- Maintained 0-line diff parity between modular packages
(
Sources/) and umbrellaecs0lib(Sources/ECS0*). - Added comprehensive unit test suites:
ECSPermissionsTests/M4_ECSPermissionsTests.swift(10 tests)ECSUITests/M4_SpaceBlueUITests.swift(7 tests)ECSTerminalTests/M4_SpaceBlueTerminalTests.swift(5 tests)ECS0LibTests/M4_PermissionsAndUITests.swift(10 tests)- Updated
Tier1_FeatureCoverageTests.swiftprofile count assertion to 5.
- Maintained 0-line diff parity between modular packages
(
Scope & Repositories Touched
- Target Hosts:
rdmsm4x(canonical dev root~/dev/lib/),rdmbair15m5(local test runner) - Repositories & Commits:
rdmsm4x:~/dev/lib/ECSPermissions: commit9483053rdmsm4x:~/dev/lib/ECSUI: commitf802a61rdmsm4x:~/dev/lib/ECSTerminal: commit094b60drdmsm4x:~/dev/lib/ecs0lib: commitf6b072brdmsm4x:~/dev/lib/terminal_color_profiles/manifest.json: updated withspace-blueprofile- Pushed to
git.ecs0.net:git/lib/and GitHub backup remotes.
Verification Evidence
ECSPermissions: 17/17 tests passed (0 failures) onrdmsm4x.ECSUI: 14/14 tests passed (0 failures) onrdmsm4x.ECSTerminal: 28/28 tests passed (0 failures: 26 XCTest + 2 Swift-testing) onrdmsm4x.ecs0lib: 454/454 tests passed (0 failures: 376 XCTest + 78 Swift-testing) onrdmsm4x.- Universal compilation (
--arch arm64 --arch x86_64) with-Xswiftc -warnings-as-errors:ECSPermissions: Build complete (4.11s).ECSUI: Build complete (4.47s).ECSTerminal: Build complete (3.62s).ecs0lib: Build complete (11.83s).lipo -info .build/out/Products/Release/ecsnettopconfirmed fat universal binary (x86_64 arm64).
- Local 4-Tier E2E Test Suite (
run_e2e_tests.zsh): 392/392 passed (100.00% pass rate). - Zero-line diff verified across modular sources and umbrella sources.
Rollback & Undo
- Git commits can be reverted using:
git revert 9483053inECSPermissionsgit revert f802a61inECSUIgit revert 094b60dinECSTerminalgit revert f6b072binecs0lib