Files
state-hub/infra
tegwick f2e042a278 Finish CUST-WP-0011 and implement STATE-WP-0061 suggestion backlog.
Add persisted Suggestion entities with WSJF ranking, relevance bumps,
REST/MCP write surfaces, /suggestions dashboard page, and daily triage
digest integration. Document the cluster operating model, archive the
completed migration workplan, and seed WARDEN-WP-0012 routing scenarios.
2026-07-06 10:52:49 +02:00
..

State Hub Infrastructure

Docker (PostgreSQL)

# Start postgres (required for API)
make db

# Start postgres + pgadmin
make db-tools

The compose file is infra/docker-compose.yml. Copy .env.example to .env and set POSTGRES_PASSWORD before starting.


Periodic Repo Sync — activity-core (Railiance01)

The State Hub consistency sync runs every 15 minutes (*/15 * * * * UTC) on activity-core (Railiance01). The cluster schedule triggers POST /consistency/sweep/remote-all on the workstation State Hub via the actcore-state-hub-bridge tunnel.

Operator runbook: docs/consistency-sweep-runbook.md.

Prerequisites for cluster-triggered sweeps:

  • Primary State Hub API reachable at http://127.0.0.1:8000 (cluster via state-hub-primary tunnel, or local make api during rollback)
  • state-hub-railiance01 ops-bridge tunnel connected for Railiance01 activity-core triggers
  • Workstation awake when sweep writebacks target local repo paths

See docs/cluster-operating-model.md for the post-migration access model.

Per-repo git post-commit hooks remain the immediate consistency path after each commit. The 15-minute sweep is belt-and-suspenders across all registered repos.

The all-repo remote sweep has built-in load guards:

  • A nonblocking process lock at /tmp/custodian-consistency-remote-all.lock; overlapping triggers exit cleanly with lock_skipped: true.
  • A wall-clock budget, defaulting to 300 seconds. Remaining repos are skipped once the budget is exhausted.

Retired local timer

The legacy custodian-sync.{service,timer} systemd units were disabled 2026-06-21 (STATE-WP-0064). Archived templates live in infra/systemd/archived/. Do not re-enable unless debugging a cluster scheduling outage.


Post-commit hooks

Each registered repo can have a custodian sync hook installed that triggers fix-consistency automatically after every commit:

# Install into one repo
make install-hooks REPO=marki-docx

# Install into all active registered repos
make install-hooks-all

# Remove from one repo
make remove-hooks REPO=marki-docx

The hook is idempotent (guarded by # custodian-sync-hook marker) and runs in the background so it does not block the commit.