Skip to content

docs(i18n): re-sync reference/security and restore three audit pages after #460 (#461) - #462

Merged
objectstack-fleet[bot] merged 53 commits into
mainfrom
claude/project-thread-u7eoxi
Nov 9, 2026
Merged

objectstack-fleet[bot] merged 53 commits into
mainfrom
claude/project-thread-u7eoxi

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Steedos · project thread

Fixes #461

Clause-②: no
Metadata-protocol: none

维护者速读

What changes

Page #460's English change carried into zh-Hans and ja
reference/security Audit rows cannot be edited or deleted through the data API or in Setup, and tamper-evidence is planned. The HIPAA row now reads "the audit log; tamper-evidence planned" in place of "integrity (immutable audit)".
operate/audit-logs (restored) "immutable" is dropped from the description and the intro. The object is read-only through Setup and the data API. The regulated-environments note says "add protection at the storage layer".
operate/index (restored) The Audit Logs row drops "immutable".
build/interface/actions (restored) sys_audit_log is a read-only trail.

build/interface/actions.zh-Hans had two emphasis spans that did not render: **动作(Action)**是 and *"…?"*这类. They are now **动作**(Action)是 and “*…?*”这类.

Tests

On head 4c2e9e3:

  • check-translations --stamp on all 8 files.
  • gen:zh-hant: 4 files written.
  • gen-zh-hant.mjs --check: byte for byte, 117 files.
  • check-translation-output.mjs --files <list of 12>: no findings.
  • check-translations.mjs: zh-Hans 0/0, ja 0/0, and the gate passes.
  • A CJK emphasis-flanking scan (mdast text nodes containing *) is clean on all 12 files.

🤖 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 22 commits November 2, 2026 04:17
…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>
…ent per organization, re-sync cloud/organization (zh-Hans, zh-Hant, ja)

#428 deleted the zh-Hans, zh-Hant and ja siblings of cloud/apps, domains,
environments, plans-and-seats, storage-and-limits and editions/compare. They
are translated from the current English: every sentence #428 changed is new,
and wording is reused only where the English sentence is unchanged.
cloud/organization is re-synced in both locales. zh-Hant regenerated.

Part of #429

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

Co-Authored-By: Claude <noreply@anthropic.com>
…editions/license fresh

Re-sync cloud/plans-and-seats and editions/compare to #431's English, and
translate editions/license, whose siblings #431 deleted, from the current
English, reusing wording only where the English sentence is unchanged.
Re-sync configure/mcp, deploy/index, index and start/enterprise.
zh-Hant regenerated.

Fixes #429

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

Co-Authored-By: Claude <noreply@anthropic.com>
… only objectstack

Maintainer ruling on #433: .cloud-sha is updated by hand when the docs are
aligned with production, with no repository_dispatch from cloud and no
UPSTREAM_BUMP_TOKEN for cloud. AGENTS.md 'Upstream pins' now gives the steps:
the full SHA from cloud's v* tag or its deploy-cloud-prod run (the health
header has only 8 characters), and the git log of CHANGELOG.md and
.changeset/ pasted into the PR body. bump-upstream-pin.mjs refuses
--upstream cloud with those steps, and its self-test proves the refusal;
--check still validates both pins by format alone. The workflow offers only
objectstack, and its token message no longer asks for cloud read access.
objectstack's bump and its token requirement are unchanged.

Fixes #433

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

Co-Authored-By: Claude <noreply@anthropic.com>
…ort and MCP pages (#449 batch A)

Restores zh-Hans and ja for index, start/enterprise, editions/compare,
editions/license, cloud/plans-and-seats, resources/support and
configure/mcp from their last fresh translations, and applies only the
English changes made since (one Enterprise edition, per AI user with a
minimum of 25, no public price, no Enterprise on Cloud, the ended-
subscription rule, and MCP on by default for new Cloud environments).
Restamped; zh-Hant regenerated. Also moves CJK punctuation outside the
bold markers that did not render in configure/mcp zh-Hans.

Part of #449

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

Co-Authored-By: Claude <noreply@anthropic.com>
Restores zh-Hans and ja for deploy/air-gapped, deploy/docker,
deploy/index and deploy/kubernetes from their last fresh translations
and applies only the English changes since (one Enterprise edition, the
kit runs one node today, no Redis cluster driver). Translates the new
deploy/licensing and deploy/multi-organization pages. Code fences are
copied byte for byte from English. Restamped; zh-Hant regenerated. Also
moves CJK punctuation outside the bold markers that did not render in
the restored zh-Hans deploy pages.

Fixes #449

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

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

Restores zh-Hans and ja for cloud/plans-and-seats,
cloud/storage-and-limits, configure/permissions/hierarchy-visibility,
deploy/licensing, reference/security, resources/faq and
resources/support from their last fresh translations, and applies only
the English changes since: Cloud has two plans and Enterprise is a
legacy plan code that is not sold, the AI audit trail covers the
built-in AI only (tool_call / quota_refusal / guardrail_refusal, no
export yet), no "many deployments are certified" in the security
reference, and the status page at status.objectos.ai. Restamped;
zh-Hant regenerated. Also moves CJK punctuation outside the bold markers
that did not render in hierarchy-visibility zh-Hans.

Fixes #458

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

Co-Authored-By: Claude <noreply@anthropic.com>
#457 dropped "Many ObjectOS deployments are certified." from the English
FAQ; drop the same sentence from zh-Hans and ja, restamp, regenerate
zh-Hant.

Part of #458

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

Co-Authored-By: Claude <noreply@anthropic.com>
…after #460 (#461)

#460 replaced "immutable" with what the audit log guarantees: rows cannot
be edited or deleted through the data API or in Setup, and
tamper-evidence is planned. Carries that into the zh-Hans and ja
reference/security siblings, and restores zh-Hans and ja for
operate/audit-logs, operate/index and build/interface/actions from
their last fresh translations (each stamp matches English at 13df06a^)
with only #460's changes applied. Restamped; zh-Hant regenerated. Also
fixes two emphasis spans that did not render in actions zh-Hans.

Fixes #461

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

Co-Authored-By: Claude <noreply@anthropic.com>
@objectstack-fleet

Copy link
Copy Markdown
Contributor Author

席位核对 · head 5435148 · 2026-11-09T05:20Z

  • Shape: translation only, 12 files. reference/security zh-Hans and ja are re-synced. operate/audit-logs, operate/index and build/interface/actions zh-Hans and ja are restored. zh-Hant is regenerated. No English source, config or script is touched.
  • Premise measured: at 13df06a^, each restored file's source_sha matched the sha256 of its English source. The security siblings' stamp matched English at 13df06a^ too. Only docs(audit): say what the audit log guarantees instead of "immutable" (cloud#4029) #460's English hunks are translated: the audit bullet, the HIPAA row, "immutable" dropped from the description, intro, Setup paragraph, storage-layer note, operate index row and actions trail. On the branch, check-translations shows zh-Hans 0/0 and ja 0/0.
  • Gates (check-runs on head 5435148):
    • build ✅
    • Node floor ✅
    • Ownership & freshness ✅
    • Deploy docs: skipped (PR)
    • Local: check-translation-output reports no findings, gen-zh-hant --check holds parity across 117 files, the translations gate passes, and the CJK emphasis-flanking scan is clean.
  • Accepted deviations: two emphasis spans in build/interface/actions.zh-Hans did not render. The bold now wraps 动作 alone, and the italic moves inside the quotation marks.
  • Out of scope / Skills-docs: none.
  • Landing: Tier none. It lands under the lane's standing go-ahead for translation PRs, with ready and auto-merge.

Generated by Claude Code

@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review November 9, 2026 05:20
@objectstack-fleet
objectstack-fleet Bot added this pull request to the merge queue Nov 9, 2026
Merged via the queue into main with commit 23cb303 Nov 9, 2026
4 checks passed
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.

Re-sync zh-Hans and ja after #460: reference/security stale, audit-logs, operate index and interface actions missing

2 participants