Skip to content

feat: Help answers its four questions, and the fine print gets one home - #591

Merged
maximsan merged 7 commits into
mainfrom
feat/help-and-support
Sep 11, 2026
Merged

feat: Help answers its four questions, and the fine print gets one home#591
maximsan merged 7 commits into
mainfrom
feat/help-and-support

Conversation

@maximsan

@maximsan maximsan commented Sep 10, 2026

Copy link
Copy Markdown
Owner

Why

Closes #531. Advances #448, which stays open for its one owner step.

Help's FAQ is built, and three of its four answers are re-grounded rather than ported — the design describes a different product. Terms, Privacy and the support mailbox become three constants every surface reads, so they go live together the moment they exist.

lib/core/config/app_links.dart is now the one file to open for any address the app points at: AppLinks for what it owns and claims on the web, SupportLinks for what someone must create first.

Watch for

  • Terms and Privacy have no destination, and the paywall now needs them #448 does not close. Its acceptance is "Terms and Privacy open real pages" and no pages are hosted, so the seam ships and the hosting step stays owed. The two links are the one exception to absent, never inert: on a buying surface their absence fails App Review, so they are drawn disabled there and simply absent on About.
  • The FAQ's Foundations answer names the paywall's own benefit titles, not its counts. Help and support: the FAQ that answers for this app, and the way to reach a human #531 says "what Plus includes from what the Plus pitch already reads"; using the counted details too turned the answer into a wall of semicolons, so the numbers stay on the paywall that pitches them. The free-tier counts are derived, from freeLessonIds and the free-games rule, as the ticket names.
  • The FAQ's mark is the design's plus, turning into a cross (owner's ruling, scoped to the FAQ; the prototype is being unified onto one disclosure component). It reuses the close glyph rotated 45°, because that mark is already the symmetric cross the turn ends on — one stroke weight, not two drawings of the same lines. Path's accordion keeps CaretMark until that unified component lands.
  • The seam guard got stricter, repo-wide. It matched monetization/plus_offering, which missed every import of plus_offering_provider — so any file could read the pricing arm through the provider without tripping it. Now plus_offering, falsified against the new file.
  • Three unrelated files changed. 320ms was written five times with no token; this change would have been the fifth, so AppMotion.expand now holds it and Path, Tour and the match card point at it.
  • url_launcher is a new dependency, and the only thing that opens anything.
  • AppLinks moved from core/constants/ to core/config/, joining the three new constants. Same values, same universal-link claim; four existing call sites follow the import.

Not here

Checks

Driven on the simulator and read against the design; the first rendering was a wall of semicolons and was rewritten. Both reviews' findings are fixed in 804b47ab and b54adf49.

The derivation is falsified rather than asserted: adding a benefit to the offer changes the answer, and removing the guard's new allow-list entry fails it.

@maximsan
maximsan merged commit 47d6876 into main Sep 11, 2026
7 checks passed
@maximsan
maximsan deleted the feat/help-and-support branch September 11, 2026 21:27
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.

Help and support: the FAQ that answers for this app, and the way to reach a human

1 participant