rdmsm4x-changelog-20260914-1542-dishtty-mock-data-purge-real-starlink-identity
rdmsm4x-changelog-20260914-1542-dishtty-mock-data-purge-real-starlink-identity
DishTTY no longer leaks test/mock data into the real app; the real Starlink High Performance dish now shows with its Starlink identity, and a notarized build is installed.
Scope
Host: rdmsm4x only. Project: ~/dev/apps/DishTTY. Window: 2026-09-14 15:08 → 15:42 EDT.
Changed
- Code commits: 3a771d4 (store isolation, live-only identity/history, identity fields), 833cfeb (decoder + UI fixes), 3bb727e + timestamp fix (docs).
- /Applications/DishTTY.app replaced with notarized, stapled build of 833cfeb (Developer ID, universal2).
- ~/Library/Application Support/DishTTY: 45 polluted files + defaults export MOVED to archive/20260914-1530-pre-cleanup/ (with the two previous app builds); store re-seeded with one real terminal.
- defaults keys DishTTY.ConfiguredTerminals.v1 and DishTTY.ActiveTerminalId.v1 removed from com.eastcoastscience.DishTTY (exported first to the archive plist).
- Installed grpcurl via Homebrew (used to inspect the dish API by reflection).
- Filed ~/dev/todo/items/20260914-ecs-sign-notarize-status-readonly.md.
Verification
- swift test: 579 passed, 0 failures (Core 290, E2E 154, UI 118, swift-testing 17). Real data dir mtimes identical before/after the full run (56 files).
- Mutation tests: removing either live-only guard reproduces the original symptom.
- Notarization Accepted (submissions c2eecadf…, 8789d038…); spctl: Notarized Developer ID; stapler validate OK; lipo: x86_64 arm64.
- Live app: Online, real UT id, High Performance, ELECTRONIC STEER; screenshot design/screenshot-20260914-real-hp-dish.png.
Undo
- Data: move files back from archive/20260914-1530-pre-cleanup/;
defaults import com.eastcoastscience.DishTTY <archive plist>. - App: move archive/…/DishTTY-installed-20260912.app back to /Applications.
- Code: git revert 833cfeb 3a771d4.
Owner actions
- Sign in to starlink.com in Chrome on rdmsm4x so serial + kit numbers can be read from the account (not exposed by the dish).
- Optional: enable local-network location access in the Starlink app (dish refuses get_location).
- Rotate CM3000 admin password (plaintext still in git history 676ac16).