Skip to content

docs staleness sweep + de-DE screenshot sweep and German string polish - #43

Merged
kipp-ing merged 4 commits into
mainfrom
docs-staleness-sweep
Jul 26, 2026
Merged

kipp-ing merged 4 commits into
mainfrom
docs-staleness-sweep

Conversation

@kipp-ing

Copy link
Copy Markdown
Owner

Docs staleness sweep (already on the branch), plus the de-DE verification work:

https://claude.ai/code/session_01XWbnBdWdcjnCH5smD6X1Ai

kipp-ing added 4 commits July 26, 2026 00:26
Post-merge docs cleanup after the tier collapse, the German rollout, and the
1200 merge. Every finding was verified against the tree before editing, and
three were refuted in the process (noted below). Docs and specs only — no Swift,
no project file.

The canonical map was the most wrong file. docs/spec-overview.md still described
220/800/900/1000/1100 as living on branches that no longer exist, carried three
generations of stale gate counts, repeated the SKTestSession "needs the Xcode
IDE" caveat that was diagnosed as a test-setup bug on 2026-07-21, and had no row
at all for 1200. Issue #15 was listed as an unimplemented release blocker
although it merged in PR #19.

1200 was the significant find: it shipped in PR #39 on 2026-07-22, but its spec
still said "Draft" and none of its 26 tasks were ticked. 20 are now ticked
against artifacts in the merged tree. T012 is genuinely open — no XCUITest
asserts chrome insets across both fit modes; the test that looks like it does
predates 1200 and covers Ken-Burns-on/off in landscape only.

Docs that would have caused a wrong action:
- next-device-session.md told the ASC day to "Purchase Pro" and "Purchase
  Automation". Neither product exists; both collapsed into the Supporter Unlock.
- testing.md documented four accessibility identifiers that no longer exist, two
  renamed tests, and a copy-pasteable -only-testing: command matching nothing —
  the exact silent-exit-0 false green the same file warns about.
- engineering-notes.md recommended the M5 simulator, whose default 26.4 runtime
  serves zero StoreKit products and fails all seven StoreKitClientTests.
- traceability.md concluded in bold that CI has been red for months, so
  traceability "would still gate nothing". #20 closed on 2026-07-21.
- app-store-listing.md carried a 68-character subtitle under a "30 chars max"
  heading with a stale "29/30 chars" count — ASC would have rejected it.

privacy-policy.md is live text linked from ASC and had not been touched since
2026-07-09: it described an iPad-only Immich viewer. It now covers iPhone and
Apple TV, the Apple Photos library access that shipped with 900, the iCloud/
CloudKit config sync, and App Store purchases. Data-Not-Collected posture
unchanged.

CLAUDE.md now heads its orchestration section with the standing 2026-07-09
Codex-disable ruling, which until now lived only in session memory while the
file still read as if Codex delegation were binding.

Obsolete handovers and the executed gap-closure/implementation plans got dated
historical banners instead of deletion, so their provenance survives without
reading as live instructions.

Refuted while verifying, and therefore not applied: the audit claimed
onboarding.apiKey was dead (it is live in ConnectionStepView); it attributed a
calibration table to PR #34 that predates it, so the table was labelled as the
older sample rather than renumbered; and specs/600-broker-setup/quickstart.md
turned out not to exist at all, so the broken 006/600 link now points at spec.md
with corrected SC ids.

Claude-Session: https://claude.ai/code/session_01XWbnBdWdcjnCH5smD6X1Ai
The de-DE App Store localization had been mirroring the English text since the
app shipped German (topic 300, 2026-07-23). It now has real German copy —
subtitle, promotional text, description, keywords, What's New — written for
German rather than translated, with terminology matched to the shipped String
Catalogs (Diashow, Quelle, geteilter Link, Fotos-Mediathek,
Supporter-Freischaltung, Uhr-Einblendung, Kurzbefehle) and the same informal
"du" the UI uses.

Pushing it surfaced that en-US was equally stale on the 1.1 version record: the
description still opened with "Photo Frame for Immich turns an iPad…", the
subtitle was the pre-2026-07-26 "Slideshow for your own server", and promo text
and What's New were empty. Both locales were pushed from this doc, so the doc is
now byte-identical to what ASC holds.

Keywords in both locales get "immich" (and "server") back. They used to ride on
the old subtitle; the source-neutral rewrite dropped both words, which would
have left an Immich client unfindable under "immich". "self-hosted" came out to
make room — the tokenizer splits it anyway and "selfhosted" covers the rest.

Verified by reading all ten fields back from the API after the write.

Claude-Session: https://claude.ai/code/session_01XWbnBdWdcjnCH5smD6X1Ai
…gated)

Captures the full German UI on the iPad simulator for translation review:
onboarding, slideshow/chrome/error states, settings, sources, broker, and
purchase surfaces. Gated behind SCREENSHOT_DE=1 so it never runs in the
normal suite. 52/56 green on the iPadOS 26.0 sim; the 3 tip-jar screens
crash in UIKit's focus engine under test churn (issue #42), and the QR
screen is sim-skipped by design.

Claude-Session: https://claude.ai/code/session_01XWbnBdWdcjnCH5smD6X1Ai
- Both connection-error bodies: replace the verbless fragment 'Erneuter
  Versuch automatisch im Hintergrund.' with the full sentence 'Es wird
  automatisch im Hintergrund erneut versucht.'
- MQTT publish toggle: 'Fotobild' -> 'Foto', matching the sanctioned
  store copy in docs/app-store-listing.md.
- Unlock-screen HA bullet: 'mit integrierter Erkennung und Verfuegbarkeit'
  -> 'automatisch eingebunden, mit Verfuegbarkeitssensor' ('Erkennung'
  reads as image/face detection in a photo app; the new wording matches
  the store's Discovery/availability phrasing).

All three re-verified on-screen via the sweep tests (28/29/62/70 green).

Claude-Session: https://claude.ai/code/session_01XWbnBdWdcjnCH5smD6X1Ai
@kipp-ing
kipp-ing merged commit 8c9cc3d into main Jul 26, 2026
1 check passed
@kipp-ing
kipp-ing deleted the docs-staleness-sweep branch July 26, 2026 10:35
kipp-ing added a commit that referenced this pull request Sep 13, 2026
docs staleness sweep + de-DE screenshot sweep and German string polish
kipp-ing added a commit that referenced this pull request Sep 13, 2026
docs staleness sweep + de-DE screenshot sweep and German string polish
kipp-ing added a commit that referenced this pull request Sep 26, 2026
docs staleness sweep + de-DE screenshot sweep and German string polish
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