Skip to content

Commit f00cbe3

Browse files
objectstack-fleet[bot]os-zhuangclaude
authored
fix(cli,i18n,console): the hosted product reads "ObjectOS Cloud" everywhere; the Community Console carries a "Powered by ObjectStack" mark (#26215)
Fixes #26136 ## What changed ObjectOS is one product in three editions — Community (this repository's runtime and Console, open source), Cloud (cloud.objectos.ai) and Enterprise — and ObjectStack is the name of the protocol, SDK, CLI and framework (maintainer ruling 2026-10-26 13:18Z, model 2). The hosted product is "ObjectOS Cloud" wherever a user reads it; this PR flips the places that still said "ObjectStack Cloud" and gives the Community Console its "Powered by ObjectStack" mark. - **`packages/cli`** (string literals and help text only): `os cloud login` / `logout` / `whoami`, `os package publish` and `os plugin publish` descriptions, the `--url` / `--server` / `--token` / `--visibility` flag descriptions, the printed headers ("ObjectOS Cloud Login" / "Logout" / "Identity"), the "Not logged in to ObjectOS Cloud" prescriptions in `whoami`, `package publish` and `cloud-config`, the shared "Authentication required" message in `api-client.ts`, and the `os serve` welcome page's link text to the cloud console. Internal identifiers are untouched: `~/.objectstack/cloud.json`, `OS_CLOUD_API_KEY`, `OS_CLOUD_URL`, `OS_TOKEN`, the `os cloud …` command ids. - **`packages/cli/README.md`** (3 rows) and **`content/docs/deployment/cli.mdx`** (6 lines). - **`README.md`**: the one phrase the slimmed README from PR 26148 still carried (that PR merged at 14:13Z, so this branch merged `origin/main` and fixed it, per the dispatch order's serial constraint). - **`ui/packages/i18n`**: the four cloud-connection / cloud-install strings in all ten locales (`cloudConnection.bound.title`, the two `dialogDescPicker`s and `signInFirst`) name "ObjectOS Cloud", the product name kept untranslated inside each locale's own sentence; `zh`'s title read "已连接到 ObjectStack 云" and now reads "已连接到 ObjectOS Cloud". New key `auth.shell.poweredBy` in all ten locales (the `ja` value keeps the English wordmark line, listed beside `publicForm.poweredBy` in the untranslated-identity allowlist with the same reason). - **`ui/packages/app-shell`**: new `isDefaultProductName()` on the runtime-config module and the barrel: true while `branding.productName` equals the default `'ObjectOS'`, false once a runtime has pushed its own. - **`ui/apps/console`**: `AuthLayout` (the shell of every unauthenticated page: login, register, forgot/reset password, verify email, setup, consent, device, invitation) renders a small "Powered by ObjectStack" link to https://objectstack.ai under the form when `isDefaultProductName()` is true. The wordmark, `logo.svg`, `manifest.json`, the default `productName: 'ObjectOS'` and `admin@objectos.ai` are unchanged. - **`scripts/sdui-manifest.sources/i18n.json`**: re-recorded by `node scripts/gen-sdui-manifest-node.mjs` (the gate hashes `ui/packages/i18n` sources; the manifest artefact itself is byte-identical). - Changeset `.changeset/26136-objectos-cloud-naming.md`: `patch` on `@objectstack/cli`, `@object-ui/i18n`, `@object-ui/app-shell`, `@object-ui/console`. ## Why the sign-in page, and why "productName equals the default" The sign-in layout already reads the server-driven product name, so it is the one surface where "is this deployment branded?" is already answered; every auth page shares it, and it is the first screen a Community user sees. The About / footer surface was not given a second copy: one place, one rule. How `branding` reaches the layout: `initRuntimeConfig()` fetches `/api/v1/runtime/config` at boot and merges `body.branding` into the app-shell singleton; `getProductName()` reads it. The payload carries no explicit edition key, so the only reliable signal of "server-pushed branding" is that `productName` differs from the default. That is what `isDefaultProductName()` reads, and the PR says so here as the order asked. Measured at source: `objectstack-ai/cloud` pushes `CLOUD_PRODUCT_NAME = 'ObjectOS Cloud'` (`packages/app-cloud/src/product-name.ts`), and a cloud-connected runtime pushes its workspace name (`packages/cloud-connection/src/runtime-config-plugin.ts`, `productName ← branding.workspace_name`), so both read as branded and get no second line. A logo or colour pushed without a name change does not count as a rebrand here (said in the predicate's doc comment). Clause-②: no Metadata-protocol: none ## How verified (worktree at the final head, see the report comment for the sha) - `node packages/cli/bin/run-dev cloud login --help` and `… package publish --help` print "ObjectOS Cloud" (flag descriptions and command description), no "ObjectStack Cloud". - `pnpm --filter @objectstack/cli exec vitest run --project unit --maxWorkers=2` under the verify lock on the merged tree: 333 of 334 files passed, 4876 of 4877 tests; the one red, `src/utils/boot-preparation-parity.test.ts`, was a 5 s timeout while a gate sweep shared the box, and the file passes alone under the lock (37 of 37; it reads `serve.ts` source, which this PR touches in one string). The two `published-subpath-*.pin` suites need `packages/cli/dist`, built first. the new `test/cloud-product-name.test.ts` pins the five commands' descriptions and flag descriptions on "ObjectOS Cloud" and asserts no "ObjectStack Cloud" in any of their help strings. The `integration` tier and the nightly `cloud-login-json-ndjson.e2e` tier (whose `not.toContain('ObjectOS Cloud Login')` pin flipped with the header) are CI's. - `ui`: `pnpm exec vitest run apps/console/src/pages/auth/__tests__/AuthLayout.powered-by.test.tsx apps/console/src/pages/auth/__tests__/LoginPage.layout-12600.test.tsx packages/app-shell/src/runtime-config.test.ts packages/app-shell/src/__tests__/product-neutral-renderer.ratchet.test.ts packages/i18n/` → 91 files / 1448 tests passed. The new `AuthLayout.powered-by` test boots branding through a stubbed `GET /api/v1/runtime/config` into the real singleton: default → mark with href `https://objectstack.ai`; `productName: 'ObjectOS'` plus a colour → mark; `'ObjectOS Cloud'` → no mark; `'Acme Studio'` plus a logo → no mark. - `pnpm --dir ui --filter @object-ui/app-shell run type-check`, `… @object-ui/console run type-check`, `… @object-ui/i18n run type-check`, `pnpm --filter @objectstack/cli typecheck`: all exit 0. `pnpm --dir ui run check:i18n-keys` (every `defaultValue` equals its `en` value) and `check:i18n-drift` (4 changed `en` values, 36 pack values followed, 1 key added) exit 0. - Derived gate subset (`node scripts/pm/dispatch-gates.mjs --commands`) run on the final tree; the full list, each exit code and the `--ran` reconciliation are in the report comment. `check:sdui-manifest`, `check:i18n`, `check:i18n-coverage`, `check:i18n-walk-parity`, `check:dual-build-cjs-loads` and spec `check:skill-examples` pass after a full build. `node scripts/check-plugin-teardown-shape.mjs --self-test` is NOT MEASURED here: it pins a fixture to a commit this shallow checkout cannot reach; CI runs it on a full checkout. ## Acceptance notes - `git grep -n "ObjectStack Cloud" -- ':!**/CHANGELOG.md'` went from 123 lines (at the branch base, a335f1d) to 59 on this branch's final head. Inside the card's surface the only residue is developer-facing code comments in `packages/cli/src` and its test files (file headers such as "authenticate against the ObjectStack Cloud", "ObjectStack Cloud's control plane" in the migration helpers' comments) — left as they are because the dispatch order limited `packages/cli/src/**` to string literals and help text; a user never reads them, and the new unit test names the stale phrase on purpose. Flipping those comments is a mechanical follow-up if the seat wants the grep at zero inside `packages/cli`. - The same phrase survives outside the card's surface, user-facing in places: `content/docs/deployment/cloud-connection.mdx` (title and description), `content/docs/deployment/index.mdx`, `content/docs/deployment/publish-and-preview.mdx`, `content/docs/protocol/objectql/schema.mdx`, `content/docs/protocol/kernel/metadata-service.mdx`, `content/docs/ui/setup-app.mdx`, `content/docs/kernel/services-checklist.mdx`, `ROADMAP.md`, four package READMEs (`adapters/hono`, `drivers/driver-memory`, `services/service-package`, `services/service-cluster-redis`), and one runtime string served in HTTP 501 bodies and pinned by tests and the platform checklist: `packages/spec/src/system/core-services.zod.ts` "Provided by @objectstack/service-ai in ObjectStack Cloud/Enterprise". Listed in the report for the seat; not edited here. `content/docs/releases/**` and CHANGELOGs are history and stay. - `ui/AGENTS.md` and `ui/docs/adr/0060-product-neutral-renderer.md` say "ObjectStack Cloud" as a product example; both are governed surfaces and are not touched. - `ui/scripts/check-changeset-presence.mjs` still reads `ui/.changeset` and reports this change as undeclared, while this repository's changeset for ui packages lives in the root `.changeset/` (every ui PR merged today does the same); no workflow in this repository runs that script. An observation, not a card: zero pull. - The commit trailer pair is the model-free pair `.claude/agents/os-dev.md` requires and the pre-push hook enforces; the dispatch order's trailer text, which names a model, was not used. --- _Generated by [Claude Code](https://claude.ai/code/session_01FMuBZmssbfQkVrKRtxNvng)_ --------- Co-authored-by: os-zhuang <sam@objectstack.ai> Co-authored-by: Claude <noreply@anthropic.com>
1 parent 1f40201 commit f00cbe3

31 files changed

Lines changed: 327 additions & 71 deletions

File tree

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
'@objectstack/cli': patch
3+
'@object-ui/i18n': patch
4+
'@object-ui/app-shell': patch
5+
'@object-ui/console': patch
6+
---
7+
8+
fix(cli,i18n,console): the hosted product reads "ObjectOS Cloud" everywhere a user reads it; the Community Console carries a "Powered by ObjectStack" mark
9+
10+
Clause-②: no
11+
Metadata-protocol: none
12+
13+
ObjectOS is one product in three editions — Community (this repository's runtime and Console, open source), Cloud (cloud.objectos.ai) and Enterprise — and ObjectStack is the name of the protocol, SDK, CLI and framework. The hosted product is "ObjectOS Cloud" wherever a user reads it; it was still "ObjectStack Cloud" in the CLI and in the Console's cloud-install strings.
14+
15+
- **`@objectstack/cli`.** `os cloud login`, `os cloud logout`, `os cloud whoami`, `os package publish` and `os plugin publish` say "ObjectOS Cloud" in their `--help` descriptions, their `--url` / `--server` / `--token` / `--visibility` flag descriptions, their headers and their "Not logged in" prescriptions; so do the `os serve` welcome page's link to the cloud console and the shared "Authentication required" message. The CLI README and the deployment CLI reference follow. Internal identifiers are unchanged: `~/.objectstack/cloud.json`, `OS_CLOUD_API_KEY`, `OS_CLOUD_URL`, the `os cloud …` command names.
16+
- **`@object-ui/i18n`.** The cloud-connection "Connected to …" title and the three cloud-install dialog sentences ("You need to be signed into …", "… sign into … first") name "ObjectOS Cloud" in all ten locales, the product name kept untranslated inside each locale's sentence. New key `auth.shell.poweredBy` ("Powered by ObjectStack") in all ten locales.
17+
- **`@object-ui/app-shell`.** New `isDefaultProductName()`: true while the deployment carries the default `branding.productName` ("ObjectOS"), false once a runtime has pushed its own.
18+
- **`@object-ui/console`.** The sign-in layout (login, register, forgot/reset password, verify email, setup, consent, device, invitation) shows a small "Powered by ObjectStack" link to objectstack.ai under the form when `isDefaultProductName()` is true. A deployment that pushes its own product name — ObjectOS Cloud, Enterprise, a cloud-connected workspace — shows its own name and no second brand line. The default product name, `logo.svg`, `manifest.json` and `admin@objectos.ai` are unchanged.
19+
20+
What to do: nothing. An operator who rebrands the Console through `branding.productName` keeps a single brand line, as before.

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ os explain # Explain protocol concepts on the command line
254254
```
255255

256256
Cloud, package registry, secrets, and environment subcommands (`os package …`,
257-
`os environments …`, `os login`, `os cloud …`) target an ObjectStack Cloud
257+
`os environments …`, `os login`, `os cloud …`) target an ObjectOS Cloud
258258
control plane.
259259

260260
### Package directory

‎content/docs/deployment/cli.mdx‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2626,7 +2626,7 @@ os doctor -v # Show fix suggestions for warnings
26262626
| `os login` | Sign in and store credentials in `~/.objectstack/credentials.json` |
26272627
| `os whoami` | Show the current authenticated user |
26282628
| `os logout` | Revoke the server session and clear local credentials |
2629-
| `os cloud login` | Sign in to ObjectStack Cloud (the hosted package registry) and store credentials in `~/.objectstack/cloud.json` |
2629+
| `os cloud login` | Sign in to ObjectOS Cloud (the hosted package registry) and store credentials in `~/.objectstack/cloud.json` |
26302630

26312631
#### `os register`
26322632

@@ -2727,7 +2727,7 @@ os logout
27272727
27282728
#### `os cloud login`
27292729
2730-
Signs you in to **ObjectStack Cloud** — the hosted package registry — rather
2730+
Signs you in to **ObjectOS Cloud** — the hosted package registry — rather
27312731
than to a runtime instance. It is the credential `os package publish` and the
27322732
marketplace commands use, and it lands in its own file
27332733
(`~/.objectstack/cloud.json`), separate from `os login`'s
@@ -2823,12 +2823,12 @@ is available in your deployment.
28232823

28242824
The two commands that move a compiled app onto a platform. They target
28252825
**different systems and authenticate as different identities**: publish uploads
2826-
to ObjectStack Cloud (the catalog), install registers an app into a **running
2826+
to ObjectOS Cloud (the catalog), install registers an app into a **running
28272827
runtime**.
28282828

28292829
| Command | Talks to | Description |
28302830
|---------|----------|-------------|
2831-
| `os package publish [artifact]` | ObjectStack Cloud | Upload a compiled artifact as a versioned package in your organization |
2831+
| `os package publish [artifact]` | ObjectOS Cloud | Upload a compiled artifact as a versioned package in your organization |
28322832
| `os package install <package>` | A running runtime | Install a package into a live kernel, from that runtime's catalog or from a local artifact |
28332833

28342834
For which one to reach for and the preview patterns around them, see
@@ -2882,7 +2882,7 @@ when both files' `url`s agree.
28822882
| `--display-name <name>` | — | Name shown in the Marketplace (default `artifact.manifest.name`) |
28832883
| `--description <text>` | — | Short package description |
28842884
| `--category <slug>` | — | Marketplace category slug (`crm`, `hr`, `devtools`, …) |
2885-
| `--visibility <level>` | — | `org` (installable across your organization) · `private` (explicit grants only) · `marketplace` (public after review). Omitted: not sent, so the control plane decides — an existing package keeps its visibility, a new one gets the control plane's default (`org` on ObjectStack Cloud) |
2885+
| `--visibility <level>` | — | `org` (installable across your organization) · `private` (explicit grants only) · `marketplace` (public after review). Omitted: not sent, so the control plane decides — an existing package keeps its visibility, a new one gets the control plane's default (`org` on ObjectOS Cloud) |
28862886
| `--org <id>` | `OS_ORG_ID` | `owner_org_id`. Required with a bearer key in service mode; ignored in user mode |
28872887
| `--env <id>` | `OS_ENVIRONMENT_ID` | Environment to install the new version into. Defaults to the environment [`os environments switch`](#cloud-environments) — or `os environments create --activate` — recorded **for this control plane** in `~/.objectstack/cloud.json` |
28882888
| `--install` | — | Auto-install into `--env` after publishing. With no `--env`, no `$OS_ENVIRONMENT_ID` and no active environment for this control plane, it reports that and publishes without installing |
@@ -3018,7 +3018,7 @@ A `404` means the target runtime does not mount `MarketplaceInstallLocalPlugin`
30183018
(from `@objectstack/cloud-connection`). The endpoint is opt-in, so a runtime
30193019
composed without it will not accept installs.
30203020

3021-
In catalog mode, a runtime connected to an ObjectStack Cloud account presents its connection credential to the cloud catalog — see [Cloud Connection](/docs/deployment/cloud-connection).
3021+
In catalog mode, a runtime connected to an ObjectOS Cloud account presents its connection credential to the cloud catalog — see [Cloud Connection](/docs/deployment/cloud-connection).
30223022

30233023
## Configuration
30243024

‎packages/cli/README.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@ and keep loading through their barrel `index.ts`.
8080

8181
### Cloud — publish & install
8282

83-
Push a locally-built package to ObjectStack Cloud and (optionally) install it
83+
Push a locally-built package to ObjectOS Cloud and (optionally) install it
8484
into one of your environments in a single command. The commands below do not
8585
share one session or one flag spelling — see [Credentials and server URL](#credentials-and-server-url).
8686

8787
| Command | Description |
8888
|---------|-------------|
89-
| `os cloud login` | Authenticate to ObjectStack Cloud (browser or `--email/--password`); writes `~/.objectstack/cloud.json` |
89+
| `os cloud login` | Authenticate to ObjectOS Cloud (browser or `--email/--password`); writes `~/.objectstack/cloud.json` |
9090
| `os cloud whoami` / `os cloud logout` | Inspect / clear the stored cloud session |
9191
| `os environments create --org <id> --name <n>` | Provision a new environment (was `os projects create` before the v5.0 project → environment rename; ADR-0006, no aliases) |
9292
| `os environments list` / `show <id>` | List / inspect your environments |
@@ -146,7 +146,7 @@ A code-bearing plugin — a directory carrying an `objectstack.plugin.json` mani
146146
|---------|-------------|
147147
| `os plugin build [dir]` | Compile a plugin into a signed-ready `.osplugin` artifact (`--entry`, `--out`, `--minify`) |
148148
| `os plugin sign <artifact> --key <pem>` | Sign a built `.osplugin` with a publisher Ed25519 key, writing a detached `<artifact>.sig` |
149-
| `os plugin publish [artifact]` | Publish a signed `.osplugin` to ObjectStack Cloud |
149+
| `os plugin publish [artifact]` | Publish a signed `.osplugin` to ObjectOS Cloud |
150150

151151
The group has no `install`: ADR-0025 records the code-plugin install half (download, verify, materialize, load) as not yet implemented. `os plugin` (singular) is unrelated to `os plugins` (plural), oclif's plugin manager, which this package does not ship — see [`os plugins` and `os help`](#os-plugins-and-os-help-not-commands).
152152

‎packages/cli/src/commands/cloud/login.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ async function promptPassword(promptText: string): Promise<string> {
139139

140140
export default class CloudLogin extends Command {
141141
static override description =
142-
'Authenticate against ObjectStack Cloud (the hosted package registry). Stores credentials in ~/.objectstack/cloud.json.';
142+
'Authenticate against ObjectOS Cloud (the hosted package registry). Stores credentials in ~/.objectstack/cloud.json.';
143143

144144
static override examples = [
145145
'$ os cloud login',
@@ -151,7 +151,7 @@ export default class CloudLogin extends Command {
151151
static override flags = {
152152
url: Flags.string({
153153
char: 'u',
154-
description: 'ObjectStack Cloud URL (override for self-hosted control planes)',
154+
description: 'ObjectOS Cloud URL (override for self-hosted control planes)',
155155
default: DEFAULT_CLOUD_URL,
156156
env: 'OS_CLOUD_URL',
157157
}),
@@ -198,7 +198,7 @@ export default class CloudLogin extends Command {
198198
const url = flags.url.replace(/\/+$/, '');
199199

200200
if (!flags.json) {
201-
printHeader('ObjectStack Cloud Login');
201+
printHeader('ObjectOS Cloud Login');
202202
printKV('Server', url);
203203
console.log('');
204204
}

‎packages/cli/src/commands/cloud/logout.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import { printHeader, printSuccess, printError, emitJson, errorCodeFields } from
1212
import { deleteCloudConfig, tryReadCloudConfig } from '../../utils/cloud-config.js';
1313

1414
export default class CloudLogout extends Command {
15-
static override description = 'Clear stored ObjectStack Cloud credentials';
15+
static override description = 'Clear stored ObjectOS Cloud credentials';
1616

1717
static override examples = ['$ os cloud logout'];
1818

@@ -24,7 +24,7 @@ export default class CloudLogout extends Command {
2424
const { flags } = await this.parse(CloudLogout);
2525

2626
try {
27-
if (!flags.json) printHeader('ObjectStack Cloud Logout');
27+
if (!flags.json) printHeader('ObjectOS Cloud Logout');
2828

2929
const config = await tryReadCloudConfig();
3030
if (config?.token && config?.url) {

‎packages/cli/src/commands/cloud/whoami.ts‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { printHeader, printKV, printSuccess, printError, emitJson, isExitSignal,
1111
import { tryReadCloudConfig } from '../../utils/cloud-config.js';
1212

1313
export default class CloudWhoami extends Command {
14-
static override description = 'Show the active ObjectStack Cloud identity';
14+
static override description = 'Show the active ObjectOS Cloud identity';
1515

1616
static override examples = ['$ os cloud whoami'];
1717

@@ -28,7 +28,7 @@ export default class CloudWhoami extends Command {
2828
if (flags.json) {
2929
await emitJson({ logged_in: false });
3030
} else {
31-
printError('Not logged in to ObjectStack Cloud. Run `os cloud login` first.');
31+
printError('Not logged in to ObjectOS Cloud. Run `os cloud login` first.');
3232
}
3333
this.exit(1);
3434
return;
@@ -56,7 +56,7 @@ export default class CloudWhoami extends Command {
5656
if (flags.json) {
5757
await emitJson({ logged_in: true, valid, url: config.url, email, userId });
5858
} else {
59-
printHeader('ObjectStack Cloud Identity');
59+
printHeader('ObjectOS Cloud Identity');
6060
printKV('Server', config.url);
6161
if (email) printKV('Email', email);
6262
if (userId) printKV('User ID', userId);

‎packages/cli/src/commands/package/publish.ts‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -298,13 +298,13 @@ export default class PackagePublish extends Command {
298298
static override flags = {
299299
server: Flags.string({
300300
char: 's',
301-
description: 'ObjectStack Cloud control-plane URL (override for self-hosted registries)',
301+
description: 'ObjectOS Cloud control-plane URL (override for self-hosted registries)',
302302
env: 'OS_CLOUD_URL',
303303
default: DEFAULT_CLOUD_URL,
304304
}),
305305
token: Flags.string({
306306
char: 't',
307-
description: 'API key for ObjectStack Cloud (bearer token; defaults to OS_CLOUD_API_KEY / OS_TOKEN)',
307+
description: 'API key for ObjectOS Cloud (bearer token; defaults to OS_CLOUD_API_KEY / OS_TOKEN)',
308308
env: 'OS_CLOUD_API_KEY',
309309
}),
310310
'manifest-id': Flags.string({
@@ -337,7 +337,7 @@ export default class PackagePublish extends Command {
337337
"'private': only explicitly-granted orgs/envs. " +
338338
"'marketplace': public after review. " +
339339
'Omit it to leave an existing package\'s visibility unchanged; a new package then gets ' +
340-
"the control plane's default ('org' on ObjectStack Cloud).",
340+
"the control plane's default ('org' on ObjectOS Cloud).",
341341
options: ['private', 'org', 'marketplace'],
342342
}),
343343
org: Flags.string({
@@ -517,7 +517,7 @@ export default class PackagePublish extends Command {
517517
}
518518
if (!token) {
519519
printError(
520-
'Not logged in to ObjectStack Cloud. Run `os cloud login` first, or pass --token / set $OS_TOKEN.',
520+
'Not logged in to ObjectOS Cloud. Run `os cloud login` first, or pass --token / set $OS_TOKEN.',
521521
);
522522
this.exit(1);
523523
return;

‎packages/cli/src/commands/plugin/publish.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ interface PostResult { ok: boolean; status: number; body: any; error?: string }
4444

4545
export default class PluginPublish extends Command {
4646
static override description =
47-
'Publish a signed .osplugin to ObjectStack Cloud (ADR-0025 §3.4)';
47+
'Publish a signed .osplugin to ObjectOS Cloud (ADR-0025 §3.4)';
4848

4949
static override examples = [
5050
'$ os plugin publish ./com.acme.stripe-1.0.0.osplugin --visibility marketplace --submit',
@@ -72,7 +72,7 @@ export default class PluginPublish extends Command {
7272
description:
7373
"Who can see / install this plugin's package. " +
7474
"Omit it to leave an existing package's visibility unchanged; a new package then gets " +
75-
"the control plane's default ('org' on ObjectStack Cloud).",
75+
"the control plane's default ('org' on ObjectOS Cloud).",
7676
options: ['private', 'org', 'marketplace'],
7777
}),
7878
org: Flags.string({ description: 'owner_org_id (service mode)', env: 'OS_ORG_ID' }),

‎packages/cli/src/commands/serve.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6271,7 +6271,7 @@ export function createUnknownHostnameGuardPlugin(
62716271
<div class="host">${safeHost}</div>
62726272
<p class="muted" style="margin-top:24px">
62736273
If you own this domain, bind it to an environment in the
6274-
<a href="https://cloud.objectos.ai/">ObjectStack Cloud console</a>.
6274+
<a href="https://cloud.objectos.ai/">ObjectOS Cloud console</a>.
62756275
</p>
62766276
</main>
62776277
</body>

0 commit comments

Comments
 (0)