Skip to content

docs: doc-review 2026-10-19 — WeCom hosted domain, Lark managed app, template send-test, RUM custom dashboards - #1078

Merged
ysyneu merged 3 commits into
mainfrom
doc-review/2026-10-19-081500
Oct 19, 2026
Merged

ysyneu merged 3 commits into
mainfrom
doc-review/2026-10-19-081500

Conversation

@flashduty

@flashduty flashduty Bot commented Oct 19, 2026

Copy link
Copy Markdown

Doc Review — 2026-10-19

Mode: diff — since 2026-10-16T08:12:21Z (previous successful run) · scope all · window ends 2026-10-19T08:00Z
Findings: 30 total — 4 high, 20 medium, 6 low · 29 applied, 1 handed off, 1 skipped at analysis · 41 files changed (+1227 / −225), 2 new pages

mint broken-links → success no broken links found (all files parsed).

Changes

Finding Sev Type Doc (zh, en mirrored) Action
f001 high missing_coverage on-call/integration/instant-messaging/lark.mdx New ## 选择接入方式 + QR / Flashduty-managed app flow, 7-state status table, 升级为自动管理
f002 medium missing_coverage on-call/integration/instant-messaging/lark.mdx New ## 在飞书完成配置 (5-step checklist, self-tick vs manual confirm, permission JSON)
f003 medium stale_content on-call/integration/instant-messaging/lark.mdx Removed 网页配置 / 消息卡片请求网址 / 重定向 URL; callbacks are only card.action.trigger
f004 high config_drift on-call/integration/instant-messaging/wecom.mdx Rewrote self-built app setup: hosted access domain, 2 CNAMEs, cert issuance, WW_verify (6 numbered steps)
f005 medium config_drift on-call/integration/instant-messaging/wecom.mdx Token / EncodingAESKey now generated by Flashduty and shown once (direction reversed)
f006 medium config_drift on-call/integration/instant-messaging/wecom.mdx Rewrote third-party app: QR enterprise binding (install / confirm), Corp ID read-only
f007 medium stale_content on-call/integration/instant-messaging/microsoft-teams.mdx New 通知位置 section (团队 / 群聊 tabs), Link Now, add / unlink dialogs
f008 medium missing_coverage on-call/integration/webhooks/custom-actions.mdx New ## 编辑已保存的操作 — masked secrets, retype-to-change, destination guard
f009 high missing_coverage on-call/configuration/templates.mdx New ### 发送测试 — channel matrix, 5 / min, [测试] marker, result + 9 error codes, POST /template/preview/send
f010 medium missing_coverage on-call/configuration/templates.mdx New ### 表格转原生表格 — switch + native table limits + 6 fallback reasons
f011 low missing_coverage on-call/configuration/templates.mdx New ### 预览会提示什么 — format, table counts, byte budget, notice codes
f012 medium missing_coverage on-call/configuration/templates.mdx Read-only state Tip: 系统预置 · 只读, 复制为新模板, 模板设置, 更多操作
f013 medium missing_coverage on-call/configuration/custom-forms.mdx New ## 在 IM 里关闭故障 — guide reply with close=1 link, Feishu ephemeral + toast
f015 high missing_coverage NEW rum/analytics/custom-dashboards.mdx New page (14 sections: entry & routes, panel types, queries, variables, save-to-dashboard, drill-down, versions, trash, permission, limits) + nav entry
f016 medium feature_drift rum/explorer/analytics.mdx New 分组字段的基数限制 (event-ID fields not groupable, count / sum only, ≤ 7 days)
f017 medium missing_coverage rum/explorer/analytics.mdx New 保存到看板 (which panel types can be saved, append vs new dashboard)
f018 low missing_coverage rum/explorer/data-query.mdx New 路径字段与 URL 归一化 (hash routes retained in path / path_group)
f019 medium stale_content rum/error-tracking/issue-status.mdx Resolve modes renamed into an 已解决 submenu; error-viewing.mdx + the 2026-10-16 changelog entry aligned
f020 medium missing_coverage platform/permission-design.mdx Added 看板管理 / Dashboards Manage row + fixed the permission-matrix line
f021 medium missing_coverage NEW monitors/engine/self-monitoring.mdx New page (metric tables, PromQL per group, 7 recommended alerts) + nav entry
f022 medium missing_coverage monitors/alert-rules/mysql.mdx v0.76.0 variable support rewritten as a save / enable gate matching the Prometheus page
f023 low missing_coverage monitors/quickstart/quickstart.mdx Added 8 KiB rendered-value and 255-char render-failure limits
f024 medium missing_coverage ai-sre/sessions.mdx Compaction originals retrievable via session_transcript + .history/ layout
f025 low missing_coverage ai-sre/skills.mdx Added session_transcript to the allowed-tools tool enumeration
f026 medium missing_coverage developer/cli.mdx New integration subsection: ****** masking, retype-to-change, destination guard
f027 low missing_coverage ai-sre/im.mdx IM acknowledgement on async dispatch made concrete
f028 medium feature_drift on-call/statuspage/create-manage-page.mdx Custom-domain uniqueness now covers account-held WeCom domains + release semantics
f029 medium missing_coverage changelog/changelog.mdx Added <Update label="2026-10-19"> with 5 feature subsections
f030 low stale_content changelog/changelog.mdx Fixed 「弹窗」 → 「就地展开的搜索框」 in the 2026-10-14 entry

New pages are registered in docs.json for both zh and en (rum/analytics/custom-dashboards after miniprogram; monitors/engine/self-monitoring after engine-lost-alert). No path was renamed or moved, so no redirect is needed.

Review checklist

  • Config field names, defaults and limits match current code — every value in this PR was read from origin/main of the source repo, with the file quoted in the finding (see .doc-review/findings-2026-10-19-081500.html for per-finding evidence)
  • WeCom / Lark pages keep the manual path and the new QR path distinguishable; the on-page step numbers the console references (「编号和右侧文档一致」) were kept 1–6
  • Template test-send limits: per-cell limit is 2000 bytes (len(value) > FeishuTableMaxCellSize in fc-event logic/template/markdown_table.go:212), not characters — changelog and page now agree
  • Tone and structure match neighbouring pages (Lark follows the rewritten DingTalk page)
  • Two pre-existing drifts observed but not touched (out of window): zh/on-call/integration/webhooks/custom-actions.mdx lacks the TLS-verification steps that en/ has; zh/monitors/dashboards/dashboards.mdx says 「控制台暂无回收站页面」 which is true for Monit but not for RUM

Cross-repo follow-ups

api-review (generated OpenAPI surface — do not hand-edit):

  • f014: POST /template/preview/send is missing from api-reference/on-call.openapi.{zh,en}.json and therefore from openapi/api-catalog.mdx. Route: fc-event cmd/server/routes.go:336 (tmplG.POST("preview/send", template.PreviewSend)), handler cmd/server/controller/template/preview_send.go. The catalog page renders from the spec, so a hand-written row would be a broken link.
  • POST /rum/field/list responses now carry a high_cardinality property (used by f016) — same generated-spec surface, api-reference/rum.openapi.{zh,en}.json.

flashduty-website:

  • Website changelog (content/changelog/) has no entry newer than 2026-10-05, while the docs changelog now covers 10-12, 10-14, 10-15, 10-16 and 10-19. This window's features (RUM custom dashboards, template send-test + native tables, WeCom hosted access domain, Lark managed app) therefore have no website entry. Owner should decide whether to backfill.
  • Integrations catalog: no new integration shipped this window (WeCom / Feishu / Teams setup flows changed, the integrations themselves already existed), so the "60+" count claim is unaffected.

Mapping warnings

14 warnings, all from mapping.yaml going stale against the repo layout. The load-bearing ones:

  • fc-foundation-app src/Packages/{saas,monit,rum,ai-sre} are git submodules that are empty in a plain clone, so every frontend path in the mapping resolves to nothing. Repos must be mapped to the standalone clones: fc-saas-web → pages, fc-saas-monit → pages, fc-saas-rum → pages, ai-sre-web → src (repo root is the package — drop the src/Packages/<pkg>/ prefix). This round was run that way and found 118 / 60 / 59 changed frontend files that the mapping would have hidden.
  • fc-datasource is mapped only to model/{dingtalk,slack,teams,wecom} + structs/plugin.go, i.e. vendor structs; all IM setup / authorize / bind logic lives in cmd/datasource/controller and logic/data_source and had never been audited. deploy/migrations is unmapped too.
  • fc-event cmd/engine/controller/notify is unmapped — it is exactly where the notification-template behaviour of f009/f010 lives.
  • pages/Template (notification templates) has no module entry at all, although zh/on-call/configuration/templates.mdx is generated from it.
  • fc-safari: logic/tool/builtin, logic/agent, types/prompts unmapped — this window's whole AI SRE user-visible delta (builtin session_transcript, compaction recall note) landed there.
  • fc-oncall: cron, queue, naming unmapped — duty / scheduled-notification timing lives there.
  • fc-statuspage: only logic/ mapped; the customer-facing domain serving path is cmd/server/controller/page/ + deploy/k8s/.

Skipped

  • platform-aisre-2 — private-deployment appSettings.login.defaultType='ldap' / login.ldapAccountId: delivery configuration injected by the operator, not a console setting. Every other private-deployment KV (enableOncall, enableRum, rumIngestEndpoint, …) is likewise undocumented, so this is treated as a deliberate boundary. If product wants it public, it belongs in platform/configure-sso.mdx; evidence: fc-foundation-app src/pages/LoginPage/const.ts:63-70, Situations/SSOLogin/index.tsx:109-136.
  • f014 — handed off to api-review (above), not applied here.
  • Rejected during analysis (not findings): fc-oncall's cron / Kafka ack / leader-election changes (no documented claim contradicted); monit-frontend's dashboard 回收站 page (host-gated: MONIT_HOST.api does not wire listTrash / restoreDashboard, so Monit really has no trash page — only RUM does); panel_config_invalid panel state (no backend emits that reason yet); ConditionEditDialog 「多个名称请使用英文逗号分隔」 copy, which no backend splits on (possible product bug, not a docs gap); meow-ui design-system churn; fc-pgy (test files only).

flashduty[bot] and others added 2 commits October 19, 2026 08:23
…template send-test, RUM custom dashboards, monit edge self-monitoring

Window: 2026-10-16T08:12:21Z -> 2026-10-19T08:00Z, 30 findings (4 high / 20 medium / 6 low).
29 applied across 41 files (zh + en), 2 new pages registered in docs.json, 1 handed off to api-review.
mint broken-links: success, no broken links.
Resolve the wecom.mdx conflict: the rewritten setup checklist keeps its
own structure, and step 4 now lists the five SaaS trusted IPs the
console shows as one pasteable line, plus the private-deployment egress
IP case.
…e self-monitoring pages with the console and product behavior

- Templates: describe preview notices, test-send prompts and native-table fallbacks with the console's own wording; fix which limits demote every table versus only the table over the limit; stable anchors; restrict the no-table-rendering list to the channels that show raw text
- WeCom: use the console's English labels, drop internal mechanism wording, note hosted domains take no port
- Feishu/Lark: show permission group titles instead of identifiers; note an App ID used by another account is refused
- Teams, custom actions, custom forms: match console English labels and trim internals
- RUM: grouping by view_url_path is a high-cardinality grouping; trim implementation detail from custom dashboards; promote a lone H3
- Monitors: MySQL read-only check wording; self-monitoring alert expressions per instance, never-synced rule sync case, anchored link
- Changelog, permission design, CLI, session recall: wording and label fixes
@ysyneu
ysyneu merged commit da30c8e into main Oct 19, 2026
2 checks passed
@ysyneu
ysyneu deleted the doc-review/2026-10-19-081500 branch October 19, 2026 11:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant