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.

Emacs 29.1 (Org mode 9.6.6)