Task: Design the history diff architecture and testing strategy

Table of Contents

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.

Emacs 29.3 (Org mode 9.6.15)