Audit follow-up: config-registration tripwire + native integration spec#119
Merged
Conversation
The fork feature set merged since 1.52 shipped with its settings/launch entry points deferred, so most of it is unreachable on-device. Two durable guardrails against that recurring: - SettingsDomainTest.everyPersistedConfig_isRegisteredAsADomain_orExplicitly- Excepted: a global tripwire that fails the build if a new *Config is neither backed by a SettingsDomain nor listed as a documented collection/content exception. This is the check the per-domain tripwires were missing, and what would have caught CameraConfig/TimerConfig/CountdownConfig/NotesConfig shipping with no on-device UI and no phone-remote exposure. - docs/design/feature-integration.md: the plan of record for wiring these features in the Immortal-native way (declarative registry for settings, the existing unified home grid + a "Tools" folder for launching), explicitly in place of adopting the fork's ~3.2k-line parallel ForkHome screen. Full suite green (260 tests); mkdocs --strict builds. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01H4SmhtgSd5B5sdTiV216XM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
An audit of everything merged since Release 1.52 found that the fork feature set is largely unreachable on-device — the settings-menu links and home-screen launch points were deferred and never landed. The registry code inside each feature is mostly fine; the gap is integration. This PR adds two durable guardrails and the plan of record. It does not wire the features up yet (that's the sequenced work in the spec).
What's here
1. Global config-registration tripwire (
SettingsDomainTest)The existing per-domain tripwires only fire for Configs that are already registered — nothing forced a new
*Configinto the registry. That's howCameraConfig/TimerConfig/CountdownConfig/NotesConfigshipped with no on-device UI and no phone-remote exposure. The new test fails the build unless every*Configis either backed by aSettingsDomainor listed as a documented collection/content exception.2.
docs/design/feature-integration.md— the plan of record for wiring these features in the Immortal-native way:NavSpec/NavRowto the already-registered domains;GroupSpeclater for the collection-style ones).Curationmechanism already used for the "Settings" folder).ForkHomescreen, which would duplicate the home grid and re-introduce a second nav model (againstAGENTS.md). Borrow ForkHome's UX ideas, not the monolith.A key correction the audit surfaced: Camera/Timer/Countdown are collections (
List<…>) and Notes is content, not scalar settings — so they correctly should not be forced into scalar domains; they need reachable Activities (tiles), withGroupSpecas the eventual remote home.Verification
:app:testDebugUnitTest— 260 tests, 0 failures (incl. the new tripwire).mkdocs build --strictbuilds clean.Note on the release gate
The spec recommends holding the next release until the settings-reachability + Tools-folder steps land, since the features otherwise ship dark on the Portal itself (they are reachable via the phone remote for the registered scalar domains).
🤖 Generated with Claude Code
Generated by Claude Code