ORE Studio Sprint 19 – Release Notes
Table of Contents
June 2026
Sprint 19 set out to verify all entity functionality post-NATS
migration, document entities in the manual, build entity evaluation
tooling, and fix the Windows/macOS CI builds. It closed RED on its
own health reviews: only one of fourteen entity commissioning stories
was even started and evaluation tooling never began. The Windows/
macOS CI goal fared better than the reviews credited: the rfl
complexity story (16/16 tasks) decomposed every nested instrument
struct to clear MSVC's C1202 recursion limit — the root cause of the
Windows break — though the builds are not yet verified green. What
the sprint delivered most, at remarkable velocity (186 PRs in nine
days), was the platform it kept reaching for: compass grew from a
scaffolding helper into the project's full operational CLI, the
entire C++ codebase was clang-formatted and regrouped, the codegen
model migration to org-mode all but completed, and the agile system
gained charts, self-auditing, and an automated PR lifecycle. Sprint
19 was largely a tooling sprint wearing a commissioning mission
statement — sprint 20 returns to the entities with that excuse now
spent.
✅ Highlights
- compass is now the project's operational CLI:
db(recreate, setup, drop, sql, resets),services/client(start, stop, status, logs), environment status inbearingswith DB-drift staleness chips,sprint auditfor state-sync policing,sprint charts, and a full PR lifecycle (create,checks,sync,mergewith guard rails, auto task close-out, and admin-merge--force). Eleven operational shell scripts deleted. - Whole-codebase clang-format: format configuration, CMake targets, a nightly workflow, and a 16-group format pass across every component.
- Codegen modernisation: entity models migrated from JSON to org-mode (28 of 32 tasks; remainder carried), C++ and SQL template refactors landed, and the legacy binary-protocol generator deleted.
- C++ component hygiene: components regrouped under per-group
parents, the API/core split investigated across all 17 split
components,
ores.eventingsplit into api/core, and the rfl complexity decomposition completed (16/16 tasks) — clearing the MSVC C1202 nested-struct recursion limit at the root of the Windows CI break. - Agile system hardening: per-concept process pages, sprint health
charts tangled from literate gnuplot, five System 2 health reviews,
and a self-policing
sprint auditthat ended the sprint with zero state-sync violations.
🛠️ Key Improvements
Tooling — compass
- Operational pillars:
compass db/services/client/sqlreplace the recreate/setup/run_sql/start/stop/status scripts; callers (CI, dashboard, recipes, manual) all repointed. compass bearingsshows the environment: preset, DB restore time with drift signalling in the house staleness UX, service and client state with start hints, and a top-commands cheat sheet.- PR lifecycle:
pr createderives traceability from the branch's task;pr mergerefuses on unresolved threads or red CI, closes the task and stamps the journal on success, and--forceadmin-merges past branch protection (required checks that never report on doc-only PRs). sprint audit(five checks) andsprint charts(four PNGs from one command) close the loop between the agile record and reality.
Codebase
- clang-format everywhere: 16 per-group format passes, CMake format targets, nightly enforcement workflow.
- Components regrouped:
projects/ores.<group>/owns api/core/ service/qt children, modeling, and CMake; codegen validated against the new layout. - rfl complexity: all nine rates instruments plus equity, FX, bond/
credit/commodity, complex, scripted/composite decomposed; shared
audit_recordandinstrument_identityextracted (now inores.dq.api). - API/core split: inventory across 17 components found one systemic
offender (
ores.dq.apilinkingores.database) — fixed; change- reason constants homed;ores.eventingsplit into api (domain, bus, registry) and core (postgres event source).
Product
- Commission: currency reached 6 of 8 tasks — codegen, SQL, CLI, and shell verified post-NATS; currency NATS message reference and manual chapter work in flight (carried with its branch).
- UI responsiveness: destructor
waitForFinished()fixes, spinners, pre-populated combos, dedicated I/O thread pool. - DB-driven badges with colour semantics (gray = inactive only; orange = missing definition) across list and detail dialogs.
- History dialogs: server-side diffs via the new
ores.diffcomponent,HistoryDialogBaseadopted, shell unified diff view (5 of 7 tasks; remainder carried). - PnL tracking improvements captured with the Lightyear knowledge doc (FX locking, timeframe-scoped PnL, FIFO/WAVG).
Documentation & agile
- Agile process restructured into per-concept pages (stories, tasks, planning, execution, closure, definition of done) with agile-domain context before the ORE-specific conventions.
- Sprint health charts documented as literate org tangling the gnuplot sources; runbooks established as the procedure layer above recipes and skills.
- User manual: chapter 3/4 redesign (Tufte-informed provenance and change-reason display), currency chapters, fresh screenshots, PDF pipeline fixes.
- Knowledge: financial identifiers, PostgreSQL architecture updates, cybernetics pages wired into readme org-roam links.
⚠️ Known Issues & Postponed
- Windows and macOS builds remain unverified: the rfl complexity story removed the MSVC C1202 root cause, but the platform builds have not been re-run and confirmed green. Sprint 20's mission is commissioning-focused; the verification must not silently slip.
- 30 stories carried to the product backlog inbox at close, marked
ABANDONED in the sprint record: the 13 untouched commission
siblings, currency's remaining two tasks (documentation in flight
on
feature/currency-write-docs, Qt verification blocked), the codegen stories (CI zero-diff, safety guardrails, unified temporal, Qt derivation, org-migration remainder, C++ refactor), history dialogs remainder, consolidate-scripts remainder, entity evaluation tooling, entity manual/shell docs, timestamp unification, symmetric onboarding flags, component doc debt, and trade-parse extraction. - No release tagged this sprint — sprint 19 lands mid-version.
📈 Sprint Charts
PRs and Commits per Day
Dual-axis bar chart. PRs (left axis) and commits (right axis) per day. A high commits-to-PR ratio may indicate scope creep.
Two distinct waves: a build-up peaking on 06-01 (35 PRs, ~205 commits) as the clang-format groups and codegen refactors landed, a mid-week dip on 06-03, then the sprint's biggest day on 06-05 — 48 PRs and ~310 commits — driven by the compass PR-lifecycle work and the paperwork syncs it enabled. Commits track PRs closely all sprint: small, frequent PRs rather than scope creep. The 06-06 tail-off is the close-down itself.
Daily Line Churn
Lines added (green) and deleted (red) per day. Building work produces mostly additions; refactoring produces a mix.
One day dominates: 06-05 touched ~217k lines, and deletions (~157k) far outweigh additions — the profile of the format passes, the component regroup fallout, and eleven operational scripts plus the legacy generator being deleted. 06-02 is also deletion-heavy (~35k). This is a refactoring sprint's signature: the codebase ended smaller and more uniform, not larger.
PR Cycle Time
Hours from PR open to merge, one bar per PR. Long bars indicate review bottlenecks.
Most sampled PRs merge in 4–8 hours. The outliers are early: #941
(~27h) and #947 (~23h) predate the compass PR loop; #1038 (~15h)
waited on a review round. From #1039 onward the bars flatten to a
uniform ~4–7h — the guarded pr merge visibly tightened the cycle.
Cumulative Stories Done
Line chart tracking stories marked DONE during the sprint. Steady upward slope is healthy; plateauing signals a stall.
A steady ~1.5 stories/day through 06-04 (13 done), then a jump to 23 on 06-05. The jump is not a delivery burst: it is health reviews 3 and 4 syncing the record — closing stories whose work had already merged. The honest reading of the slope is steady mid-size delivery with the paperwork catching up at the end; the audit now keeps that lag from accumulating again.
📊 Time Summary
- Total effort: not tracked
- PRs merged: 186 (since v0.0.18)
- Commits: ~1,213
- Sprint duration: 2026-05-29 → 2026-06-06 (9 days against a 7-day box)
Next sprint: commission the ores.refdata entities — the mission
sprint 19 tooled up for — plus codegen tidy-up, with the Windows and
macOS CI debt explicitly on the table.