- TypeScript 40.8%
- Rust 37.6%
- Python 14.8%
- CSS 3.2%
- JavaScript 2.3%
- Other 1.2%
Records the 14-release direct-conversation session:
* Features: Devices grid (0.9.22), MAC Sheet export (0.9.23),
WiFi port type + WiFi Devices (0.9.24), 802.1X flag+detail
(0.9.26), MAC Sheet per-interface subsets + Media/Speed +
MAC emphasis (0.9.35).
* Fixes: own-band coverage (0.9.25), Management VLAN role
marker (0.9.27), PoE peer-subject (0.9.28/29), switch
diagram render polish (0.9.30), switch-diagram IP arc
(0.9.31–0.9.34 with only 0.9.34 landing the actual fix).
Also captures the switch-diagram-IP false-start lesson: four
consecutive client-only builds shipped on a diagnosis that said
"resolution is client-side". True — the resolver IS client-side —
but the failure lived at the client/server payload-join contract
(port_cells.label vs port_detail.port). None of the client
resolver fixes changed behaviour; only end-to-end tracing against
the operator's real project.sqlite revealed the real fault. ADR-
N057 (verify by EXECUTION) reinforced hard: on the FIRST failed
attempt, stop reasoning and trace real values through the real
render path.
Top priority forward: ADR-N093 phase 2 (VLAN-UUID everywhere).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
||
|---|---|---|
| apps/desktop | ||
| docs | ||
| ref | ||
| scripts | ||
| services/net-library | ||
| .gitignore | ||
Loud Network — authority doc set
Current state — 0.3.0 (Phase 3 complete)
Live installer at https://net.loud-dxb.ae/downloads/windows/Loud-Network-0.3.0-windows-x86_64-setup.exe
(mTLS gated). net.loud-dxb.ae/latest.json returns 0.3.0. Running on a real Windows
workstation; auto-update loop proven end to end.
Working today — devices with copy-on-add ports (ADR-N003), hierarchical zones, project presets with library import, Patch Matrix in two synchronised views (dropdown
- device × device grid) writing the same connection rows (ADR-N004), and live validation with 8 real rules + 2 advisory stubs.
Up next — Phase 4: real Network / VLAN + IP Schedule UI (the Phase-2 thin scaffolding for those two screens is the last placeholder in the app). Then Phase 5's schedules → PDF/CSV via the WebView2 print path (ADR-N001), which is the first client-facing deliverable.
Resume-here brief for next session: docs/CONTINUATION.md — read that first.
Doc tree
Drop this tree onto the dev box at /opt/loud-network (it mirrors the repo layout):
/opt/loud-network/
├─ docs/
│ ├─ CONTINUATION.md # resume-here brief — read first
│ ├─ PRODUCT_CONTEXT.md # why it exists, workflows, current state
│ ├─ ARCHITECTURE.md # stack, IPC spine, project format, render path, backend
│ ├─ DATA_MODEL.md # connection-is-the-hub domain model
│ ├─ IPC_CONTRACT.md # command surface, per phase + real vs thin screens
│ ├─ ROADMAP.md # phased build; phases 0–3 shipped, 4+ pending
│ ├─ DECISIONS.md # ADRs, inherited + new; product identifiers
│ ├─ RELEASE_PROCESS.md # publish flow, signing, version-sync, verify gate
│ └─ PHASE_0_KICKOFF.md # original kickoff (historical; phases 0–3 shipped)
└─ apps/desktop/src-tauri/migrations/
└─ 001_initial.sql # schema source of truth
Order of authority
001_initial.sql (schema) > DATA_MODEL.md (intent) for schema questions. DECISIONS.md
wins on locked choices. If any doc and the code conflict, raise it — don't silently drift.
To start
- Deploy a Debian 13 dev box, hostname
loud-network; create the Forgejo reporepo.calhta.com/calum/loud-network.git; clone to/opt/loud-network; copy this tree in; commit + push. - Confirm the product identifiers in
DECISIONS.md(name / paths /.lnetwork/ cert OU /net.loud-dxb.ae) — change now if at all, they thread through everything. - Paste
docs/PHASE_0_KICKOFF.mdinto Claude Code in/opt/loud-network. It generates the SSH key, prints the public key, and stops. Distribute the key toloud-proxy(SSH alias for the reverse-proxy-only hostnginx-proxyper ADR-N069),loud-win,loud-mac,ssh-ca, then let it proceed.
Inherited from Loud Patch: Tauri 2 + React 19 + rusqlite skeleton, the shared two-tier
PKI, the NPM/mTLS proxy pattern, the minisign updater, and the release flow. net.loud-dxb.ae
mirrors patch.loud-dxb.ae — no new infra pattern is invented.