Skip to content

Releases: HyxiaoGe/watchmend

v0.17.0

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 09 Aug 09:57
355b051

新增

  • 接入 Codex 生命周期 Hooks,支持任务结束、权限请求和用户提示等事件通知。
  • 引入可取消的静默通知候选:默认等待 15 分钟,期间检测到用户继续操作会取消通知。
  • 增加 Codex 通知回执和运行状态,便于观察发送、取消与失败原因。

改进

  • 飞书任务与结果正文使用安全 Markdown 渲染,支持列表、链接和行内代码,并转义潜在标签。
  • 补充桌面端用户配置与 CLI /hooks 的安装、信任和排障文档。

验证

  • Ruff、格式检查、泄密扫描通过。
  • 848 项测试通过。
  • 成功构建 sdist 与 wheel。
  • dev 真实 Codex Hook → WatchMend → 飞书链路以及用户活动取消路径已验证。

WatchMend v0.16.0

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 30 Jul 01:47
73978c4

新增

  • 分时通知策略:硬告警实时发送,非紧急事件合并进 09:00 日报和 18:00 摘要。
  • LiteLLM 兼容的上游状态编辑器,支持 shadow、enrich、gate;严重事故永不静默,失败自动回退确定性卡片。
  • Loki 新错误指纹扫描、Restic 备份时效检查,以及无外部通知副作用的迁移验收模式。

改进

  • 服务列表按当前状态与最近异常时间排序,恢复后的近期问题服务仍保持靠前。
  • 总览、服务、事件、体检和详情页统一局部实时刷新,并显示距最近探针采样的动态时间。
  • 错误指纹按容器聚合,事件摘要清理 ANSI 控制符,详情优先展示已落库诊断。
  • 体检页区分已启用和按策略关闭的巡检层,并展示状态编辑器运行姿态。
  • 重写中英文项目介绍,更新 GitHub About 与 Topics,准确反映当前产品定位。

v0.15.1

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 18 Jun 06:33
8a49d73

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_VAR name 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

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 18 Jun 03:28
d5affa7

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

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 17 Jun 09:57
79197eb

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_SECONDS setting (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

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 17 Jun 07:46
53d6337

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

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 17 Jun 07:07
b0a51d4

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

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 17 Jun 06:24
c85c0d6

Changed

  • The header version chip now opens the changelog as a centered, zero-JS modal (a :target overlay 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 /changelog page is kept as a shareable permalink.

中文变更日志见 CHANGELOG.zh-CN.md。

Full changelog: v0.13.0...v0.13.1

v0.13.0

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 17 Jun 05:35
7380905

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 /changelog page gained a
    breadcrumb back to the overview.

v0.12.1

Choose a tag to compare

@HyxiaoGe HyxiaoGe released this 17 Jun 04:27
19586cc

Security

  • Log-redaction ReDoS hardening: the connection-string pattern in the diagnosis
    log redactor was quadratic on a long, unbroken scheme://user:pass run with no
    closing @, so an adversarial log line fed through loki_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.