Repository navigation
docs: rewrite the four authored-prose lines that still said "Console" - #106
Merged
Merged
Conversation
#79 retired "Console" as the name of the end-user surface but held every in-fence occurrence byte-identical, on the rationale that fences hold terminal output a reader compares against their own. Nine occurrences survived under that rule. Five of them are genuine output (the os start banners in quickstart.mdx). The other four are authored content that a fence happens to render in a monospace box, so the rationale never reached them: - build/marketplace.mdx:46,50 - two lines of an ASCII flow diagram - reference/field-types.mdx:225 - a branch label in the "how fields flow" diagram - reference/cli.mdx:38 - a comment inside a bash example cli.mdx is where the cost showed on one screen: the fenced comment read "API only (no Console/Account)" while the flag table below it read "Disable the UI and Account portals" - two vocabularies for one flag, with no way for a reader to tell which is current. The replacements use the vocabulary #79 actually landed, not a new one: ObjectOS where a destination needs a name (the sentence directly above the marketplace diagram already reads "When you open ObjectOS"), UI as a stack-layer label beside REST and Audit, and a noun-drop rewrite for the re-render step, matching step 5 of the same page's install flow ("Reload the page"). "ObjectOS re-renders" was rejected there because the diagram ends with "Done - no restart" and would invite the reader to read a re-render as a restart. Untouched, as ruled: every /_console URL, and the command os start --no-ui itself, which is copy-run and stays byte-identical - only the comment after the hash changes. Diagram geometry verified in display columns, not bytes. In the marketplace diagram the three arrows stay in column 50 and the four text-block lines stay at indent 39; the one-column growth of the node line moves "Install" from column 49 to 50, so the arrow spine now descends from its first character instead of its second. English only. Locale siblings are left alone and report stale, per AGENTS.md; the blocking scope of the output gate is changed locale files, of which this PR has none. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CJPxtTxoxTUnjNdTbiEaRa
os-zhuang
marked this pull request as ready for review
August 18, 2026 14:47
os-project-manager
added a commit
that referenced
this pull request
Sep 4, 2026
…64 MiB limit `Deploy Docs` has been rejected by the Cloudflare API on every run since #106 (2026-08-25T21:05Z) with `code: 10027` — the Worker exceeds the 64 MiB uncompressed limit. Version creation fails, so no new Worker version exists and the previously accepted one keeps being served: nothing 500s, the site just stops changing. The bytes were not the corpus. All 397 `.mdx` files are 2.50 MiB of source; `handler.mjs` measured 100.93 MiB locally on 94a4126. The multiplier was the bundling. `fumadocs-mdx:collections/server` imports every page eagerly, so each server entrypoint that touches `source` — the docs page, and also `/llms.txt`, `/llms-full.txt`, `/llms.mdx/*`, `/og/*`, `/api/search` and `/sitemap.xml` — pulled the whole corpus into its own chunk, and the bundler inlined the set five times over. Measured on one probe sentence that occurs once, in one English page: 15 copies in `handler.mjs` before, 6 after. `async: true` on the docs collection makes each page's compiled body a dynamic import, so Turbopack emits per-page chunks (27 chunk files before, 971 after) instead of one corpus-sized chunk per entrypoint. handler.mjs 100.93 MiB -> 48.47 MiB (-52.0%) The only consumer this changes is the docs page, which now awaits `page.data.load()` for `body` and `toc`. Frontmatter stays eager, so `title`, `description`, `seoTitle` and `full` are untouched, and `getText('processed')` — what the llms.txt routes call — remains a method on the entry, so the generated `llms` bodies are byte-identical. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GkauAsZBEemRbco2rEX9Lx
This was referenced Sep 4, 2026
os-bill
pushed a commit
that referenced
this pull request
Sep 8, 2026
Nothing in this repository weighed the Worker. The only thing that checked it was the Cloudflare API, at upload time, on `main`, after merge — and the rejection lands on version creation, so nothing 500s, no page changes, and the site silently stops moving. That is how this repo ran 35 consecutive red deploys (runs #106-#140) with the `build` job green for every one of them. The `build` job already packaged the Worker with `--skipNextBuild`, but only on a push to `main`, so a pull request never packaged one and could never be told its Worker was too big. That condition is dropped; the artifact upload stays `main`-only underneath the new gate. The gate reads wrangler's own `Total Upload:` line via `wrangler deploy --dry-run` — the same accounting a real deploy prints, no API call and no credentials — rather than stat-ing files, which would re-derive which files count. Budget 61440 KiB (60 MiB), declared once with the 65536 KiB limit beside it; every percentage is computed, never typed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ChPQM8jamxLUfUAxwFpJ8S
os-bill
added a commit
that referenced
this pull request
Sep 8, 2026
) Nothing in this repository weighed the Worker. The only thing that checked it was the Cloudflare API, at upload time, on `main`, after merge — and the rejection lands on version creation, so nothing 500s, no page changes, and the site silently stops moving. That is how this repo ran 35 consecutive red deploys (runs #106-#140) with the `build` job green for every one of them. The `build` job already packaged the Worker with `--skipNextBuild`, but only on a push to `main`, so a pull request never packaged one and could never be told its Worker was too big. That condition is dropped; the artifact upload stays `main`-only underneath the new gate. The gate reads wrangler's own `Total Upload:` line via `wrangler deploy --dry-run` — the same accounting a real deploy prints, no API call and no credentials — rather than stat-ing files, which would re-derive which files count. Budget 61440 KiB (60 MiB), declared once with the 65536 KiB limit beside it; every percentage is computed, never typed. Claude-Session: https://claude.ai/code/session_01ChPQM8jamxLUfUAxwFpJ8S Co-authored-by: Claude <noreply@anthropic.com>
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 #101
Verified at commit
5c14215.What changed
Four lines, all of them content an author wrote that a code fence happens to render in a monospace box.
build/marketplace.mdx:46You ─→ Console ─→ Marketplace tab …You ─→ ObjectOS ─→ Marketplace tab …build/marketplace.mdx:50Console re-renders with newThe page re-renders with newreference/field-types.mdx:225├─► Console: form widget + list column├─► UI: form widget + list columnreference/cli.mdx:38# API only (no Console/Account)# API only (no UI/Account portals)Untouched, as ruled: every
/_console/URL in the corpus (the diff contains no line matching_console), and the commandos start --no-uiitself, which is copy-run and is byte-identical — only the comment after the hash changes. The five in-fence occurrences inquickstart.mdxare #94's and are not touched here.The check that is the deliverable: what a reader now sees
The defect was visible on one screen in
reference/cli.mdx— a fenced comment and a flag table three screens apart, naming the same flag two different ways. I read the prerendered HTML from the production build (apps/docs/.next/server/app/en/docs/…), not the source, for all three pages.Rendered
reference/cli.mdx, the fenced block:and the flag table row on the same rendered page:
--no-ui→ "Disable the UI and Account portals". One vocabulary, both places.Sweeping the rendered text of all three English pages for the surface nouns:
build/marketplacereference/field-typesreference/cliConsoleappears zero times in the rendered English text of all three. No fourth or fifth spelling was introduced — those are the three names #79 landed (ObjectOSfor a destination,the UI/UIfor the capability and the stack layer,Setupfor administration).Why these words and not others
Checked against what #79 actually landed rather than pattern-matched:
/_console/)". The diagram now agrees with the sentence introducing it.REST:,AI Builder:,Audit:, i.e. stack layers without articles, and Retire "Console" as the name of the end-user surface; keep a name only for the admin surface (Setup) #79 rewrote this file's own frontmatter to "how it surfaces in REST, the UI, and the AI Builder".Diagram alignment, measured in display columns
Counted as display columns, not bytes — the box-drawing characters are multi-byte (the field-types branch lines are 41 code points but 47 bytes), so a byte count would have misled. Measured on the rendered output:
marketplace flow diagram — the three
↓stay in column 50 and the four text-block lines stay at indent 39. The node line grows one column (56 → 57), which movesInstallfrom column 49 to 50, so the arrow spine now descends from its first character instead of its second. The one invariant that could have broken is the spine, and it did not move.field-types diagram — every branch stays at indent 3; the block is ragged right with nothing aligned to the right edge, so shortening
Console:toUI:changes no relationship.cli.mdx— the comment hash stays in column 39; only the text after it changed.Verification
All at
5c14215, after the final commit.turbo run type-check build --filter=@objectos/docs --force— bothcache bypass, force executing(6cdd55539dc94ec8,cc2e9329a2da2066),Tasks: 2 successful, 2 total,0 cached.check-translations.mjs—✓ translations gate passed.check-translation-ownership.mjs— 0 translation artifacts, 3 other files (TRANSLATION_BOT_LOGINunset, so reporting).check-translation-output.mjs --self-test—20 case(s) … every rule demonstrated able to fail, then--filesas CI runs it on a PR:blocking on 0 changed translation(s), exit 0.Locale staleness this introduces, measured against
origin/mainin a second worktree rather than assumed: 6 newfencefindings (marketplace.zh-Hans,field-types.{de,es,fr,ja,ko}) and one shifted (marketplace.zh-Hans#4 → #2). All are non-blocking — the gate's PR scope is changed locale files, and this PR changes none. This is the designed outcome of AGENTS.md's translation split; the next translation pass clears them.Generated by Claude Code