Repository navigation
Releases: rainac1/zashboard
Releases · rainac1/zashboard
Release list
v3.29.1-singbox.13
Merge upstream/main into singbox 在 origin/singbox(a997b2e,已合入上游 e5b48b4 / 4e13b0c)之上继续跟进上游剩余 3 个 commit: - 63cb0e0 feat: auto-connect to same-origin backend on initial setup (#810) - a72516f fix: bump dependencies to patch security vulnerabilities - 805eb22 feat: use grid icon for overview and add hover motion to nav icons 冲突解决: - src/helper/utils.ts:采用上游拆出的 getUrlQuery / getBackendFromQuery / getOriginBackend 结构,并把本分支的 `type=singbox` 识别抽成共享的 getBackendTypeFromQuery,使同源自动探测同样遵循 `type` 参数。 - src/router/index.ts:保留上游 `query: to.query`(setup 重定向需保留 hash 查询参数),同时保留本分支的能力路由守卫。 - package.json / pnpm-lock.yaml:保留 @xterm/* 依赖,采用上游安全升级 (axios ^1.20.0、vue ^3.5.43、dompurify ^3.4.16),锁文件以上游为基准 重算,因此同时拿到上游顺带修掉的传递依赖(brace-expansion 2.1.7/ 5.0.12、fast-uri 3.1.8),并按本分支继续剔除 husky / lint-staged。 - README.md:保留本分支自有内容(下载链接、捐赠行),并入上游新增的 「Automatic backend connection」说明并补充 `type` 的 dae 取值。 其余自动合并的文件(NavMenu 图标动效、constant 图标表)两侧改动区域 不重叠:NavMenu 的 motionOf 对未知图标回退 motion-pop,本分支新增的 tools 图标安全。 验证:pnpm type-check、eslint、pnpm build 通过;test:setup 28/28、 test:verify 14/14 通过(test:verify 需英文 locale)。
v3.29.1-singbox.12
Merge branch 'Zephyruso:main' into singbox
v3.29.1-singbox.9
fix(proxies): test only the selected outbound of a selector A Selector only ever uses the outbound it currently points at, but asking the core to test the whole group makes it recurse into nested selectors and test every member underneath (sing-box URLTestOutbounds walks nested groups). That both spends requests on outbounds that are not in use and makes the group test wait for them. Selectors now always go through the panel per-member path regardless of speedtestMode: latencyTestForSingle resolves each member through getNowProxyNodeName, so a nested Selector is followed to the outbound it currently selects (recursively) and only that outbound is requested. LoadBalance / Smart keep following speedtestMode since all of their members are in use.
v3.29.1-singbox.8
fix(singbox): keep URL test state through failures and batched results The URLTest RPC only starts the task; results arrive on the SubscribeGroups / SubscribeOutbounds streams. Two state bugs remained: - A failed test deletes the history, so a node with no previous result never changes its fingerprint. The waiter rejected once the budget ran out and the shared latency flow surfaced it as a panel error (testFailedTip / notifyRequestError) instead of "not connected". - A group test settled 500ms after the first change, but the core tests members in batches of 10, so later batches were dropped: the spinner stopped early and the success/failed summary was wrong. Now the waiter settles on budget expiry as "no new result" (failure = delay 0), matching the clash driver; group targets expand to the leaves that actually produce history (nested groups unwrapped, reject/block dropped) and wait for all of them. The unary RPC gets an abort cap so a stalled call cannot pin the testing state, and the one-by-one summary counts delay 0 as failed instead of only counting thrown errors.
v3.29.1-singbox.11
fix(i18n): label panel speedtest progress as in progress
The per-node panel progress notification used testFinishedTip
("{number}/{total} tests completed"), which reads as if the run were
already over even though it keeps updating while later nodes are still
being tested. Rename the key to testProgressTip and use in-progress
wording in all locales.
v3.29.1-singbox.10
fix(singbox): keep URL test state through failures and batched results The URLTest RPC only starts the task; results arrive on the SubscribeGroups / SubscribeOutbounds streams. Two state bugs remained: - A failed test deletes the history, so a node with no previous result never changes its fingerprint. The waiter rejected once the budget ran out and the shared latency flow surfaced it as a panel error (testFailedTip / notifyRequestError) instead of "not connected". - A group test settled 500ms after the first change, but the core tests members in batches of 10, so later batches were dropped: the spinner stopped early and the success/failed summary was wrong. Now the waiter settles on budget expiry as "no new result" (failure = delay 0), matching the clash driver; group targets expand to the leaves that actually produce history (nested groups unwrapped, reject/block dropped) and wait for all of them. The unary RPC gets an abort cap so a stalled call cannot pin the testing state, and the one-by-one summary counts delay 0 as failed instead of only counting thrown errors.
v3.29.1-singbox.7
fix(logs): handle ANSI escape sequences in log payloads
Upstream d1adea4 ("drop unused exports") deleted helper/ansi.ts together with
the code that used it, so the ansi prop on HighlightText, the call sites in
LogsCard/LogsTable and the per-segment highlight logic all disappeared. The fork
brought the file back later, but only for stripAnsi inside getLogConnectionID,
leaving parseAnsiText as dead code that got tree-shaken away. Raw escapes were
therefore reaching the DOM, and the log view showed literals like [38;5;208m.
This restores the wiring and squares up the matching basis while we are here.
HighlightText takes ansi again and goes through a new parseAnsiHighlight that
locates matches on the escape-free text and then splits them along segment
boundaries, so a token spanning a color boundary gets highlighted instead of
being filtered in and never marked. LogWithSeq also carries a visiblePayload
computed once at ingestion, and the logs page search, hide regex, type facet and
type dropdown all match on that rather than the raw payload, which is what made
a search for "208" hit the color code 38;5;208 and filled the dropdown with
escape sequences. parseAnsiText now uses its own /g regex too, instead of
sharing lastIndex with stripAnsi.
Downloaded .log files still keep the raw payload, since the escapes are
meaningful there. Verified with vue-tsc, eslint, prettier and a build, plus two
throwaway browser passes against a fake backend and the real panel; no scripts
or fixtures were left behind.
v3.29.1-singbox.6
feat(singbox): integrate sing-box core and api Squash of all fork changes relative to upstream/main (9b867b7): sing-box driver/API/assembly layer, dae native API contract (started_service proto/pb), tools panels, and the fork release workflow replacing upstream's Build and Deploy.
v3.29.1-singbox.5
Merge commit '9b867b76a8cbca014423e93af59f7ce0996bc4f4' into singbox
v3.29.1-singbox.4
feat: sync dae native API contract - password auth mode with setup/login sessions and auto re-login - optional capability resources, POST dns query, group config patch endpoint, probes without purpose - async node/provider create and delete, provider create options and download route - runtime settings bounds, recorder modes, degradations and ebpf attachment kinds - geodata settings panel, dns rules and cache usage, config source creation - update mock dae server to the new contract Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>