No description
  • TypeScript 40.5%
  • Rust 37.3%
  • Python 15.2%
  • CSS 2.9%
  • JavaScript 2.4%
  • Other 1.6%
Find a file
calum ff1ce3727b docs(0.9.74): ADR-N122 shipped both platforms; record the publish-preflight catch
0.9.74 published and PROVEN REACHABLE, not merely uploaded: latest.json
over mTLS returns 0.9.74 with a populated signature, installer HEAD 200
(5,764,225 bytes), and 0.9.74-1 is the newest entry in the RPM
registry's own primary.xml.gz — the metadata dnf actually reads.

Backend redeployed and restarted on 10.76.50.160; image-matches-tree
gate passed, smoke-renders 16/16, firewall lock present, and the
ADR-N122 behaviour re-checked against the running container.

Worth remembering: the publish preflight REFUSED the first invocation
because HEAD was one commit ahead of origin/main. loud-win builds only
what is on origin/main, so an unpushed dev-box tree would have shipped
0.9.73's code labelled 0.9.74. Push before invoking publish.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016P4XW3Bzv355eFoHctxoZJ
2026-09-05 12:55:49 +04:00
apps/desktop feat(ADR-N122): reissue the MAC Collection Sheet as an outstanding-only chase-list (0.9.74) 2026-09-05 12:44:41 +04:00
docs docs(0.9.74): ADR-N122 shipped both platforms; record the publish-preflight catch 2026-09-05 12:55:49 +04:00
ref fix(devices): rebuild as master/detail; drop kebab; new app icon 2026-07-12 18:30:46 +04:00
scripts feat(release): ADR-N115 — signed rpm + Forgejo registry; one command ships both platforms 2026-08-26 06:22:08 +04:00
services/net-library feat(ADR-N122): reissue the MAC Collection Sheet as an outstanding-only chase-list (0.9.74) 2026-09-05 12:44:41 +04:00
.gitignore chore: gitignore staging/, untrack DXFs already baked into assets dir 2026-08-24 16:39:16 +04:00
loud-network.repo feat(packaging): GPG-sign the Fedora rpm; ship the public key + repo file 2026-08-26 06:16:07 +04:00
RPM-GPG-KEY-loud-network feat(packaging): GPG-sign the Fedora rpm; ship the public key + repo file 2026-08-26 06:16:07 +04:00

Loud Network — authority doc set

Current state — 0.9.74 (Windows + Fedora, both shipping)

This section is a pointer, not a log. docs/CONTINUATION.md is authoritative on current state — its top session-closeout always wins over anything written here.

  • Windows — net.loud-dxb.ae/latest.json returns 0.9.74 (mTLS gated); minisign-signed installer, in-app auto-update proven end to end since 0.2.0.
  • Fedora — GPG-signed .rpm in the Forgejo RPM registry; sudo dnf update (ADR-N115). From 0.9.71 the app tells you when a newer version is published and gives you the command (ADR-N118) — it does not self-install on Linux. Before 0.9.71 a Fedora client could not report that it had fallen behind at all, which is how one silently drifted far enough to be unable to open a migrated project. One-time setup: sudo dnf config-manager addrepo --from-repofile=https://repo.calhta.com/calum/loud-network/raw/branch/main/loud-network.repo
  • Both platforms ship from one command and from the same commit (ADR-N113) — scripts/publish-release.sh publishes Windows then calls scripts/publish-rpm.sh.

Deliverables shipping today

Ten server-rendered documents, all through the LOCKED shared frame (ADR-N073): Switch Diagram (per switch), Rack Drawing (per rack), Patch Panel Schedule (per panel — faceplate + VLAN legend + patched-port list, ADR-N120), VLAN / Subnet Schedule (PDF + xlsx), MAC Collection Sheet (xlsx per subset, with an outstanding-only reissue mode — ADR-N122), Device List (by_type / by_vlan / by_wifi), IP Tables, System Diagram. smoke-renders.sh drives every one of the nine /render/* endpoints on the real host after any backend deploy (ADR-N116 + N119).

Historical — the 0.9.38 milestone

Working today — everything Phase 3 shipped (devices with copy-on-add ports, hierarchical zones, project presets, Patch Matrix, live validation), PLUS six end-to-end deliverables (IP Tables, VLAN Schedule, Switch Diagram, Device List, Cable Schedule, MAC Collection Sheet), a complete Rack Drawing feature with a DXF-based render pipeline, and a per-project catalogue synced from the backend (21 brands / 35 models / 18 device_types / 9 media_types / 30 signal_types + rack hardware library).

Recently shipped (0.9.35 → 0.9.38 arc) — DXF upload ceiling raised 8 → 64 MB end-to-end (ADR-N105); rack editor drop-lands-at-correct-slot fix (ADR-N105); rack UX rebuild — grab-offset drag, two-column tower layout, fit-to-viewport, clean labels (ADR-N107); DXF vocabulary widened to include SPLINE / CIRCLE / ARC / ELLIPSE (ADR-N106) and WIPEOUT hidden-line occlusion (ADR-N108); upload progress toast; net-library container hardened via systemd for hypervisor-bounce recovery (ADR-N107).

Resume-here brief for next session: docs/CONTINUATION.md — read that first. The top session-closeout carries every open item.


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)
│  │
│  │  # build briefs — work described in full, NOT yet built
│  ├─ PATCH_DRAG_MOVE.md          # ADR-N121 drag-to-move a patch — SHIPPED 0.9.73
│  ├─ DELIVERABLES_PAGE_REBUILD.md # audited; still needs its ADR-N026 walkthrough
│  └─ PATCH_REDESIGN.md           # patch view look/flow — design capture, NOT approved
└─ apps/desktop/src-tauri/migrations/
   └─ 001_initial.sql      # schema source of truth

A build brief carries the mechanics, the evidence and the test plan so the build does not start by re-deriving them. Approved means the ADR-N026 walkthrough happened and an implementation prompt may be written; audited / design capture mean it has not; shipped (PATCH_DRAG_MOVE) means it was built, and the brief is kept as the contract that was built to — with the as-built deviations recorded in its ADR, not edited into the brief.

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.