justme
9f5a6cf77a
analysis: split TCP retransmissions into forward and return, and show both on the line cards
...
tcp.retrans.up counts retransmitted segments sent by the dialing side, tcp.retrans.down those sent by the listening side. The cards show RTT as a round trip (⇄) with forward (→) and return (←) rows for QUIC loss and TCP retransmission.
2026-10-21 16:26:34 +08:00
justme
48ffa56285
web: one line per node pair and RTT/loss on the link board
...
A pair of nodes now has a single line, dialed by the non-listening side or by the smaller id when both listen, so RTT is measured once. The board draws it undirected and colours it by RTT and loss; a manual setting applies to the pair.
2026-10-21 16:20:38 +08:00
justme
15318de919
Restore packaging/openwrt and the Agent updater paths swept into the previous commit [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-21 15:37:57 +08:00
justme
fae05ff303
Rebuild dev images from a clean host [CI]
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image Pipeline failed
ci/woodpecker/push/web-build Pipeline failed
2026-10-21 15:36:32 +08:00
justme
a6f9759238
ci: build musl only for arm64 and reuse toolchain cache [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-21 12:41:58 +08:00
justme
490b008a57
scripts: unify Linux native builds and retain restore caches [CI]
...
ci/woodpecker/push/dev-image Pipeline is running
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
Build musl and glibc for amd64 and arm64 through one native package path. Reuse musl outputs for OCI images and OpenWrt installers, and export binaries inside a rootless unshare session.
Restore the executable dependency graph into a shared persistent NuGet cache, build managed dependencies once, and run isolated native publishes in parallel.
Clean temporary outputs and expired image layers under store locks, retire inactive legacy stores after seven days, and retain two toolchain exports. Add regression coverage for staging, extraction, packaging and cleanup boundaries.
2026-10-21 12:29:00 +08:00
justme
ad5efc62ff
agent: unify listening and dialing with directed mutual measurements
...
Replace Probe with Agent across node runtime, Fleet contracts, backend state, API and storage. Report incoming sessions and outgoing link health through each Agent uplink, and retain directed link controls and retry.
Update protocol fixtures and end-to-end coverage for the unified model; accept requested cancellation during the Fleet timeout test cleanup.
2026-10-21 11:55:36 +08:00
justme
d5ebf29e57
docs: tighten wording, soften node capability claims, link architecture to code
...
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/e2e Pipeline was successful
- Remove the node capability paragraph from README; soften "pure collector"
and "no self-update" statements in docs, AGENTS.md and READMEs
- architecture.md: drop scalability goals, design decisions and open items;
add a component-to-code table and code links
- Replace rhetorical contrasts in security docs with direct statements
- AGENTS.md: add project mental model, change map and writing style rules
2026-10-21 06:52:01 +08:00
justme
a9bf849697
docs: rewrite README and AGENTS.md etc..
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/e2e Pipeline was successful
2026-10-21 06:28:19 +08:00
justme
a7ebf61551
[CI] [SKIP TESTS] Add detailed Probe-Agent connection diagnostics
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 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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/dev-image Pipeline failed
2026-10-20 14:15:01 +08:00
justme
b33e50696d
fix(api): never cache anchor=latest windows as immutable [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 11:29:34 +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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image 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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-19 10:07:36 +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
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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline is running
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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image 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
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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image 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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was canceled
2026-10-11 19:58:36 +08:00
justme
be97e24693
fix(link): recover stale websocket sessions [CI]
ci/woodpecker/push/dev-image Pipeline is pending
ci/woodpecker/push/web-build Pipeline was canceled
ci/woodpecker/push/verify Pipeline was canceled
2026-10-11 19:54:14 +08:00
justme
b5e275c51f
fix(quic): handle Linux dual-stack listeners [CI]
...
ci/woodpecker/push/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image 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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image 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/web-build Pipeline was successful
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/dev-image Pipeline was successful
2026-10-10 07:29:11 -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
e49e701a73
ci: restore Zig toolset for clean AOT builds [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 16:32:04 +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
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
e2e5e437cb
docs(deploy): document QUIC runtime and port requirements [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 03:00:47 +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
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
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
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
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
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