-
v0.3.28 Stable
released this
2026-07-16 21:14:41 +01:00 | 209 commits to main since this release0.3.28 test build (ADR-N038): seeded system device_types (dt-switch, dt-access-point, dt-router-firewall) with backend-enforced immutability; retire devices.category (migration 010); PoE control gated to copper media (100M/1GbE, 10GbE) with a 3-state select; speed is DERIVED from media type at every port-add path (SFP=1G, SFP+=10G, SFP28=25G, QSFP=40G, QSFP28=100G, 10GbE=10G; 100M/1GbE toggles between 100M and 1G, default 1G). Dead validation rules (poe_budget_per_switch, ap_on_non_poe_port) re-live by keying off the seeded system ids. Backend deployed first, wire-verified. Rust 56/56, pytest 39/39, TS+Vite clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.28-windows-x86_64-setup.exe
0 downloads ·
2026-07-16 21:14:44 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.27 Stable
released this
2026-07-16 19:31:57 +01:00 | 210 commits to main since this release0.3.27 test build (ADR-N037): display fixes + labelling batch. Unit-collision message names the device (no UUIDs). Offline sync errors read 'No internet connection — working offline...' No transport text, no expander. Port auto-numbering per (device, type) at creation: two devices of same brand+model each start at 001. DMX signal_types renamed to 'DMX 3P/5P (M/F)' (same ids, no ghosts). short_name column additive on media_types + signal_types with six approved overrides (DP, TBLK, IEC, DC, BT, OM4). Backend deployed first, wire-verified. Rust 56/56, pytest 34/34, TS+Vite clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.27-windows-x86_64-setup.exe
0 downloads ·
2026-07-16 19:31:59 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.26 Stable
released this
2026-07-16 18:17:06 +01:00 | 211 commits to main since this release0.3.26 test build (ADR-N036): provisional-visibility invariant. Hard-blocker fix on 0.3.25 — type-to-create a brand under a selected device type no longer makes the brand disappear from the picker. withProtected() unions each filtered picker's items with the currently-selected value + any id type-to-created during the form session. Applied to brand + model + device_type in create + edit. FE-only. No backend / schema / migration changes. Rust 53/53 unchanged; TS + Vite clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.26-windows-x86_64-setup.exe
0 downloads ·
2026-07-16 18:17:09 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.25 Stable
released this
2026-07-16 17:09:27 +01:00 | 212 commits to main since this release0.3.25 test build (ADR-N035): a MODEL belongs to a BRAND and has a DEVICE TYPE. Backend + client schema deployed together — models gain brand_id + device_type_id; uniqueness moves to (brand_id, key). Devices form cascades: type unfiltered; brand filters by type; model filters by brand+type; model pick auto-fills brand+type; model +Add requires brand+type first. Save-time re-upsert on brand change creates model under new brand (old row stays). Rust 53/53, pytest 29/29, TS+Vite clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.25-windows-x86_64-setup.exe
0 downloads ·
2026-07-16 17:09:29 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.24 Stable
released this
2026-07-16 14:55:08 +01:00 | 213 commits to main since this release0.3.24 test build (ADR-N034): library.sqlite becomes a real mirror of the backend catalogue. sync's do_upsert prunes any local vocab row absent from the fetched catalogue and not marked unsynced=1. Fixes the operator finding on 0.3.23 (backend hard-deleted brands/models/device_types but fresh-project pickers still listed them). Prune only reachable on ProviderOutcome::Ok(cat); Unavailable never prunes. Order: pull -> upsert+prune -> reconcile -> ghosts. Rust 49/49, TS+Vite clean.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.24-windows-x86_64-setup.exe
0 downloads ·
2026-07-16 14:55:11 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.23 Stable
released this
2026-07-16 00:16:13 +01:00 | 215 commits to main since this release0.3.23 test build (ADR-N033): case-sensitive '+ Add' gate, resurrect clears local deleted_at, sync pull-path conform + per-row failure isolation + toast dedup + sync-on-nav/create/delete. Backend cleanup (data-only): hard-deleted 15+10+3 orphan brand/model/device_type rows. Rust 44/44, pytest 22/22.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.23-windows-x86_64-setup.exe
0 downloads ·
2026-07-16 00:16:15 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.22 Stable
released this
2026-07-15 20:06:51 +01:00 | 216 commits to main since this release0.3.22 test build (ADR-N032): simplification — create-rule + reconcile, unified ghost path, silent-IPC-error toasts. Deferred-push apparatus deleted (flushOnNavigate + bridge.rs + delete IPCs). Backend + client shipped together. Backend deploys first, wire-verified. Rust 40/40, pytest 22/22.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.22-windows-x86_64-setup.exe
1 download ·
2026-07-15 20:06:54 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.21 Stable
released this
2026-07-15 16:54:01 +01:00 | 218 commits to main since this release0.3.21 test build (ADR-N011 hands-on-validation exception): library vocab soft-delete + labelled ghosts (ADR-N031). Backend + client shipped together (backend deployed first, wire-verified: DELETE 204, row still in /catalogue with deleted_at, second DELETE idempotent). Ghost text now shows actual label, not raw UUID. LIBRARY_SCHEMA_VERSION 4->5 via migration 005. Verified by execution (phase3_21_soft_delete.rs). Rust 37/37, pytest 17/17.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.21-windows-x86_64-setup.exe
0 downloads ·
2026-07-15 16:55:28 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.20 Stable
released this
2026-07-15 15:17:50 +01:00 | 219 commits to main since this release0.3.20 test build (ADR-N011 hands-on-validation exception): recompute ghosts on device/port mutations. Fixes persistent brand ghost after edit on 0.3.19. Additive; library_rev nullability + ADR-N029 id authority + sync path all unchanged. Verified by execution via new phase3_20 integration test.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.20-windows-x86_64-setup.exe
0 downloads ·
2026-07-15 15:17:52 +01:00 · 5 MiB
-
Source code (ZIP)
-
v0.3.19 Stable
released this
2026-07-15 14:05:30 +01:00 | 220 commits to main since this release0.3.19 test build (ADR-N011 hands-on-validation exception): unblocks type-to-create by relaxing library_rev NOT NULL on all five library.sqlite vocab tables via new migration 004. Additive schema-only; other 0.3.17/0.3.18 code paths unchanged. Verified pre/post migration by execution.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Loud-Network-0.3.19-windows-x86_64-setup.exe
0 downloads ·
2026-07-15 14:05:33 +01:00 · 5 MiB
-
Source code (ZIP)