v0.1.2: app controls on the GitHub container, and the ring sheds its placeholders - #14
Merged
Merged
Conversation
…eholders
THE GITHUB CONTAINER grows the app's controls, shown once signed in — it is
the one container about the APP rather than the workspace, which is why they
live there:
- `dark`: the canvas turns dark gray, the ascii logo renders in near-dark
tints of the same two hues (slightly lighter than the dark canvas, the way
the light set is slightly darker than white), and canvas-facing chrome —
ring dots, lesson labels — flips to white. One `AppSettings.shared` owns
the reading (`canvasColor` / `canvasChrome`), UserDefaults-backed, the
GitHubAuth.shared pattern. The containers were already black in both.
- `feedback`: mail to team@reagent-systems.com.
- `follow @Reagent_Systems`: x.com.
- `rerun onboarding`: a fresh lesson ring arrives BESIDE the current one and
the strip travels to it — beside rather than instead, because the user's
rings are their workspaces and a tutorial must not cost them one.
Graduation already retires it: edge-swiping away removes an onboarding
ring, same as the first run.
THE NUMBERED PLACEHOLDERS (kinds 6-15) are retired. The catalog is the five
real containers, as Android's deck already ships. A persisted strip that still
carries a placeholder culls it at restore: the reserve drops them, a lane
HOLDING one pulls its replacement from the reserve, and a lane with nothing to
show collapses. Every ring was minted with the full catalog, so a surviving
ring always has the real five somewhere in it. The 15-color palette went with
them.
Versions to 0.1.2 (Android versionCode 3), changelog cut.
Verified on the simulator:
- the OLD persisted strip (which still carried placeholders) restores clean:
advancing from the terminal lands on GitHub, not on "6".
- dark canvas end to end via its UserDefaults key: dark-gray backdrop, dark
logo tints, white ring dots. Light unchanged.
- fresh onboarding ring still minting (the rerun request calls the same
factory the first launch uses).
NOT verified here: the signed-in rows on screen — the signed-in phase needs a
Keychain token the simulator does not have. The rows are the container's
existing word-button shapes; the owner sees them on a signed-in phone.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
What & why
Two things, cut as v0.1.2:
The GitHub container grows the app's own controls, shown once signed in — it is the one container about the app rather than the workspace, which is why they live there:
dark— the canvas turns dark gray, the ascii logo renders in near-dark tints of the same two hues (slightly lighter than the dark canvas, the way the light set is slightly darker than white), and canvas-facing chrome — ring dots, lesson labels — flips to white. OneAppSettings.sharedowns the reading (canvasColor/canvasChrome), UserDefaults-backed, same one-object pattern asGitHubAuth.shared. The containers themselves were already black in both themes.feedback— opens mail to team@reagent-systems.com.follow @Reagent_Systems— opens x.com/Reagent_Systems.rerun onboarding— a fresh lesson ring arrives beside the current one and the strip travels to it. Beside rather than instead: the user's rings are their workspaces, and a tutorial must not cost them one. Graduation already retires it (edge-swiping away removes an onboarding ring), same as the first run.The numbered placeholder containers (kinds 6–15) are retired. The catalog is now the five real containers — which is what Android's deck already ships, so this is iOS catching up. A persisted strip that still carries a placeholder culls it at restore: the reserve drops them, a lane holding one pulls its replacement from the reserve, and a lane with nothing to show collapses. The 15-color palette went with them.
Release mechanics: versions to 0.1.2 (Android
versionCode3), changelog cut. After merge:git tag v0.1.2 && git push origin v0.1.2publishes the release with artifacts.Gesture-law impact
None — no input handling changed. The onboarding rerun reuses the existing ring machinery (insert + graduation); the settings are taps on buttons.
Verified — function and feel
Restore cull, on a real stale snapshot: the simulator carried a persisted strip from before the cut, placeholders included. It restores clean — advancing from the terminal lands on GitHub, not on "6".
Dark canvas end to end via its UserDefaults key: dark-gray backdrop, dark logo tints, white ring dots. Light theme unchanged.
Onboarding ring still mints (the rerun request calls the same factory first launch uses).
iOS + Android builds green.
Builds clean (
xcodegen generatere-run — new fileAppSettings.swift)Feel-tested on a real device — owner: the signed-in rows themselves. The signed-in phase needs a Keychain token the simulator doesn't have, so the four controls were verified by construction, not on screen. On your phone: toggle
dark(canvas + logo + dots flip live),feedback(Mail prefilled),follow(x.com),rerun onboarding(lesson ring arrives beside, retires on edge-swipe away).Screenshots exercised in-session (light + dark canvas, cull landing on GitHub)
Docs updated: CHANGELOG.md carries 0.1.2
No diagnostics or demo scaffolding left in the merge
🤖 Generated with Claude Code