Story: Add entity groups and finish the remaining codegen work — the remaining work

Table of Contents

This page documents a story in Sprint 30, carried unfinished from Sprint 28 at close. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

1. Goal

Add an entity group annotation to the model and a group flag to codegen, and finish the remaining codegen work: the model drift fixes, the counterparty logo picker and the tenor convention messaging layer under codegen, and the literate template split.

2. Status

Field Value
State BACKLOG
Parent sprint Sprint 30
Now Not yet started. Split from Add entity groups and finish the remaining codegen work, which closed in sprint 28 with its done tasks.
Waiting on Nothing.
Next Triage into a sprint.
Last touched 2026-11-08

3. Acceptance

  • The refdata model supports an entity group annotation, and codegen.sh regenerate accepts a group flag that regenerates all and only the entities in that group.
  • The remaining component entity models are brought to the latest format and regenerated drift-free.
  • The counterparty logo picker and the tenor_convention_resolution messaging layer come under codegen.
  • Every codegen template org is split into commented literate blocks that generate comment-free code.

4. Tasks

Task State Start End Description
Bring counterparty's Qt logo/flag picker under codegen ABANDONED   2026-11-08 counterparty's Qt detail dialog has a hand-added logo/flag picker (entityImageId(), initFlagButton, flagGroup box, flagEdited wiring, save-on-change) that isn't modeled/templated – discovered because regenerating counterparty via compass codegen entity generate silently deletes it. counterparty is excluded from the fix-refdata-model-drift task until this facet exists (mirrors the existing image_id/logo support other entities already have modeled).
Bring tenor_convention_resolution's messaging layer under codegen DONE   2026-11-08 tenor_convention_resolution (junction) has a hand-authored messaging layer (protocol/handler, read-only list) wired inline in registrar.cpp with the comment 'codegen doesn't generate a service/protocol/handler/sub-registrar for it'. Regenerating it via compass codegen entity generate produces a codegen-shaped handler with a different API (no .list(), different request-type naming) that breaks the hand-wired call site in registrar.cpp – a real compile error, not a diff nit. Excluded from the fix-refdata-model-drift task until junction messaging codegen (see the junction-messaging-codegen-missing-service capture) covers this shape.
Fix analytics entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.analytics domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Fix compute entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.compute domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Fix controller entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.controller domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Fix database entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.database domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Fix iam entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.iam domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Fix reporting entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.reporting domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Fix trading entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.trading domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Fix workflow entity model drift: update to latest format and regenerate ABANDONED   2026-11-08 Following the same pattern as the refdata sweep (task fix-refdata-model-drift): regenerate every ores.workflow domain_entity and junction model against current codegen templates, updating any model found using an outdated format/convention before regenerating, and commit the resulting drift-free tree. compass build and rat must pass after.
Split every codegen template org into commented literate blocks BACKLOG 2026-07-29   For every template org under ores.codegen/library/templates, split the single mustache tangle block into multiple same-target blocks interleaved with detailed human-level prose explaining what each block does and why; generated code stays comment-free.

5. Decisions

  • Split from Add entity groups and finish the remaining codegen work on 2026-10-24 at sprint 28 close. The acceptance above is copied from that story; its done tasks are recorded there.
  • Reviewed on 2026-11-08 at sprint 30 start. The Qt, messaging and drift parts are closed. Two parts stay: the literate split, where 3 of 219 template orgs have more than one block, and the entity group flag, which is not built and has no task yet.

6. Out of scope

Emacs 29.3 (Org mode 9.6.15)