Skip to content

v0.1.2: app controls on the GitHub container, and the ring sheds its placeholders - #14

Merged
ThyFriendlyFox merged 1 commit into
mainfrom
feat/settings-and-lean-catalog
Aug 6, 2026
Merged

v0.1.2: app controls on the GitHub container, and the ring sheds its placeholders#14
ThyFriendlyFox merged 1 commit into
mainfrom
feat/settings-and-lean-catalog

Conversation

@ThyFriendlyFox

Copy link
Copy Markdown
Collaborator

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. One AppSettings.shared owns the reading (canvasColor / canvasChrome), UserDefaults-backed, same one-object pattern as GitHubAuth.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 versionCode 3), changelog cut. After merge: git tag v0.1.2 && git push origin v0.1.2 publishes 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 generate re-run — new file AppSettings.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

…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>
@ThyFriendlyFox
ThyFriendlyFox merged commit 69da029 into main Aug 6, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant