docs staleness sweep + de-DE screenshot sweep and German string polish - #43
Merged
Merged
Conversation
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
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
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.
Docs staleness sweep (already on the branch), plus the de-DE verification work:
GermanScreenshotSweepUITests— 76-screen German UI capture sweep,SCREENSHOT_DE-gated (52/56 green on the iPadOS 26 sim; tip-jar screens blocked by Tip jar sheet crashes in UIKit focus engine (SIGABRT) under UI-test churn on iPadOS 26 sim — German sweep screens 74–76 uncaptured #42, QR sim-skipped by design)Fotobild→Fotoon the MQTT toggle, and the unlock-screen HA bullet (Erkennung→automatisch eingebunden, mit Verfügbarkeitssensor), all re-verified on-screenhttps://claude.ai/code/session_01XWbnBdWdcjnCH5smD6X1Ai