docs: document 0.1.4 analysis foundation
This commit is contained in:
parent
2bd68100e9
commit
109eb6fcd4
6 changed files with 57 additions and 13 deletions
10
CHANGELOG.md
10
CHANGELOG.md
|
|
@ -4,6 +4,16 @@
|
|||
|
||||
Development opened after stable v0.1.3 release.
|
||||
|
||||
- Implemented the loopback-only Web Analyse V1 workspace and shared bounded
|
||||
Core read model. The 7/30/90-day and all-history filters, factual activity,
|
||||
active-Program progress, compatible exercise metrics, explicit persisted
|
||||
MAX results, primary BODY ZONE exposures, and fourteen body measurements are
|
||||
calculated by the C17 backend. Dashboard summaries consume the same model
|
||||
while preserving all existing tile identities and layout behavior. Deep
|
||||
links, safe query fallbacks, null/empty states, French/English presentation,
|
||||
keyboard focus, and responsive charts are covered without estimating 1RM,
|
||||
readiness, fatigue, recovery, body fat, or performance.
|
||||
|
||||
## 0.1.3 — 2026-09-20
|
||||
|
||||
- Decoupled the Android full-generation request from the strict legacy V3
|
||||
|
|
|
|||
|
|
@ -350,7 +350,8 @@ As of 2026-09-18:
|
|||
`WEB_DASHBOARD_V1=PASS/FROZEN` and `TRAINLOG_WEB_SESSIONS_V1=PASS/FROZEN`;
|
||||
`/programmes` is an operational active-Program calendar, while
|
||||
Sessions → Programmes remains the administration surface;
|
||||
`TRAINLOG_WEB_EXERCISES_V1=PASS`; Analyse remains a placeholder;
|
||||
`TRAINLOG_WEB_EXERCISES_V1=PASS`; `/analyse` now provides the 0.1.4 factual
|
||||
Dashboard/Analyse read-model foundation pending visual review;
|
||||
- `TRAINLOG_PROGRAMS_PRESENTATION_ANDROID_DELETE_V1=PASS`: the coordinated
|
||||
private desktop/Android deployment, real Firefox presentation, correlated
|
||||
`programs-v1` deletion ACK, restart/replay, and non-resurrection checks pass;
|
||||
|
|
|
|||
|
|
@ -61,6 +61,14 @@ long-term history. Core owns data, persistence, business logic, calculations,
|
|||
read models, command services, and versioned contracts. An interface must not
|
||||
query tables directly to reconstruct its own business rules.
|
||||
|
||||
The Web Dashboard and Analyse workspace share `GET /api/v1/analysis`, backed by
|
||||
one C17 read model. Period filtering, active-Program progress, compatible
|
||||
exercise metrics, explicit MAX results, primary BODY ZONE exposures, and body
|
||||
measurement first/last/delta calculations occur in Core. React validates the
|
||||
bounded response and presents it; it does not load raw history or issue SQL.
|
||||
Absent values remain null, and the model never estimates physiological or
|
||||
performance scores.
|
||||
|
||||
Android local SQLite is a capture store, not a synchronization format.
|
||||
|
||||
## 2. Components
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ parallel implementation of its rules.
|
|||
| Private full-generation rollout | `TRAINLOG_SYNC_FINALIZATION_AND_ROLLOUT_V1=PASS` (direct MTP, one authorized phone) |
|
||||
| Local Web | `TRAINLOG_WEB_V1=CONTRACT_FROZEN / IMPLEMENTATION_STARTED` |
|
||||
| Web Exercises V1 | `TRAINLOG_WEB_EXERCISES_V1=PASS` |
|
||||
| Current operational cursor | `TRAINLOG_WEB_ANALYSIS_V1` |
|
||||
| Current operational cursor | `TRAINLOG_WEB_ANALYSIS_V1` (implemented, visual review pending) |
|
||||
| Complete synchronization gap contract | Frozen dependency contract; operational USB/Drive slices required by v0.1.2 are delivered |
|
||||
| Isolated synchronization test environment | `TRAINLOG_SYNC_TEST_ENV_V1=PASS/FROZEN` |
|
||||
| Synchronization characterization | `TRAINLOG_SYNC_CHARACTERIZATION_V1=PASS/FROZEN` |
|
||||
|
|
@ -291,7 +291,24 @@ explicit proposal derivation and generation-backed Android delivery. The
|
|||
top-level `/programmes` route is an operational daily active-Program calendar;
|
||||
Sessions → Programmes remains the technical administration/import, list,
|
||||
detail, archive, and delete surface. `/exercices` is the operational desktop
|
||||
catalogue administration surface; Analyse remains an explicit placeholder.
|
||||
catalogue administration surface. `/analyse` is implemented with Overview,
|
||||
Exercises, Distribution, and Measurements sections over one bounded Core read
|
||||
model. Its global 7/30/90-day/all filter is applied in the backend; Dashboard
|
||||
uses the same 30-day calculations for activity, active-Program progress,
|
||||
exercise progression, measurements, and BODY ZONE links.
|
||||
|
||||
The Analyse API validates period, exercise identity, measurement metric and
|
||||
page, rejects unknown or duplicate parameters, and bounds exercises and chart
|
||||
points. Missing facts remain null. Exercise output respects persisted
|
||||
tracking/load modes, explicit MAX rows are never estimated, and duration,
|
||||
distance, speed, external load, and external volume appear only when their
|
||||
source observations support them. BODY ZONES are labelled as recorded primary
|
||||
zone exposures/associated sets rather than physiological percentages. All
|
||||
fourteen stored body metrics expose period-first, period-last, and an absolute
|
||||
delta only with at least two points. The route and Dashboard deep links have
|
||||
safe invalid-query fallbacks, French/English labels, keyboard controls, and
|
||||
responsive no-overflow layouts. Visual inspection remains pending before any
|
||||
freeze marker.
|
||||
|
||||
Exercises uses bounded Core-owned list/detail reads, canonical name
|
||||
normalization, BODY ZONES taxonomy, profiled creation/update commands and
|
||||
|
|
@ -587,9 +604,8 @@ tests, Android debug assembly, and 211 Android tests (207 passed, four optional
|
|||
historical-fixture skips). Strict desktop builds use Clang 22.1.8; the compared
|
||||
pre-existing GCC 16.2.1 Web warning gate remains documented rather than green.
|
||||
|
||||
- `TRAINLOG_WEB_EXERCISES_V1=PASS`. The next planned work is
|
||||
`TRAINLOG_ANDROID_UI_REDESIGN_V1`; it remains unimplemented. Analyse remains
|
||||
a placeholder and is not a v0.1.3 priority.
|
||||
- `TRAINLOG_WEB_EXERCISES_V1=PASS`. `TRAINLOG_WEB_ANALYSIS_V1` is implemented
|
||||
on the 0.1.4 branch and awaits the requested Dashboard/Analyse visual review.
|
||||
- `APP_SHELL_V1` retains a recorded legacy visual/accessibility review gate; its
|
||||
observations are inputs to, not decisions for, the new 0.1.3 Android contract.
|
||||
- Session Generator V1 is hidden while V2 planning semantics are developed.
|
||||
|
|
|
|||
|
|
@ -43,9 +43,9 @@ tile rendering exist. The Dashboard's bounded progression and BODY ZONES
|
|||
visualizations and Sessions V1 are implemented. The top-level `/programmes`
|
||||
route is an operational daily active-Program calendar, while
|
||||
Sessions → Programmes remains the technical administration/import, list,
|
||||
detail, archive, and delete surface. Web Exercises V1 is implemented; Analyse
|
||||
remains a placeholder outside this cycle unless a later explicit decision
|
||||
changes that order.
|
||||
detail, archive, and delete surface. Web Exercises V1 is implemented. The
|
||||
0.1.4 `TRAINLOG_WEB_ANALYSIS_V1` branch now owns the factual Dashboard/Analyse
|
||||
read-model foundation and stops before merge for visual inspection.
|
||||
The corrective prepared-item projection, bounded phase-owned MTP outbox,
|
||||
Sessions presentation correction, local date preference and durable preparation
|
||||
withdrawal are implemented. The withdrawal uses the separate versioned
|
||||
|
|
@ -54,12 +54,12 @@ mobile snapshot or `TRAINLOG_FORMAT_V1` contracts.
|
|||
|
||||
## Current cursor
|
||||
|
||||
The v0.1.3 development cursor proceeds from the closed stable v0.1.2 baseline
|
||||
and its validated Web, Program execution, USB/Drive generation, ACK, and
|
||||
causal-deletion contracts without reopening those completed gates.
|
||||
The v0.1.4 cursor proceeds from stable v0.1.3 and its validated Web, Program
|
||||
execution, USB/Drive generation, ACK, and causal-deletion contracts without
|
||||
reopening those completed gates.
|
||||
|
||||
```text
|
||||
CURRENT_OPERATIONAL_CURSOR=TRAINLOG_ANDROID_UI_REDESIGN_V1_CONTRACT
|
||||
CURRENT_OPERATIONAL_CURSOR=TRAINLOG_WEB_ANALYSIS_V1
|
||||
```
|
||||
|
||||
The focused `TRAINLOG_SYNC_CAUSAL_DELETE_V1_CLOSEOUT` is complete before this
|
||||
|
|
|
|||
|
|
@ -1,5 +1,14 @@
|
|||
# Tests and validation
|
||||
|
||||
`web_analysis` covers empty history, every 7/30/90/all period selector,
|
||||
loaded and unloaded repetitions, continuous duration/distance/speed, explicit
|
||||
persisted MAX, multiple primary BODY ZONES, partial measurements, one- and
|
||||
multiple-point measurement semantics, and active-Program projection. The HTTP
|
||||
suite exercises the real bounded endpoint plus invalid and duplicate query
|
||||
parameters. Vitest validates the typed parser, null preservation, route and
|
||||
section changes, period/exercise/metric selection, invalid deep-link fallback,
|
||||
critical French/English labels, and Dashboard layout regressions.
|
||||
|
||||
`test_sync_drive_transport` proves Drive artifact-before-manifest and
|
||||
manifest-before-reference publication, rejects unsafe/AI namespaces, and keeps
|
||||
a partial generation invisible. Orchestrator coverage proves that Drive mirror
|
||||
|
|
|
|||
Loading…
Reference in a new issue