Repository navigation
chore(upstream): the cloud pin moves by hand; the bump workflow moves only objectstack (#433) - #434
Merged
Merged
Conversation
…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>
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>
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>
…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>
Contributor
Author
维护者速读
席位核对 · 2026-11-03T14:17Z ·
|
This was referenced Nov 3, 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.
Requested by Steedos · project thread
Fixes #433
Clause-②: no
Metadata-protocol: none
维护者速读
.cloud-sha改为手工更新:AGENTS.md「Upstream pins」写明时机(升级文档、对齐生产时)、完整 SHA 的取法(cloud 的v*tag 或 deploy-cloud-prod run;health 头只有 8 位)、PR 正文要贴的git log <旧>..<新> -- CHANGELOG.md .changeset/。bump-upstream-docs.yml只剩 objectstack,bump-upstream-pin.mjs拒绝--upstream cloud并指向这些步骤。.cloud-sha) moves by hand when the docs are refreshed: no UPSTREAM_BUMP_TOKEN, no dispatch from cloud (maintainer ruling 2026-11-03) #433 裁定 cloud pin 手工更新、不配UPSTREAM_BUMP_TOKEN、cloud 不再 dispatch(cloud#3531 删掉了发送端)。UPSTREAM_BUMP_TOKEN的要求不变。回滚即 revert。AGENTS.md的「Upstream pins」一节,然后bump-upstream-pin.mjs里新增的bumpable()。node .github/scripts/bump-upstream-pin.mjs --self-test通过;--upstream cloud --sha <40位> --body x以「moved by hand」拒绝;--check对手写的 40 位.cloud-sha通过。What changes
AGENTS.md"Upstream pins"bump-upstream-docs.yml; the cloud pin "after a successful cloud production deploy"; "⛔ Don't edit a pin by hand".UPSTREAM_BUMP_TOKEN. The cloud pin moves by hand (#433), in three steps: take the full SHA (git rev-parse vX.Y.Z^{commit}on cloud'sv*tag, or the deploy-cloud-prod run; the health header has only 8 characters); write.cloud-sha; pastegit log <old>..<new> -- CHANGELOG.md .changeset/from a local cloud checkout (the first hand update fromunpinnedlists nothing). Thepinsjob checks format only..github/workflows/bump-upstream-docs.ymlupstream: [objectstack, cloud]; token needed to read cloud and to open the PR; NOT CONFIGURED message asks for cloud read access.pinsreads neither upstream. Inputupstream: [objectstack]. The token only pushes the branch and opens the PR; the message no longer asks for cloud access. Triggers, jobs and steps are unchanged..github/scripts/bump-upstream-pin.mjs--sharequired.--upstream objectstack|cloud. A cloud fetch failure hintsUPSTREAM_TOKEN.--checkvalidates both by format alone.UPSTREAMS.cloud.byHand: true; a newbumpable()refuses--upstream cloud, naming thegit logto paste and AGENTS.md. The cloud-only--sharefusal and the token hint are removed. Self-test: objectstack is bumpable, and cloud is refused with "moved by hand" and thegit logcommand.Measured on
main32ee782(claim premise): thepinsjob (--check) already reads no upstream, so item 3 of the card needed no code change. A hand-written.cloud-shawith 40 hex characters passes--check. The objectstack bump also needsUPSTREAM_BUMP_TOKEN(theRequirestep runs for either upstream, and aGITHUB_TOKENPR runs no CI). This PR leaves that as it is, as the card asks.CONTRIBUTING.mddoes not mention the pins. The first hand update of.cloud-sha(item 4) needs a cloud checkout. It belongs to whoever does the first alignment, not to this PR.Tests
On head
4185047(the content commit;f29c119adds only an ours-merge of the old branch head):node .github/scripts/bump-upstream-pin.mjs --self-test:✓ self-test: 17 pin/input case(s), upstream names, the hand-moved cloud pin, tag resolution, plan, body bounds and token carriage.byHand: falseon cloud, the self-test fails on both new checks (bump: cloud: expected a refusal containing "moved by hand"and… names the git log to paste), 2 checks, exit 1.--checkonmain's pins:✓ .objectstack-sha: 4e4e881…,✓ .cloud-sha: unpinned. On a tree with a hand-written 40-hex.cloud-sha:✓ .cloud-sha: bbbb….--upstream cloud --sha <40 hex> --body …: exit 1,✗ .cloud-sha is moved by hand, not by this script (docs.objectos.ai#433): write the full SHA production serves and pastegit log OLD..NEW -- CHANGELOG.md .changeset….node tools/ci-scripts/run-self-tests.mjs: 14 self-tests passed.Acceptance notes
UPSTREAM_BUMP_TOKEN, which is not set (the 2026-11-02 run failed). The card leaves that to a separate maintainer decision.tools/ci-scripts/run-self-tests.mjshas a comment about this script ("fetches an upstream repository"). It is still accurate, so I left it alone.🤖 Generated with Claude Code
https://claude.ai/code/session_01QsR2jRsjbApbf83iyTDDXm