- Rust 55%
- TypeScript 36.3%
- CSS 4.2%
- Shell 2.8%
- Python 1.5%
Current-state section rewritten to reflect 0.8.2 (live smoke,
canonical two-screen separation restored, six-part promise green,
chain-integrity 12.176m preserved).
NEXT SESSION rewritten to be a cold-start brief:
- Calum installs 0.8.2 (direct .exe if self-update won't cross the
key rotation) and drives the acquisition test on a NEW blank
project.
- Two-screen shape check against CANONICAL_SIGNAL_CHAIN.md (Patch =
TX-left/RX-top Dante Controller; Matrix = Inputs-top/Outputs-left
DiGiCo with delay/gain toggle defaulting to Delay).
- Real-venue entry — the two headlines: does patch work end-to-end,
do delays match commissioned reality (DJ-vs-stage delta).
- If deviations show up: fix the law first, then the code against the
corrected law. Recovery pattern from Turn 68 (correct-canonical-
before-flip) worked well.
Standing non-blockers carried forward:
- Signing: rotated key live (pubkey 791398F5A8190457), password at
/root/.secrets/lpa-updater.password. Calum's 3 machines still need
manual reinstall to cross the pubkey change. Future vault:
self-hosted Vaultwarden on trusted-services VLAN via WireGuard.
- loud-win other-project coordination: LOUD Patch process-scoped;
other projects' env-var hygiene is their owners' problem.
- loud-proxy: reboot test / snapshot drop / df monitor / off-box
catalogue backup — pending, non-blocking.
- Equipment library admin cleanup tool — deferred.
Historical park (2026-07-10 at
|
||
|---|---|---|
| apps/desktop | ||
| docs | ||
| scripts | ||
| services/equipment-library | ||
| .gitignore | ||
| README.md | ||
LOUD Patch Authority
A local-first desktop app that is the project source of truth for Dante / Q-SYS audio routing and spatial delay design. It sits above Q-SYS Designer, Dante Controller and CAD — documenting devices, signals, Dante channels, speakers, sources, routes and source-relative speaker delays, and exporting clean schedules for programming and commissioning.
Product: Patch Authority · Brand: LOUD ·
ae.loud-dxb.patch-authority
Status
Phase 2 MVP complete on v0.2.2, IPC contract v0.6. Floorplan import /
calibrate / measure / place / link / primary-toggle / persistence + three
activated validation rules are all human-eyeballed and accepted; only
GUI/UX polish remains on the floorplan. Next: auto-updater (ADR-0003)
before Phase 3 (Delay MVP). See docs/CONTINUATION.md
for live state.
Dev quickstart
cd apps/desktop
npm install
npm run tauri dev
See apps/desktop/README.md for the full check
matrix (cargo check, cargo test, tsc, ESLint) and the project layout.
Documentation
| Doc | What it's for |
|---|---|
docs/PRODUCT_CONTEXT.md |
Why it exists, workflows, principles |
docs/ARCHITECTURE.md |
System structure, stack, modules, validation |
docs/DATA_MODEL.md |
Schema intent and the link model |
apps/desktop/src-tauri/migrations/001_initial.sql |
Schema source of truth |
docs/IPC_CONTRACT.md |
Frozen-per-phase Rust↔frontend command surface |
docs/ROADMAP.md |
Phases, acceptance criteria, agent strategy |
docs/DECISIONS.md |
ADRs (the why behind locked choices) |
docs/RELEASE_PROCESS.md |
Build hosts, signing, updater, versioning |
docs/IMPLEMENTATION_BOOTSTRAP.md |
Setup + scaffold steps |
docs/CONTINUATION.md |
Live handoff / PM memory |
Stack
Tauri 2 · React 19 + TypeScript + Vite · Rust core · SQLite via rusqlite.
First milestone
Create project → add a source → add speakers → import a floorplan → place points → set scale → calculate source-to-speaker delays → view the delay table → export CSV. Staged across Phases 0–3 in the roadmap.
Guiding principle
Build the clean local data + spatial core first. Don't let Q-SYS, Dante/DDM or CAD complexity block the first useful version. Everything after that is automation.