- TypeScript 40.5%
- Rust 37.3%
- Python 15.2%
- CSS 2.9%
- JavaScript 2.4%
- Other 1.6%
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 |
||
|---|---|---|
| apps/desktop | ||
| docs | ||
| ref | ||
| scripts | ||
| services/net-library | ||
| .gitignore | ||
| loud-network.repo | ||
| RPM-GPG-KEY-loud-network | ||
Loud Network — authority doc set
Current state — 0.9.74 (Windows + Fedora, both shipping)
This section is a pointer, not a log.
docs/CONTINUATION.mdis authoritative on current state — its top session-closeout always wins over anything written here.
- Windows —
net.loud-dxb.ae/latest.jsonreturns0.9.74(mTLS gated); minisign-signed installer, in-app auto-update proven end to end since 0.2.0. - Fedora — GPG-signed
.rpmin 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.shpublishes Windows then callsscripts/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
- 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.