Commit Graph
616 Commits
Author SHA1 Message Date
Hermes a443f030c0 P7 integration: mount network routers (people/access/invites/lifecycle/groups/resources/wizard) with shared stores + lazy lifecycle proxy 2026-10-03 21:52:14 -07:00
Hermes ae78e2e318 merge dc/DC-152 into p7-wave1 2026-10-03 21:49:08 -07:00
Hermes 178a2fbb9f merge dc/DC-147 into p7-wave1 2026-10-03 21:48:27 -07:00
Hermes 38af7ba224 DC-152: Private Network setup wizard (mode/domain/connect/dns/ca/admin steps) + status API + tests 2026-10-03 21:47:34 -07:00
Hermes c12bff597b merge dc/DC-146 into p7-wave1 2026-10-03 21:47:32 -07:00
Hermes d224a24566 DC-147: named root CA with critical name constraints, leaf compliance assertions, install-page hardening, encrypted backup + tests 2026-10-03 21:43:11 -07:00
Hermes 9215037553 DC-146: Technitium zone/record sync (idempotent upserts) + split-DNS gate + setup check + tests 2026-10-03 21:39:33 -07:00
Hermes de6a2fa4ae merge dc/DC-144 into p7-wave1 2026-10-03 21:38:34 -07:00
Hermes 3291f80d0c merge dc/DC-151 into p7-wave1 2026-10-03 21:37:39 -07:00
Hermes 695794987b DC-144: DashCaddy-side groups + resources model/routes with cascade delete + tests 2026-10-03 21:37:13 -07:00
Hermes 24ec88a30d DC-151: WG nftables matrix compiler + transactional apply/rollback + tests 2026-10-03 21:35:15 -07:00
Hermes f7c5ff1d0b merge dc/DC-142 into p7-wave1 2026-10-03 21:34:22 -07:00
Hermes 151b42e0ea merge dc/DC-149 into p7-wave1 2026-10-03 21:33:37 -07:00
Hermes b7d9e2b983 merge dc/DC-143 into p7-wave1 2026-10-03 21:32:45 -07:00
Hermes 88d34c6d7e DC-142: link-first invites routes via network provider + tests 2026-10-03 21:31:57 -07:00
Hermes fcfe5dff1b DC-149: WireGuard hub provider (peer store, pool allocator, hub lifecycle) + tests 2026-10-03 21:31:09 -07:00
Hermes 4e4306b00f DC-143: block/unblock/remove person + revoke device orchestration + tests 2026-10-03 21:29:41 -07:00
Hermes 97de94d496 merge dc/DC-148 into p7-wave1 2026-10-03 21:28:29 -07:00
Hermes 486d0e8d11 DC-148: Tailscale ACL compiler + lockout guard + preview/push/rollback + drift detection + tests 2026-10-03 21:26:29 -07:00
Hermes a8183459e7 merge spec rev3 into p7-wave1 2026-10-03 21:25:35 -07:00
Hermes 5f47e12f18 P7 spec rev3: X25519-only browser keygen (no ECDSA fallback), unblock row + honest semantics everywhere, three-zone WG firewall model 2026-10-03 21:25:30 -07:00
Hermes 6e25001738 P7 spec rev3: X25519-only browser keygen (no ECDSA fallback), unblock row + honest semantics everywhere, three-zone WG firewall model 2026-10-03 21:25:17 -07:00
Hermes a78d0ef857 Merge branch 'dc/DC-145' into dc/DC-142 2026-10-03 21:23:43 -07:00
Hermes b2c70a0323 Merge branch 'dc/DC-141' into dc/DC-142 2026-10-03 21:23:42 -07:00
Hermes 806d720af6 Merge branch 'dc/DC-140' into dc/DC-142 2026-10-03 21:23:41 -07:00
Hermes c09fc7b1ef Merge branch 'dc/DC-145' into dc/DC-143 2026-10-03 21:23:14 -07:00
Hermes 5d786afcce Merge branch 'dc/DC-141' into dc/DC-143 2026-10-03 21:23:14 -07:00
Hermes 2452bebfc9 Merge branch 'dc/DC-140' into dc/DC-143 2026-10-03 21:23:14 -07:00
Hermes 26f4aa8ad0 merge dc/DC-145 into p7-wave1 2026-10-03 21:20:41 -07:00
Hermes d3c1dfd996 merge dc/DC-141 into p7-wave1 2026-10-03 21:20:40 -07:00
Hermes 45a2b6b07c merge dc/DC-140 into p7-wave1 2026-10-03 21:20:40 -07:00
Hermes b7df8f5fe0 Merge branch 'dc/DC-140' into dc/DC-148 2026-10-03 21:20:01 -07:00
Hermes 5e03f120b4 Merge branch 'dc/DC-141' into dc/DC-148 2026-10-03 21:20:00 -07:00
Hermes 7ef3914730 DC-140: network provider abstraction (src/network/) + tailscale provider + registry + tests 2026-10-03 21:16:20 -07:00
Hermes 2e6d535242 P7 spec rev2: honest unblock semantics, WG addressing/keygen model (browser-side keygen, CIDR AllowedIPs), ticket-set fixes 2026-10-03 21:14:30 -07:00
Hermes 4b560b9c40 DC-141: people store (atomic JSON) + /network/people routes + last-admin guard + tests 2026-10-03 21:14:20 -07:00
Hermes 09152dfde2 DC-145: access map store (grants, effective access, change events) + /network/access routes + tests 2026-10-03 21:12:35 -07:00
Hermes 420fa2ba2a P7 Private Network lane: product spec (Tailscale v1 + WireGuard self-hosted) + backlog tickets DC-140..DC-152 2026-10-03 21:06:44 -07:00
Hermes 7557b49b5b [grade=B urn:ump:zluxbji5tepzdqybrctqfyjdvbfin2o66atw6rwykg6vdwkzhfsa] backlog v3: P6 Shipdeck era (DC-109-119) cross-platform + barrier-removal lane
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
- DC-109-112: native runtime, installer remote mode, self-distribution,
  updater v2 (Shipdeck engine; v0 DoD-verified)
- DC-113-115: first-run doctor, auth-gate helper, update nudge
- DC-116-119: Podman runtime, service-control abstraction, Mac signing
  (electron-builder, 5 acceptance gates), 3-OS CI matrix
- DC-P6-EVIDENCE.md: verbatim live-state evidence (E1-E6) backing the claims
- DC-102 status corrected (mismatched DiskSpaceMonitor annotation)
2026-09-14 05:22:16 -07:00
DashCaddy Polish Loop 65a447e27e DC-130 rev3: log.error on unexpected bridge status in /status + test asserting the log call (13 tests green)
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
2026-09-14 04:19:55 -07:00
DashCaddy Polish Loop 121caef488 DC-130 rev2: fail-fast bridge bindings (host), /status gateway-error mapping (401/403/unreachable -> 502, probe-failure stays ok:false) + 3 new tests (13 total)
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
2026-09-14 04:11:30 -07:00
DashCaddy Polish Loop 0ab1dfe6e5 DC-130: start.sh passes SHIPDECK_BRIDGE_URL/TOKEN_FILE to the container (deploys panel bridge wiring)
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
2026-09-14 03:49:35 -07:00
DashCaddy Polish Loop c90851f25f DC-130: deploys panel frontend — modal with services/deploy/journal tabs, rollback + status actions (bundle + cache tag rebuilt) 2026-09-14 03:49:35 -07:00
DashCaddy Polish Loop 98d25ac41b DC-130: deploys panel frontend — modal with services/deploy/journal tabs, rollback + status actions, wired into features bundle + top bar 2026-09-14 03:49:19 -07:00
DashCaddy Polish Loop 1fc61c3fdb DC-130: shipdeck deploys panel — bridge-proxied source deploys (routes + tests, opt-in via SHIPDECK_BRIDGE_URL) 2026-09-14 03:33:31 -07:00
DashCaddy Polish Loop e33bc91438 fix(publish): prune build artifacts (build-output, out, dist_electron, data, release) from release tarball — v1.16.0 tarball was 817MB with gitignored Electron build-output; now 21MB
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
2026-09-13 05:45:40 -07:00
DashCaddy Polish Loop 70e252c8a5 [grade=A urn:ump:seyasvbntxsjibq5jiaqmfowc6xgchwe4jvcc54jd6355ujgm75q] DC-122: self-updater hardening + auto-update on + docker disk discipline (v1.16.0)
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
- _isNewer: same-version releases are never 'newer' (commit labels are
  opaque stamps) — kills the same-version auto-apply regression loop
- _autoCheckAndApply: identical version@sha256 never re-applied
- dashcaddy-update.sh: truthful rollback verdicts (failed rebuild/health
  = exit 1 + failure result), exact frontend snapshot/restore (incl.
  update-introduced owned subtrees), contents-copy cp fallbacks with
  manifest reconciliation, JSON-encoded results/meta/stamp, prune on
  every exit path
- self-updater: frontend-only Linux releases fail loudly (no more silent
  no-op success stuck in 'applying')
- start.sh: DASHCADDY_UPDATE_ENABLED=true (Sami 2026-09-13), json-file
  log caps 10M x3, source->webroot sync via update-stamp contract
- tests: _isNewer regression suite, functional cycle + json/escape suites
  (scripts/test-frontend-cycle.sh, scripts/test-json-escape.sh)

15 judge rounds: C,C,D,D,C,C,D,C,C,C,D,C,A
2026-09-13 05:32:14 -07:00
DashCaddy Polish Loop 939fdbb68b fix(services): commit deployed sec.sami card addition (staged during last night's deploy, missed the commit) 2026-09-13 05:32:13 -07:00
DashCaddy Polish Loop fad51c81b2 [grade=A] Register sec.sami dashboard in DashCaddy login-page map
Add 'sec' to the buildLoginPage pages map in sso-gate.js. Without it,
/api/v1/auth/login-page?service=sec returned 404 'Unknown service' — the
TOTP login page is built from a hardcoded per-service map, so adding sec
to services.json (runtime config, gitignored) alone was not enough.

sec needs no app-token (plain web app behind the TOTP gate): after
check-session verifies the session it redirects to /?direct=1, bypassing
the Caddy @needsAutoLogin loop.

Codex grade A (urn:ump:p3jkreyxpqikwt54uxgpl7sybkbsnklbs5kdonq5ejfqyh27udla).
2026-09-13 05:32:13 -07:00
Hermes af970aa564 [grade=B] feat: real macOS .dmg built entirely on Linux (libguestfs + libdmg-hfsplus)
CI / Test & Lint (push) Canceled after 0s
CI / Security audit (push) Canceled after 0s
Adds scripts/build-dmg-linux.sh + 'npm run build:dmg':
- virt-make-fs creates an HFS+ volume inside a plain 400M image file
  (guestfs appliance; never touches block devices)
- libdmg-hfsplus converts it to compressed UDZO .dmg (real koly/UDIF)
- app + /Applications drag-install symlink; secret scan on extracted contents
- BUILD_GUIDE documents the route + Gatekeeper first-run note

Verified end-to-end: rc=0, 121MB DMG with valid koly trailer,
extractall round-trip reproduced the full 264MB app, secrets scan clean.
v1.0.0
2026-09-01 03:36:16 -07:00