Repository navigation
docs: make the upgrade, AI and help pages follow their public sources - #303
Merged
Merged
Conversation
- operate/upgrade is the Docker page's digest procedure: back up first, change the digest, and roll back to the previous digest; the image rollback does not roll the schema back. The Compose file from the retired server repository is gone. - configure/ai no longer installs or registers @objectstack/service-ai, which left the open distribution in ObjectStack 11.0. It says where the in-product AI provider is configured (the ai settings namespace and the OS_AI_* variables) and follows the public READMEs for the embedder, knowledge and MCP packages. - reference/runtime-capabilities no longer names service-ai as the package behind the ai capability, nor the retired service-feed. - resources/faq and resources/support send help to the issue tracker, not to GitHub Discussions, which is turned off on this repository. - The locale siblings of the three rewritten pages are deleted (ruling A of #256); zh-Hant is regenerated. Claude-Session: https://claude.ai/code/session_01FeA1nwBz1ohH65dvffUGKr Co-authored-by: Claude <noreply@anthropic.com>
This was referenced Oct 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 #297
Three docs pages gave instructions that fail. This PR rewrites them to follow public sources. Each corrected sentence is listed below with the public source line it now follows. No sentence cites or quotes a private repository.
Sources used
objectstack-ai/objectstackat753e7a1c(itsorigin/mainon 2026-10-06). The repository is public, and every file cited is a content doc, the CHANGELOG, or a package README.objectstack-ai/objectosat the base3b17984.npm view @objectstack/service-ai versionreturned10.3.0, last modified 2026-06-23.npm view @objectstack/cli versionreturned17.6.0.npm view @objectstack/service-feed versionreturned9.7.0.17.6.0.1.
operate/upgrade.mdxnow followsdeploy/docker.mdxThe page is now the Docker page's procedure as a checklist, plus three cross-references to sentences that already exist in this repo.
deploy/docker.mdx:152-166deploy/docker.mdx:6,:26,:39("Keep the previous digest too. That is what a rollback is.")docker compose -f docker/docker-compose.yml pull/up -ddeploy/docker.mdx:154-163;/api/v1/readyfrom:121deploy/docker.mdx:159-160docker compose -f docker/docker-compose.yml up -d objectosdeploy/docker.mdx:39,:164-166deploy/kubernetes.mdx:81-82deploy/air-gapped.mdx:97-99.air-gapped.mdx:121already called this page "the procedures the steps above summarise".cp … docker/artifacts/objectstack.json+docker compose … restart objectos; cloud-connected pointer steps), "Rollback artifact"deploy/kubernetes.mdx:84-86;operate/backup.mdx:107,:116-117Deleted with no replacement. These claims are not in the Docker procedure. Step 1 of that procedure covers the compatibility check.
backup.mdxsentence above.2.
configure/ai.mdxno longer installs@objectstack/service-aiRemoved.
@objectstack/service-airow of the layer table.import { AIServicePlugin, VercelLLMAdapter } from '@objectstack/service-ai'and itskernel.use(new AIServicePlugin(…))block.pnpm add @ai-sdk/*"peer deps" step.kernel.getService('ai')example, typed withIAIService.…/packages/services/service-ai.Rewritten. Each sentence follows the source on its row.
askdata-query assistant, thebuildauthoring assistant, and the/api/v1/ai/*chat endpoints — on top of AI primitives that ship in the open-source ObjectStack framework: the MCP server, the Knowledge Protocol and its adapters, and the embedder."content/docs/ai/index.mdx:16-22deploy/docker.mdx:74-77aisettings namespace, Setup → Configuration → AI & Embedder, orOS_AI_*, which ships in ObjectOS. Embeddings and Knowledge/RAG: the open packages. MCP: on by default at/api/v1/mcp, andOS_MCP_SERVER_ENABLED=falseturns it off.content/docs/ui/setup-app.mdx:55;content/docs/deployment/environment-variables.mdx:162-168,:179;content/docs/ai/knowledge-rag.mdx:12; this repoconfigure/mcp.mdx:6-15@objectstack/service-aileft the open ObjectStack distribution in 11.0; the AI runtime it provides ships with ObjectOS, not with the open-source framework."CHANGELOG.md:1726,:1734-1737;content/docs/api/client-sdk.mdx:182("the surfaceservice-ai(Cloud/EE) mounts");environment-variables.mdx:163-164; npm10.3.0ainamespace, so they resolve like every other setting: an environment variable wins over the value stored in Setup, and locks it." This replaces "In Setup you can paste these as runtime settings instead — they go through the same precedence (env > settings) but live editing means no restart."environment-variables.mdx:179,:183,:206-210; this repoconfigure/system-settings.mdx:25-42OS_AI_*variable table:OS_AI_PROVIDERand its values, plus the OpenAI, Anthropic, Google, gateway and preset-provider rows. The preset rows are spelledOS_AI_+ provider +_API_KEY/_MODEL.environment-variables.mdx:179-190environment-variables.mdx:217-225OPENAI_BASE_URLis not a platform-level variable."environment-variables.mdx:231-234AI_GATEWAY_MODEL, thenOPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_GENERATIVE_AI_API_KEY, thenMemoryLLMAdapterecho. The upstream names are not renamed.OS_AI_MODELoverrides the model id. After boot, the runtime swaps the adapter from theainamespace. This replaces the old provider env-var table and "rebuilds the adapter live when an operator edits … so no restart is needed".environment-variables.mdx:172-177,:192-203,:227-229. Step 1 of the source list, an explicitAIServicePlugin({ adapter }), is left out because it is the removed package./api/v1/ai/*(chat, completion, models, conversations) and the@objectstack/clientainamespace:ai.chat,ai.chatStream,ai.complete,ai.models,ai.conversations. This replaces "Conversations are persisted asai_conversations/ai_messagesrecords … (POST /api/v1/ai/chat,POST /api/v1/ai/conversations)" andcomplete(),streamChat(),embed(),listModels().content/docs/api/plugin-endpoints.mdx:7,:105-117;client-sdk.mdx:182,:379-392POST /v1/embeddingsshape: OpenAI, Azure OpenAI, DashScope, Zhipu BigModel, SiliconFlow, Doubao, MiniMax, Ollama, or your own gateway."packages/plugins/embedder-openai/README.md:3-15apiKeyand adds "apiKeyis required". The old example said "apiKey from OPENAI_API_KEY env if omitted", which fails: the README marksapiKeyrequired, and the constructor throws.embedder-openai/README.md:41-47,:106@objectstack/knowledge-memoryand@objectstack/knowledge-ragflowtake no embedder option." This replaces "Or pick at runtime from Setup → Configuration → AI → Embedder. Switch providers without restart; existing vectors stay searchable (you can re-index in the background)."embedder-openai/README.md:94-96content/docs/ai/knowledge-rag.mdx:9packages/plugins/knowledge-memory/README.md:5;packages/plugins/knowledge-ragflow/README.md:5sources: [...]shape instead of{ defaultTopK: 10 }with no sources. It is labelled "In the open framework".knowledge-ragflow/README.md:14-35knowledge-ragflow/README.md:39search_knowledgetool is part of the ObjectOS runtime." These replace "Indexed knowledge bases become first-class objects — query them from flows, surface them in your apps, attach them to AI assistants as retrieval context."knowledge-rag.mdx:65-68,:76/api/v1/mcp— on by default, no plugin to install — and can serve it over stdio as well", with a link to Connect AI Tools (MCP).configure/mcp.mdx:6-9,:98-101list_objects,describe_object,query_records,get_record, andaggregate_data." The open MCP aggregate tool isaggregate_records. The current tool list lives onconfigure/mcp.mdx.packages/mcp/README.md:13,:70-72; objectstackcontent/docs/ai/natural-language-queries.mdx:15-22,:31-33The
MCPServerPlugincode block is kept unchanged, because@objectstack/mcpis at 17.6.0 andpackages/mcp/README.md:59-62documentstransportandautoStart.Deleted because no public source documents them (open question 2):
knowledge-memory/README.md:5says the memory adapter is "Not for production".aisettings manifest declaresscope: 'global'(objectstackpackages/services/service-settings/src/manifests/ai.manifest.ts:29).@objectstack/plugin-audit)."3.
reference/runtime-capabilities.mdx`ai`→`@objectstack/service-ai``ai`→ "Not a framework package: the AI runtime ships with ObjectOS (AI Service)"CHANGELOG.md:1734-1737;content/docs/api/client-sdk.mdx:182;environment-variables.mdx:163-164; npm10.3.0`feed`→`@objectstack/service-feed`("Comments, reactions, subscriptions, activity feed")content/docs/references/data/feed.mdx:11-12("Theservice-feedbackend was retired …sys_comment/sys_activityare the canonical record-collaboration/timeline backend"); npm9.7.0The
feedrow is a bounded in-place fix the card did not name. It is the same defect, a package that no longer ships, on the same table and in the card's file surface. It is named here as the contract for that exemption requires.4. Help links: GitHub Discussions is off on this repo
has_discussionsisfalseonobjectstack-ai/objectos.README.md:23-24names the issue tracker as the public channel. Line numbers in this section are the base's.resources/faq.mdx:218resources/support.mdx:10resources/support.mdx:16funding":58"Custom plugins / capabilities built to your spec" and:61"Contact sales@objectstack.ai". Nofundinglabel exists on this repo.resources/support.mdx:43The card named
support.mdx:10only.:16and:43point at the same disabled feature on the same page, so they are fixed here as the same defect.Locale siblings: ruling A of #256, decided per page
operate/upgradeupgrade.{de,es,fr,ja,ko,zh-Hans,zh-Hant}.mdx. Each still saysdocker compose -f docker/docker-compose.yml pull, and its rollback cell says previous container tag ("Vorheriger Container-Tag", "上一个容器标签", …).configure/aiservice-aiinstall/import and the no-restart, per-tenant and audit claims are removed.ai.{de,es,fr,ja,ko,zh-Hans,zh-Hant}.mdx. Each still carriesimport { AIServicePlugin, VercelLLMAdapter } from '@objectstack/service-ai';(zh-Hans and zh-Hant:import { ServiceAI } from '@objectstack/service-ai';) and the 404 source link.reference/runtime-capabilitiesaipackage is reversed and thefeedrow removed.runtime-capabilities.{de,es,fr,ja,ko,zh-Hans,zh-Hant}.mdx. Each still has the rows`ai`→`@objectstack/service-ai`and`feed`→`@objectstack/service-feed`.resources/faqresources/supportzh-Hantwas pruned bygen-zh-hant.mjs, which reported "3 stray file(s) removed". It was not deleted by hand. The routes of the deleted siblings now serve the current English page. The crawl below shows 40 of 40 locale × page URLs answering 200.Verification
All of this ran on the final commit
39e6653, base3b17984.node apps/docs/scripts/gen-zh-hant.mjs --check✓ zh-Hant: 61 generated file(s) match the zh-Hans sources byte for byte.pnpm turbo run type-check --continueTasks: 1 successful, 1 total·Cached: 0 cached(cache miss)NEXT_PRIVATE_STANDALONE=true pnpm turbo run build✓ Compiled successfully·✓ Generating static pages … (1052/1052)·Tasks: 1 successful(cache miss)node .github/scripts/check-locale-surface.mjs✓ every advertised URL has a source file and every source file is advertised; …node .github/scripts/check-positioning.mjs✓ positioning: 3 copies equal the constant; the brand is right in 659 pages and 2 llms bodies; no stale sentence in 79 English sources …node .github/scripts/check-search-locales.mjs✓ search locales: all 8 locales answer 200, …pnpm turbo run test --force✓ 10 self-test(s) passed·Tasks: 1 successful(the first, unforced run replayed the cache, so it was re-run)node .github/scripts/check-translations.mjs✓ translations gate passedgit diff --name-status --no-renames BASE...HEAD,--actor objectstack-fleet[bot]TRANSLATION_BOT_LOGINset:✓ 26 file(s) changed: 21 translation artifact(s) deleted, none added or modified.check-translation-output.mjs --files(PR-scoped) and--self-test✓ translation output gate passed (98 pre-existing finding(s) reported)check-node-floor.mjsand--self-test;scripts/pm/check-half-states.mjs --self-testLink and anchor crawl. The crawl covered the built site under
next start: the 5 changed pages × 8 locales, links inside the article body.#fragmentanchors: 344 checked, 0 broken. This includes#commercial-support--services,#upgrade-and-rollback,#rolling-upgrades-change-the-digestand#artifact-versioning.objectstackpackage folders now linked (embedder-openai,service-knowledge,knowledge-ragflow,mcp) answered 200, as didgithub.com/objectstack-ai/objectos/issues.discord.gg,modelcontextprotocol.io,status.objectstack.aiandwww.objectos.aiwere refused by this container's egress proxy: NOT MEASURED.Screenshots. Each changed page was captured at 1440 and 390 wide, plus
/zh-Hans/docs/configure/ai.scrollWidthequalsclientWidthat both widths.Not run locally, left to CI:
opennextjs-cloudflare build --skipNextBuild);Acceptance notes
These were seen in passing. None is fixed here, and none is filed.
reference/runtime-capabilities.mdx:41-45says a missing capability package is logged and skipped. objectstackcontent/docs/deployment/cli.mdx:521says the open CLI fails fast on the same condition. What ObjectOS itself does is not publicly documented, so the sentence is unchanged. No carrier.configure/aifor content it never documented, before or after this PR. No carrier.build/automation/flows.mdx:307(anai_callaction);reference/security.mdx:278(aredactconfig);build/ai-builder.mdx:183(Doubao as a chat provider, which is not in the publicOS_AI_PROVIDERlist).resources/support.mdx:15says "Watch … → Releases", but this repo has 0 releases. No carrier.AGENTS.md:69"62 of 79 pages" drifts with every ruling-A deletion. This is a governed file. No carrier.Open questions
Gap: the ObjectOS-side embedder and knowledge settings are not publicly documented. Public sources name the Setup entries AI & Embedder and Knowledge (objectstack
setup-app.mdx:55), but not what they hold. The page now says where the chat provider is configured, and shows the open-framework wiring for embedder and knowledge, labelled as such.Recommendation: A now, then B. A makes no unsourced claim, and C removes sourced, working content.
The six claims removed from
configure/ai.mdxfor lack of a public source (listed above).Recommendation: A. The per-tenant claim is contradicted by the public
scope: 'global'manifest.Generated by Claude Code