Skip to content

docs(positioning): exporting a Cloud or Enterprise ontology to the open runtime is planned (#334 Q1) - #426

Merged
zhuangjianguo merged 37 commits into
mainfrom
claude/project-thread-u7eoxi
Nov 2, 2026
Merged

zhuangjianguo merged 37 commits into
mainfrom
claude/project-thread-u7eoxi

Conversation

@zhuangjianguo

@zhuangjianguo zhuangjianguo commented Nov 2, 2026 •

Copy link
Copy Markdown
Collaborator

Requested by Steedos · project thread

Fixes #425
Ruling-ref: #334 comment 6568804196

Clause-②: no
Metadata-protocol: none

维护者速读

改了什么:站点和定位常量 OBJECTOS_EDITIONS(E1)不再说"现在就能把 Cloud/Enterprise 的本体导出并在开源运行时上运行",改为"计划中"(无日期、不链内部卡)。E1 变了,所以 index.mdx 开头段落和 /llms.txt 跟着变。另有 13 句(index ×4、security、glossary ×2、why ×3、architecture、ontology)同样收窄;zh-Hans、ja 同步并重新盖章,zh-Hant 重新生成。

为什么改:#334 Q1 裁决:目前没有导出机制(objectstack#28914 才会构建),在它上线之前,该裁决取代 #171 Q2 对这一句的规定。

风险与回滚:纯文案,无代码行为变化。回滚即 revert 本 PR。保留了今天为真的事实:本体是普通的 ObjectStack 元数据、ObjectStack 是 Apache-2.0、ObjectOS Community 在你自己的机器上运行。

先看:apps/docs/lib/positioning.ts(E1 及其 docblock,POSITIONING 长度 517→550),然后下面的旧/新对照表。

两分钟验证:构建后 node .github/scripts/check-positioning.mjs(含 /llms.txt)和 --self-test 通过;grep -rnE "export it and run it|export them and run them|you can export your ontology|yours to export" content/docs/*.mdx content/docs/*/*.mdx(排除译文)在英文页面无结果。

需要你做的:无。

What changes

Every changed English sentence:

Where Old New
positioning.ts OBJECTOS_EDITIONS (E1), so also index.mdx lede and /llms.txt On either ObjectOS Cloud or ObjectOS Enterprise, you can export your ontology and run it on the open-source ObjectStack runtime. Your ontology is ordinary ObjectStack metadata. Exporting it from ObjectOS Cloud or ObjectOS Enterprise to run on the open-source ObjectStack runtime is planned.
index.mdx table, Retool / Appsmith built on open-source ObjectStack (Apache-2.0), so the ontology is yours to export the ontology is ordinary metadata for open-source ObjectStack (Apache-2.0), with export to that runtime planned
index.mdx table, Supabase / Firebase but the definition is yours: export it and run it on the open ObjectStack runtime, or run ObjectOS Enterprise on your own database but the definition is yours: run ObjectOS Enterprise on your own database, or ObjectOS Community on your own machine; export from ObjectOS Cloud to the open ObjectStack runtime is planned
index.mdx table, Salesforce / NetSuite the definition is an open ontology that AI writes, agents operate, and you can export to the Apache-2.0 runtime the definition is an open ontology that AI writes and agents operate, as ordinary metadata for the Apache-2.0 ObjectStack runtime, with export to it planned
index.mdx "On either edition, the ontology" …are ordinary ObjectStack metadata, and you can export them and run them on the open-source ObjectStack runtime. …are ordinary ObjectStack metadata, and exporting them to run on the open-source ObjectStack runtime is planned.
reference/security.mdx Data residency …and on either edition your ontology is exportable to the open-source ObjectStack runtime. …and on either edition your ontology is ordinary ObjectStack metadata; exporting it to the open-source ObjectStack runtime is planned.
resources/glossary.mdx Business ontology It is yours on either ObjectOS edition: export it and run it on the open-source ObjectStack runtime. It is yours on either ObjectOS edition: it is ordinary ObjectStack metadata, and exporting it to run on the open-source ObjectStack runtime is planned.
resources/glossary.mdx ObjectOS Cloud and Enterprise are priced per AI seat, and on any edition you can export your ontology and run it on the open runtime. Cloud and Enterprise are priced per AI seat; exporting a Cloud or Enterprise ontology to run on the open runtime is planned.
why.mdx "You own it." …metadata, Apache-2.0, and on either edition you can export it and run it on that open-source runtime. …metadata, Apache-2.0, and exporting it from either edition to run on that open-source runtime is planned.
why.mdx vs. Supabase, Vendor lock-in The ontology exports to the open-source ObjectStack runtime; every layer is a plugin The ontology is ordinary ObjectStack metadata, with export to the open-source runtime planned; every layer is a plugin
why.mdx vs. Salesforce, Data model Objects, fields and relations in one open ontology — exportable, and runnable on the Apache-2.0 ObjectStack runtime Objects, fields and relations in one open ontology — ordinary metadata for the Apache-2.0 ObjectStack runtime, with export planned
architecture.mdx …and on either edition the ontology itself is yours: export it and run it on the open-source ObjectStack runtime. …and on either edition the ontology itself is ordinary ObjectStack metadata; exporting it to run on the open-source ObjectStack runtime is planned.
ontology.mdx On either edition the ontology is yours: it is ordinary ObjectStack metadata, and you can export it and run it on the open-source ObjectStack runtime. On either edition the ontology is yours: it is ordinary ObjectStack metadata, and exporting it to run on the open-source ObjectStack runtime is planned.

Also:

Tests

  • pnpm build passes.
  • check-positioning passes after the build ("4 copies equal their constants…", including /llms.txt), and --self-test passes. The built /llms.txt > line ends with the new E1.
  • check-translations: zh-Hans 0/0/0, ja 0/0/0.
  • check-translation-output --files (25-file list) passes with no findings.
  • gen-zh-hant --check: 115 files match.
  • check-locale-surface, check-search-locales, turbo run type-check and turbo run test pass.
  • Sweep: no English page under content/docs matches export it and run it|export them and run them|you can export your ontology|yours to export. The word "exportable" is left on three pages where it means data export, not the ontology: resources/changelog.mdx 289 (an object exportable by nobody), cloud/plans-and-seats.mdx 133 and cloud/storage-and-limits.mdx 49 (files stay readable and exportable after a downgrade).

Acceptance notes

  • Every claim says "planned", with no date and no link to objectstack#28914.
  • The true facts stay: the ontology is ordinary ObjectStack metadata, ObjectStack is Apache-2.0, and ObjectOS Community runs on your own machine. The definition sentence already says Community is free and self-hosted, so E1 does not repeat it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

zhuangjianguo and others added 30 commits October 29, 2026 10:17
…ions, use)

Phase 1 of the other-locale plan. Adds ja translations of the 19
entry-path pages (index, why, start/*, editions/*, use/*) and the ja
sidebar labels for start/ and editions/. Every heading keeps its
English id, fences match the English byte for byte, terms follow the
glossary's ja column, and each page carries a --stamp.

check-translations: ja 0 stale, 79 missing (was 98).

Fixes #386

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Phase 2 of the other-locale plan, first batch: ja for the build/ top
level (index, agents, ai-builder, ai-skills, extend-existing-systems,
marketplace, packages, reports, templates) and build/data/ (index,
relationships, formulas, validation-rules). Same rules as #386: English
heading ids, fences byte for byte, glossary ja column, UI labels in
English, one line per paragraph, each page stamped.

check-translations: ja 0 stale, 66 missing (was 79).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…388, PR 2 of 7)

Adds ja translations for the 11 automation and interface pages:
build/automation/{index,flows,workflows,approvals} and
build/interface/{index,apps,views,forms,dashboards,pages,actions}.
Both sections' meta.ja.json already match the English pages list.

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…tput (#393)

/api/search kept every locale's Orama index (30-40 MB each) and every
page module page.data.load() imported, so one Worker isolate grew from
58 MB after its first locale to 283 MB after all eight, and #390's ja
pages tipped it past 128 MB into 503s.

- scripts/gen-search-data.mjs computes each page's structuredData before
  next build with fumadocs-mdx's own remark chain and writes one gzipped
  module per locale to apps/docs/.search/; the route reads that instead
  of importing page modules.
- The route keeps the most recently used locale's index only.
- check-search-heap.mjs asks the built route in every locale twice and
  fails above 100 MB or when the second pass keeps growing; it runs in
  ci.yml after check-search-locales and its --self-test is in SELF_TESTED.

Measured on the built route: levels at 50-54 MB across both passes.

Fixes #393

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
The tree is unchanged: the diff against main is the #393 commit only.

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…388, PR 2 of 7)

Reverts #392, which reverted #390 because /api/search ran out of Worker
memory. #394 (#393) fixed that, so the same 11 ja pages come back
unchanged.

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
The tree is unchanged: the diff against main is the re-landed ja pages only.

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Six route handlers (search, og, sitemap, llms.txt, llms-full.txt,
llms.mdx) import lib/source.ts, whose fumadocs-mdx collection holds a
lazy import() of every compiled page. Turbopack compiles route handlers
as their own module graph, so the Worker carried a second copy of every
page module: ~20 MB of upload, and each translated page cost ~170-235 KiB
instead of ~86. #388's PR 3 would have gone over the 61,440 KiB budget.

- scripts/gen-route-data.mjs (was gen-search-data.mjs) also writes
  .route-data/collection.ts: .source/server.ts with each page's body
  import replaced by a read of generated data, and markdown.ts, the
  English pages' processed Markdown the llms routes serve. With --dev it
  re-exports the full collection so next dev sees new pages.
- lib/source.ts builds its loader on that collection; the page route
  loads bodies through lib/page-body.ts, the only module that imports
  the full collection.
- lib/packed.ts unpacks the generated gzip+base64 strings.
- The Worker budget step prints a per-page projection from the bundle's
  metafile (check-worker-page-cost.mjs, in SELF_TESTED).

Measured, same machine: main f7e4a57 59,173 KiB, this change 38,909 KiB;
with every ja page filled in, 43,700 KiB.

Fixes #395

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
The tree is unchanged: the diff against main is the #395 commit only.

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Adds ja translations for the 14 configure/ pages: index, ai, api-access,
authentication, data-sources, email, localization, mcp, notifications,
runtime, storage, system-settings, users and webhooks. configure/
meta.ja.json already matches the English pages list. Same rules as the
earlier batches: English heading ids, fences byte for byte, glossary ja
column, UI labels in English, one line per paragraph, each page stamped.

check-translations: ja 0 stale, 41 missing (was 55).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
… PR 4 of 7)

Adds ja translations for the 7 configure/permissions/ pages (index,
managing-access, permission-sets, positions, record-access,
field-level-security, hierarchy-visibility) and the 8 cloud/ pages
(organization, environments, plans-and-seats, ai-credits-and-limits,
storage-and-limits, domains, apps, cloud-connection), plus a new
cloud/meta.ja.json whose pages match the English. configure/permissions/
meta.ja.json already matched. Same rules as the earlier batches.

check-translations: ja 0 stale, 26 missing (was 41).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
Adds ja translations for the 4 deploy/ pages (index, docker, kubernetes,
air-gapped) and the 7 operate/ pages. Both sections' meta.ja.json
already match the English pages list. Same rules as the earlier batches.

check-translations: ja 0 stale, 15 missing (was 26).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…388, PR 6 of 7)

Adds ja translations for the 9 reference/ pages and the two root pages,
architecture and ontology. reference/meta.ja.json already matches the
English pages list; the root sidebar has only meta.json. Same rules as
the earlier batches.

check-translations: ja 0 stale, 4 missing (was 15).

Refs #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
… PR 7 of 7)

Adds ja translations for the 4 resources/ pages: changelog, faq,
glossary and support. resources/meta.ja.json already matches the
English pages list. Same rules as the earlier batches.

With this batch every English page has a ja translation.
check-translations: ja 0 stale, 0 missing (was 4).

Fixes #388

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
#403 changed step 1 of "Start on ObjectOS Cloud" to link the console's
register and sign-in pages instead of www.objectos.ai. This carries the
same change into zh-Hans and ja, restamps both, and regenerates zh-Hant
with gen:zh-hant.

check-translations: zh-Hans and ja 0 stale, 0 missing.

Fixes #404

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…-Hant and ja (#414)

#410 added subscription management, AI seat changes and Paddle as the
seller to cloud/plans-and-seats and cloud/ai-credits-and-limits. #413
moved the sales contact to sales@objectos.ai on editions/license,
resources/support, resources/faq and start/enterprise. This carries only
the changed parts into zh-Hans and ja, restamps all twelve pages, and
regenerates zh-Hant with gen:zh-hant. Paddle, emails and URLs are copied
byte for byte.

check-translations: zh-Hans and ja 0 stale, 0 missing.

Fixes #414

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
objectstack#26148 replaced the README sentence OBJECTOS_DEFINITION
quoted ("...the commercial runtime environment built on this stack")
with one naming three editions: ObjectOS Community, shipped by the
repository, free and self-hosted; ObjectOS Cloud, hosted; ObjectOS
Enterprise, self-managed and licensed.

- OBJECTOS_DEFINITION quotes README lines 27-31 from "To run it", with
  three declared changes: "this repository" spelled out as "the
  ObjectStack repository", the Markdown dropped, and the in-README
  "(Ship it)" link left out.
- OBJECTOS_EDITIONS keeps only the #171 Q2 export clause, naming Cloud
  and Enterprise instead of "either edition".
- POSITIONING_SHORT (152 characters) names the three editions in the
  README's words.
- The index.mdx opening paragraph and description follow, and the
  zh-Hans and ja siblings are re-translated and restamped; zh-Hant is
  regenerated.

check-positioning passes after a build.

Fixes #341

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…418)

#407 added Team's annual price ($20 / AI seat / month billed annually)
to the Price row of editions/compare and editions/license. This adds
the same to the zh-Hans and ja Price cells, in the annual-price wording
each locale uses on cloud/plans-and-seats, restamps the four pages and
regenerates zh-Hant.

check-translations: zh-Hans and ja 0 stale, 0 missing.

Fixes #418

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
zhuangjianguo and others added 7 commits November 2, 2026 02:04
The layer table on architecture still called ObjectOS "the commercial
runtime environment built on the framework" with two editions, the
definition objectstack#26148 retired and #416 removed from the
positioning constants. The row now uses only positioning.ts's terms:
ObjectOS Community free and self-hosted, ObjectOS Cloud the hosted
edition, ObjectOS Enterprise the self-managed, licensed one. zh-Hans
and ja use the wording their index.mdx carries since #416; both are
restamped and zh-Hant is regenerated.

check-positioning rule (c) now lists "commercial runtime environment"
as a stale sentence, with a fixture, so the phrase cannot come back to
an English source.

Fixes #417

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…nd entry pages (#421)

On ObjectStack 17.7 the scaffolder refuses todo, compliance, content,
contracts and procurement as retired, yet the docs listed them as
templates and catalog apps. Per the ruling on #334 Q5 they are removed,
and build/templates' "--template todo is refused as retired" stays as
the one mention.

- build/templates: seoTitle and description name helpdesk, hr and
  project; the five catalog rows and the three pick-table rows that
  pointed at them are gone.
- index: the marketplace example names Helpdesk only.
- start/community and build/marketplace: the same five rows leave their
  app tables, and the template clone example uses helpdesk.
- build/index names none of the five and is untouched.

zh-Hans and ja get the same removals and are restamped; zh-Hant is
regenerated.

Fixes #421

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
#423)

Per the ruling on #334 Q4, the upgrade page's "Rotate the JWT signing
keys" step gains one sentence: how the keys are rotated depends on how
the deployment supplies them, so follow the deployment's own procedure.
It names no mechanism, variable or command. zh-Hans and ja carry the
same sentence and are restamped; zh-Hant is regenerated.

Q2 and Q3 of the same ruling need no change; the seat measured both
pages against it.

Fixes #423

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
…en runtime is planned (#334 Q1)

No mechanism exports a Cloud or Enterprise tenant's ontology to run on the
open-source ObjectStack runtime yet. OBJECTOS_EDITIONS, the index opening
paragraph, /llms.txt and 13 sentences across index, security, glossary, why,
architecture and ontology now say the export is planned, and keep what is
true today: the ontology is ordinary ObjectStack metadata, ObjectStack is
Apache-2.0, and ObjectOS Community runs on your own machine. zh-Hans and ja
follow, restamped; zh-Hant regenerated.

Ruling-ref: #334 comment 6568804196

Fixes #425

Claude-Session: https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm

Co-Authored-By: Claude <noreply@anthropic.com>
@zhuangjianguo zhuangjianguo self-assigned this Nov 2, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor

席位核对 · ACCEPT · 2026-11-02T05:00Z · session_01QsR2jTaZ2GeyfjANMwstiw · seat repo:docs.objectos.ai#1

Ruling-ref: #334 comment 6568804196 (Q1 → B, with its erratum: E1 changes in this repository, no objectstack README PR).

  1. Shape. Draft PR against main e4c31ff, head 09e9078 (23375c4 plus a content-free ours-merge of the old branch head). 25 files, +99/−96: positioning.ts, and six pages with their zh-Hans, zh-Hant and ja siblings. The body says Fixes #425. Nothing is outside the claimed surface.

  2. The positioning constant, old and new.

    OBJECTOS_EDITIONS (E1), in /docs's opening paragraph and /llms.txt
    old On either ObjectOS Cloud or ObjectOS Enterprise, you can export your ontology and run it on the open-source ObjectStack runtime.
    new Your ontology is ordinary ObjectStack metadata. Exporting it from ObjectOS Cloud or ObjectOS Enterprise to run on the open-source ObjectStack runtime is planned.

    The docblock now cites [Decision] Five facts about the ObjectOS image that the docs cannot state from public sources: ontology export, scheduled-work default, the os migrate entry point, JWT key rotation, and the template catalog #334 Q1, which supersedes [Decision] What does docs.objectos.ai target — the root URL is a redirect, the index title is "ObjectOS | ObjectOS", and the brand is spelled three ways #171 Q2 until objectstack#28914 ships.

  3. The other 13 sentences (old/new table in the PR body). Each "you can export / exportable / exports to" now says the export is planned, with no date and no card link. What is true today is kept: ordinary ObjectStack metadata, Apache-2.0, and Enterprise on your own database. The Supabase row adds ObjectOS Community on your own machine.

  4. Seat sweep. No English page still says you can export the ontology and run it on the open runtime today. The three remaining uses of "exportable" are about data or files after a downgrade (changelog 289, plans-and-seats 133, storage-and-limits 49), not the ontology, so they are out of scope.

  5. Structure. Heading counts match across en, zh-Hans and ja on all six pages: index 7, security 19, glossary 42, why 10, architecture 8, ontology 5. Fenced code is byte-identical across the three.

  6. Gates, seat re-run at 09e9078.

    • check-translations: zh-Hans 0/0 and ja 0/0.
    • check-translation-output --files with a list file: blocking on 18, no findings.
    • check-positioning --self-test passes. build runs the full gate, /llms.txt included.
    • Check-runs: build success · Ownership & freshness success · Node floor success.
  7. Landing. Tier none. This executes a maintainer ruling on these exact sentences, and it lands through the merge queue under the standing go-ahead. www.objectos.ai renders the same E1. The director seat is routing that edit to the www owner.

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.

Narrow "export your ontology and run it on the open runtime" to a planned capability across the site and the positioning constant (#334 Q1)

1 participant