Commit Graph
100 Commits
Author SHA1 Message Date
justme a9bf849697 docs: rewrite README and AGENTS.md etc..
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/e2e Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-21 06:28:19 +08:00
justme cc64df3e70 [CI] Keep line cards visible and time windows current; add 24h to 96h ranges
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
ci/woodpecker/push/web-build Pipeline was successful
2026-10-20 20:44:04 +08:00
justme a7ebf61551 [CI] [SKIP TESTS] Add detailed Probe-Agent connection diagnostics
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-20 19:12:11 +08:00
justme 0fd38b2367 fix: prevent QUIC heartbeat stalls and isolate TCP retransmission counters [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-20 18:23:31 +08:00
justme 0066a947da fix: correct OpenWrt API metadata and earliest sample queries [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-20 14:56:39 +08:00
justme cd193378a6 probe: add native OpenWrt deployment and signed automatic updates [CI]
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image Pipeline failed
ci/woodpecker/push/web-build Pipeline was successful
2026-10-20 14:15:01 +08:00
justme 24ba05fbb6 perf(ci): pin staged restore mtimes so the restore layer caches, drop build intermediates from the layer [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-19 14:05:22 +08:00
justme 5c00ec434e fix(ci): read the commit status from the public Gitea address [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-19 14:03:46 +08:00
justme 1ccbb847b5 ci: build the dev images in parallel with the checks and gate only the push [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
2026-10-19 13:58:21 +08:00
justme b33e50696d fix(api): never cache anchor=latest windows as immutable [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-19 11:29:34 +08:00
justme fb9dc155f5 fix(ci): avoid leaking cache lock to MSBuild nodes [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-19 11:15:19 +08:00
justme 5594d1cc86 fix(query): a connected line is always anchored at now, whatever the stores have caught up to [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
2026-10-19 10:48:38 +08:00
justme e1ec7c9b04 fix(query): anchor=latest follows the newest sample of any level, not just the 1m rows [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-19 10:34:04 +08:00
justme d95acc6575 refactor(link): bound every teardown and handler wait behind one helper [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-19 10:07:36 +08:00
justme c05842fd91 fix(web): time out API requests and flag line strips that failed to refresh [CI] 2026-10-19 09:31:57 +08:00
justme 09b4630953 fix(probe): rebuild the Agent session when the datagram path goes silent [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
2026-10-19 09:28:29 +08:00
justme bbbf0a70bd chore(ci): rebuild the dev images after the CI host restart [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-19 08:31:41 +08:00
justme 57ae0752aa fix(probe): bound every step of tearing down an Agent session [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
2026-10-18 19:42:43 +08:00
justme f9be98e801 fix(hosting): exit on our own when the orderly shutdown hangs [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline is running
ci/woodpecker/push/web-build Pipeline was successful
2026-10-18 10:22:34 +08:00
justme 839c45c7d4 fix(probe): end an Agent session that has gone silent and redial [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-18 10:07:52 +08:00
justme 1a3feddc9d fix(link): actually bound the server connect with a timeout [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-18 03:30:43 +08:00
justme 68c7113adf feat(update): update the backend like nodes via quadlet restart [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-18 00:36:38 +08:00
justme 34190f5a04 fix(link): bound the server connect and alternate address families on retry [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-18 00:23:48 +08:00
justme 0d532caf08 fix(nodes): locate agents behind a proxy and retry missing countries [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-18 00:06:39 +08:00
justme 1145a53004 style(display): refine overview line layout [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-12 02:21:56 +08:00
justme 52059b04c1 fix(api): refresh node build versions from heartbeat [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-12 01:57:50 +08:00
justme fe049c97fa fix(link): reconnect after RPC send failures [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-12 00:21:12 +08:00
justme 6cf6b23585 feat(ops): upload node logs and task traffic [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-11 23:57:13 +08:00
justme e82b165eb0 fix(quic): exclude locally rejected datagrams [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-11 19:58:36 +08:00
justme f6e477fb10 chore(netdiag): add standalone UDP path diagnostics 2026-10-11 19:58:35 +08:00
justme be97e24693 fix(link): recover stale websocket sessions [CI]
ci/woodpecker/push/dev-image Pipeline is pending
ci/woodpecker/push/verify Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was canceled
2026-10-11 19:54:14 +08:00
justme b5e275c51f fix(quic): handle Linux dual-stack listeners [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-11 04:45:27 +08:00
justme b9ec6d80b0 fix(quic): merge static MsQuic support with latest main [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-11 01:05:21 +08:00
justme a44895d860 fix(quic): statically link MsQuic for Alpine nodes [CI] 2026-10-11 01:00:37 +08:00
justme d7b48c068c ci: speed up backend build and parallelize image publishing [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 07:29:11 -07:00
justme 04f116e092 ci: clean up backend test processes on cancel [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-10 06:48:20 -07:00
justme bf3481ebae ci: remove slow tests from dev image pipeline [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/tag/gitea-release Pipeline is pending
ci/woodpecker/tag/windows-release Pipeline is pending
ci/woodpecker/tag/linux-release Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 06:25:15 -07:00
justme b46ba69aa0 ci: raise Buildah nofile limit for Zig AOT [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 06:09:17 -07:00
justme 2fe8a498d2 ci: retrigger NativeAOT pipeline on updated runner [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
2026-10-10 06:04:30 -07:00
justme 15f159ab39 ci: raise WSL runner PID budget for NativeAOT [CI]
ci/woodpecker/push/verify Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was canceled
ci/woodpecker/push/dev-image unknown status
2026-10-10 06:03:44 -07:00
justme 010576bc2a ci: document cached Buildah network helpers [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
2026-10-10 05:57:43 -07:00
justme c2ab9eab3b ci: install Buildah network helpers in runner [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 05:53:01 -07:00
justme a77f12545b ci: initialize isolated Buildah auth files [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 05:51:13 -07:00
justme 9919de53d3 ci: keep WSL agent online for pipelines [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 05:48:48 -07:00
justme 1975253beb ci: bake cached toolchain into Podman agent and fix nested Buildah [CI] 2026-10-10 05:44:21 -07:00
justme 2e1dbcf4ce ci: use cache path for NuGet scratch [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
2026-10-10 04:40:09 -07:00
justme a1101424d2 ci: add .NET 10 NativeAOT AotAnywhere builder [CI]
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image unknown status
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 04:36:47 -07:00
justme 0d08e90dab perf(tests): isolate network E2E and await QUIC cleanup
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/e2e unknown status
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 19:33:36 +08:00
justme 047df83a84 ci: queue fresh dev image pipeline [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 19:05:23 +08:00
justme 145660f0a2 ci: retrigger dev image pipeline [CI] [SKIP TESTS]
ci/woodpecker/push/dev-image Pipeline is pending
ci/woodpecker/push/verify Pipeline is pending
ci/woodpecker/push/web-build Pipeline is pending
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 19:03:13 +08:00
justme a1b8af8509 ci: bound and cancel Buildah commands [CI] [SKIP TESTS]
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 17:30:55 +08:00
justme a3b9671d62 ci: rotate Buildah storage after cache mount failure [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline is running
ci/woodpecker/push/web-build Pipeline was successful
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 16:43:42 +08:00
justme e49e701a73 ci: restore Zig toolset for clean AOT builds [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 16:32:04 +08:00
justme 7512ae0f00 ci: build ARM64 dev images with AotAnywhere [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 16:16:17 +08:00
justme da353d239a ci: isolate caches and trust ARM Alpine keys [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
ci/woodpecker/push/web-build Pipeline was successful
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 15:51:10 +08:00
justme 49812e94c0 ci: cross-build dev images with AotAnywhere [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
Signed-off-by: JustMe <mr.toing@outlook.com>
2026-10-10 15:45:45 +08:00
justme 376020fe34 fix(ci): isolate per-arch node build workspaces [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
2026-10-10 15:27:55 +08:00
justme d9938e4b96 ci: build node ARM64 images in parallel [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 15:22:23 +08:00
justme 8b3abd5b22 feat(ci): publish ARM64 development node images [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 15:19:30 +08:00
justme 32507fcb4d docs(protocol): document stopping and Probe retries [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-10 14:40:30 +08:00
justme 85c2043f2f feat(display): explain QUIC state and compact panels [CI]
ci/woodpecker/push/dev-image Pipeline is pending
ci/woodpecker/push/verify Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 14:17:43 +08:00
justme efb50d0efe feat(admin): show Probe status and retry links 2026-10-10 14:17:19 +08:00
justme 97ab3cc740 feat(runtime): track node lifecycle and QUIC link state 2026-10-10 14:16:57 +08:00
justme 238046d959 test(backend): parallelize isolated fixtures [CI] [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-10 04:54:18 +08:00
justme 77d8404f59 ci(test): load MsQuic for Linux tests [CI]
ci/woodpecker/push/dev-image Pipeline is pending
ci/woodpecker/push/verify Pipeline was canceled
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 04:11:55 +08:00
justme 29d998bc94 build(quic): bundle Linux runtime libraries [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image unknown status
2026-10-10 04:01:24 +08:00
justme e2e5e437cb docs(deploy): document QUIC runtime and port requirements [CI]
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image unknown status
ci/woodpecker/push/web-build Pipeline was successful
2026-10-10 03:00:47 +08:00
justme b25b111134 feat(display): add compact QUIC and host health views 2026-10-10 03:00:23 +08:00
justme b964dc2bbc feat(quic): replace probe UDP data plane with QUIC datagrams 2026-10-10 02:59:56 +08:00
justme 4609048865 docs: merge the API guidelines into api.md; drop the one-off trial reports; fix the node-update description (Quadlet restart vs host updater); tidy TODO [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-09 22:31:11 +08:00
justme 900bbde46a ci: run the slow e2e tests after the image builds (a parallel run got the backend AOT compile OOM-killed) 2026-10-09 15:24:07 +08:00
justme 2d31bd091e ci: gate on the fast tests (about 20s); slow end-to-end tests run in parallel with the image build [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/e2e Pipeline was successful
ci/woodpecker/push/dev-image Pipeline failed
2026-10-09 14:33:03 +08:00
justme c9c21f8056 ci: fix the failed-test retry (wildcard filter, ignore zero-test exit code, two attempts) [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-09 14:09:54 +08:00
justme b2b63c065d ci: sync packaging and docs into the test cache; retry failed tests once [CI]
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image unknown status
ci/woodpecker/push/web-build Pipeline was successful
2026-10-09 14:02:42 +08:00
justme 0873acf66a fix(link): ride out short path blackouts: 30s handshake, 180s idle limit, 90s keepalive, faster probe reconnect [CI]
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image unknown status
2026-10-09 13:46:59 +08:00
justme be04045c8c ci: incremental backend tests, cached web dependencies, web build in parallel with the tests
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/web-build Pipeline was successful
2026-10-09 13:39:55 +08:00
justme 006814823b docs: main-only workflow, CI-filled versions, dev version format [CI]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-09 13:20:30 +08:00
justme 7ff0d0f4e6 feat: print build info at startup; version placeholders filled in by CI [CI SKIP] 2026-10-09 13:20:30 +08:00
justme a9f78f99df ci: version from the tag or the commits since it; dev images from main gated on tests; recognise -dev. tags [CI SKIP] 2026-10-09 13:20:30 +08:00
justme a3338e1cf3 fix(display): background quality as a three-way choice (blurred, sharp, original) [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
2026-10-09 04:57:01 +08:00
justme 044ce0c339 feat(display): background photo groups with blurred, compressed and original versions; veil, sway and blur options in the appearance panel [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
2026-10-09 04:50:11 +08:00
justme 725fe17a7d chore: release 0.4.0 [CI]
ci/woodpecker/tag/windows-release Pipeline was successful
ci/woodpecker/push/main-amd64-build Pipeline was successful
ci/woodpecker/tag/linux-release Pipeline was successful
ci/woodpecker/tag/gitea-release Pipeline was successful
2026-10-09 03:54:56 +08:00
justme e49990776b feat(display): falling snow in three depth layers with wind, mouse and bullet time; appearance panel; dark glass tinted from the background [CI SKIP] 2026-10-09 03:54:49 +08:00
justme f8e8bb8acb feat(display): pointer-sway background with a dark variant; acrylic glass tokens [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
2026-10-09 03:09:14 +08:00
justme 70f20d38d0 feat(display): site name and avatar in the top bar, content aligned left [CI SKIP] 2026-10-09 03:08:54 +08:00
justme 7ff03a9628 fix(display): a hovered card no longer covers the top bar [CI SKIP] 2026-10-09 03:08:53 +08:00
justme 5dce387c87 ci: build a dev image to test automatic node updates [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
2026-10-09 02:10:38 +08:00
justme 535bb3517d feat: node updates by restart, auto by default; Podman Quadlet install from the panel alongside compose [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
2026-10-09 01:33:22 +08:00
justme 88b1a0a9bb feat: probe host stats, node cards with a separate lines panel grouped by carrier, Windows host sampling, manual carrier override [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
2026-10-08 21:56:19 +08:00
justme bac1c27e72 fix: compose passes .env through env_file; clearer name and channel messages [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
podman-compose does not substitute defaults inside "environment:" (a value
like ${MOSHIRO_NAME:-} reached the node as the literal text), so the node was
enrolled with an invalid name and reported the wrong network scope. The three
compose files now read .env with env_file and only interpolate image and
network_mode; the Backend .env keys are the container's own names
(MoShiro__PublicUrl, MoShiro__ClaimCode).

- The generated .env no longer carries a comment line for MOSHIRO_NAME; the
  dialog says how to choose a name instead.
- The container entrypoint prints the name it enrolls with and defaults
  MOSHIRO_NETWORK_SCOPE to host (Docker Desktop sets container in .env).
- The overview and line pages say "measurement channel not established"
  instead of "not connected": the agent can be reachable and pingable while
  the measurement TCP/UDP path is not.
2026-10-08 20:47:38 +08:00
justme 12be44645f feat: install nodes and the backend from a static compose file; remove dead code [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
Agent, Probe and Backend now start from one static compose.yaml plus a local
.env: the panel (or the release assets, for the very first Backend) provides
the file, the panel's command writes the public values into .env, checks the
file's SHA-256 and runs compose up. Updating is compose pull && compose up -d.
The image is chosen by the CI channel (:latest, or MOSHIRO_VERSION in .env),
not by the panel; the previous one-line script stays as a fallback.

- packaging/compose/{agent,probe,backend}/compose.yaml are the single source,
  embedded in the Backend and served at /install/compose/{file}; the root
  compose.yaml moved there. Releases also carry them and list them in the
  signed SHA256SUMS.
- The container entrypoint defaults the node name to the host name.
- Join token creation returns a compose block (.env, url, hash, per-platform
  commands); the admin dialog leads with it.
- Remove code with no references (HotLayer members, LiveHub.SubscriberCount,
  QueryService.ParseParams, ReleaseService.Forget, a few constants) and reduce
  the install-code lookup to the role it is for.
2026-10-08 20:24:23 +08:00
justme e014a19554 docs: reorganize into design, security, api, ops and dev; drop stale designs; refresh the diagrams [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
- Group docs by category with an index (docs/README.md); fix every link,
  code comment and the protocol conformance test that read docs/protocol.md.
- access.md and security.md rewritten to what is implemented: removed the
  unadopted member-proof chain, roles and recovery key that do not exist,
  the old implementation order and the budgets; gaps now carry a status.
- enrollment, deployment, api: the install flow is the static, hash-checked
  script with environment variables; no default admin.
- README and architecture: new topology and update-flow diagrams (operator
  passkey, CI signing, registry feed, auth and trust modules).
2026-10-08 19:37:56 +08:00
justme 636a784043 fix: the panel polls the registry for its own and the nodes' releases [CI]
ci/woodpecker/push/main-amd64-build Pipeline is running
Registering a manifest with the panel is best effort in CI (an unreachable
panel only warns, the pipeline stays green). The Backend update notice then
never appeared, because the host updater only reads the mailbox the panel
writes. A background poller now fetches the signed manifests of the agent, the
probe and the backend itself from the registry every five minutes, verifies the
release signature and registers them, writing the backend one into the host
updater's mailbox.
2026-10-08 19:09:21 +08:00
justme 0f8f3f9a54 feat: trusted release keys setting; drop the duplicate release registration route [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
The panel now lets the deployer decide which release keys it trusts. The
official CI key is built in and always trusted; an own P-256 public key can be
added (off by default, the private key is rejected) so manifests signed with it
are accepted too. Removing it drops the manifests only it signed. Changes are
audited and need update.confirm.

Admin UI: System > Trust > "Trusted release keys" with a collapsible guide on
generating a key pair and signing a manifest with openssl.

Registration now has one path, POST /api/release/offer (no token, signature
verified). The admin POST /releases route, the release.publish capability and
the ci-release preset are removed.
2026-10-08 18:50:16 +08:00
justme 904ea2b0ae refactor: remove the runtime binary binding; every release registration path verifies the CI signature [CI]
ci/woodpecker/push/main-amd64-build Pipeline was successful
The hash a node reports about itself cannot be trusted (a swapped binary can
copy the old hash), so the runtime binding only caught files that were replaced
by something that did not lie. Provenance stays where it can be verified: the
signed release manifest (digest) and the signed SHA256SUMS.

- Remove BinaryBindingService, the node_bindings table (schema v15 drops it),
  BinaryPolicy, the handshake hash/manifest fields and the admin binary column.
- Drop the per-platform "binaries" list from the release manifest, the hash
  scripts and the updater's installed.manifest copy.
- ReleaseService.PublishAsync now verifies the release signature, so the admin
  POST /releases route is no longer an unsigned path; tests sign with a test key.
- Docs: section 16 explains why the runtime check is gone.
2026-10-08 18:30:05 +08:00
justme a4f3d1892a ci: all-platform node binaries in the signed release manifest; signed SHA256SUMS for the archives; web build once before the parallel backend builds; release 0.3.3 [CI SKIP]
ci/woodpecker/tag/windows-release Pipeline was successful
ci/woodpecker/tag/linux-release Pipeline was successful
ci/woodpecker/tag/gitea-release Pipeline was successful
2026-10-08 16:26:29 +08:00
justme cab505b837 fix(ci): back to building the web apps inside the backend build; the two architectures run one after the other; release 0.3.2 [CI SKIP]
ci/woodpecker/tag/windows-release Pipeline was successful
ci/woodpecker/tag/linux-release Pipeline was successful
ci/woodpecker/tag/gitea-release Pipeline was successful
2026-10-08 16:12:59 +08:00
justme cd9e677331 fix(ci): build the web apps once before the two backend architectures; release 0.3.1 [CI]
ci/woodpecker/push/main-amd64-build Pipeline is running
ci/woodpecker/tag/linux-release Pipeline is running
ci/woodpecker/tag/windows-release Pipeline was successful
ci/woodpecker/tag/gitea-release unknown status
2026-10-08 16:05:38 +08:00
justme 879d1c8593 fix: installer checks containers only; the panel reads signed manifests from the registry when it has none; unsigned-updater nodes are labeled from the panel's manifests; sign node release images; release 0.3.0 [CI]
ci/woodpecker/push/main-amd64-build Pipeline was canceled
ci/woodpecker/tag/linux-release Pipeline failed
ci/woodpecker/tag/windows-release Pipeline was successful
ci/woodpecker/tag/gitea-release unknown status
2026-10-08 15:59:28 +08:00
justme 4a1e48db20 test: share one operator and trust root across the trust tests; make the setup test cleanup best-effort [CI SKIP] 2026-10-08 15:30:12 +08:00