Skip to content

docs(doc-review): daily review 2026-11-09 — AI SRE data masking, RUM iOS CPU metrics, AI SRE byline settings - #1174

Open
flashduty[bot] wants to merge 1 commit into
mainfrom
doc-review/2026-11-09T091831Z
Open

flashduty[bot] wants to merge 1 commit into
mainfrom
doc-review/2026-11-09T091831Z

Conversation

@flashduty

@flashduty flashduty Bot commented Nov 9, 2026

Copy link
Copy Markdown

Doc Review — 2026-11-09

Mode: diff (window 2026-11-04T08:11:38Z → 2026-11-09T09:18Z, 5 days, scope all, auto)
Findings: 7 total — 1 high, 4 medium, 2 low (3 applied-and-drafted below, 1 applied as a separate file pair, 3 held)

Why this window is 5 days: the 11-05 and 11-06 doc-review runs died with their execution environment and produced no PR, so this run covers that gap as well. Window start resolved per repo with git rev-list -1 --first-parent --before=2026-11-04T08:11:38Z origin/<default> (docs repo: 2310c154).

Changes

Finding Type Module Doc Action
f001 missing_coverage (high) ai-sre zh/ai-sre/masking.mdx + en/ai-sre/masking.mdx (new) New page for per-session data masking: where the setting lives (More → Data masking in a session), how masked values appear ([MASK_<CATEGORY>_<hex>], data terms restored in the UI, secret terms never shown), the four automatic-detection categories with defaults, custom data/secret terms (ignore case, whole words), custom formats (prefix or RE2 regex), the private detection model (min confidence, never leaves Flashduty), preview and session summary, and the limits (1,000 entries, 16 KB per term, 256 KB per text). Registered in docs.json under AI SRE → 对话/Chat for both languages.
f002 feature_drift (medium) rum `zh en/rum/analytics/native.mdx`
f003 missing_coverage (medium) on-call `zh en/on-call/configuration/personal-settings.mdx`

Held / not applied

Finding Type Doc Why not applied
f004 config_drift (low) rum/analytics/native.mdx (指标口径 → 使用频次) The denominator moved from 活跃用户数 to 活跃设备数, but the device count is only shown for apps whose active_devices_enabled flag is on (deploy.active_devices_accounts). Editing a public metrics table to a value only some accounts see would make it wrong for the rest. Needs a product call on whether this is GA.
f005 missing_coverage (medium, derivative) `zh en/changelog/changelog.mdx`
f007 missing_coverage (low, derivative) `zh en/on-call/comparison/vs-pagerduty.mdx, vs-opsgenie.mdx`

Review checklist

  • Verify config field names and defaults match current code
  • Check that feature descriptions accurately reflect user-facing behavior
  • Ensure tone and style match the rest of the docs
  • Reader-fit deletions removed only mechanism, never a limit, default, or behavior the reader relies on

Cross-repo follow-ups (flashduty-website)

  • f006 — website changelog (content/changelog/): session data masking shipped inside this window and has no website changelog entry. Needs a dated .mdx + .zh.mdx pair in flashduty-website. Suggested angle: AI SRE 会话级数据脱敏 — 密码/令牌/个人信息在发送给模型前替换,数据词可还原、秘密词不可还原,敏感值不离开 Safari 自己的服务。
  • Integrations catalog: not touched this round (no new alert source or integration shipped; BlueKing ITSM and Aliyun CMS v2 were already documented here in-window).

Mapping warnings

  • fc-foundation-app → src/Packages/ai-kit: the submodule remote https://github.com/flashcatcloud/ai-kit.git does not exist. Skipped (repos_skipped); the path is not used by any module.
  • flashduty-docs → on-call/quickstart/comparison.mdx: does not exist. This run used the real comparison pages zh|en/on-call/comparison/vs-pagerduty.mdx and vs-opsgenie.mdx, as hand-added to the mapping in claude-plugins-flashduty#101. The distributed skill copy still points at the old path.
  • Hand-added this round because the local skill copy predates claude-plugins-flashduty#101: fc-event cmd/engine/controller/notify/, logic/license, cmd/server/controller/license, logic/resource, structs/license.go, structs/ai_sre.go; fc-rum cmd/server/controller/data/; fc-foundation-app src/Packages/saas/pages/StatusPage, OnboardingOncall. All were read; the only user-facing changes in them were the license window-usage rules, which zh/platform/pricing.mdx and team-members.mdx already cover (their rules match structs/license.go LicenseRuleLaunchAt = 2026-11-09 +08:00 and LicenseRuleOldAccountAt = 2027-01-01). logic/privacy in fc-safari (not in any mapped path) was read for f001.

Skipped

False positives and out-of-window-scope changes reviewed and deliberately not documented:

  • fc-event logic/incident/assign.go, logic/alert/async.go (batch send to the L1 lane), logic/incident/vector.go (embedding retry jitter): no user-facing field, label, or limit changed.
  • fc-pgy logic/api_key, logic/member, logic/sso: ciphertext refactor (sealed keys, password_hash column). Nothing a reader types or sees changes.
  • monit-webapi logic_resource.go (invite-code enable → automatic enable with a named lock), logic_sls.go / logic_tencent_cls.go / logic_websocket.go (401 normalisation, 413 for oversized datasource responses): internal enable path and proxy status mapping. The docs never mentioned 邀请码, and no public API contract changed (the datasource proxy is not in the public API reference).
  • monit-edge alerter/** error-status refactor: same reason.
  • fc-rum cmd/server/controller/data/fetch.go (Doris NULL-order cursor pagination) and logic/sourcemap/ios.go (redacted frames named by library + offset): behaviour fixes with no mechanically verifiable doc claim; the pagination context is an api-reference detail.
  • fc-statuspage logic/subscription/subscription.go (confirm-on-click with a claim key) and logic/notifier/wecom.go: no documented field or stated behaviour contradicted.
  • fc-safari logic/environment/token_seal.go, logic/runner/*, logic/session/actor/*, flashduty-runner (no commits), flashduty-mcp-server / terraform-provider-flashduty / flashduty-cli / go-flashduty (no commits), monit-webapi companion fc-saas-monit submodule (no commits in window).
  • fc-foundation-app src/pages/Access/Member/license/* (SettingsDialog, TransferDialog, RevokeDialog, UsageCard): already described by the in-window platform/pricing + team-members updates (自动获取/固定分配, 整理 License, 本周期 License 状态).
  • fc-datasource structs/plugin.go (+2 lines) and flashduty-app (no changes in src/pages/incident).
  • Feishu thread-reply hint in pages/Channel/.../FeishuAndDdForm.tsx (comment text is not shown in the card footer): self-explanatory UI hint; instant-messaging/lark.mdx already documents 话题回复.

Dedup against open PRs

PR State Overlap Action
#1165 open RUM session AI summary, native crash-rate wording, per-rule new-alert limit, engine install addresses, AI SRE session credits, changelog.mdx Not repeated. Its six items stay untouched (already noted as "covered by #1165"). This PR touches rum/analytics/native.mdx only at the performance-metrics list and per-view bullet (lines ~48-57 / ~71-72), not the 概览/异常分析/指标口径 hunks #1165 rewrites; it does not touch ai-sre/sessions.mdx or changelog.mdx at all. Merge order is free, but a git pull --rebase may be needed if #1165 lands first.
#1164 open api-reference: FeedItem.byline, escalate layers minItems, RumApplicationItem.session_summary_enabled, SessionGetRequest.include_credits_usage, SessionItem.credits_usage_nano Not repeated; no api-reference file touched here. f003 documents the console setting behind the timeline byline, which is a different surface from FeedItem.byline.
#1153 open rum/sdk/harmony/data-collection.mdx (crash threads/memory) No overlap; that page is not touched.
#1152 merged 2026-11-05 BlueKing ITSM Already reflected on main (on-call/integration/webhooks/blueking-sync.mdx); this run verified the incident-detail BlueKing panel (创建或关联蓝鲸工单 / 刷新状态 / 核对后重试 / 创建结果待核对) is covered there and added nothing.
#1168 open `zh en/rum/sdk/web/advanced-config.mdx` + image

Validation

  • mint broken-links (mint 4.3.8, Node 20.18.1): exit 0, success no broken links found, 0 error lines. The known 36 on-call/integration/alert-integration/alert-sources/*.mdx parse failures did not reproduce this run.
  • jq empty docs.json: OK (only 2 added lines, formatting preserved).
  • Changed-vs-skipped coverage check: comm -12 <changed files> <skipped list> → 0 lines, i.e. every file this PR changes was re-read against source, and no file appears both as changed and as deliberately skipped.
  • Facts verified against source: zh|en/ai-sre/masking.mdx (safari cmd/api/sessions/masking.go, logic/privacy/{policy,service}.go, logic/session/fork.go, ai-sre-web SessionMaskingTermsDialog.tsx, SessionHeaderOverflowMenu.tsx, api/client.ts); native.mdx (rum Native/Performance/index.tsx, NativePerformanceTable.tsx, utils/platform.tsx NATIVE_VITAL_SUPPORT, Performance/constants.ts, Dashboard/locales/zh_CN.json); personal-settings.mdx (fc-foundation-app src/pages/Settings/Profile/{index,BylineSelect,TimelineBylineField,EmailFromBylineField}.tsx, locales/zh_CN.json|en_US.json, fc-event logic/preference/preference.go, logic/incident/async.go).

Uncertainty

  • f001 states masking applies to stored history and to credential values injected into the environment; this is what protectFoldedUserContentMaps / ObserveSecrets do, but the exact ordering for every provider adapter was not traced end to end.
  • f001 limits (1,000 entries / 16 KB / 256 KB) are the code defaults (defaultMaxEntries, defaultMaxValueBytes, defaultMaxPayloadBytes) and are configurable per deployment; the page says "上限(默认)" for that reason.
  • f001 documents masking as available "when your deployment enables it" (logic/privacy.Enabled(), config.C.Masking.Enabled). If a deployment ships masking off, the menu item is absent, which the page states.
  • The 主线程 CPU / CPU 占用 tooltips in the console mention P50/P75/P90 and mean values for trends; the page carries only the P75 + "no rating" facts, not the full trend breakdown.

…ng, RUM iOS CPU metrics, AI SRE byline settings

Blanket window 2026-11-04T08:11:38Z -> 2026-11-09T09:18Z (covers the 11-05 and 11-06 runs that produced no PR).

- new zh/en ai-sre/masking: per-session data masking (auto-detection categories,
  custom data/secret terms, prefix/RE2 rules, private detection model, preview,
  session summary, limits), registered in both navigations
- rum/analytics/native: iOS-only CPU usage and main thread CPU metrics (card and
  view columns, iOS SDK 0.9.0+); CPU consumption keeps its own name
- on-call/configuration/personal-settings: AI SRE byline section (incident
  timeline attribution, email sender name)

This branch has not been deployed

No deployments
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.

0 participants