Skip to content

docs(faq): stop citing a Setup AI group that does not exist - #1616

Merged
os-steve merged 1 commit into
mainfrom
claude/issue-1591-faq-ai-nav-paths
Sep 6, 2026
Merged

docs(faq): stop citing a Setup AI group that does not exist#1616
os-steve merged 1 commit into
mainfrom
claude/issue-1591-faq-ai-nav-paths

Conversation

@os-steve

@os-steve os-steve commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Fixes #1591

The FAQ's two AI Copilot answers sent readers to Setup → AI → Knowledge Bases → Refresh (line 107) and Setup → AI → Health (line 120), in all three locales. Setup ships no AI group, so neither path has a first segment, let alone a screen at the end of it.

The two open questions were measurements, and both are now answered

Resolved on origin/main @ 9924ee1a against the installed platform package, the way test/docs-setup-navigation-names.test.ts builds its roster (SETUP_APP.navigation + SETUP_NAV_CONTRIBUTIONS + SetupAppTranslations) — 215 Setup labels / 109 Studio labels across the four shipped locales (en / zh-CN / ja-JP / es-ES).

⚠️ The dispatch's pin was stale. It named @objectstack/* 17.2.0; the repo pins and installs 17.3.0 at this base (package.json, pnpm-lock.yaml). Everything below is measured against 17.3.0.

The roster, re-derived (the card's claims all hold):

  • Setup's nine groups are Overview, Apps, People & Organization, Access Control, Approvals, Configuration, Diagnostics, Integrations, Advanced. No AI group.
  • AI is a group — in Studio (group_ai, holding Agents / Tools / Skills). Docs cite 39 more Setup navigation names the platform ships nowhere — the remainder #853 quarantined rather than fixed #1113's second pass again: a real label cited under the wrong app.
  • Knowledge Bases, Refresh and Health resolve to nothing in either app in any of the four locales — as do 健康 / 刷新 / 索引. Setup has no dashboard of any kind (the only Dashboards is Studio's metadata designer).

Q1 — does a knowledge re-index surface exist at all? No. So line 107 is a denial.

  • The Copilot queries published crm_knowledge_article records directly. HotCRM declares no knowledge source: objectstack.config.ts has no such key and nothing in src/ references one.
  • The platform does ship a vector store, configured at Setup → Configuration → Knowledge (nav_settings_knowledge, settings namespace knowledge) — adapter choice (memory / Turso / RAGFlow), connection, chunking defaults, RLS. Its only action button is Test connection. There is no re-index or refresh gesture on it, and nothing in this app consumes it.
  • The single occurrence of the string re-index in the installed settings tree is a warning inside that page's own description: "Switching adapter does NOT migrate existing indices — documents indexed under the previous adapter become unreachable until re-indexed." Every Refresh hit in the tree is session_refresh_days, an auth setting.
  • content/docs/ai-copilot/knowledge-bases.mdx already says it in its own words: "No nightly re-index and no manual re-index button."

⇒ Line 107 now denies the index and ends somewhere useful — correct the article at Service → Knowledge, since a saved edit is live immediately.

Q2 — is Configuration → AI & Embedder a health surface? No — provider configuration only.

Settings namespace ai, described by the package as "LLM provider, model, credentials, and embedder configuration". It carries provider selection, API keys, models, generation defaults, conversation-title options and two observability toggles. Its only gestures are three buttons — Test connection, Test embedder, Reset to environment defaults — a point-in-time probe, not a monitor. Nothing on it reports latency or throughput.

⇒ Line 120 now denies the dashboard, names that page for what it is, and drops "knowledge-base re-indexing in progress" from the list of causes, because nothing re-indexes.

What changed

Exactly 6 lines, 3 files — lines 107 and 120 in each face, nothing else on the page, no src/, no test/**, no new guard.

Per the ruled shape (#1402 / PR #1401): say what actually ships, put a denial where nothing does, redirect only to a path that resolves live. Denied paths stay italic; the two live paths are now bold, which moves both claims out of the shape no guard parses and into the one #853's rule 2 and #1117's rule 3 resolve live. Per #1368 the zh-Hant face names navigation in English; the zh-Hans face uses the zh-CN labels the console shows (设置 → 配置 → AI 与 Embedder, 服务 → 知识库).

Evidence

gate result
test/docs-setup-navigation-names.test.ts 18 passed, exit 0
pnpm test (full suite) 160 files, 3392 passed, 1 skipped, exit 0
pnpm lint:i18n-gate exit 0 — ✓ 0 i18n/missing-* issues
pnpm hygiene exit 0 — ✓ source hygiene clean (incl. no raw control bytes)
pnpm hygiene:tokens exit 0 — ✓ source token ratchet clean, figures unmoved (it measures src/**/*.ts; this diff is docs-only)

All quoted from each gate's own verdict line at dbe0ac06, with the exit code captured before any pipe.

Ablation — the green is not vacuous. From the committed state, **Service → Knowledge** was mutated to **Service → Knowledge Bases** in faq.mdx. The mutation was proven on disk (blob e3164600…5e17c02d…; anchor counts flipped 1→0 and 0→1) and the guard went red, naming the citation itself: content/docs/reference/faq.mdx: 'Service → Knowledge Bases' (exit 1, 1 failed / 17 passed). Restoring with git checkout HEAD -- returned the exact HEAD blob, left git diff HEAD empty, and the suite went green again (18 passed). So rule 3 genuinely resolves the new citation rather than passing over it.

No gate reads this prose. None of the greens above is evidence that the paths are right — that rests on the roster resolution above, against @objectstack/* 17.3.0 at 9924ee1a.

skip-changeset does not apply: .changeset/faq-ai-answers-stop-citing-a-setup-ai-group.md is included, and carries no site-absolute links (link-check opens the changeset but none of the three .mdx pages).

Out of scope, filed not swept

#1614content/docs/administration/setup.{mdx,zh-Hans,zh-Hant} line 136 cites the same non-existent Setup → AI group. Bare parenthesised prose, so invisible to both guard rules for a third reason (distinct from this card's italics). Not touched here: the dispatch fences this PR to the faq pages, and the correct replacement needs its own measurement.

🤖 Generated with Claude Code

https://claude.ai/code/session_018xtjdpZFjgWh4Ad9Wcx68J


Generated by Claude Code

The FAQ's two AI Copilot answers sent readers to *Setup → AI → Knowledge
Bases → Refresh* and *Setup → AI → Health*. Setup ships no AI group, so
neither path has a first segment. Re-resolved against the installed
platform (@objectstack/* 17.3.0) the way
test/docs-setup-navigation-names.test.ts builds its roster: Setup's nine
groups carry no AI, and AI is a Studio group holding Agents/Tools/Skills.
Knowledge Bases, Refresh and Health resolve to nothing in either app in
any of the four shipped locales.

Both replacements are denials that end somewhere live. Nothing
re-indexes: the Copilot queries published crm_knowledge_article records
directly, HotCRM declares no knowledge source, and a saved edit is live
immediately, so the reader is sent to Service → Knowledge to fix the
article. Configuration → AI & Embedder is provider configuration, not
health: its settings namespace is `ai`, its only gestures are Test
connection, Test embedder and Reset to environment defaults, and nothing
on it reports latency.

Both paths are now bold, which moves the claims from a shape no guard
parses into the one rule 2 and rule 3 resolve live — the italics are why
these two lines survived every pass that cleared the quarantine ledger.

Fixes #1591

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018xtjdpZFjgWh4Ad9Wcx68J
@vercel

vercel Bot commented Sep 6, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
hotcrm Ignored Ignored Sep 6, 2026 12:13am UTC

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant