Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
090be54
docs: clarify AI SRE beta access and billing (#107)
ysyneu Jun 25, 2026
c92fe58
docs(ai-sre): document session fork (#108)
ysyneu Jun 25, 2026
815dcc3
docs: document FlashAI A2A setup (#110)
ysyneu Jun 26, 2026
590f9f1
docs: update FlashAI A2A setup flow
ysyneu Jun 26, 2026
8169f5a
docs: clarify FlashAI A2A network access
ysyneu Jun 26, 2026
c27cc59
Merge pull request #111 from flashcatcloud/codex/flashai-outbound-docs
ysyneu Jun 26, 2026
df32d59
docs: update RUM issue alert delivery modes
ysyneu Jun 26, 2026
c863008
Merge pull request #112 from flashcatcloud/doc-review/2026-06-26-122452
ysyneu Jun 26, 2026
e2d82c4
docs: document runner binary distribution
ysyneu Jun 26, 2026
66c8b0a
Merge pull request #114 from flashcatcloud/doc-review/runner-closed-s…
ysyneu Jun 26, 2026
989689f
Merge pull request #115 from flashcatcloud/feat/doc-review-auto-fix
ysyneu Jun 26, 2026
4ad6485
Merge pull request #116 from flashcatcloud/feat/ai-sre
ysyneu Jun 26, 2026
d98e2ee
Merge pull request #117 from flashcatcloud/feat/api-review-auto-fix
ysyneu Jun 26, 2026
df70b3f
docs: clarify FlashAI A2A routing
ysyneu Jun 26, 2026
257dac2
Merge pull request #118 from flashcatcloud/codex/flashai-prompt-docs
ysyneu Jun 26, 2026
9369d98
docs: sync A2A description limits in aggregate OpenAPI
ysyneu Jun 26, 2026
a6f5268
Merge pull request #119 from flashcatcloud/codex/flashai-a2a-aggregat…
ysyneu Jun 26, 2026
0463b02
docs(statuspage): clarify event history view has no 90-day limit
ysyneu Jun 26, 2026
8b29772
Merge pull request #120 from flashcatcloud/doc-review/statuspage-hist…
ysyneu Jun 26, 2026
10a25c9
docs: refresh incremental source coverage
ysyneu Jun 29, 2026
af1a0e6
docs: add AI SRE automation API reference
debidong Jun 29, 2026
f0fcf0d
docs: add AI SRE automation API reference (#122)
debidong Jun 29, 2026
d058fb1
Merge pull request #121 from flashcatcloud/doc-review/20260629-111637
ysyneu Jun 29, 2026
bd66893
docs: rename A2A instructions field
ysyneu Jun 29, 2026
73cde3a
Merge pull request #123 from flashcatcloud/codex/a2a-instructions-api
ysyneu Jun 29, 2026
c8e19d3
docs: add ai sre automation api reference
ysyneu Jun 30, 2026
bee901e
docs(api): document RUM application links
ysyneu Jun 30, 2026
2ae1a13
docs: update RUM link integration docs
Fiona2016 Jun 30, 2026
47d0ce0
Merge pull request #127 from flashcatcloud/doc-review/20260630-194855…
Fiona2016 Jun 30, 2026
dcd7f5c
docs(rum): clarify mobile user fields
Fiona2016 Jun 30, 2026
909301f
Merge pull request #128 from flashcatcloud/doc-review/2026-06-30-rum-…
Fiona2016 Jun 30, 2026
ab30b12
docs: update alert event pagination api
ysyneu Jul 2, 2026
4ecf604
docs: refresh ai-sre resource configuration
ysyneu Jul 2, 2026
4fa9199
Merge pull request #130 from flashcatcloud/doc-review/20260702-031714
ysyneu Jul 2, 2026
fc7db36
Merge pull request #129 from flashcatcloud/codex/flashduty-api-review…
ysyneu Jul 2, 2026
bee3898
Merge pull request #125 from flashcatcloud/api-review/auto-20260630-0…
ysyneu Jul 2, 2026
daa920a
Merge pull request #124 from flashcatcloud/api-review/20260630-111500
ysyneu Jul 2, 2026
7aabf2a
docs: refresh rum api reference
ysyneu Jul 2, 2026
e54c2f3
docs: update api catalog for rum endpoints
ysyneu Jul 2, 2026
a6785c2
Merge pull request #133 from flashcatcloud/codex/rum-api-review-refresh
ysyneu Jul 2, 2026
900796c
Merge origin/main into feat/ai-sre
ysyneu Jul 2, 2026
41ff93e
Merge feat/ai-sre
ysyneu Jul 2, 2026
ae8a536
docs: refresh SDK and CLI API counts
ysyneu Jul 2, 2026
bf38f13
Merge pull request #134 from flashcatcloud/codex/update-sdk-cli-docs-…
ysyneu Jul 2, 2026
b24950c
docs(ai-sre): document runner command-permission configuration
ysyneu Jul 2, 2026
1a4c8f2
docs: add AISRE IM setup notes
debidong Jul 3, 2026
8a92e2a
docs: clarify WeCom Smart Bot visibility
debidong Jul 3, 2026
9b203e8
docs: rename WeCom Smart Robot term
debidong Jul 3, 2026
ae15839
Merge pull request #136 from flashcatcloud/codex/im-aisre-docs
debidong Jul 3, 2026
61a4230
docs(ai-sre): expand environment runner guide
ysyneu Jul 3, 2026
45bb300
Merge pull request #137 from flashcatcloud/doc-review/20260703-runner…
ysyneu Jul 3, 2026
8705eca
Merge pull request #135 from flashcatcloud/doc-review/2026-07-02-073520
ysyneu Jul 3, 2026
3f1552c
docs: sync automation API docs
ysyneu Jul 3, 2026
b2fb06d
docs(api): sync automation trigger APIs
ysyneu Jul 3, 2026
31b53fa
docs: fix miniprogram SDK package name and tracing sample rate, add d…
Fiona2016 Jul 3, 2026
91a0c73
Merge pull request #140 from flashcatcloud/docs/miniprogram-sdk-revie…
Fiona2016 Jul 3, 2026
7f8b672
Merge pull request #139 from flashcatcloud/codex/flashduty-api-review…
ysyneu Jul 3, 2026
a7bb866
docs: sync automation API docs
ysyneu Jul 3, 2026
76c8f06
Merge remote-tracking branch 'origin/doc-review/20260703-031622' into…
ysyneu Jul 3, 2026
d99d94c
Merge pull request #138 from flashcatcloud/doc-review/20260703-031622
ysyneu Jul 3, 2026
5a5662d
fix api aggr window description
pijiang3 Jul 3, 2026
4a78793
Merge pull request #141 from flashcatcloud/codex/fix-aggr-window-desc…
pijiang3 Jul 3, 2026
d90521b
docs(api): reconcile public API reference
ysyneu Jul 6, 2026
2d65896
Merge pull request #142 from flashcatcloud/codex/api-review-diff-2026…
ysyneu Jul 6, 2026
a8ccf78
docs: sync doc-review drift findings
ysyneu Jul 6, 2026
d8d8a64
Merge pull request #143 from flashcatcloud/doc-review/20260706-031624
ysyneu Jul 6, 2026
14a8cb0
docs: update OpenAPI operation count
ysyneu Jul 7, 2026
31ba79d
Merge pull request #144 from flashcatcloud/doc-review/2026-07-07-031545
ysyneu Jul 7, 2026
de978eb
ci: upload openapi json to oss
Jul 7, 2026
68bfad7
add env CDN_URL
Jul 7, 2026
835e055
docs: update dynamic dispatch append parameters
pijiang3 Jul 7, 2026
beb46dc
rename pkg name
Jul 7, 2026
668767f
Merge branch 'codex/update-dynamic-dispatch-docs'
pijiang3 Jul 7, 2026
aa3de2b
fix: build cdn refresh urls safely
Jul 7, 2026
d97341b
Merge pull request #146 from flashcatcloud/codex/upload-openapi-json-oss
niuweili Jul 7, 2026
4a39aec
feat: upload slim openapi index manifest
Jul 7, 2026
ad333d9
docs: sync doc-review drift fixes
ysyneu Jul 8, 2026
a45081e
Merge pull request #149 from flashcatcloud/doc-review/2026-07-08-031734
ysyneu Jul 8, 2026
86f7f79
docs: update changelog entries
pijiang3 Jul 8, 2026
ec2260b
Merge branch 'codex/update-changelog-20260708'
pijiang3 Jul 8, 2026
11c5592
docs: add Teams app legal pages
GraceWalk Jul 9, 2026
a6b06db
Merge pull request #150 from flashcatcloud/codex/teams-app-legal-docs
GraceWalk Jul 9, 2026
c383583
docs: sync doc-review updates
ysyneu Jul 9, 2026
979e078
docs: clarify Safari API visibility
ysyneu Jul 9, 2026
aac5114
Merge pull request #153 from flashcatcloud/codex/upload-openapi-json-oss
niuweili Jul 9, 2026
48cb3bc
Merge pull request #151 from flashcatcloud/doc-review/2026-07-09-031723
ysyneu Jul 9, 2026
7612fe1
Merge pull request #152 from flashcatcloud/codex/flashduty-api-review…
ysyneu Jul 9, 2026
97b0497
Merge pull request #154 from flashcatcloud/feat/api-review-auto-fix-2…
ysyneu Jul 9, 2026
a7d1713
docs(ai-sre): document the GitLab App on the Apps page
ysyneu Jul 10, 2026
514349a
docs: update API key and AI SRE workflows
ysyneu Jul 10, 2026
8766619
Merge pull request #155 from flashcatcloud/doc-review/auto-20260710-0…
ysyneu Jul 10, 2026
679700e
docs: sync public API contracts
ysyneu Jul 10, 2026
0430b5b
Merge pull request #156 from flashcatcloud/automation/api-review-api-…
ysyneu Jul 10, 2026
7ffb65e
Merge pull request #157 from flashcatcloud/docs/gitlab-app
ysyneu Jul 10, 2026
14274a6
Merge pull request #158 from flashcatcloud/feat/ai-sre
ysyneu Jul 10, 2026
453c6f5
docs(ai-sre): clarify the self-managed path covers JihuLab (jihulab.c…
ysyneu Jul 10, 2026
2345812
Merge pull request #159 from flashcatcloud/docs/jihulab-clarify
ysyneu Jul 10, 2026
18a85e2
Merge pull request #160 from flashcatcloud/feat/ai-sre
ysyneu Jul 10, 2026
f526fce
docs(ai-sre): fix drift and coverage gaps from doc-review audit
ysyneu Jul 11, 2026
f812543
Merge pull request #164 from flashcatcloud/doc-review/2026-07-11-004443
ysyneu Jul 11, 2026
80b7622
docs(api): regenerate AI SRE OpenAPI reference — 32 to 49 endpoints
ysyneu Jul 11, 2026
23f19f2
docs(api): drop Artifacts/Environments from public reference — regist…
ysyneu Jul 11, 2026
3e37585
Merge pull request #165 from flashcatcloud/docs/ai-sre-api-refresh
ysyneu Jul 12, 2026
59b0337
fix(api-review): parse name-keyed registry
ysyneu Jul 13, 2026
cae04ac
fix(api-review): restrict registry row matching
ysyneu Jul 13, 2026
4f49158
Merge pull request #166 from flashcatcloud/automation/api-review-api-…
ysyneu Jul 13, 2026
20559ec
docs(ai-sre): GitLab App uses a single OAuth registration path for ev…
ysyneu Jul 13, 2026
1ba21d2
Merge pull request #167 from flashcatcloud/docs/gitlab-single-path
ysyneu Jul 13, 2026
3bb431d
docs(ai-sre): GitLab connect wizard is a three-option chooser, not a …
ysyneu Jul 13, 2026
3776354
Merge pull request #170 from flashcatcloud/docs/gitlab-single-path
ysyneu Jul 13, 2026
289fd72
docs(api): sync session sharing contract
ysyneu Jul 14, 2026
4bd330e
Merge pull request #171 from flashcatcloud/automation/api-review-api-…
ysyneu Jul 14, 2026
04ef146
docs(api): sync monit diagnose evidence schema
ysyneu Jul 14, 2026
35abcf6
docs(api): model diagnose method summary union
ysyneu Jul 14, 2026
3ef2c73
docs(api): model diagnose response variants
ysyneu Jul 14, 2026
adb32df
docs(api): preserve optional diagnose evidence fields
ysyneu Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 73 additions & 5 deletions .agents/skills/api-review/mapping.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -385,6 +385,17 @@ modules:
- name: fc-rum
paths: [controller/application, logic/application, types]

rum/data:
priority: 305
tag_en: "Data query"
tag_zh: "RUM 数据查询"
icon: "chart-line"
path_prefixes: [/rum/data]
providers: [rum]
repos:
- name: fc-rum
paths: [controller/data, logic/data, types]

rum/issue:
priority: 310
tag_en: "Issues"
Expand Down Expand Up @@ -423,11 +434,11 @@ modules:
tag_en: "Facets"
tag_zh: "RUM 自定义字段"
icon: "filter"
path_prefixes: [/rum/facet]
path_prefixes: [/rum/facet, /rum/field]
providers: [rum]
repos:
- name: fc-rum
paths: [controller/facet, logic/facet, types]
paths: [controller/facet, controller/field, logic/facet, logic/field, types]

rum/sourcemap:
priority: 350
Expand Down Expand Up @@ -543,10 +554,68 @@ modules:
path_prefixes: [/push, /kv, /onboarding]
providers: [pgy]

safari/session:
priority: 580
tag_en: "Sessions"
tag_zh: "会话"
icon: "comments"
path_prefixes: [/safari/session]
providers: [safari]
repos:
- name: fc-safari
paths: [cmd/api/sessions, logic/session, types]

safari/automation:
priority: 590
tag_en: "Automations"
tag_zh: "自动化"
icon: "clock"
path_prefixes:
- /safari/automation/rule
- /safari/automation/template
- /safari/automation/run
providers: [safari]
repos:
- name: fc-safari
paths: [cmd/api/automation, logic/automation, model/automation, types]

safari/skill:
priority: 600
tag_en: "Skills"
tag_zh: "技能"
icon: "wand-magic-sparkles"
path_prefixes: [/safari/skill]
providers: [safari]
repos:
- name: fc-safari
paths: [cmd/api/skills, logic/skill, types]

safari/mcp:
priority: 610
tag_en: "MCP servers"
tag_zh: "MCP 服务器"
icon: "plug"
path_prefixes: [/safari/mcp]
providers: [safari]
repos:
- name: fc-safari
paths: [cmd/api/mcp, logic/mcp, types]

safari/a2a-agent:
priority: 620
tag_en: "A2A agents"
tag_zh: "A2A 智能体"
icon: "robot"
path_prefixes: [/safari/a2a-agent]
providers: [safari]
repos:
- name: fc-safari
paths: [cmd/api/a2a, logic/a2a, types]

_internal/safari:
hidden: true
reason: "AI agent (fc-safari) — separate product surface, not part of the public Flashduty API."
path_prefixes: [/safari, /copilot, /ai]
reason: "Internal AI agent routes that remain non-public or are not yet published."
path_prefixes: [/copilot, /ai]
providers: [safari, event]

_internal/echo:
Expand All @@ -571,4 +640,3 @@ modules:
reason: "Small unfinished surfaces; revisit when stable."
path_prefixes: [/collab, /change, /onboarding]
providers: [event, pgy]

8 changes: 5 additions & 3 deletions .agents/skills/api-review/scripts/parse_pgy_registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@
from pathlib import Path

# A row looks like:
# {ID: 15, Method: "POST", Path: "/access/external-exchange",
# {Product: "Platform", Method: "POST", Path: "/access/external-exchange",
# Name: "access:read:externalExchange", NameCN: "外部认证交换",
# Description: "...", Auth: "none", IsDangerous: false, IsAudit: false,
# Qps: 100, Provider: "pgy", Domain: "http://127.0.0.1:11482"},
# Older rows can start with `ID: <number>,`; current name-keyed rows do not.
#
# Rows can be prefixed with `//` (commented-out). The convention:
# - Commented rows = existing production APIs already persisted in the DB.
Expand All @@ -38,7 +39,7 @@
# The file is a cumulative ledger; nothing deletes a row once registered.

ROW_RE = re.compile(
r"""^\s*(?P<commented>//\s*)?\{ID:\s*(?P<id>\d+)\s*,\s*(?P<fields>.*)\},?\s*$""",
r"""^\s*(?P<commented>//\s*)?\{(?:ID:\s*(?P<id>\d+)\s*,\s*|(?=\s*Product:))(?P<fields>.*)\},?\s*$""",
re.VERBOSE,
)

Expand Down Expand Up @@ -76,10 +77,11 @@ def parse_file(path: Path) -> list[dict]:
continue

row: dict = {
"id": int(m.group("id")),
"commented": m.group("commented") is not None,
"line": lineno,
}
if m.group("id") is not None:
row["id"] = int(m.group("id"))

for fm in FIELD_RE.finditer(m.group("fields")):
key = fm.group("key")
Expand Down
10 changes: 8 additions & 2 deletions .github/workflows/integration-docs-upload.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: Upload integration docs to OSS

env:
CDN_URL: 'https://docs-cdn.flashcat.cloud'

on:
push:
branches: [main, test]
Expand All @@ -9,6 +12,7 @@ on:
- 'en/on-call/integration/**'
- 'zh/on-call/configuration/templates.mdx'
- 'en/on-call/configuration/templates.mdx'
- '.github/workflows/integration-docs-upload.yml'
workflow_dispatch:
inputs:
environment:
Expand Down Expand Up @@ -40,6 +44,10 @@ jobs:
working-directory: integration-docs
run: npm run check

- name: Test upload URL construction
working-directory: integration-docs
run: npm run test:upload-url

upload-development:
needs: build-check
if: github.ref == 'refs/heads/test' || (github.event_name == 'workflow_dispatch' && github.event.inputs.environment == 'development')
Expand All @@ -66,7 +74,6 @@ jobs:
CDN_BUCKET: ${{ secrets.CDN_BUCKET }}
CDN_REGION: ${{ secrets.CDN_REGION }}
CDN_ENDPOINT: ${{ secrets.CDN_ENDPOINT }}
CDN_URL: ${{ secrets.CDN_URL }}
CDN_DIR: '/test/docs'
run: npm run upload

Expand Down Expand Up @@ -96,6 +103,5 @@ jobs:
CDN_BUCKET: ${{ secrets.CDN_BUCKET }}
CDN_REGION: ${{ secrets.CDN_REGION }}
CDN_ENDPOINT: ${{ secrets.CDN_ENDPOINT }}
CDN_URL: ${{ secrets.CDN_URL }}
CDN_DIR: '/docs'
run: npm run upload
105 changes: 105 additions & 0 deletions .github/workflows/openapi-json-upload.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: Upload OpenAPI JSON to OSS

env:
CDN_URL: 'https://docs-cdn.flashcat.cloud'

on:
push:
branches: [main, test]
paths:
- 'api-reference/*.json'
- 'integration-docs/scripts/cdn-url.mjs'
- 'integration-docs/scripts/cdn-url.test.mjs'
- 'integration-docs/scripts/upload-openapi.mjs'
- 'integration-docs/scripts/upload-openapi.test.mjs'
- 'integration-docs/package.json'
- '.github/workflows/openapi-json-upload.yml'
workflow_dispatch:
inputs:
environment:
description: 'Target environment'
required: true
default: 'development'
type: choice
options:
- development
- production
- both

jobs:
test-openapi-upload:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18

- name: Install dependencies
working-directory: integration-docs
run: npm install

- name: Test OpenAPI upload script
working-directory: integration-docs
run: npm run test:openapi-upload

upload-development:
needs: test-openapi-upload
if: github.ref == 'refs/heads/test' || (github.event_name == 'workflow_dispatch' && (github.event.inputs.environment == 'development' || github.event.inputs.environment == 'both'))
runs-on: ubuntu-latest
environment: development
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18

- name: Install dependencies
working-directory: integration-docs
run: npm install

- name: Upload development OpenAPI JSON
working-directory: integration-docs
env:
CDN_ACCESS_KEY: ${{ secrets.CDN_ACCESS_KEY }}
CDN_SECRET_KEY: ${{ secrets.CDN_SECRET_KEY }}
CDN_BUCKET: ${{ secrets.CDN_BUCKET }}
CDN_REGION: ${{ secrets.CDN_REGION }}
CDN_ENDPOINT: ${{ secrets.CDN_ENDPOINT }}
CDN_DIR: '/test/docs'
run: npm run upload:openapi

upload-production:
needs: test-openapi-upload
if: github.ref == 'refs/heads/main' || (github.event_name == 'workflow_dispatch' && (github.event.inputs.environment == 'production' || github.event.inputs.environment == 'both'))
runs-on: ubuntu-latest
environment: production
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 18

- name: Install dependencies
working-directory: integration-docs
run: npm install

- name: Upload production OpenAPI JSON
working-directory: integration-docs
env:
CDN_ACCESS_KEY: ${{ secrets.CDN_ACCESS_KEY }}
CDN_SECRET_KEY: ${{ secrets.CDN_SECRET_KEY }}
CDN_BUCKET: ${{ secrets.CDN_BUCKET }}
CDN_REGION: ${{ secrets.CDN_REGION }}
CDN_ENDPOINT: ${{ secrets.CDN_ENDPOINT }}
CDN_DIR: '/docs'
run: npm run upload:openapi
Loading