Story: Engineering hygiene
Table of Contents
This page documents a story in Sprint 15. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Three unrelated hygiene strands: sccache cache-bloat CI fix; tenant_id fix in system-settings tests; dev-environment scripts (ORES_PRESET in .env + start-client.sh).
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 15 |
| Now | Completed 2026-03-25. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2026-03-25 |
Acceptance
- CI cache size back under the 10 GB repo limit; cold rebuilds gone.
- system-settings tests pass with proper tenant_id.
- ORES_PRESET centralised in .env; start-client.sh launches Qt with custom colors + names.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Fix sccache cache bloat causing slow/cold builds | DONE | 2026-05-20 | 2026-03-24 | GitHub Actions cache had hit 11.5 GB (over the 10 GB repo limit), causing LRU eviction of sccache entries and forcing cold full rebuilds (>2h CI). Root causes: per-PR sccache saves (12 entries × ~1 GB), sccache limit too small (1000M caused within-build eviction for 1,362 files), no cross-PR cache sharing meant Qt + sccache duplicated per PR. |
| Fix missing tenant_id in system settings tests | DONE | 2026-05-20 | 2026-03-24 | make_system_setting() helper in repository_system_settings_repository_tests.cpp now requires + assigns tenant_id; all 7 call sites updated; resolves Postgres invalid input syntax for type uuid: "" rejections. |
| Add ORES_PRESET to .env + start-client.sh | DONE | 2026-05-20 | 2026-03-25 | init-environment.sh requires –preset and stores ORES_PRESET in .env (single source of truth); start-services.sh / stop-services.sh / status-services.sh source ORES_PRESET; new start-client.sh launches Qt client with preset + custom instance colors (named or hex) + display names; ores-prodigy.el registers services from ORES_PRESET in .env. |
Decisions
- ORES_PRESET as single source of truth
- removes hardcoded defaults across multiple scripts.
- Multi-coloured Qt instances
- tiny dev-quality-of-life win for people running two clients side-by-side.
Out of scope
- Migrating off GitHub Actions cache.
See also
None.