Task: Design the history diff architecture and testing strategy
This page documents a task in the Consolidate history dialogs onto HistoryDialogBase story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Produce the design for the history-dialog consolidation: where the field-string mappers live, the shape of the extended history messages, whether the diff model and logic warrant a dedicated ores.diff component, how HistoryDialogBase adoption proceeds incrementally across the 67 dialogs without racing the in-flight codegen migration, and how each layer is tested.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Consolidate history dialogs onto HistoryDialogBase |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing — task closed. |
| Last touched | 2026-06-05 |
Acceptance
- Architecture and overall approach recorded in the story (Architecture and Decisions sections).
- Implementation specifics distributed into the Plans of the raised implementation tasks.
- The codegen dependency question answered explicitly: phases A/B codegen-free, template rollout gated, codegen'd mappers deferred.
- Testing strategy defined per layer.
Notes
PRs
| PR | Title |
|---|---|
| #1072 | [agile] Scaffold the history dialog consolidation story: design and tasks |
Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1-3 | DONE task carried placeholder Goal/Acceptance and stale Plan template | task_history-diff-design.org | Fixed in 23a4da76a | Goal and Acceptance filled; transient Plan cleared. |
Result
Design produced and distributed per convention: the architecture and overall approach (three layers — ores.diff component, server-side per-entity field mappers, history responses extended with fields and changes — plus the A-D migration sequence and its codegen gating) live in the story's Architecture and Decisions sections; the implementation specifics live in the Plans of the six tasks raised from the design. Key findings: the 67 history dialogs are codegen-generated (bulk migration is a template edit), the base is a stub with one adopter, and the detail panel's need for full values shapes the message to carry both fields and diffs.