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.

Emacs 29.3 (Org mode 9.6.15)