No description
  • TypeScript 40.8%
  • Rust 37.6%
  • Python 14.8%
  • CSS 3.2%
  • JavaScript 2.3%
  • Other 1.2%
Find a file
calum b678f46aa9 docs: session closeout 2026-08-16 — 0.9.22 → 0.9.35 arc (PM-AI removed, direct-to-agent)
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>
2026-08-16 02:58:55 +04:00
apps/desktop feat(0.9.35): MAC Collection Sheet — per-interface subsets, hide-when-assigned, Media/Speed column, MAC emphasis (ADR-N104) 2026-08-15 17:01:30 +04:00
docs docs: session closeout 2026-08-16 — 0.9.22 → 0.9.35 arc (PM-AI removed, direct-to-agent) 2026-08-16 02:58:55 +04:00
ref fix(devices): rebuild as master/detail; drop kebab; new app icon 2026-07-12 18:30:46 +04:00
scripts tools(publish): hard-fail when tree is uncommitted or unpushed 2026-08-02 07:13:14 +04:00
services/net-library feat(0.9.35): MAC Collection Sheet — per-interface subsets, hide-when-assigned, Media/Speed column, MAC emphasis (ADR-N104) 2026-08-15 17:01:30 +04:00
.gitignore feat(0.8.0): ADR-N071 server-side deliverable GENERATION + Switch Diagram wholesale visual rebuild 2026-07-23 22:03:07 +04:00

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 03 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 03 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

  1. Deploy a Debian 13 dev box, hostname loud-network; create the Forgejo repo repo.calhta.com/calum/loud-network.git; clone to /opt/loud-network; copy this tree in; commit + push.
  2. 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.
  3. Paste docs/PHASE_0_KICKOFF.md into Claude Code in /opt/loud-network. It generates the SSH key, prints the public key, and stops. Distribute the key to loud-proxy (SSH alias for the reverse-proxy-only host nginx-proxy per 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.