7.8 KiB
Documentation deep review V1 — 2026-10-02
Scope and evidence hierarchy
This review covers the linear development source at
f4ddcfdb05e9627397f7225c05f40212e9de1ea6
(trainlog-sleep-single-selector-weeks-v1). Its ancestors include 3a4ec34
(Program rollout), 8995843 (current Program projection), c2935b8 (Web body
figures), and the Sleep sport/PDF/paging changes. It does not integrate or
describe as delivered the uncommitted Dashboard layout work in the separate
trainlog-dashboard-polish-v1 worktree. Stable v0.1.6 and the 0.1.7
development line are different publication states.
Normative frozen contracts take priority over source implementation; source and
tests establish capabilities of this commit; dated rollout records establish
only the installation they observed; design/review files retain history. The
observed PC/Web launcher path names the f4ddcfd package. That observation
alone is not a byte comparison of a running process, an Android APK inspection,
or proof of every synchronization service's package. The earlier verified
Program rollout records desktop/Android schemas v37/v34. No private health
data, PDF, database or device identifier was read for this review.
Coverage inventory
The 105 tracked baseline Markdown files include root README.md, AGENTS.md,
CHANGELOG.md, android/README.md, format/README.md, 17 primary docs/*.md
owners, domain and design records, release notes and historical reviews. This
revision adds an indexed Sleep guide and this review. The primary owners were
inspected against code, migration constants, Meson/Gradle settings, tests and
retained rollout records. Designs, releases and reviews were mapped as dated
evidence rather than rewritten into current status. The tracked Markdown
relative-link scan found no missing target before publication. External link
availability was not verified.
| Document/section | Claim | Evidence (commit, path, symbol or test) | Gap | Correction | Status |
|---|---|---|---|---|---|
AGENTS.md scope |
Analyse, Programmes, Sessions and Exercises are placeholders | web/src/routes/; docs/web_sessions.md; docs/web_exercises.md at f4ddcfd |
Obsolete present tense | Names implemented routes | Corrected |
AGENTS.md, database and Android status |
Current schemas v26/v24, v28/v17 or v36/v33 | tui/include/trainlog/database.h TRAINLOG_DATABASE_SCHEMA_VERSION=37; TrainlogRepository.kt helper version=34; migration tests |
Mixed historical and current versions | Current source v37/v34; historical migration steps retained | Corrected |
current_state.md, roadmap |
c2935b8/3758875 Web package served |
Observed launcher target names sleep-single-selector-weeks-v1-f4ddcfd; ancestor graph |
Package claim stale; running bytes unverified | Reports launcher observation and separate Program rollout | Corrected with limit |
| Sleep agenda | Old selector or calendar-week interpretation | SleepDiaryWorkspace.tsx initialAgendaPageSize, recentEntries, visibleEntries; Sleep component tests |
Seven recorded rows can span more than seven dates | Current 7/14/21/28/All row counts, default seven; old values migration only | Corrected |
| Sleep PDF and sport | Page controls could be confused with export range | SleepDiaryWorkspace.tsx pdfStartDate/pdfEndDate; sleepVisualProjection; Web PDF tests |
Selection and visible page have different scopes | Documents independent inclusive range and factual sport bands | Verified in source |
| Programs | Rescheduling labelled future/candidate | docs/program_format_v1.md; docs/sync_exchange.md; tui/tests/test_web_programs.c; Android v34 projection |
Development capability mislabelled future | Describes implemented development contract and partial V1-peer convergence | Corrected |
| Web package | npm test could be mistaken for embedded runtime proof |
meson_options.txt web; tui/meson.build frontend target/tests; tools/package_sync_candidate.py asset gate |
Source tests and package differ | README requires -Dweb=enabled, Meson tests, compatible bundle |
Corrected |
| Synchronization | One ACK might imply universal convergence | docs/sync_exchange.md Programs V2 matrix; generation and ACK implementation |
V1-only peer omits rescheduled Program while other domains proceed | Added domain/format/selection/ACK matrix | Corrected |
| Transport narrative | Current Web edits and architecture described USB as universal priority | docs/sync_exchange.md Bluetooth selector; tools/sync_peer_worker.py; private rollout record |
Conflated paired Bluetooth path with separate USB/Drive workflow | Separated automatic paired choice from legacy configured workflow | Corrected |
| Rollout readiness | Historical eight-generation limit could look universal/current | tools/sync_generation_exchange.py MAX_RETAINED_PER_PEER=16; Android SyncGenerationService.MAX_RETAINED_PER_PEER=8; tools/sync_peer_worker.py MTP timeout |
Desktop/Android ceilings differ; timeout is not success proof | Separated limits and historical bridge instructions | Corrected |
| Sleep user path | Capture, agenda and PDF behavior had no short indexed guide | TrainlogRepository.kt; SleepDiaryWorkspace.tsx; Sleep projection/PDF tests |
Readers had to assemble workflow from state and code | Added indexed factual guide with privacy and evidence boundaries | Corrected |
| Backup/rollback | Old executable could be mistaken for schema rollback | tools/backup_trainlog_sqlite.py SQLite backup API; docs/sync_rollout_readiness.md |
Needs paired compatibility and retained backups | Existing procedure retained and linked from README | Verified in documentation |
| Tests | Largest historical totals could look like current validation | docs/tests.md dated checkpoints; tui/meson.build; Web scripts |
Build configuration and skipped tests were implicit | Added evidence-reading rule | Corrected |
| 0.1.8 | Possible training ideas could look implemented | docs/roadmap.md; present catalog/feedback/Sleep/Cardio owners |
No approved algorithm or medical rule | Proposed-only section with human validation | Corrected |
Validation performed in the isolated documentation worktree
python3 tools/validate_json.py and
python3 tools/validate_import_contract.py passed. With a local
-Dweb=enabled Meson build, strict compilation and 114/114 registered
tests passed, including the embedded frontend and package self-containment
checks. A preliminary -Dweb=disabled run passed 111/112; its deployment
package test rejected the intentionally absent Web assets as designed. The
changed C/H format gate passed with no changed C/H file. Relative links across
the tracked baseline plus new Markdown files and git diff --check passed.
These checks used build artifacts in this worktree and synthetic test data;
they did not exercise a personal device, database or service.
Boundaries and open evidence
The source can prove format selection, persistence rules and test coverage; it
cannot prove that a particular uninspected phone or service is currently
running that source. The f4ddcfd launcher observation identifies a package
path, not a live process hash. The private rollout and Firefox/PDF records are
dated evidence for their stated configurations. Android path reconstruction for
the Web silhouette is source parity evidence, not an Android runtime
screenshot. The local desktop 16-generation and Android eight-generation
admission limits, and the 90-second MTP operation budget, are bounded
configuration, not a guarantee against interruption or proof that transient
storage occupation is always lower than either ceiling.
No code defect was confirmed by this documentation pass. A broad line-by-line revalidation of every historical review and every external URL is outside the verified coverage; their current status must not be inferred from this matrix. No application, database, service, synchronization or personal-data operation belongs to this documentation branch.