Sprint 13

Table of Contents

This page documents a sprint (Sprint 13) of ORE Studio v0. It captures the sprint's mission, current status, and the stories that compose it. For the surrounding context — version goals, sprint order, and product identity — see Version 0.

Mission

Add trade and scheduling support. Delivered the foundations: multi-party login + account-party management closes the future-story note from sprint 12; the scheduling subsystem stands up ores.scheduler over pg_cron with a Quartz.NET-style fluent API; the portfolio explorer combines books + portfolios + trades into a navigable tree; batch save/delete go atomic across 23 entities; FSM moves into DQ where it belongs; party-level RLS extends to books / portfolios / trades.

Status

Field Value
State DONE
Parent version Version 0
Previous Sprint 12
Start 2026-02-20
End (expected) 2026-02-28
Now Sprint closed 2026-02-28. Two items carry forward: the trade-import mapping dialog (6h work-in-progress) and the party-level refdata restrictions (framework only).
Waiting on Nothing.
Next Sprint 14
Release Notes Release notes
Last touched 2026-02-28

Achievements

  • Scheduling subsystem landed: protocol, library, and queue.
  • Multi-party login picker and account-party management live.
  • FSM consolidated into DQ; portfolio explorer combining tree and trade table.
  • Tabbed dialog pattern adopted across all detail dialogs.
  • RLS extended to books, portfolios, and trades.
  • Batch operations (atomic save and delete) and session telemetry plotting established.

Stories

For the definitions of the themes see Themes.

Infrastructure

Story State Start End Description
Provenance and actor DONE   2026-02-21 performed_by / modified_by stamping tightened; current_actor GUC.
Session telemetry plotting DONE   2026-02-22 RTT + bytes hypertable + QChartView.
Party isolation for books / portfolios / trades DONE   2026-02-24 RLS extended.

Product

Story State Start End Description
FSM consolidation into DQ DONE   2026-02-20 moves FSM under DQ. Continues from sprint 12 fsm_and_trade_support.
Detail dialogs modernisation DONE   2026-02-25 tabbed dialogs + toolbar removal.
Account-party management and login DONE   2026-02-23 multi-party login picker. Continues from sprint 12 party_level_rls_isolation.
Refdata taxonomy work DONE   2026-02-24 rounding type, currency taxonomy split, asset-class naming.
Business centre polish DONE   2026-02-22 city_name + flag fixes.
Connection browser environments DONE   2026-02-24 environment + connection split.
Portfolio explorer DONE   2026-02-25 combined tree + trade table.
Trade import mapping analysis DONE   2026-02-25 design pass.
Trade import mapping dialog BACKLOG     POSTPONED.
Scheduling subsystem DONE   2026-02-27 protocol + lib + queue.
Batch operations DONE   2026-02-28 atomic save + delete.
Party-level refdata restrictions BACKLOG     BACKLOG framework only.

Agile

Story State Start End Description
Sprint 13 housekeeping DONE   2026-02-24 backlog + two-step release notes.

Charts

Charts generated via sprint_charts cmake target.

PRs & 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.

prs_commits.png

Daily Line Churn

Lines added (green) and deleted (red) per day. Building work produces mostly additions; refactoring produces a mix. Days with no churn may indicate blockers.

line_churn.png

PR Cycle Time

Hours from PR open to merge, one bar per PR. Long bars indicate review bottlenecks. Generated only when PR data is available.

pr_cycle.png

Cumulative Stories Done

Line chart tracking stories marked DONE during the sprint. Steady upward slope is healthy; plateauing signals a stall.

stories_done.png

Retrospective

What went well

  • Account-party + multi-party login closes the largest open thread from the sprint-12 party-RLS landing.
  • Portfolio explorer pulls together books, portfolios, and trades into one navigable view scoped by session party — the first time these surfaces felt cohesive.
  • Scheduling subsystem landed end-to-end inside the sprint: lib, protocol, and queue.
  • Batch save/delete across 23 entities was a big payback on the protocol consolidation discipline.
  • The two-step release-notes process (summarise → write) is now process; needed for any future LLM-aided release notes.

What hurt

  • 16 stories / 22 tasks is right at the top of comfortable; trade- import dialog (6h of work) and party-level refdata restrictions (framework only) carry forward.
  • Three breaking protocol bumps in one sprint (38, 41, 43, 45, 46 actually five) — wire-format churn was high; each was justified individually but the cumulative cost on clients is real.
  • Currency-taxonomy rename pass happened immediately after the taxonomy split — would have been cleaner to ship together.

What changed

  • ores.fsm is gone; FSM lives under DQ as ores.dq.fsm.*.
  • Login is multi-party-aware; accounts can carry multiple party assignments.
  • Trade visibility is party-scoped (alongside books and portfolios).
  • Currency carries asset_class + market_tier instead of free-text currency_type.
  • ores.scheduler wraps pg_cron for scheduled jobs.
  • Save + delete are atomic at the batch level.
  • environment and connection are separate concepts in the connection browser.
  • Provenance no longer has a current_user escape hatch.

Emacs 29.1 (Org mode 9.6.6)