docs(faq): stop citing a Setup AI group that does not exist - #1616
Merged
Conversation
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
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
This was referenced Sep 6, 2026
os-steve
marked this pull request as ready for review
September 6, 2026 00:19
This was referenced Sep 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
AIgroup, 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@9924ee1aagainst the installed platform package, the waytest/docs-setup-navigation-names.test.tsbuilds 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).@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):
AIgroup.AIis 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,RefreshandHealthresolve to nothing in either app in any of the four locales — as do 健康 / 刷新 / 索引. Setup has no dashboard of any kind (the onlyDashboardsis Studio's metadata designer).Q1 — does a knowledge re-index surface exist at all? No. So line 107 is a denial.
crm_knowledge_articlerecords directly. HotCRM declares no knowledge source:objectstack.config.tshas no such key and nothing insrc/references one.nav_settings_knowledge, settings namespaceknowledge) — 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.re-indexin 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." EveryRefreshhit in the tree issession_refresh_days, an auth setting.content/docs/ai-copilot/knowledge-bases.mdxalready 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 & Embeddera 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/, notest/**, 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
test/docs-setup-navigation-names.test.tspnpm test(full suite)pnpm lint:i18n-gate✓ 0 i18n/missing-* issuespnpm hygiene✓ source hygiene clean(incl. no raw control bytes)pnpm hygiene:tokens✓ source token ratchet clean, figures unmoved (it measuressrc/**/*.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**infaq.mdx. The mutation was proven on disk (blobe3164600…→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 withgit checkout HEAD --returned the exact HEAD blob, leftgit diff HEADempty, 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.0at9924ee1a.skip-changesetdoes not apply:.changeset/faq-ai-answers-stop-citing-a-setup-ai-group.mdis included, and carries no site-absolute links (link-check opens the changeset but none of the three.mdxpages).Out of scope, filed not swept
#1614 —
content/docs/administration/setup.{mdx,zh-Hans,zh-Hant}line 136 cites the same non-existentSetup → AIgroup. 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