Story: Infrastructure features
This page documents a story in Sprint 06. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Three infrastructure features that came along: an in-process event bus (basis for upcoming Postgres-listener notifications), system tray support for long-running sessions, and a past-timepoint faker for tests.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 06 |
| Now | Completed 2025-12-15. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2025-12-15 |
Acceptance
- Event bus exposes publish + subscribe; at least one real consumer.
- System tray icon with minimise-to-tray on supported platforms.
- Faker generator produces realistic past timepoints used by bitemporal tests.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Implement the event bus | DONE | 2025-12-15 | 2025-12-15 | Add an in-process event bus so components can publish/subscribe without coupling — basis for the upcoming Postgres-listener-driven notifications. |
| Add system tray support | DONE | 2025-12-15 | 2025-12-15 | Show ORE Studio in the system tray with minimise-to-tray behaviour for long-running sessions. |
| Create faker for past timepoint | DONE | 2025-12-15 | 2025-12-15 | Add a faker generator for past timepoints so tests can produce realistic bitemporal history without hand-rolling dates. |
Decisions
- Event bus first, listeners later
- the Postgres LISTEN/NOTIFY story needs an in-process bus to fan out to; we build that bus here.
See also
- ores.eventing — the messaging substrate the event bus extends.
- ores.qt — host of the system-tray code.