Uh oh!
There was an error while loading. Please reload this page.
docs: retire "Console" as the end-user surface name; keep Setup for administration - #100
Merged
Merged
Conversation
…dministration
The word was doing three different jobs across 47 English pages. Each
occurrence got a per-occurrence call, never a global replace:
- a place the reader goes, end-user or builder -> the surface has no
name; the noun is dropped and the sentence rewritten so it keeps its
subject ("Open the record", "Open ObjectOS").
- a place the reader goes, administration -> Setup, the name the corpus
already used on 18 pages (Setup -> Configuration -> ..., setup.access,
the Setup app at /apps/setup).
- a thing the product ships -- a URL, a plugin id (Console UI), a line
the CLI prints, a box in an architecture diagram -> unchanged.
Nothing inside a code fence changed: all nine in-fence occurrences are
byte-identical, and every /_console string in the corpus is untouched.
The sweep also covers 15 lowercase "console" occurrences that a
case-sensitive grep misses -- 13 of them in use/, the section the card
measured at 6.
Also resolves the glossary defect recorded as #89:
two `### Console` entries each saying "Distinct from Console", both
claiming /_console/, and a `Surface` entry listing "four" entry points
with /_console/ twice. The administration entry is re-authored as one
`Setup` entry in alphabetical position; the end-user surface gets no
name and therefore no entry; `Surface` drops the unsupportable count and
the duplicate.
docs/TRANSLATION.md drops Console from the never-translate glossary and
keeps Setup.
English only. Locale siblings are left alone and report stale, per
AGENTS.md; the freshness gate passes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CJPxtTxoxTUnjNdTbiEaRa
This was referenced Aug 18, 2026
os-zhuang
marked this pull request as ready for review
August 18, 2026 14:21
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 18, 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 freeto 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#79
Fixes#89
Verified on
adbcafc.The line I drew
The card names three jobs the word does. Deciding 180 occurrences one at a
time needs a test that is mechanical enough to review, so I used this one:
rewrite so the sentence keeps its subject. "Open Console, start the AI
Builder" becomes "Open ObjectOS, start the AI Builder"; "a view is how a
user sees records in Console" becomes "a view is how a user sees records".
Setup. This was mostly ratification, notintroduction: the corpus already spells navigation
Setup → Configuration → …on ~30 lines, gates it onsetup.access, and calls it the Setup app at/apps/setup.Console UI), a line theCLI prints, a box in an architecture diagram, a component named in the
licence text. Unchanged, because those are identifiers a reader matches
against their own terminal, config, or plugin list.
Where
build/landedThe PM's measurement put 57 of 160 occurrences in
build/, a section the carddoes not classify. Applying the test above, almost all of them are the first
kind — a builder creating an object does it in ObjectOS, exactly as an end
user opens a record — so the noun is dropped. The exceptions the PM predicted
are real and were kept or reshaped rather than renamed:
architecture.mdx"REST API, Console UI, permissions, jobs"ConsoleUIis a real plugin id inobjectstack.quickstart.mdxplugin list "…, Console UI, Account UI, Console UI, …"system-settings.mdxsettings-model row naming Console UI as the renderersys_settingandResolver.license.mdx"the protocol, kernel, CLI, production runtime, Console" / "the Console and Account UIs"Code fences: a bright line
Nothing inside a code fence changed. All nine in-fence occurrences are
byte-identical to
origin/main. That rule is mechanical and one grep verifiesit, which is worth more than case-by-case judgement inside blocks a reader
copies and runs.
Worth flagging: only five of the nine are output the product prints
(
quickstart.mdxlines 40/46/48/151/153). The other four are authored contentthat happens to live in a fence — two ASCII diagram lines in
build/marketplace.mdx, one inreference/field-types.mdx, and a#commentin a
bashblock inreference/cli.mdx. They are left unchanged under thecard's instruction, but the stated rationale for that instruction (terminal
output a reader compares) does not cover them.
reference/cli.mdxis wherethis shows: the fenced comment still reads
# API only (no Console/Account)while the flag table three screens down now reads Disable the UI and Account
portals. One line, one follow-up, maintainer's call.
The gap in the card's own measurement
The card counted
Console, case-sensitively. The corpus also carries 20lowercase
consoleoccurrences doing the same job — "the console home","wherever you are in the console", "the whole console follows immediately",
"Tour the console as an everyday user". Thirteen of them are in
use/,the section measured at 6.
Leaving them would have left two spellings of the same surface live in the
corpus, which the card forbids. Fifteen were retired with the rest; five stay,
all category three:
/console/f/…form URLs inbuild/interface/forms.mdx,and the
OS_OBS_EXPORTER=consoleconfig value in two pages.#89 — the glossary
The two
### Consoleentries are one collapsed pair, and the entry bodiessurvived intact even though the headings did not. What they were
distinguishing is legible from the bodies: platform administration (users,
roles, permission sets, audit log, sessions, API keys, system settings) versus
working in the apps (browse, create, edit records, configure views, install
apps). Two more pieces of evidence agree — the second entry sits in the
alphabetical slot after
Sharing Rule, so it was never a C-word; and thedamage repeats elsewhere in the corpus with the same shape (
quickstart.mdxprints two identical
Console:banner lines and lists twoConsole UIplugins).
Under the decision that collapses to: one
Setupentry, and no entry at allfor the end-user surface. Both were rewritten accordingly, and
Setupmoved toits alphabetical position between
Record ShareandSharing Rule.On the URL. The triage asked that the address come from routing rather than
from either glossary sentence. It does:
objectstack@origin/maindefinesCONSOLE_PATH = '/_console'inpackages/cli/src/utils/console.tsand defaultsuiBasePathto/_consoleinpackages/spec/src/system/auth-config.zod.ts,and the CLI banner prints exactly one
Console:line. So the duplicated URL wasnot a wrong URL — there is one UI at
/_console/, and what was wrong waspresenting two areas of it as two separately-named surfaces. The glossary now
says Setup lives at
/apps/setupinside the UI served at/_console/, which iswhat
configure/index.mdxandconfigure/users.mdxalready said.Surfaceclaimed "four" entry points and listed three distinct ones with/_console/repeated. I removed the numeral rather than asserting "three":three is what this corpus can support, four is a claim nothing supports, and
inventing a fourth URL is out of scope.
Verification
turbo run type-check --forcecache bypass, force executing 5f6f0dc855a640b1· 1 successfulturbo run build --forcecache bypass, force executing 002d42ca7ee9a0e6· 1 successful, 79 English pages + 256 translations prerenderedcheck-translation-ownership.mjscheck-translations.mjs(freshness)check-translation-output.mjs --self-testcheck-translation-output.mjs --files/docs/use,/docs/use/notifications,/docs/configure,/docs/configure/permissions/permission-sets,/docs/build/marketplace,/docs/build/interface/actions,/docs/quickstart,/docs/resources/glossaryglossary#returns nothing. No internal link points at a renamed anchor.The rendered-text scan is the real proof of the fence rule: across those eight
pages the only surviving
Consolein rendered output is inquickstart's twobanner blocks, its plugin list, and
marketplace's ASCII diagram.Category-3 count
The card asks that
_consolecome out unchanged. Reporting it honestly, becauseit does not, and the reason matters:
_console, English pages_console, English pages outsideresources/glossary.mdx_console, all.mdxincluding localesConsole, English pagesConsoleEvery
/_consolestring in the corpus is untouched — the diff shows onlysurrounding prose changing on those lines. The two-occurrence delta is entirely
inside
resources/glossary.mdxand is exactly what #89 asked for: the deletedduplicate entry took its
/_console/with it, and de-duplicatingSurfaceremoved the repeated one. Those two instructions cannot both hold; I kept the
one that names a defect and reported the other rather than leaving the defect in
place.
Scope held
Not split.
configure/**alone would have left the administration surfacespelled
Setupthere andConsoleinbuild/,use/,reference/,operate/,resources/and the root pages — two spellings of one surface,which the card forbids. 47 files, but each hunk is one or two lines.
Untouched, as instructed: the
/_consoleURL everywhere; the recipient-kindwording in
record-access.mdxand thesharerow inactions.mdx(#91);packages/console; every locale sibling.objectuiandobjectstackUI copyare separate cards in their own repos.
Generated by Claude Code