Skip to content

docs: name the self-managed edition ObjectOS Enterprise across pricing and deploy pages - #335

Open
objectstack-fleet[bot] wants to merge 2 commits into
mainfrom
claude/issue-295-enterprise-vocab
Open

objectstack-fleet[bot] wants to merge 2 commits into
mainfrom
claude/issue-295-enterprise-vocab

Conversation

@objectstack-fleet

@objectstack-fleet objectstack-fleet Bot commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #295

Clause-②: no

Executes ruling 6124045928 on #295 (letter A). Its three answers, verbatim: 「A 自托管统称 Enterprise」 · 「只自托管 (Recommended)」 · 「保留原名,归入 Ent (Recommended)」.

  • Self-managed ObjectOS is ObjectOS Enterprise.
  • Enterprise is self-managed only, so Cloud tops out at Business.
  • The single-node SKU keeps the name Business Self-Managed and its price. The copy now describes it as the single-node entry option of ObjectOS Enterprise.

apps/docs/lib/positioning.ts (OBJECTOS_EDITIONS) and .github/scripts/check-positioning.mjs are unchanged, as ruling Q1 on #171 requires. Lower-case "self-managed" still describes a deployment and is kept wherever it appears.

Why Part of and not a closing keyword: one use of "Self-Managed" as an edition name is still on the site. It is outside the file surface this branch was claimed for. See What stays open below.

What changed, sentence by sentence

Line numbers are on main 76988da. I re-derived the surface with grep -n -i "self-managed" over the English content/docs/**/*.mdx and README.md, then with a repo-wide git grep -i. After this PR, every remaining Self-Managed under content/docs/ is the SKU name Business Self-Managed.

Where Was Now Answer
resources/license.mdx:9-10, intro "…and ObjectOS Self-Managed (you operate it…)" "…and ObjectOS Enterprise (you operate it…)" 1
resources/license.mdx:38-45, Editions table Business column: "cloud or self-managed (single-node)", "self-managed: $540", "priority (cloud) / standard (self-managed)". Enterprise column: "cloud or private deployment" Business Self-Managed gets its own column. A new Edition row reads ObjectOS Cloud for Free, Team and Business, "ObjectOS Enterprise (single-node entry option)" for Business Self-Managed, and ObjectOS Enterprise for Enterprise. Enterprise delivery is now "self-managed (private deployment)". Every price and feature tick is unchanged, cell for cell. 1, 2, 3
resources/license.mdx:60-70, "Cloud or self-managed" Three bullets. The third was labelled "ObjectOS Enterprise" New lead sentence: "Self-managed ObjectOS is ObjectOS Enterprise, and Enterprise is self-managed only: Cloud tops out at Business." The Business Self-Managed bullet now opens "the single-node entry option of ObjectOS Enterprise:". The third bullet is now "Enterprise — the full private deployment", so the edition name no longer labels just one of its two options. 1, 2, 3
resources/license.mdx:87-88, scenario table "Business Self-Managed" / "ObjectOS Enterprise" "Business Self-Managed, the single-node entry option of ObjectOS Enterprise" / "ObjectOS Enterprise, full private deployment" 3
resources/license.mdx:142, FAQ "self-managed ObjectOS (Business Self-Managed or Enterprise) is licensed" "self-managed ObjectOS is ObjectOS Enterprise, and both of its options (Business Self-Managed on a single node, or a full Enterprise deployment) are licensed" 1, 3
resources/license.mdx:150, FAQ "Enterprise keeps the last paid version perpetually" "A full Enterprise deployment keeps…". Business Self-Managed is now an Enterprise option too, and the term that keeps the last paid version belongs to the full deployment, as the section above says. 3
deploy/index.mdx:3, :4, :7 "Self-Managed" in the seoTitle, description and first sentence "ObjectOS Enterprise". The first sentence adds: "— on a single node as Business Self-Managed, or as a full Enterprise deployment." 1, 3
deploy/docker.mdx:7 "run ObjectOS Self-Managed" "run ObjectOS Enterprise" 1
operate/upgrade.mdx:3, :6 (only these lines) "ObjectOS Self-Managed" "ObjectOS Enterprise" 1
configure/ai.mdx:12 "On a Self-Managed deployment" "On a self-managed deployment (ObjectOS Enterprise)" 1
index.mdx:35 (only this line) "ObjectOS Enterprise (or Business Self-Managed)". This offered the SKU as an alternative to Enterprise, which answer 3 makes untrue. "ObjectOS Enterprise, from the single-node Business Self-Managed option up," 3
README.md:38 "ObjectOS Self-Managed (your infrastructure) … Business Self-Managed (single-node license)" "ObjectOS Enterprise (self-managed: your infrastructure) … Business Self-Managed (single-node entry option)" 1, 3

Locale siblings. resources/license.zh-Hans.mdx is deleted, and resources/license.zh-Hant.mdx is pruned by gen-zh-hant ("1 stray file(s) removed"). This follows criterion A of ruling 5989567068 on #256: answer 2 withdraws a capability assertion that the Simplified page makes at its line 30, 「云或私有部署」 (Enterprise offered on cloud). None of the other six edited pages has a locale sibling (checked with ls on each), so nothing else is deleted. apps/docs/app/[lang]/privacy/page.tsx lines 23 and 28 already agree with the ruling and are untouched, as the release 6147548827 recorded.

What stays open

apps/docs/app/[lang]/privacy/page.tsx:36, in the en entry, says "ObjectOS Self-Managed validates its license online". This is the edition name the ruling retires. The same sentence is in zh-Hans.json:16 and the generated zh-Hant.json:16. The built page ships it: .next/server/app/en/privacy.html on this branch contains that string. The release 6147548827 recorded the page as agreeing, which is true of lines 23 and 28 but not of line 36.

I did not fix it here, for three reasons:

  • The file is outside this claim's surface ("Stop on breach").
  • It is a legal page with a "Last updated: October 6, 2026" line.
  • Its Simplified twin is a JSON file and is not in the content/docs translation flow.

So the right edit needs a decision this card's dispatch does not carry. The mechanical shape is the sentence used at license.mdx:155, index.mdx:76 and architecture.mdx:72: "Self-managed ObjectOS validates its license online". It is reported to the seat on #295.

Verification

All of the following ran on the final head 08c73b2, in the worktree, with exit codes captured before any pipe.

Gate (from .github/workflows/ci.yml / translations.yml) Result
node apps/docs/scripts/gen-zh-hant.mjs --check exit 0: "53 generated file(s) match the zh-Hans sources byte for byte"
npm ci --prefix .github/scripts/doc-samples … then node .github/scripts/check-doc-samples.mjs exit 0 / exit 0: "79 English page(s) … 98 pass"
pnpm turbo run type-check --continue exit 0, cache miss (c9bb219491cc5210)
pnpm turbo run build exit 0, cache miss (8a054266a04405c7), 1000/1000 static pages
node .github/scripts/check-locale-surface.mjs exit 0
node .github/scripts/check-positioning.mjs exit 0: "4 copies equal their constants … no stale sentence in 79 English sources and the en entry of 2 legal pages"
node .github/scripts/check-search-locales.mjs exit 0: all 8 locales answer 200
pnpm turbo run test exit 0. The @objectos/ci-scripts cache hit is correct: no script or fixture changed, and its inputs do not include content/docs
node .github/scripts/check-translations.mjs exit 0, "translations gate passed", no orphan
check-translation-ownership.mjs --files (name-status, no renames) exit 0. With TRANSLATION_BOT_LOGIN set as a probe: "2 translation artifact(s) deleted, none added or modified"
check-translation-output.mjs --files exit 0

Checks on the built site, with next start on the build above:

  • /docs/resources/license renders the six-column table inside Fumadocs' overflow-auto table wrapper. A desktop screenshot was read.
  • /zh-Hans/docs/resources/license answers 200 with the English page (fallback).
  • The sitemap advertises only hreflang="en" and x-default for that page.

I could not emulate a phone viewport (no device metrics without Playwright). A 390 px headless window clips every page the same way, the table-free /docs/operate/upgrade included, so that is a capture artifact and not a layout result.

CI on this head reports the render smoke-check and the Worker size budget. They are not re-run locally.

Sibling PRs #332 (index.mdx, not :35) and #333 (operate/upgrade.mdx, not :3/:6) touch other lines of two of these files. Neither has merged yet, so no merge from main was needed.


Generated by Claude Code

…g and deploy pages

Ruling 6124045928: self-managed ObjectOS is ObjectOS Enterprise, Enterprise
is self-managed only (Cloud tops out at Business), and the single-node SKU
keeps the name Business Self-Managed and its price as the single-node entry
option of ObjectOS Enterprise.

- resources/license.mdx: intro, Editions table (Business Self-Managed gets
  its own column under an Edition row; the Enterprise delivery cell is
  self-managed only), the cloud/self-managed section, the scenario table
  and two FAQ answers.
- deploy/index.mdx, deploy/docker.mdx, operate/upgrade.mdx (description and
  first sentence only), configure/ai.mdx, index.mdx Start table row, and
  the README editions row.
- license.zh-Hans.mdx deleted (the English correction withdraws the claim
  that Enterprise is offered on cloud); license.zh-Hant.mdx pruned by
  gen-zh-hant.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CXCwzqwMhkphKoBC11oPSz
… privacy page

Ruling 6124045928, answer 1, extended to the privacy page by the seat's
claim amendment on #295: the license sentence takes the form already used
on the license, index and architecture pages ("Self-managed ObjectOS
validates its license online"). zh-Hans gets the matching wording, zh-Hant
is regenerated by gen-zh-hant, and "Last updated" moves to 2026-10-16 in
both sources.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CXCwzqwMhkphKoBC11oPSz
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对

ACCEPT: PR #335 for #295 · 2026-10-16T05:23Z · head fd0f4c0. Seat repo:objectos, session session_01CXCwzqwMhkphKoBC11oPSz. Implemented-by: os-dev subagent, branch claude/issue-295-enterprise-vocab. Reviewed-by: this seat.

Shape.

  • Base main (76988da), mergeable_state: clean, assignee os-tesla.
  • The seat set the first line to Fixes #295 now that the last edition-name use is in, per the claim amendment 6208640860. A full-body scan finds no other closing keyword.
  • 12 files, +46/−318, under the line. No governed path is touched; positioning.ts and its gate are unchanged.

Checks pinned to fd0f4c0: build success (every step, including Generated zh-Hant is current, Positioning, Locale surface, the size budget and the rendered-page smoke check), Node floor success, Ownership & freshness success. Deploy docs skipped (PR event).

Ruling 6124045928, checked answer by answer against the diff:

  1. 「自托管统称 Enterprise」 — every edition-name use is re-worded: license.mdx, deploy/index.mdx, deploy/docker.mdx, operate/upgrade.mdx:3,6, configure/ai.mdx:12, index.mdx:35, README.md:38, and (round 1) the privacy page with its zh-Hans/zh-Hant twins. git grep "ObjectOS Self-Managed" on the head now answers 0 hits. Lower-case "self-managed" describing a deployment stays.
  2. 「只自托管」 — the Editions table's Enterprise delivery reads "self-managed (private deployment)", and the license page states "Cloud tops out at Business".
  3. 「保留原名,归入 Ent」 — Business Self-Managed keeps its name and its $540 price, and is described as the single-node entry option of ObjectOS Enterprise in the table, the bullets, the scenario rows and the FAQ.

Every other price and feature tick is unchanged.

Locale siblings: license.zh-Hans.mdx and license.zh-Hant.mdx are deleted. Answer 2 withdraws the claim that Enterprise is offered on cloud, so criterion A of ruling 5989567068 applies. The privacy page's zh-Hant JSON was regenerated by gen-zh-hant.mjs, not hand-edited.

Overlap: PR #332 and PR #333 touch index.mdx and operate/upgrade.mdx on other lines. Whichever lands later merges main; the lines are disjoint.

Downstream: this PR closes #295, which releases the first of #300's two Blocked-by: lines. The other line, objectstack-ai/www.objectos.ai#215, still holds.

Landing. Non-governed and under the size line. The seat marks the PR ready. ❗ Merging to main publishes production, and the merge is a human's.


Generated by Claude Code

This branch has not been deployed

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

Labels

None yet

Projects

None yet

2 participants