Task: Remove dead EntityDetailDialog/EntityDetailOperations abstraction
Table of Contents
This page documents a task in the Commission: party, counterparty, and party_status story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Confirm no entity implements entity_detail_operations any more, then
delete EntityDetailDialog=/=EntityDetailOperations and their .ui
from ores.qt.api, and fix up the docs (component overview,
entity-controller-pattern knowledge doc, PlantUML class diagram) that
still described the dead abstraction as if it were current.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Commission: party, counterparty, and party_status |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-18 |
Acceptance
- Repo-wide search confirms no entity implements entity_detail_operations.
- EntityDetailDialog.{hpp,cpp,ui} and EntityDetailOperations.{hpp,cpp} deleted from ores.qt.api.
- ores.qt.exe builds clean with the deletion (CMake globs sources, no explicit file-list edits needed).
- Docs that described the dead abstraction as current (component overview, entity-controller-pattern knowledge doc, PlantUML diagram) corrected to describe DetailDialogBase/FooDetailDialog instead.
Plan
(Implementation strategy. Written when work starts; key decisions
are distilled into the parent story's * Decisions at close, but the
plan itself stays — it is the historical record of what we did.)
Notes
Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
PRs
| PR | Title |
|---|---|
| #1639 | [qt,doc] Remove dead EntityDetailDialog/EntityDetailOperations abstraction |
Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | Two active (non-historical) backlog captures still cite deleted files by name/line as "affected code sites" for a live pagination-truncation concern (raised independently by all 3 review passes) | replace_parent_entity_combo_box_with_server_side_searchable_widget.org, replace_parent_combo_boxes_with_server_side_type_ahead_search.org | Accepted | Updated both to point at the current equivalents (LookupFetcher::fetch_parties/fetch_counterparties, PartyDetailDialog/CounterpartyDetailDialog); flagged the two as likely duplicates for backlog refinement. |
Result
Confirmed via repo-wide search that no entity implements
entity_detail_operations any more, then deleted all 5 dead files
(EntityDetailDialog.{hpp,cpp,ui}, EntityDetailOperations.{hpp,cpp}
— ~2000 lines) from ores.qt.api. CMake globs its sources, so no
build-file edits were needed; verified ores.qt.exe still builds
clean.
Found and fixed three docs that had gone stale by describing the dead
abstraction as if it were current, rather than leaving them
inaccurate: entity_controller_pattern.org claimed EntityDetailDialog
was the current detail-dialog base class and used its (never actually
called) .exec() in the NATS-flow example — corrected to
DetailDialogBase=/=FooDetailDialog, the non-modal
DetachableMdiSubWindow-embedded pattern every generated dialog
actually follows, and to DetailDialogBase's real
notifySaveSuccess()=/=closeRequested() flow. component_overview.org
updated the same way. The PlantUML class diagram
(ores.qt.api.puml) had EntityDetailDialog plus 8 supporting dead
structs (entity_detail_operations, operation_result,
parent_entity_entry, identifier_entry, contact_entry,
entity_data, load_all_entities_result, load_identifiers_result,
load_contacts_result) — removed all of them and regenerated the PNG.
Left historical docs (sprint 12/22 task/story records, the completed
Qt plugin refactor plan) untouched, since they document what was true
at the time rather than current state.