justme
675a2bc5b4
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-08 16:26:33 +08:00
justme
76efc15e9a
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/web-build unknown status
2026-10-08 16:13:02 +08:00
justme
3ee8b6bb3d
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-08 16:05:42 +08:00
justme
0fa2f2a26a
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-08 15:59:32 +08:00
justme
0e7a8c14fb
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-08 15:30:16 +08:00
justme
4a15dba8de
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/web-build unknown status
2026-10-08 06:47:15 +08:00
justme
8410735377
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/web-build unknown status
2026-10-08 05:44:20 +08:00
justme
6310358490
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-08 05:41:02 +08:00
justme
0dc8c6fe34
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-08 04:23:16 +08:00
justme
1f70c8d31e
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-08 04:10:29 +08:00
justme
0e0b925c8b
Merge branch 'main' into dev
ci/woodpecker/push/verify Pipeline failed
ci/woodpecker/push/web-build unknown status
2026-10-08 03:22:20 +08:00
justme
f01bb8fd63
ci: sync main into dev [CI SKIP]
2026-10-07 20:03:38 +08:00
justme
96990c6f4e
ci: sync main into dev [CI SKIP]
2026-10-07 19:14:58 +08:00
justme
bd35a1a966
ci: sync main into dev [CI SKIP]
2026-10-07 18:13:20 +08:00
justme
b47e01d944
ci: sync main into dev [CI SKIP]
2026-10-07 17:21:25 +08:00
justme
7ee860cb27
ci: sync main into dev [CI SKIP]
2026-10-07 16:58:59 +08:00
justme
699ed8c411
ci: sync main into dev [CI SKIP]
2026-10-07 16:20:25 +08:00
justme
0012df7b91
ci: sync main into dev [CI SKIP]
2026-10-07 15:08:26 +08:00
justme
d5967b6110
ci: sync main into dev [CI SKIP]
2026-10-07 14:57:08 +08:00
justme
450748f3bc
ci: sync main into dev [CI SKIP]
2026-10-07 14:18:03 +08:00
justme
5bd53f8880
ci: sync main into dev [CI SKIP]
2026-10-07 03:36:55 +08:00
justme
643f9e1ea3
ci: sync main into dev [CI SKIP]
2026-10-07 03:30:19 +08:00
justme
ac0bcd8e1f
docs: merge the Fleet docs into backend/fleet/README.md, add TODO.md, fix stale references [CI SKIP]
2026-10-07 03:30:03 +08:00
justme
f4aa3f2482
docs: audit the docs, merge the Fleet docs into backend/fleet/README.md and add TODO.md [CI SKIP]
...
Drop the unimplemented fleet updater design, the stale project-layout sections and broken references, fix the API table, and rename the four Monitor*.cs files left over from the rename.
2026-10-07 03:29:05 +08:00
justme
180e54cb3c
ci: sync main into dev [CI SKIP]
2026-10-07 03:12:48 +08:00
justme
a19517a57d
docs: rewrite the README: scope, trust model, architecture, protocol and build [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-07 01:51:54 +08:00
justme
83e5120377
refactor!: rename the project from Monitor to MoShiro
...
Namespaces, assemblies, projects and directories, the solution, binaries,
images, systemd units, config paths, environment variables, protocol method
names, the media type and the raw chunk magic all move to MoShiro/moshiro.
Existing data and deployments are not compatible and must be recreated.
Also fix the architecture tests after the solution layout change and make
the update tests independent of their order.
2026-10-07 01:49:04 +08:00
justme
17b35223aa
ci: sync main into dev [CI SKIP]
2026-10-07 01:46:35 +08:00
justme
4d329f5e16
ci: sync main into dev [CI SKIP]
2026-10-07 01:30:46 +08:00
justme
ad17170664
docs: redraw the architecture diagrams and update the README [SKIP TESTS]
ci/woodpecker/push/verify Pipeline was successful
ci/woodpecker/push/web-build Pipeline was successful
2026-10-07 01:30:28 +08:00
justme
710aa9e99f
ci: sync main into dev [CI SKIP]
2026-10-07 01:28:32 +08:00
justme
71d2866b9c
docs: update the architecture [SKIP TESTS]
2026-10-07 01:21:49 +08:00
justme
48664c0ada
docs: remove the roadmap and bring the docs in line with the current code [SKIP TESTS]
...
Probes link to the panel directly, container nodes update through signed
releases, the frontend exists and the ports changed. The roadmap is gone; its
open items live in the README.
2026-10-06 23:27:26 +08:00
justme
198ee556d6
ci: sync main into dev [CI SKIP]
2026-10-06 23:22:52 +08:00
justme
da465866d5
fix(web): lift the hovered overview card above its neighbours so the popover is not hidden
2026-10-06 23:22:36 +08:00
justme
3a751a0f89
feat: choose which probes link to which agents from the admin
...
The panel decides the probe/agent pairs and probes always dial out. A new
fleet.auto_link setting connects every probe to every agent (default); with it
off only the pairs chosen by hand connect, and any pair can be forced on or
off. The Probes page has a link matrix with the switch and per-pair toggles.
2026-10-06 23:19:32 +08:00
justme
d69581dcb5
docs: mount the host os-release and fix the agent public host after tunnel enrollment [SKIP TESTS]
2026-10-06 23:11:26 +08:00
justme
8f44e924a4
docs: describe container node deployment and the update flow [SKIP TESTS]
2026-10-06 23:02:16 +08:00
justme
0c39485a78
ci: sync main into dev [CI SKIP]
2026-10-06 22:57:11 +08:00
justme
7a71bf57f9
feat: update controls in the admin, release token scope, build info in CI images
...
The versions page shows each node's update state with update buttons, API
tokens get a release scope that can only register releases (used by CI), and
the CI image and release builds now pass the tag, commit and build time.
2026-10-06 22:56:56 +08:00
justme
22a98f2eb0
ci: sync main into dev [CI SKIP]
2026-10-06 22:42:20 +08:00
justme
0a66f5e07a
feat: signed releases and a host-side updater for container nodes
...
CI signs the image digest of each agent and probe release; the panel only
stores and forwards it. Nodes write the manifest to their data directory and
a host updater verifies the signature with a local public key, pulls by
digest, restarts the unit and rolls back when it is unhealthy. The panel can
list releases, ask a node to update and show the reported update state.
2026-10-06 22:37:26 +08:00
justme
48072737c9
feat!: probes connect to the backend directly
...
A probe now links to the backend like an agent (probe.json carries the
server address). The backend sends the agent list as desired state and the
probe reports its platform and build in its own hello. The agent no longer
relays the list or the probe platform. Existing probes must be re-created.
2026-10-06 22:25:16 +08:00
justme
604cbe3123
fix(ci): restore with PublishAot so node images are native, add compose files
...
Agent and probe images were built with a restore step that lacked
PublishAot, so the publish silently produced a trimmed launcher that looks
for a .dll. Restore now passes PublishAot and the build fails if the binary
is smaller than 2 MB. Also add agent and probe compose files and document
the [CI] marker in AGENTS.md.
2026-10-06 21:43:46 +08:00
justme
b242701e9e
ci: sync main into dev [CI SKIP]
2026-10-06 21:24:47 +08:00
justme
83f54978d2
feat(web): acrylic theme, node flags and icons, build info
...
Acrylic cards and topbar over a blurred background, country flags, ISP and
OS icons, per-node version tags, a build info footer and an admin versions
tab. Overview cards drop the sparkline and widen the hover area.
2026-10-06 21:22:04 +08:00
justme
1e5c660d05
feat(backend): report node platform, geo and build info
...
Agents and probes report OS, arch and build (version, tag, commit, time).
The backend looks up country and ISP of public addresses only, stores them
in node_meta (schema v5) and exposes display info via /api/public/nodes,
/api/public/about and /api/admin/build-info behind site.show_build.
2026-10-06 21:22:04 +08:00
justme
2e470607fa
docs: add project agent instructions [SKIP TESTS]
2026-10-06 17:11:07 +08:00
justme
a70b89b95c
feat(web): show UDP and TCP strips on overview cards
...
Add 3/6/12 hour ranges with status strips, latency sparklines and a side popover for the hovered interval.
2026-10-06 16:59:17 +08:00
justme
a9538eae4a
feat(web): add backend switcher and connection status
...
Split the login page into backend list and credentials, show connection status in the sidebar and top bar, and render dialogs in a portal.
2026-10-06 16:59:17 +08:00
justme
91c63d0cf2
feat(api): add return_session login for cross-origin clients
...
Return the session token in the login response instead of a cookie, and accept it as a Bearer token without CSRF.
2026-10-06 16:59:16 +08:00
justme
193fc3a95c
feat: improve agent management and speed up tests
2026-10-06 15:48:46 +08:00
justme
134c06d605
merge: bring line detail timeline into dev [CI SKIP]
2026-10-06 14:52:48 +08:00
justme
d1be70cda2
feat(web): 线路详情页的时间轴、EWMA 平滑和加载进度
...
- 先选日期,再在连续 48 小时(或 24 小时)的丢包缩略图上拖选区;选区可以跨零点,
点轴或刻度时离得近的端点贴过去,悬停预览会动的端点;没有数据的时段画成斜纹
- 刻度下方的时长快捷档:30 分钟、1 小时、3 小时、6 小时、12 小时、整天
- 指标卡片平铺,丢包等标明 UDP/TCP;图表按 UDP、TCP、评分分组
- 图表数据刷新时原地更新(不再整张重建),毫秒到 1 秒以上显示成秒
- EWMA 平滑开关(关/轻/中/重),原始数据以淡线垫底
- 数据加载时卡片上显示进度条和占位;useQuery 区分定时刷新和用户触发的加载
- 前端可以在页面里指定后端地址和令牌(配合后端 Monitor__CorsOrigins)
2026-10-06 14:48:58 +08:00
justme
672f6e3dcb
fix(ci): emit native apphosts in fastlane images [CI SKIP]
2026-10-05 10:42:34 -07:00
justme
9a375ffd9e
fix(build): select AotAnywhere explicitly [CI SKIP]
2026-10-05 10:37:10 -07:00
justme
407c09f6a5
fix(ci): use host networking for native builds [CI SKIP]
2026-10-05 10:30:35 -07:00
justme
fffee8937c
ci: sync main into dev [CI SKIP]
2026-10-05 10:26:53 -07:00
justme
91485db500
fix(ci): fall back to git diff for empty path lists [CI SKIP]
2026-10-05 10:25:59 -07:00
justme
fa34869f18
ci: sync main into dev [CI SKIP]
2026-10-05 10:21:22 -07:00
justme
deb5a97802
ci: add dependency-aware main fastlane [CI SKIP]
2026-10-05 10:18:22 -07:00
justme
479f8c25b0
feat(ci): publish agent and probe OCI images [CI SKIP]
2026-10-05 09:33:22 -07:00
justme
2b80bb66d1
ci: use local Gitea endpoint for release uploads
2026-10-05 08:44:19 -07:00
justme
078eacf1cb
ci: persist Buildah cache for Linux releases
2026-10-05 08:29:08 -07:00
justme
3db6d5b159
ci: authenticate Zot with API key for justme [CI SKIP]
2026-10-05 22:24:16 +08:00
justme
a7a8212c08
ci: push images to public Zot over HTTPS [CI SKIP]
2026-10-05 16:28:15 +08:00
justme
68406843de
ci: retry transient Zot registry errors [CI SKIP]
2026-10-04 13:26:09 -07:00
justme
fae8c45c90
ci: use bounded runspaces for artifact uploads [CI SKIP]
2026-10-04 13:11:01 -07:00
justme
3bf12ec73d
ci: upload release artifacts concurrently [CI SKIP]
2026-10-04 13:05:17 -07:00
justme
a9ee4ec34c
build: disable PDB debug symbols in releases [CI SKIP]
2026-10-04 12:54:39 -07:00
justme
6b12049df0
ci: drop 32-bit release targets [CI SKIP]
2026-10-04 12:44:32 -07:00
justme
d4b4869501
fix(ci): package cross-platform tarballs on Windows [CI SKIP]
2026-10-04 12:38:13 -07:00
justme
92b72d4443
ci: release without blocking on test workflow [CI SKIP]
2026-10-04 12:31:27 -07:00
justme
67b428991f
ci: parallelize NativeAOT target builds
2026-10-04 12:29:35 -07:00
justme
55756f7695
ci: cross-publish full NativeAOT matrix from Windows
2026-10-04 12:10:06 -07:00
justme
17a69c1c7a
ci: parallelize release components
2026-10-04 11:44:41 -07:00
justme
50d8c07939
ci: gate parallel releases on verified commits
2026-10-05 02:39:21 +08:00
justme
2e549b230d
build: use ASP.NET runtime for backend images
2026-10-05 02:24:15 +08:00
justme
ace42e5da7
fix(ci): use POST for Gitea release assets
2026-10-05 02:16:14 +08:00
justme
ad32afd038
ci: run release builds in parallel
2026-10-05 02:11:29 +08:00
justme
286c9ff7cd
ci: publish release assets to Gitea
2026-10-05 02:06:36 +08:00
justme
8aaa574485
fix(ci): make release retryable
2026-10-05 01:21:37 +08:00
justme
ce30828ed3
ci: use runner-local Gitea package endpoints
2026-10-05 01:10:17 +08:00
justme
a46f45cce3
ci: order multiarch index after builds
2026-10-05 01:05:24 +08:00
justme
ce3ba51c02
test: normalize project reference paths across platforms
2026-10-05 00:49:20 +08:00
justme
faf1203f0a
ci: disable git lfs in clone steps
2026-10-05 00:43:46 +08:00
justme
ee422ca366
ci: run verification for push, pull requests and tags
2026-10-05 00:41:29 +08:00
justme
c33003c279
ci: restore public Gitea package endpoint
2026-10-04 23:11:37 +08:00
justme
31af31b96f
ci: use internal Gitea endpoint
2026-10-04 23:01:59 +08:00
justme
9b6c4e0fd8
ci: skip host OpenAPI generation for arm64
2026-10-04 22:38:26 +08:00
justme
ceef543854
ci: verify development branch
2026-10-04 22:20:58 +08:00
justme
299f86dbee
ci: configure Woodpecker release pipelines
2026-10-04 22:12:21 +08:00