You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs(deployment): the environment-variables page gives OS_PRODUCT_NAME a default the runtime does not use and omits six branding variables the runtime reads #24887
Filing gate ① a product defect with reach measured: operator documentation that states a default the runtime does not use. Found by the readings-only dispatch on #24766 (os-dev report on that card), from the maintainer's browser pass objectstack-ai/hotcrm#2188 (finding F-16): the login page of an unconfigured install reads "ObjectOS". Filed by the domain:services seat 2 (seat post #21118, os-support-ai, session session_01UmqzD97e14iws6hmVhgZ5y). ⛔ Not a claim. The grade and lane are triage's; the page is content/docs/** (domain:devx).
Reader (who acts): triage routes it to the lane that owns content/docs/deployment/environment-variables.mdx. #24766's decision (6290956974) points admins at these variables under every option it weighs, so the page has to be right.
The page against the runtime (origin/main98c3d00447)
OS_PRODUCT_NAME. The page (content/docs/deployment/environment-variables.mdx:136) says default ObjectStack, "shown in the UI chrome and emails". The runtime's default is ObjectOS (packages/cloud-connection/src/runtime-config-plugin.ts:729). No email reads OS_PRODUCT_NAME: mail and auth name the deployment through the OS_APP_NAME chain (default ObjectStack), which the page documents correctly at :138. So one unconfigured deployment shows two product names, and the page names neither correctly for the console.
OS_PRODUCT_SHORT_NAME (:137): the page says default OS; the runtime falls back to the product name (runtime-config-plugin.ts:730).
Read by the runtime, absent from the page:OS_PRODUCT_STAGE, OS_LOGO_URL, OS_FAVICON_URL, OS_BRAND_COLOR, OS_PWA_DESCRIPTION and OS_PWA_THEME_COLOR (runtime-config-plugin.ts, read once at construction).
Re-check: for each name, git show origin/main:content/docs/deployment/environment-variables.mdx | grep -c NAME finds 0, and the same count over runtime-config-plugin.ts finds at least 1.
The fix, as the seat reads it
Correct the two rows to the runtime: ObjectOS, and the product name as the short name's fallback. Say what the name reaches: the console chrome, title, login page, loading screen and PWA manifest, not emails. Point to OS_APP_NAME for emails.
Add the six variables, with their defaults and readers, as runtime-config-plugin.ts resolves them.
Docs follow the implementation; whether ObjectOS is the right default is not this card's question.
Dedupe
Method: two semantic search_issues queries on objectstack-ai/objectstack, open and closed, using the finding's own words. 4 hits, none on point. #9252 (closed) is OS_PRODUCT_STAGE not reaching the runtime config on the dev server. #5448 (closed) is OS_APP_NAME precedence. New.
Scope note from #24766's landing · domain:services seat 2 (seat post #21118) · session_01UmqzD97e14iws6hmVhgZ5y · 2026-10-20T21:50Z
PR #24959 (78ab6474c) landed, and it changes what content/docs/deployment/environment-variables.mdx's branding section has to say. Whoever fixes this page should carry the following, read from the merged code and its changesets, not from the page:
Under single, a value saved in Setup → Branding outranks the deployment's own branding on GET /api/v1/runtime/config: workspace_name → productName, logo_url → logoUrl, accent_color → brandColor. The order is the saved setting (or the settings layer's own OS_BRANDING_* pin), then the host's RuntimeConfigPlugin option, then OS_PRODUCT_NAME / OS_LOGO_URL / OS_BRAND_COLOR, then the built-in default.
Under group / isolated, the branding namespace is not offered, so the console's branding is OS_PRODUCT_NAME / OS_LOGO_URL / OS_BRAND_COLOR alone. The OS_BRANDING_* variables are not read there. The auth product name (sign-in mail, the authenticator issuer, MCP sign-in) is the OS_APP_NAME chain: a walled deployment that set OS_BRANDING_WORKSPACE_NAME moves the value to OS_APP_NAME.
The two-defaults reading this card already carries (ObjectStack vs ObjectOS) is unchanged by that PR.
Claim: PM loop round 31 · a p2 domain:devx docs card (operator branding variables), after PR #24959 landed; serial dispatch under the maintainer's 「串行派发」
Session: session_01FM29ZqLTrnPNXxijioZwMp
Account: os-warren (the seat's linked user as GET /user answers it; the card's assignee)
Branch: claude/issue-24887-branding-env-vars
Worktree: objectstack-issue-24887
Domain: domain:devx
Seat: domain:devx#1
File surface: content/docs/deployment/environment-variables.mdx, its branding rows and section:
correct OS_PRODUCT_NAME and OS_PRODUCT_SHORT_NAME to the runtime's defaults and readers;
add the six variables the runtime reads (OS_PRODUCT_STAGE, OS_LOGO_URL, OS_FAVICON_URL, OS_BRAND_COLOR, OS_PWA_DESCRIPTION, OS_PWA_THEME_COLOR);
Every default and reader is read off main's code. ⛔ No product code, no new gate. Other pages that state these defaults are reported, not edited. Stop on breach and explain.
Container & model: S (one docs section, each row read off the runtime), mode:subagent, model: TIER_DEFAULT
Clause-②: no
Responsibility: the environment-variables page gives OS_PRODUCT_NAME a default (ObjectStack) the runtime does not use (ObjectOS), and omits six branding variables the runtime reads (#24887) | none | every operator branding a deployment, first HotCRM (objectstack-ai/hotcrm#2188 F-16)
Thread-read: 6302443232
Serial constraints cleared: no open PR touches content/docs/deployment/environment-variables.mdx, and no live Claim: names it (read at 2026-10-20T22:10Z). No dev of this session is in flight: #24888's dev has reported, and its PR #24989 is queued.
os-dev-report
{
"issue": 24887,
"status": "done",
"branch": "claude/issue-24887-branding-env-vars",
"pr": "#24990",
"session": "session_01FM29ZqLTrnPNXxijioZwMp — this run's harness-stamped id (subagent = parent's)",
"premise_still_valid": true,
"summary": "Premise held on origin/main 7adfaec and again on e4d604e. OS_PRODUCT_NAME defaults to ObjectOS (runtime-config-plugin.ts#RuntimeConfigPlugin.constructor), not the page's ObjectStack, and no mail reads it. OS_PRODUCT_SHORT_NAME falls back to the served product name (#brandingBlock), not OS. The six other variables had 0 hits on the page and are read in the constructor. In content/docs/deployment/environment-variables.mdx only (+19/-4), the Branding section now does five things. (1) It corrects the two rows to their runtime defaults and states what OS_PRODUCT_NAME reaches, measured in objectui at the pin cf153eb2e535: the tab title, the header product mark, the sign-in pages, the loading screen and the PWA manifest name. It points to OS_APP_NAME for mail and auth. (2) It adds OS_PRODUCT_STAGE, OS_LOGO_URL, OS_FAVICON_URL, OS_BRAND_COLOR, OS_PWA_DESCRIPTION and OS_PWA_THEME_COLOR with their constructor defaults. (3) It says all eight are read once at construction, so a change takes a restart, while a Setup → Branding save is read per request. (4) It states PR #24959's precedence per posture, re-read on main. Under single: the setting (OS_BRANDING_* pin, then the saved value), then the host option, then the OS_* variable, then the default. Under group / isolated the namespace is withheld, OS_BRANDING_* are not read, and auth names the product through OS_APP_NAME. (5) It qualifies the OS_APP_NAME row's 'workspace_name outranks it in auth' to single only. The heading drops '(single-tenant)'; 0 inbound links to the old anchor. Live reading on the showcase (main 7adfaec, pnpm dev -- --fresh, no branding variables set, posture single): GET /api/v1/runtime/config gave 200 with productName ObjectOS, productShortName ObjectOS, pwaDescription 'ObjectOS — runtime console', pwaThemeColor #4f46e5, and no stage/logoUrl/faviconUrl/brandColor keys. GET /api/settings/branding gave workspace_name ObjectStack with source default. The password-reset mail row in sys_identity_email has subject 'Reset your ObjectStack password', status sent; its body names ObjectStack 1x and ObjectOS 0x. Draft PR #24990 opened with assignee os-warren and label skip-changeset. Teardown: my dev server process group was stopped and its port closed. The worktree's node_modules and the worktree itself are removed right after this comment posts.",
"tests": "No package touched, so there is no package test, typecheck or ablation. Docs-only verification at HEAD d3a8afd: the page compiles with the docs app's @mdx-js/mdx 3.1.1 + remark-gfm 4.0.1 (exit 0; output carries the new rows). A control-byte scan of the edited file finds no hits (grep -naP exit 1). The card's own re-check: page counts after the edit, base counts in parentheses: OS_PRODUCT_STAGE 2 (0), OS_LOGO_URL 2 (0), OS_FAVICON_URL 2 (0), OS_BRAND_COLOR 2 (0), OS_PWA_DESCRIPTION 1 (0), OS_PWA_THEME_COLOR 2 (0). Live boot readings as in summary. To run the showcase I built its closure (pnpm --filter '@objectstack/example-showcase^...' build under os-verify-lock: VERDICT command-exit 0, held 374s), then the 8 packages check-dev-prereqs named as missing (VERDICT command-exit 0, 43s). Then check-dev-prereqs exited 0 ('70 package build artifacts present').",
"gates": "Local subset, derived at HEAD d3a8afd (stderr first line: tree objectstack-ai/objectstack at d3a8afd; --repo holds; 1 path vs merge base e4d604e). node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack gave 41 commands (29 pnpm, 12 node); all 41 ran with exit 0, codes captured before any pipe into ran.list. The first derivation at c02bd51 warned STALE TREE, so I merged origin/main e4d604e and re-derived. --ran reconciliation exit 0: '41 derived famil(ies) accounted for — 41 run, 0 NOT-MEASURED'. Verdict lines include: check-doc-anchors 563 links resolve; check-docs-single-h1 418 pages; check-doc-frontmatter content/docs 418; check-docs-redirects OK; check-nul-bytes OK (11542 files); spec check:docs 227 generated files in sync; lint check:doc-security-posture OK. git merge-tree --write-tree origin/main HEAD gave exit 0 and tree e6b183653f. skip-changeset was measured: no published package's files[] names content/docs or an mdx glob (73 packages). The diff-unique phrase has 0 hits across 205 files[] roots; the control OS_PWA_THEME_COLOR has 4 hits in packages/cloud-connection/dist. CI on PR #24990 at d3a8afd, read once at report time: 43 check-runs, 11 success, 12 skipped, 20 in_progress. Success: Check Changeset, Check Documentation Links, Check PR Size, Spec property liveness, Dogfood Regression Gate, The card this PR closes must claim this branch, Part-of PR must not also close its card, the two single-claim gates, Auto Label, filter. In progress: Build Docs, Governed Surface Queue Guard, Lint (8 lanes), Test Core 1-6/6, Type Check (4 lanes). Skipped: Build Core, Console Pin Gate, Temporal Conformance. NOT MEASURED locally, CI-owned: Build Docs, the Test Core shards, the type-check lanes, test:repo (the diff touches no repo-project test).",
"mcp_calls": "0 — no MCP GitHub tool was called",
"api_writes": "2 relay strokes through scripts/pm/fleet-write/dispatch.mjs, each one POST /repos/objectstack-ai/objectstack/dispatches executed as objectstack-fleet[bot]. (1) pr_create = POST /repos/objectstack-ai/objectstack/pulls (draft), POST /repos//issues/24990/assignees [os-warren], POST /repos//issues/24990/labels [skip-changeset]. (2) this comment, via scripts/pm/post-stamped.mjs, = POST /repos//issues/24887/comments. Plus 3 git pushes (not REST): empty-branch probe, c02bd51, merge d3a8afd.",
"deviations": [
"Read-back of the pr_create stroke: the relay row confirmed the body byte-identical (10001 sent and stored) and listed assignees os-warren, but printed no label line. A REST GET /pulls/24990 then showed labels ['skip-changeset'], draft true and no requested reviewers. The label is confirmed by that read, not by the relay row.",
"While reading the live auth mail I echoed the first characters of a sign-in response from the throwaway --fresh dev server. That included part of an ephemeral session token for the seeded dev admin on 127.0.0.1:41873. The server and its tempdir are gone, so the token is dead. No environment variable value was printed.",
"Commit trailers use AGENTS.md's model-free pair (Claude-Session + Co-authored-by: Claude), not the harness reminder's model-named Co-Authored-By. The PR body ends with the session-URL footer AGENTS.md prescribes, not the harness's emoji line.",
"test:repo was not run locally: the diff touches no repo-project test and the derived list does not name it."
],
"open_questions": [],
"out_of_scope_findings": [
"carrier: none · noted, not filed: an unconfigured deployment shows two product names, ObjectOS in the console (RuntimeConfigPlugin) and ObjectStack in mail and auth (resolveDeploymentAppName). It is product behaviour the card scopes out; the page now states it and how to unify the name. In PR Acceptance notes.",
"carrier: none · noted, not filed: empty-string handling differs across the constructor's env reads. OS_PRODUCT_NAME, OS_PRODUCT_SHORT_NAME and OS_PRODUCT_STAGE read '' as unset. OS_LOGO_URL, OS_FAVICON_URL, OS_BRAND_COLOR and OS_PWA_* forward '' because ?? keeps it. The console's || getters fall back, so nothing visible changes. This is a read-only inference and no class applies. In PR Acceptance notes.",
"No other page in content/docs states these defaults (git grep over content/docs minus references/releases). objectui packages/app-shell/README.md at the pin names OS_PRODUCT_STAGE consistently. Nothing to report there."
]
}
An unconfigured deployment reads ObjectOS in the console and ObjectStack in its mail. That was measured live, and the page now says how to unify the two. Whether the two defaults should be one is product behaviour this card scoped out; it bears on #24766's options.
Activity
objectstack-fleet commentedon Oct 20, 2026
Scope note from #24766's landing ·
domain:servicesseat 2 (seat post #21118) ·session_01UmqzD97e14iws6hmVhgZ5y· 2026-10-20T21:50ZPR #24959 (
78ab6474c) landed, and it changes whatcontent/docs/deployment/environment-variables.mdx's branding section has to say. Whoever fixes this page should carry the following, read from the merged code and its changesets, not from the page:single, a value saved in Setup → Branding outranks the deployment's own branding onGET /api/v1/runtime/config:workspace_name→productName,logo_url→logoUrl,accent_color→brandColor. The order is the saved setting (or the settings layer's ownOS_BRANDING_*pin), then the host'sRuntimeConfigPluginoption, thenOS_PRODUCT_NAME/OS_LOGO_URL/OS_BRAND_COLOR, then the built-in default.group/isolated, thebrandingnamespace is not offered, so the console's branding isOS_PRODUCT_NAME/OS_LOGO_URL/OS_BRAND_COLORalone. TheOS_BRANDING_*variables are not read there. The auth product name (sign-in mail, the authenticator issuer, MCP sign-in) is theOS_APP_NAMEchain: a walled deployment that setOS_BRANDING_WORKSPACE_NAMEmoves the value toOS_APP_NAME.ObjectStackvsObjectOS) is unchanged by that PR.objectstack-fleet commentedon Oct 20, 2026
Claim: PM loop round 31 · a p2
domain:devxdocs card (operator branding variables), after PR #24959 landed; serial dispatch under the maintainer's 「串行派发」Session:
session_01FM29ZqLTrnPNXxijioZwMpAccount:
os-warren(the seat's linked user asGET /useranswers it; the card's assignee)Branch:
claude/issue-24887-branding-env-varsWorktree:
objectstack-issue-24887Domain:
domain:devxSeat:
domain:devx#1File surface:
content/docs/deployment/environment-variables.mdx, its branding rows and section:OS_PRODUCT_NAMEandOS_PRODUCT_SHORT_NAMEto the runtime's defaults and readers;OS_PRODUCT_STAGE,OS_LOGO_URL,OS_FAVICON_URL,OS_BRAND_COLOR,OS_PWA_DESCRIPTION,OS_PWA_THEME_COLOR);6302443232), per tenancy posture.Every default and reader is read off
main's code. ⛔ No product code, no new gate. Other pages that state these defaults are reported, not edited. Stop on breach and explain.Container & model:
S (one docs section, each row read off the runtime),mode:subagent,model: TIER_DEFAULTClause-②: no
Responsibility:
the environment-variables page gives OS_PRODUCT_NAME a default (ObjectStack) the runtime does not use (ObjectOS), and omits six branding variables the runtime reads (#24887)|none|every operator branding a deployment, first HotCRM (objectstack-ai/hotcrm#2188 F-16)Thread-read: 6302443232
Serial constraints cleared: no open PR touches
content/docs/deployment/environment-variables.mdx, and no liveClaim:names it (read at 2026-10-20T22:10Z). No dev of this session is in flight: #24888's dev has reported, and its PR #24989 is queued.Generated by Claude Code
objectstack-fleet commentedon Oct 20, 2026
os-dev-report
{
"issue": 24887,
"status": "done",
"branch": "claude/issue-24887-branding-env-vars",
"pr": "#24990",
"session": "session_01FM29ZqLTrnPNXxijioZwMp — this run's harness-stamped id (subagent = parent's)",
"premise_still_valid": true,
"summary": "Premise held on origin/main 7adfaec and again on e4d604e. OS_PRODUCT_NAME defaults to ObjectOS (runtime-config-plugin.ts#RuntimeConfigPlugin.constructor), not the page's ObjectStack, and no mail reads it. OS_PRODUCT_SHORT_NAME falls back to the served product name (#brandingBlock), not OS. The six other variables had 0 hits on the page and are read in the constructor. In content/docs/deployment/environment-variables.mdx only (+19/-4), the Branding section now does five things. (1) It corrects the two rows to their runtime defaults and states what OS_PRODUCT_NAME reaches, measured in objectui at the pin cf153eb2e535: the tab title, the header product mark, the sign-in pages, the loading screen and the PWA manifest name. It points to OS_APP_NAME for mail and auth. (2) It adds OS_PRODUCT_STAGE, OS_LOGO_URL, OS_FAVICON_URL, OS_BRAND_COLOR, OS_PWA_DESCRIPTION and OS_PWA_THEME_COLOR with their constructor defaults. (3) It says all eight are read once at construction, so a change takes a restart, while a Setup → Branding save is read per request. (4) It states PR #24959's precedence per posture, re-read on main. Under single: the setting (OS_BRANDING_* pin, then the saved value), then the host option, then the OS_* variable, then the default. Under group / isolated the namespace is withheld, OS_BRANDING_* are not read, and auth names the product through OS_APP_NAME. (5) It qualifies the OS_APP_NAME row's 'workspace_name outranks it in auth' to single only. The heading drops '(single-tenant)'; 0 inbound links to the old anchor. Live reading on the showcase (main 7adfaec, pnpm dev -- --fresh, no branding variables set, posture single): GET /api/v1/runtime/config gave 200 with productName ObjectOS, productShortName ObjectOS, pwaDescription 'ObjectOS — runtime console', pwaThemeColor #4f46e5, and no stage/logoUrl/faviconUrl/brandColor keys. GET /api/settings/branding gave workspace_name ObjectStack with source default. The password-reset mail row in sys_identity_email has subject 'Reset your ObjectStack password', status sent; its body names ObjectStack 1x and ObjectOS 0x. Draft PR #24990 opened with assignee os-warren and label skip-changeset. Teardown: my dev server process group was stopped and its port closed. The worktree's node_modules and the worktree itself are removed right after this comment posts.",
"tests": "No package touched, so there is no package test, typecheck or ablation. Docs-only verification at HEAD d3a8afd: the page compiles with the docs app's @mdx-js/mdx 3.1.1 + remark-gfm 4.0.1 (exit 0; output carries the new rows). A control-byte scan of the edited file finds no hits (grep -naP exit 1). The card's own re-check: page counts after the edit, base counts in parentheses: OS_PRODUCT_STAGE 2 (0), OS_LOGO_URL 2 (0), OS_FAVICON_URL 2 (0), OS_BRAND_COLOR 2 (0), OS_PWA_DESCRIPTION 1 (0), OS_PWA_THEME_COLOR 2 (0). Live boot readings as in summary. To run the showcase I built its closure (pnpm --filter '@objectstack/example-showcase^...' build under os-verify-lock: VERDICT command-exit 0, held 374s), then the 8 packages check-dev-prereqs named as missing (VERDICT command-exit 0, 43s). Then check-dev-prereqs exited 0 ('70 package build artifacts present').",
"gates": "Local subset, derived at HEAD d3a8afd (stderr first line: tree objectstack-ai/objectstack at d3a8afd; --repo holds; 1 path vs merge base e4d604e). node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack gave 41 commands (29 pnpm, 12 node); all 41 ran with exit 0, codes captured before any pipe into ran.list. The first derivation at c02bd51 warned STALE TREE, so I merged origin/main e4d604e and re-derived. --ran reconciliation exit 0: '41 derived famil(ies) accounted for — 41 run, 0 NOT-MEASURED'. Verdict lines include: check-doc-anchors 563 links resolve; check-docs-single-h1 418 pages; check-doc-frontmatter content/docs 418; check-docs-redirects OK; check-nul-bytes OK (11542 files); spec check:docs 227 generated files in sync; lint check:doc-security-posture OK. git merge-tree --write-tree origin/main HEAD gave exit 0 and tree e6b183653f. skip-changeset was measured: no published package's files[] names content/docs or an mdx glob (73 packages). The diff-unique phrase has 0 hits across 205 files[] roots; the control OS_PWA_THEME_COLOR has 4 hits in packages/cloud-connection/dist. CI on PR #24990 at d3a8afd, read once at report time: 43 check-runs, 11 success, 12 skipped, 20 in_progress. Success: Check Changeset, Check Documentation Links, Check PR Size, Spec property liveness, Dogfood Regression Gate, The card this PR closes must claim this branch, Part-of PR must not also close its card, the two single-claim gates, Auto Label, filter. In progress: Build Docs, Governed Surface Queue Guard, Lint (8 lanes), Test Core 1-6/6, Type Check (4 lanes). Skipped: Build Core, Console Pin Gate, Temporal Conformance. NOT MEASURED locally, CI-owned: Build Docs, the Test Core shards, the type-check lanes, test:repo (the diff touches no repo-project test).",
"mcp_calls": "0 — no MCP GitHub tool was called",
"api_writes": "2 relay strokes through scripts/pm/fleet-write/dispatch.mjs, each one POST /repos/objectstack-ai/objectstack/dispatches executed as objectstack-fleet[bot]. (1) pr_create = POST /repos/objectstack-ai/objectstack/pulls (draft), POST /repos//issues/24990/assignees [os-warren], POST /repos//issues/24990/labels [skip-changeset]. (2) this comment, via scripts/pm/post-stamped.mjs, = POST /repos//issues/24887/comments. Plus 3 git pushes (not REST): empty-branch probe, c02bd51, merge d3a8afd.",
"deviations": [
"Read-back of the pr_create stroke: the relay row confirmed the body byte-identical (10001 sent and stored) and listed assignees os-warren, but printed no label line. A REST GET /pulls/24990 then showed labels ['skip-changeset'], draft true and no requested reviewers. The label is confirmed by that read, not by the relay row.",
"While reading the live auth mail I echoed the first characters of a sign-in response from the throwaway --fresh dev server. That included part of an ephemeral session token for the seeded dev admin on 127.0.0.1:41873. The server and its tempdir are gone, so the token is dead. No environment variable value was printed.",
"Commit trailers use AGENTS.md's model-free pair (Claude-Session + Co-authored-by: Claude), not the harness reminder's model-named Co-Authored-By. The PR body ends with the session-URL footer AGENTS.md prescribes, not the harness's emoji line.",
"test:repo was not run locally: the diff touches no repo-project test and the derived list does not name it."
],
"open_questions": [],
"out_of_scope_findings": [
"carrier: none · noted, not filed: an unconfigured deployment shows two product names, ObjectOS in the console (RuntimeConfigPlugin) and ObjectStack in mail and auth (resolveDeploymentAppName). It is product behaviour the card scopes out; the page now states it and how to unify the name. In PR Acceptance notes.",
"carrier: none · noted, not filed: empty-string handling differs across the constructor's env reads. OS_PRODUCT_NAME, OS_PRODUCT_SHORT_NAME and OS_PRODUCT_STAGE read '' as unset. OS_LOGO_URL, OS_FAVICON_URL, OS_BRAND_COLOR and OS_PWA_* forward '' because ?? keeps it. The console's || getters fall back, so nothing visible changes. This is a read-only inference and no class applies. In PR Acceptance notes.",
"No other page in content/docs states these defaults (git grep over content/docs minus references/releases). objectui packages/app-shell/README.md at the pin names OS_PRODUCT_STAGE consistently. Nothing to report there."
]
}
objectstack-fleet commentedon Oct 20, 2026
Landed ·
domain:devxseat 1 ·session_01FM29ZqLTrnPNXxijioZwMp· 2026-10-20T23:20Z4fe3af9d7e(ACCEPT6303681254; not governed;Fixes #24887)origin/main, by contentcontent/docs/deployment/environment-variables.mdxis byte-identical to the headd3a8afd655State change: PR #24990 closed this card through
Fixes #24887(completed).pm:dispatchedcomes off in this act.The Branding section now matches the runtime:
OS_PRODUCT_NAMEdefaults toObjectOSand names the console only;OS_PRODUCT_SHORT_NAMEfalls back to the product name served;An unconfigured deployment reads
ObjectOSin the console andObjectStackin its mail. That was measured live, and the page now says how to unify the two. Whether the two defaults should be one is product behaviour this card scoped out; it bears on #24766's options.Generated by Claude Code