Point-in-time review data: recovered work and capability boundary¶
Owner update, 3 October (EX2): historical downloads include available recoverable database history, including pre-migration data. No arbitrary date/retention-length cutoff; no fabricated legacy snapshots/versions. As-of instant representation and reconstruction/manifests remain engineering details, not unresolved historical availability. This does not alter the inspected implementation findings below or claim historical modes are shipped.
Confirmed direction (EX1)¶
Chris, 2 October 2026: downloads default to current answers, including accepted/gold and candidate answers as applicable. Previous versions must also be downloadable for reproducibility, including requesting review-data state as of a particular date. This replaces the earlier “historical gold export undecided” note. It is a confirmed requirement, not a claim of shipping.
Reuse prior point-in-time/revision work before designing an export extension. Preserve immutable annotation/session/question/settings references and accepted snapshots. Do not treat historical completed session versions as current after an incomplete Save, or treat autosaved edits as an explicit confirmed session version. Existing export grants, current resource authority, visibility and blinding remain required; a historical request does not grant historical permissions. Exact cutoff/timezone, eligible dataset scope and cross-record consistency semantics need comparison with existing contracts, rather than inventing a second version-history engine here.
Strongest host-independent match¶
PR #2461 — feat(qm): Question Management v2 — R1 domain + API + web scaffolds (WIP)
is OPEN, not merged. Its current inspected head is
1ca9f5defa3fbd114d9ea8c27d850a268a523740. It contains the earlier commit
3bb2dbbe7df1b9eed88fb20be1033721c2934291, “add versioned export schema sidecars”. GitHub's
commit-to-PR association links that commit to #2461; local branch ancestry agrees.
Its ExportSpec.cs
reserves CurrentState, AsOfDate, AsOfQuestionSetVersion, CompareVersions and
SessionAuditTrail, with date/version selectors. However, IsR1Supported() accepts only
CurrentState. The controller
rejects other modes with “Only current-state exports are supported in R1.” Reserved request
fields are not working historical queries. Schema sidecars describe exported definitions and
observed version usage; they do not prove review-state reconstruction at an arbitrary date.
PR #2574 — feat(qm): Migration, ADR-009 cutover, and API (PR-C of 5)
is also OPEN, head 1b93cbbc42a764da27a03870b6024e57f5a23dd4. Direct GitHub inspection of its
ExportSpec.cs
confirms the same CurrentState-only support gate. This is the split implementation work to
compare/reuse, not proof that historical downloads or full temporal queries shipped.
The #2461 release strategy records migrated schema sidecars and current-state export transition guards, with production verification still pending in that historical checklist. Its older autosave/version-transition semantics must be reconciled with the latest owner overlay, not copied as current decisions.
Plans, merged adjacent work and exclusions¶
| Work | Status checked 2 October 2026 | Relevance and limit |
|---|---|---|
| #2398 — docs: product roadmap, feature specs, and planning documentation | MERGED, 4 May 2026 | Documentation foundation for immutable versions, complete session snapshots and time-travel queries. A merged plan is not a shipped temporal API. |
| #2497 — QM · Rollout: Production migration + flag cutover + export v2 | OPEN issue | Export scope explicitly adds optional QuestionVersionId columns and compatibility tests; does not claim arbitrary-date historical retrieval. |
| #3241 — test(stats): prove source-row export compatibility | MERGED, 5 September 2026 | Current source-study CSV fixtures/progress; PR states no production export code changes. Not historical snapshots. |
| #3243 — fix(api): enforce project export authorization | MERGED, 5 September 2026 | Reuse existing export authorization. Does not supply an as-of selector or revision reconstruction. |
| #3932 — feat(notifications): saved inbox for completed exports | OPEN | Saved completion notification; export files remain browser-streamed. Not stored reproducible result files or historical review data. |
| #3578 — feat: show observed reviewer annotation history | MERGED, 25 September 2026 | Related observed-statistics history; not proof of reconstructing every annotation/gold snapshot as of a date. |
| #3148 — feat(stats): history reads, evidence, mode-epoch stage two, flag adapter and DI wiring (Phase 1 wave 1D part 2) | MERGED, 2 September 2026 | Statistics history/evidence infrastructure, distinct from temporal review-answer retrieval. |
Question-definition export/import (#2557), identity/Auth0 export, storage backups and a MongoDB transaction's consistent current snapshot are different capabilities. Do not count them as arbitrary-date review-data retrieval. No deployment/production feature flags were checked.
Source paths to reuse¶
- Annotation Versioning README: complete ASV AnnotationAVMap, historical session versions and explicit time-travel intent (§ASV, D1).
- Annotation Versioning design session: annotation/session version identity and admin-controlled transitions.
- Reconciliation design decisions: immutable accepted snapshot/current version and provenance; D1 explicitly enables time-travel queries.
- Main
src/libs/project-management/SyRF.ProjectManagement.Core/Model/DataExportJobAggregate/DataExportJob.cs: inspected request has current export filters, no as-of date or version selector. - Main
src/services/api/SyRF.API.Endpoint/Controllers/DataExportController.cs: inspected CSV path retrieves project Studies; no arbitrary-date revision reconstruction found. - Statistics export compatibility: current source exports and operational progress are distinct from statistics history/snapshot guarantees.
Main-source findings were inspected at 50f115ddd7a4c3cf7ae0b60b15c0800872930049; the inspected
export request/controller files are unchanged at fetched 5861b5844b5b2f3e29ef378b815c4ca0574905c3.
This is a code boundary, not a statement about every deployment or inaccessible Windows session.
Search coverage and remaining uncertainty¶
Read-only GitHub lookup included all PR states (open, closed and merged), export/versioned sidecar terms, temporal/point-in-time/time-travel/reproducibility terms, issues, actual PR heads and commit association. Local repository searches covered plans, source, branch history and relevant handovers. No standalone implemented full as-of review-answer query was verified. The strongest recovered code match is #2461/#2574; the immutable-version plan is #2398.
Juniper Claude Code history was inspected read-only under /home/chris/.claude/projects/
and /home/chris/.claude/history.jsonl, including SyRF root/main/handover sessions. Relevant
matches were reduced to metadata/document references; unrelated private content was not
included in this report or the portable package. The narrowed scan produced 42 candidate transcript files and 9 metadata/document-reference
records, mainly statistics consumer/rebuild/observed-history/point-fold references; these were
not evidence of a full historical review-answer query. No direct matching standalone user task was
identified in the available history index or textual session search. Windows-only transcripts
not present on Juniper were not inspected. This bounded no-match does not prove such a task
never existed elsewhere. The package contains only a sanitized evidence summary, not transcripts.
Next compare the recovered contracts against EX1, latest explicit Save/Complete state, shared forms, accepted snapshots and current permissions. Establish actual cutoff/reconstruction support before proposing implementation. No runtime redesign, migration or live pause is approved by this investigation.