feat(WhereUI): present card estimates as visa stickers - #302
Merged
Conversation
kyleve
pushed a commit
that referenced
this pull request
Sep 6, 2026
…ber 6, 2026) (#308) ## Summary - Re-verified every open item in all 12 `TODOs.md` files against current source, after the week's 4 PRs (#301 demo next-launch mode, #302 visa-sticker estimates, #303 deterministic async-capture test, #305 Settings region editor). - **Nothing closed outright; two items narrowed.** PR #305 gave `RegionsSettingsView` a `SnapshotProviding` conformance and a 10-reference suite, shrinking the Settings image-coverage item from five screens to **four**. The `scrolledForYear` half of a namesake-test item is obsolete — the symbol no longer exists — so that item narrows to `LocationNamer`. - **Three small P2s filed from the window's new surface:** `DeveloperDemoLaunchSheet` snapshots a scrolling `Form` at a fixed `.phoneLightDark` frame against the full-content rule; PR #302 orphaned `WhereFormat.locationCardEstimatedDays` (helper + catalog key + test, no production caller); the `OnboardingGate` doc comment still says the gate is "Rooted at the trunk's head" after PR #301 prepended the demo step. - **Corrected five of the August 30 audit's numbers that were wrong at its own date:** WhereUI was 276 sources / 102 tests (published 274/101); totals were 695/368 (published 694/368, table summing to 693); test bundles were **25**, not "26, unchanged" (PR #300's StuffCore removal had already landed); the settle-floor split is **39** addressable configurations, not 37 (both prior enumerations missed the Ranking Animation Lab's 2); and the Method line carried a duplicated sentence. Also fixed a `WhereShortcuts` count stale since PR #230 (four registered shortcuts, not five) and two doc citations pointing past the end of rewritten files. - Rewrote `MODULE_AUDIT.md` from the refreshed backlog (700 source / 369 test / 49 image-snapshot files; 484 references across 49 suites; 25 bundles) and refreshed the two dated reference counts in `SnapshotKitTesting/AGENTS.md` (472 → 484), with `./sync-agents` run. ## Why The weekly `todo-triage` pass keeps the backlog honest: it closes what shipped, corrects citations the week's diffs moved, files what the new surface shows, and regenerates the derived audit so the report never carries claims the tree contradicts. This week's lead finding is about the audit itself — five published counts were wrong at publication, all undercounts or stale carries in figures whose text claimed freshness — so the affected items now record their derivation procedure, not just the number. ## Review focus - The four-screens rewrite of the Settings `SnapshotProviding` item in `Where/TODOs.md` (including the `WhereFlyoverView` nuance: it is image-pinned by a suite that hosts it directly, without a conformance). - The 37 → 39 correction in `Shared/SnapshotKitTesting/TODOs.md` — the Ranking Animation Lab's `settledAtLeast(1.0)` × 2 configurations predates the August 30 audit, so both prior "re-derived and unchanged" claims were wrong. - The three new P2s in `Where/TODOs.md`, each verified against source before filing. - The self-correction table at the bottom of `MODULE_AUDIT.md` ("as published / as corrected" column). ##⚠️ Breaking changes None. Documentation and backlog files only; no production code changed. ## Compatibility Not applicable — no code, build, or CI changes. ## Testing - Executed on the Linux agent: `./swiftformat --lint` (0/1125), `./shellcheck` (silent), `./attribution --check` (up to date, 12 credits), `./snapshot-shards check` (plan valid: 49 suites, 13/15/18/3 — the window's two new suites on the intake shard as designed), Python tool tests (64 tests, 1 known macOS-only failure), Ruby tool tests (75 runs, the known 12+1 platform failures). The retained-tool failures match the filed root P1 exactly; no new platform assumption appeared. - Six read-only verification subagents re-checked every open item with file:line evidence; every changed verdict and new finding was spot-checked by hand before publishing. **False alarms rejected rather than filed** (recorded in the audit): the demo-mode `UserDefaults` latch as "a mark on the device" (it is the Inspector pattern, one-shot, DEBUG-only); `DemoDataBuilder`'s convenience `init(now:calendar:)` as a Core parameter-default violation (an explicit overload on demo fixture code, not a store API); `DeveloperDemoModeRow` / `LocationCardEstimateSticker` bare `#Preview`s as coverage debt (both pinned transitively); RegionsSettings' unlabeled `.combine` (its symbol is `.accessibilityHidden`, children read as a sentence). - Skipped (unavailable on the Linux VM, per root `AGENTS.md`): `./test`, the architecture lint, `./xcstrings --lint`, `./sf-symbols --lint`, and any simulator or pixel verification. Documentation-only change, so no test tier applies.
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.
Summary
Why
The supporting estimate line read as metadata separate from the passport-inspired card. The endorsement makes the forecast feel native to the card without changing forecast calculations or accessibility semantics. This is a focused follow-up to #296.
Review focus
Testing