Repository navigation
Releases: HyxiaoGe/watchmend
Releases · HyxiaoGe/watchmend
Release list
v0.17.0
新增
- 接入 Codex 生命周期 Hooks,支持任务结束、权限请求和用户提示等事件通知。
- 引入可取消的静默通知候选:默认等待 15 分钟,期间检测到用户继续操作会取消通知。
- 增加 Codex 通知回执和运行状态,便于观察发送、取消与失败原因。
改进
- 飞书任务与结果正文使用安全 Markdown 渲染,支持列表、链接和行内代码,并转义潜在标签。
- 补充桌面端用户配置与 CLI
/hooks的安装、信任和排障文档。
验证
- Ruff、格式检查、泄密扫描通过。
- 848 项测试通过。
- 成功构建 sdist 与 wheel。
- dev 真实 Codex Hook → WatchMend → 飞书链路以及用户活动取消路径已验证。
WatchMend v0.16.0
新增
- 分时通知策略:硬告警实时发送,非紧急事件合并进 09:00 日报和 18:00 摘要。
- LiteLLM 兼容的上游状态编辑器,支持
shadow、enrich、gate;严重事故永不静默,失败自动回退确定性卡片。 - Loki 新错误指纹扫描、Restic 备份时效检查,以及无外部通知副作用的迁移验收模式。
改进
- 服务列表按当前状态与最近异常时间排序,恢复后的近期问题服务仍保持靠前。
- 总览、服务、事件、体检和详情页统一局部实时刷新,并显示距最近探针采样的动态时间。
- 错误指纹按容器聚合,事件摘要清理 ANSI 控制符,详情优先展示已落库诊断。
- 体检页区分已启用和按策略关闭的巡检层,并展示状态编辑器运行姿态。
- 重写中英文项目介绍,更新 GitHub About 与 Topics,准确反映当前产品定位。
v0.15.1
UX patch release — the /settings configuration inventory was redesigned.
Changed
- Settings inventory redesigned for readability: friendly-name-first rows with a one-line description, the raw
ENV_VARname demoted to a chip, collapsible groups, and the active/fallback diagnosis model shown as provider-chip + model. The nine credential settings still show configured / not-configured status only — values are never rendered.
Fixed
- Settings accessibility: keyboard focus ring on the preference chips; "configured" status and tag colours now meet WCAG AA contrast in light theme.
Image: ghcr.io/hyxiaoge/watchmend:0.15.1 (and :0.15), built by CI on this tag.
v0.15.0
Added
- New Settings page at
/settings, reachable from the header gear (⚙). Two read-only sections, fully usable with JavaScript off:- Display preferences — panel language, theme, history window, and auto-refresh interval, saved per-browser as cookies via a plain GET form. Selecting "auto" / "default" clears that preference and reverts to the server default.
- Configuration inventory — every setting listed by its environment-variable name, grouped, with its effective value. The nine credential settings (tokens, keys, sign secrets, webhooks) show a configured / not-configured status only — values are never rendered.
- The panel auto-refresh interval is now overridable per browser from the Settings page on the live pages (overview, services, events, hygiene). Setting it to "off" stops auto-refresh for that browser.
The dual-arch image publishes to ghcr.io/hyxiaoge/watchmend:0.15.0 and :0.15 via the Release workflow.
v0.14.0
Flicker-free panel auto-refresh (progressive-enhancement self-refresh)
Changed
- Panel auto-refresh is now flicker-free. With JavaScript enabled, a tiny inline script refreshes the page content in place — swapping only the main region and syncing the title and status line — instead of a full-page reload, so scroll position and any open changelog modal are preserved and the page no longer blinks every interval. With JavaScript disabled it falls back to the previous full-page
<meta refresh>via<noscript>, so nothing is lost. - The long-standing "zero JavaScript" rule for the panel is now a bounded progressive-enhancement principle (documented in
CONTRIBUTING.md): the panel must work fully with JS off, no framework/bundler/build/external JS is allowed, and only tiny inline vanilla scripts are permitted.
Added
- New optional
SENTINEL_PANEL_REFRESH_SECONDSsetting (default 30, minimum 5) controls the panel refresh cadence for both the live poller and the<noscript>fallback. Old images ignore it, so it rolls back cleanly.
Image: ghcr.io/hyxiaoge/watchmend:0.14.0 (also :0.14), linux/amd64 + linux/arm64.
Full changelog: CHANGELOG.md
v0.13.3
Changed
- The panel header now shows just the WatchMend wordmark — the logo carries the identity, so the "Evidence Panel" descriptor was dropped.
- The browser tab title is now page-aware (
{page} · WatchMend) so pinned/background tabs are distinguishable, with a status-light prefix🔴 {n} ·that appears only when there are open incidents (same signal as the status badge). The old update-available●title marker was removed; update availability still shows in the version chip.
中文:头部去掉「证据台」描述词只留 WatchMend 字标;tab 标题改为「页面名 · WatchMend」,有未结事件时前缀 🔴 N(与徽标同源)。
Full Changelog: v0.13.2...v0.13.3
v0.13.2
Added
- The panel header now shows the WatchMend brand mark — an inline "WM pulse" SVG that links home — next to the title, plus a matching SVG favicon. Both are inline (zero JavaScript, no external request, no
<img>) and add no new route or static mount, so they ship with the image and roll back cleanly.
中文:面板头部在标题旁新增 WatchMend 品牌标识(内联 WM-pulse SVG mark,点击回首页)+ 同款 SVG favicon。零-JS、additive,随镜像发布、可干净回滚。
Full Changelog: v0.13.1...v0.13.2
v0.13.1
Changed
- The header version chip now opens the changelog as a centered, zero-JS modal (a
:targetoverlay with a dimmed backdrop and click-outside / × to close) instead of the small dropdown that linked out to a separate page. The full release history is embedded inline and scrollable, the running version is highlighted, and an update banner sits on top when a newer release exists; the standalone/changelogpage is kept as a shareable permalink.
中文变更日志见 CHANGELOG.zh-CN.md。
Full changelog: v0.13.0...v0.13.1
v0.13.0
Changed
- The header version chip is now a click-to-open changelog popover instead of a
static-looking link. The badge became a zero-JS disclosure that shows the
running version's "What's new" inline (with a caret affordance and hover
state) plus a "Full changelog" link, and the full/changelogpage gained a
breadcrumb back to the overview.
v0.12.1
Security
- Log-redaction ReDoS hardening: the connection-string pattern in the diagnosis
log redactor was quadratic on a long, unbrokenscheme://user:passrun with no
closing@, so an adversarial log line fed throughloki_logs/docker_logs
could stall the event loop for seconds. All three segments (scheme / user /
password) are now length-bounded, making redaction linear; real connection
strings are unaffected.