Experiments DB Dev
86feec2e77
fix(export): label synthetic ordinal '# Days Reach (ordinal)' to avoid collision with same-named daily field
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-19 19:35:22 -04:00
Experiments DB Dev
4f3fe64cad
test(export): stale-group + same-date ordinal coverage; comment/guard polish
2026-07-19 15:18:56 -04:00
Experiments DB Dev
33ee191966
refactor(export): remove dead assignable-axes helpers and their tests
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-19 15:12:15 -04:00
Experiments DB Dev
6f23f83bc8
feat(export): modal becomes X / Data / Group by pickers, subjects as columns
2026-07-19 15:05:38 -04:00
Experiments DB Dev
39a5a4ec0c
feat(export): buildSubjectSeriesMatrix — subjects as columns over an X field
2026-07-19 14:59:42 -04:00
Experiments DB Dev
8510903771
feat(export): X-coordinate helpers (date, # days reach, daily field)
2026-07-19 14:54:25 -04:00
Experiments DB Dev
3e52117c1a
docs(plan): subject-series export implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-19 14:36:10 -04:00
Experiments DB Dev
8153777951
docs(spec): subject-series export — choose X field + data value, subjects as columns
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-19 14:29:20 -04:00
Experiments DB Dev
9b3d52d89b
fix(export): default group-by to None when unset/stale; polish
...
Final code review of the configurable-data-export feature: ExperimentDetail
was forwarding its on-page groupField state (defaults to '__name__') into
ExportDataModal, leaking a clustering default into the default (untouched)
export. Now passes the raw saved localStorage value, defaulting to
'__none__'. The modal also now validates the incoming groupField against
'__none__'/'__name__'/'__id__'/active subjectTemplate fields and coerces to
'__none__' otherwise, guarding against stale/deleted subject_info fields.
Plus a stale module comment fix and optional-chaining consistency fix in
listSubjectMembers.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-19 13:59:48 -04:00
Experiments DB Dev
e65de8892a
feat(export): pass subjectTemplate + saved group field to export modal
2026-07-19 13:41:15 -04:00
Experiments DB Dev
8ab270a9c9
feat(export): modal gains assignable axes + group-by control
2026-07-19 13:33:12 -04:00
Experiments DB Dev
958666580f
feat(export): toCSV emits context line + subject group cell
2026-07-19 13:28:32 -04:00
Experiments DB Dev
600323f40a
feat(export): generalized buildMatrix over assignable dimensions
2026-07-19 13:22:53 -04:00
Experiments DB Dev
7d112de0d7
feat(export): subject/parameter members + dimension dispatcher
2026-07-19 13:19:15 -04:00
Experiments DB Dev
a411d59305
feat(export): dimension primitives, date members, status index
2026-07-19 13:16:33 -04:00
Experiments DB Dev
cd4e213d6f
docs(plan): configurable data export implementation plan
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-19 13:14:41 -04:00
Experiments DB Dev
900759074d
docs(spec): configurable data export — assignable axes + subject group cell
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-19 13:09:07 -04:00
Experiments DB Dev
57446d5b64
Merge branch 'feat/experiment-data-export'
...
Client-side CSV export on the experiment page: pick a daily parameter
(session metrics or any daily-record field) and download a date×subject matrix.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-06 16:21:07 -04:00
Experiments DB Dev
ea1a7f39f2
feat(frontend): Export data button + modal on experiment page
2026-07-06 15:48:02 -04:00
Experiments DB Dev
0bf3fc479b
refactor(frontend): polish ExportDataModal (derived selection, safe URL revoke, error escape)
2026-07-06 15:46:52 -04:00
Experiments DB Dev
ea76cf9cd2
feat(frontend): ExportDataModal — pick a parameter and download CSV
2026-07-06 15:42:30 -04:00
Experiments DB Dev
dfe3938afc
feat(frontend): toCSV + csvFilename for data export
2026-07-06 15:40:24 -04:00
Experiments DB Dev
b5578f6e24
feat(frontend): buildMatrix pivots statuses into date×subject grid
2026-07-06 15:37:33 -04:00
Experiments DB Dev
3f8febfda3
feat(frontend): listExportableParams enumerates export options
2026-07-06 15:35:19 -04:00
Experiments DB Dev
523cf1614e
feat(frontend): extractValue helper for data export
2026-07-06 15:33:30 -04:00
Experiments DB Dev
9b55b578f2
docs: implementation plan for experiment data export (CSV)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-06 15:30:41 -04:00
Experiments DB Dev
2d3b7c4607
docs: design for experiment data export (CSV)
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-06 15:25:25 -04:00
Experiments DB Dev
740a884efa
Merge: persist cross-subject plot config per experiment
2026-06-01 10:34:54 -04:00
Experiments DB Dev
b0c6217cb4
fix(backend): widen plot_config size cap to fit a full hiddenSubjects list
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 10:30:06 -04:00
Experiments DB Dev
9a9b5dfae8
feat(frontend): hydrate + debounced-persist cross-subject plot config
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 10:26:33 -04:00
Experiments DB Dev
4b82df514f
feat(frontend): serialize/read helpers for plot config
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 10:18:56 -04:00
Experiments DB Dev
e9511bdac3
feat(backend): persist per-experiment plot_config via PUT /:id/plot-config
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 10:14:50 -04:00
Experiments DB Dev
2dd4a329ee
docs: implementation plan for persisting plot config
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 10:10:39 -04:00
Experiments DB Dev
8877747a63
docs: design for persisting cross-subject plot config per experiment
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 10:06:40 -04:00
Experiments DB Dev
c768b5829a
Merge: cross-subject plot interactions (sidebar, legend toggle/highlight, ordered tooltip)
2026-06-01 09:56:41 -04:00
Experiments DB Dev
839d05f449
feat(frontend): subject sidebar, legend toggle/highlight, ordered tooltip on cross-subject plot
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 09:41:43 -04:00
Experiments DB Dev
7b34c2fa52
feat(frontend): add SubjectSidebar visibility panel
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 09:33:17 -04:00
Experiments DB Dev
0f7f6fbbe3
feat(frontend): pure helpers for cross-subject plot interactions
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-01 09:29:21 -04:00
Experiments DB Dev
d77b6c1528
docs: implementation plan for cross-subject plot interactions
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 09:26:00 -04:00
Experiments DB Dev
3095628479
docs: design for cross-subject plot interactions
...
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-01 08:45:46 -04:00
Experiments DB Dev
1b0f083cc5
feat(frontend): persist bucket config to animal on successful analysis
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-01 08:05:07 -04:00
Experiments DB Dev
75a343d617
feat(frontend): render numerical-bucket plots in CSV-analysis results
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-05-01 08:03:48 -04:00
Experiments DB Dev
39c01c567c
feat(frontend): add field picker + numerical bucket UI in classify phase
...
Replaces "+ New category" with a Note/Numerical type-aware picker, extends
CategoryBucket to render type badges, bulk-add, and custom-bucket remove controls,
and deletes the addCategory() back-compat shim from Task 7.
2026-05-01 08:01:41 -04:00
Experiments DB Dev
ef17ee0642
feat(frontend): seed CsvAnalysis buckets from animal config
2026-05-01 07:58:56 -04:00
Experiments DB Dev
ceaa3be200
refactor(frontend): unify CsvAnalysis state under buckets[]
2026-05-01 07:56:22 -04:00
Experiments DB Dev
b9b8a4ef1d
feat(frontend): add computeNumericSeries helper
2026-05-01 07:51:22 -04:00
Experiments DB Dev
0b83795665
feat(frontend): add extractNumber helper
2026-05-01 07:50:56 -04:00
Experiments DB Dev
6a6e6b310a
feat(frontend): add animalsApi.updateCsvConfig
...
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-01 07:49:41 -04:00
Experiments DB Dev
fe4e89f497
feat(backend): PATCH /animals/:id/csv-config endpoint
...
Implement TDD for new route that accepts CSV configuration with validated buckets.
Route uses auditMiddleware to log config changes and delegates validation to
validateCsvConfig helper from Task 2.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-01 07:49:00 -04:00
Experiments DB Dev
1ae55591f4
feat(backend): add csv_analysis_config validator
2026-05-01 07:47:17 -04:00