Skip to content

Commit 6a7c0fe

Browse files
chore(ui)!: stop publishing @object-ui/app-shell; delete the two host-console examples and the extraction guide (#25922) (#26483)
<!-- claude-projects-attribution: {"github_login":"os-steve"} --> _Requested by **Steve** · [project thread](https://claude.ai/code/project/chan_01FdL1XeUyvVNxLreh3F4Qi9?thread=cmsg_01FdL1XeUyvVNxLreh3F4Qi97Wh4Pf8UgMzHvahNM6Rh28)_ Part of #25922 (the unpublish-and-delete item of ruling 6431234244 only; the designer strings (M) item and the 76 Console-only names stay on the card). Clause-②: `yes (narrowing)`: a published package leaves the registry; ADR-0087 marker per the lane's rules Metadata-protocol: none ## 维护者速读 - 改了什么:`@object-ui/app-shell` 标为 `private: true`,移出 changesets 的 fixed 组;删除 `ui/examples/byo-backend-console`、`ui/examples/console-starter` 和 `ui/docs/app-shell-extraction-guide.md`,并清掉指向它们的链接与索引。Console 和 23 个工作区引用方不动。 - 为什么改:执行 #25922 的重裁 Q1 = B(6431234244):「本项目的组件就是为 objectos console服务的,可定制console暂时没有业务需求,可以废弃」「相关例子也可以删除」。 - 风险与回滚:18.2.0 是 npm 上最后一个发布的 `@object-ui/app-shell`(18.2 版本 PR 已把它记到 18.2.0,18.2 发布从版本提交 27f38ad 发出);之后由你执行 `npm deprecate`。私有包仍按 `privatePackages.version: true` 单独记版本,点名它的待发 changeset 不用改。回滚 = revert 本 PR。改动 2979 行(上限 3000),其中 2824 行是删除。 - 先看:`.changeset/25922-unpublish-app-shell.md`(BREAKING 说明与 ADR-0087 `unpublished` 标记)、`ui/scripts/check-changeset-fixed.mjs`(私有包不在 fixed、不在 ignore 时的分类规则)、`ui/packages/app-shell/package.json`。 - 两分钟验证:`node scripts/check-changeset-fixed.mjs && node scripts/check-adr-0087-registration.mjs --base origin/main`,预期两行 ✓,后者点名 `not-required (unpublished)`。 - 需要你做的:无,席位落地。(另有一行受管文件 `ui/.claude/**` 的修改不在本 PR,见 Acceptance notes。) ## Why Ruling 6431234244 on #25922 re-rules Q1 to B: `@object-ui/app-shell` stops being published, and the two examples that consume it as a third-party host would, plus the extraction guide that describes that posture, are deleted. The split in 6431032267 is withdrawn. ## What changes **The package leaves npm.** - `ui/packages/app-shell/package.json`: `private: true`, beside the `18.2.0` version the 18.2 Version PR set. Nothing else in the manifest moves; every workspace importer keeps `workspace:*`. - `.changeset/config.json`: `@object-ui/app-shell` leaves the `fixed` group. The root `scripts/check-changeset-fixed.mjs` refuses an undeclared private member there, so it cannot stay. No hand-typed package count moves with it: #26511 took those counts out of the docs and retired `check-lockstep-package-count`. - `ui/scripts/check-changeset-fixed.mjs` (the ui roster gate, read by its test in Test UI): rule 1 required every package to be in `fixed` or matched by `ignore`. A private package outside both is now classified too, but only while `privatePackages.version` is true. In that case Changesets versions it on its own and publishes it nowhere. Under `version: false` it would be treated as ignored, and the mixed-changeset failure rule 3 describes would follow, so it stays unclassified there. `ignore` was not an option: before the 18.2 Version PR, 48 pending changesets named `@object-ui/app-shell` beside published packages, and `ignore` makes any such changeset a mixed one. New unit case in `check-changeset-fixed.test.ts`, covering both directions. **The host-console posture leaves the tree.** - Deleted: `ui/examples/byo-backend-console` (11 files), `ui/examples/console-starter` (16 files, its two tests included), `ui/docs/app-shell-extraction-guide.md`. `pnpm-lock.yaml` loses their two importers (deletions only). - Links and indexes: `ui/README.md` (the Quick Start rows, the "Bring your own backend" section that taught `npm install @object-ui/app-shell`, the run-the-examples block, the package-table row), `ui/examples/README.md`, `ui/examples/hello-world/README.md`, `ui/examples/schema-catalog/README.md`, `ui/CONTRIBUTING.md`, `ui/QUICK_REFERENCE.md` (Examples section, published count 36 → 35 with `app-shell` named among the private packages), `ui/content/docs/guide/objectos-integration.mdx` (the dead objectui-repo link), `ui/packages/app-shell/README.md` (a not-published notice, the install section, two example pointers), and three app-shell source comments that sent the reader to `examples/console-starter/src/App.tsx`. - `ui/scripts/markdown-test-inputs.mjs`: the retired guide leaves four `reads` entries (`--audit`: 73 declared entries, all present). - `tsconfig.tier-base.json`: no package's build or type-check program reaches it any more (the deleted `byo-backend-console` was the one real compile that did). `turbo-build-inputs` / `turbo-type-check-inputs` prescribe deleting the dead input, so `$TURBO_ROOT$/tsconfig.tier-base.json` leaves both tasks in `ui/turbo.objectui.json` and `$TURBO_ROOT$/ui/tsconfig.tier-base.json` leaves the live root `turbo.json`. The two header comments that counted its extenders say 2. **Changeset.** `.changeset/25922-unpublish-app-shell.md`, `@object-ui/app-shell: patch` (Metadata-protocol `none`), BREAKING banner, the FROM npm → TO none migration line, and the marker `adr-0087: not-required (unpublished)`. The gate verifies that category mechanically: every package the changeset bumps is `private: true` at HEAD. It states that `18.2.0` is the last published `@object-ui/app-shell` (the 18.2 Version PR versioned it before this change and the 18.2 publish ships it) and that the maintainer runs `npm deprecate` after that publish. The migration line names `@object-ui/app-shell@18.2.0`. **Untouched, as ruled:** `ui/apps/console` and the 23 `ui/packages/*` importers; the other `@object-ui/*` packages' publishing; the 76 Console-only names. ### Forced test edits (each follows the deletion or the private flag; none relaxes a check) - `ui/scripts/__tests__/check-doc-snippet-types.test.ts`: the root `docs/*.md` leg's only real page was the retired guide. "listDocuments reaches them" and "the widening judges something" now prove the leg on a fixture `docs/PAGE.md`: it is listed, covered and contributes a compiled block. Every real page the leg reaches must still be covered. - `ui/scripts/__tests__/check-doc-fence-languages.test.ts`: same leg, same cause; the per-leg non-empty check reads the root leg on a fixture page. - `ui/scripts/__tests__/check-doc-links.test.ts`: `examples` scan floor 4 → 3 (the index, hello-world, schema-catalog READMEs). - `ui/scripts/__tests__/zero-test-member-exclusion-9106.test.ts`: the `examples/byo-backend-console` row leaves the recorded exclusion, as its own failure text prescribes for a member that left. - `ui/scripts/__tests__/side-effects-declaration-consistency.test.ts`: the `@object-ui/layout` alias tables are `apps/console/vite.config.ts` alone. - `ui/scripts/__tests__/check-type-check-coverage.test.ts`: packages with tests outside `src/` are `@object-ui/example-schema-catalog` alone. - `ui/scripts/__tests__/package-files-exist.test.ts`: the license-text anti-vacuity floor 37 → 36 (36 measured, `app-shell` no longer publishes). - `ui/scripts/__tests__/quick-reference-commands-4149.test.ts`: no `examples/*` package declares `dev` any more. The test asked for the section to be rewritten, not re-pinned. With no runnable example, it now pins the section's "No directory under `examples/` is a dev server" sentence and refuses any example dev command. When an example grows a `dev` script, the sentence reds and the original per-example check takes over. - `ui/scripts/__tests__/check-changeset-fixed.test.ts`: the new rule's unit case (above). ## Tests After merging main past the 18.2 Version PR (#25640) and #26511, head `443aad7b`: `node scripts/check-changeset-fixed.mjs`, `node ui/scripts/check-changeset-fixed.mjs`, `pnpm run check:publish-smoke-pin`, `check:docs-spec-enumerations`, `check:overlay-whitelist-table`, `check:route-ledger-census`, `node scripts/check-adr-0087-registration.mjs --base origin/main` (`not-required (unpublished)`), `check-empty-changeset` and `check-changeset-no-major` (`--base origin/main`), `node ui/scripts/check-skills-paths.mjs` and `pnpm exec changeset status --since=origin/main` all exit 0. The full release plan assembled with `@changesets/cli` 3.0.3's own read/config/assemble packages reads all 13 pending changesets with exit 0: `@object-ui/app-shell` 18.2.0 → 18.2.1 on its own (private, publishes nothing), the fixed group 18.2.0 → 18.3.0. `vitest run` on `quick-reference-commands-4149`, `check-changeset-fixed`, `check-doc-links`, `package-files-exist`, `check-skills-paths`: 5 files, 198 tests passed. The readings below were measured at head `160fe489` in the card thread's container. - `pnpm --dir ui exec vitest run scripts/__tests__/ --maxWorkers=2` under the verify lock, after the Console build: Test Files 1 failed | 177 passed | 2 skipped (180), Tests 4 failed | 5053 passed. The 4 are all `check-skills-paths.test.ts`, one cause: the governed guide line in Acceptance notes. With that line's patch applied locally, `check-skills-paths.test.ts` is 35/35 and `node ui/scripts/check-skills-paths.mjs` exits 0. The patch was then restored; it is not in this diff. - Console build: `pnpm exec turbo run build --filter=@object-ui/console --concurrency=2` under the lock: `Tasks: 70 successful, 70 total`, VERDICT command-exit 0, and the tree was clean afterwards (`sdui.manifest.json` unchanged). - `node ui/scripts/markdown-test-inputs.mjs --audit`: 109 candidate test files, all adjudicated; 73 declared entries, all present. Dogfood battery (the `(narrowing)` arm owes it), final head `160fe489`: `pnpm --workspace-concurrency=2 --filter '@objectstack/dogfood^...' build && pnpm --filter @objectstack/dogfood test` under the lock, VERDICT command-exit 1, Test Files 2 failed | 298 passed | 3 skipped (303), Tests 10 failed | 2522 passed | 18 skipped (2550). All 10 are outside this diff, which touches no file under `packages/rest`, `packages/qa` or `packages/spec`: `authz-probe-blind-spot.test.ts` (4: `packages/rest/src/rest-route-ledger.ts` controls 81 vs pinned 80, `rest-server.ts` 63/70 vs 62/69) and `authz-conformance.test.ts` (6: the #17111 docblock-figure pins). Both census files last moved in 6a2866a on main, which added a route; the dogfood battery runs only on main's full schedule, so this reads as a main-side red, reported to the seat. ## Verification Local subset, derived with `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` at `160fe489` (107 families) and run after the last commit; every exit code captured before any pipe. <details><summary>dispatch-gates --ran: exit 0, 107 accounted, 106 run, 1 NOT MEASURED</summary> - 105 commands exit 0, including `check-adr-0087-registration --base origin/main` (`not-required (unpublished)` judged), `check-changeset-fixed` (109 public packages, 1 declared private member), `check-changeset-no-major`, `check-empty-changeset`, `check:lockstep-package-count`, `check:publish-smoke-pin`, `check:published-files`, `check:turbo-task-graph`, `check:type-check-coverage`, `check:cross-package-test-inputs` and `check:pm-dispatch-gates` (fast tier, 380 s). - `pnpm --filter @objectstack/spec run check:skill-examples`: first exit 3 (prerequisite: `@objectstack/client-react` unbuilt), then exit 0 after `pnpm --filter @objectstack/client-react build` (264 prose examples type-check). - NOT MEASURED: `pnpm check:dual-build-cjs-loads`, exit 3 PREREQUISITE NOT MET (reads every package `dist/`, which needs a whole-repo build). The diff touches no package build; CI `Lint & Repo Gates` runs it. - `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --ran RECORD`: `107 derived famil(ies) accounted for — 106 run, 1 NOT-MEASURED`. </details> Every family CI runs is read from this PR's check runs; none was re-run locally to stand in for them. ## Acceptance notes - **Governed follow-up, landed separately (Tier H).** The `ui/.claude/skills/objectui-contributor/guides/console-development.md` bullet that told contributors to fork `examples/console-starter` was rewritten in #26484 (merged), so `check-skills-paths` is green here without this PR touching `ui/.claude/**`. - **Pending changesets naming `@object-ui/app-shell`:** 48 at first; the 18.2 Version PR consumed them, and 2 others are pending now. None edited. A private package versions under `privatePackages.version: true`, and `changeset status --since=origin/main` computes a plan with `@object-ui/app-shell` versioned on its own (no refusal). `check-empty-changeset`: no changeset from the merge base modified or deleted. - **Found on main earlier, since fixed there:** `.changeset/26095-publishing-metadata.md` had its closing frontmatter delimiter glued to its last line, so `changeset status` exited 1 on main. #26458 fixed it; the readings at `443aad7b` above ran on the unmodified tree. - After this PR, `DefaultLoginPage` / `DefaultRegisterPage` have no in-repo mount (only `console-starter` mounted them; the Console has its own pages). That falls under the card's internal tech-debt line, not this PR. - Comments and test docblocks in other packages that mention the deleted examples historically (`plugin-view/ObjectView.tsx`, `plugin-list/ListView.tsx`, `plugin-detail/headerColor.ts`, `cli/doctor.ts`, several `ui/scripts` docblocks) and the CHANGELOGs are left as written. Editing them is outside the claimed file surface, and `ObjectView.tsx` is held by another card. - Diff size: 155 additions + 2824 deletions = 2979 changed lines, under the 3,000-line Tier H threshold. ## Human Minimum - [x] 1. Schemas start as Zod; `packages/spec` holds no runtime logic. (not touched) - [x] 2. Every name I added uses the casing for its kind. - [x] 3. No formatter ran; `pnpm lint` passes. (lint is CI's run) - [x] 4. One issue, one branch off an up-to-date `main`, one pull request. - [x] 5. A change that publishes carries a changeset, and both declaration lines are filled in here and in the changeset. - [x] 6. `packages/spec` touched: n/a. - [x] 7. No hand edits to `content/docs/references/`, `packages/*/CHANGELOG.md` or `content/docs/releases/`. - [x] 8. Title, body and comments are in English. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01ADHkmQmtHYkx1Ve9ob2ikN --- _Generated by [Claude Code](https://claude.ai/code/session_01ADHkmQmtHYkx1Ve9ob2ikN)_ --------- Co-authored-by: Claude <noreply@anthropic.com>
1 parent f48aa45 commit 6a7c0fe

57 files changed

Lines changed: 155 additions & 2824 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
'@object-ui/app-shell': patch
3+
---
4+
5+
chore(ui)!: `@object-ui/app-shell` is no longer published to npm (#25922)
6+
7+
Clause-②: `yes (narrowing)`: a published package leaves the registry; ADR-0087 marker per the lane's rules
8+
Metadata-protocol: none
9+
10+
**BREAKING** for anyone who installs `@object-ui/app-shell` from npm. The package exists to serve the ObjectOS Console, and a customisable console for a third-party host has no business demand today, so the package is now `private: true` and leaves the Changesets `fixed` group. `18.2.0` is the last published `@object-ui/app-shell`: the 18.2 Version PR versioned it before this change and the 18.2 publish ships it; no later version reaches npm, and the maintainer deprecates the package on npm after the 18.2 publish. Nothing else moves: the Console (`ui/apps/console`) and the `@object-ui/*` packages that import it are workspace consumers and keep importing it exactly as before, and its exports, views and Studio pages are unchanged.
11+
12+
The host-console posture leaves the repository with it. The two examples that imported the package as a host would, `ui/examples/byo-backend-console` and `ui/examples/console-starter`, are deleted, and so is `ui/docs/app-shell-extraction-guide.md`, the guide to extracting the package into a host. The READMEs, the examples index and the contributor docs that pointed at them no longer do.
13+
14+
Migration: there is no replacement package. `@object-ui/app-shell` FROM npm → TO none. A host that installs it stays on `@object-ui/app-shell@18.2.0`, the last published version, or runs the ObjectOS Console instead of embedding the shell.
15+
16+
<!-- adr-0087: not-required (unpublished) No metadata moves: no spec key, authorable spelling, object definition, stored row or stored shape is added, removed, renamed or re-shaped, so there is nothing for `objectstack migrate meta` to rewrite. What narrows is the npm registry: `@object-ui/app-shell`, the one package this changeset bumps, is `private: true` from this change on and publishes nothing, and its last published version, `18.2.0`, stays on npm until the maintainer deprecates it after the 18.2 publish. -->

‎.changeset/config.json‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@
8181
"create-objectstack",
8282
"@objectstack/connector-openapi",
8383
"@objectstack/verify",
84-
"@object-ui/app-shell",
8584
"@object-ui/auth",
8685
"@object-ui/cli",
8786
"@object-ui/collaboration",

‎pnpm-lock.yaml‎

Lines changed: 0 additions & 158 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎turbo.json‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
"$TURBO_ROOT$/ui/scripts/vite-*.ts",
4444
"$TURBO_ROOT$/ui/vitest.config.mts",
4545
"$TURBO_ROOT$/ui/tsconfig.json",
46-
"$TURBO_ROOT$/ui/tsconfig.tier-base.json",
4746
"$TURBO_ROOT$/ui/apps/console/src/lib/auth-preflight.ts",
4847
"$TURBO_ROOT$/ui/eslint-rules/no-unprefixed-query-params.js",
4948
"$TURBO_ROOT$/ui/packages/cli/src/commands/generate.ts",

‎ui/CONTRIBUTING.md‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,6 @@ git checkout -b feature/your-feature-name
9999
# including the visual designer, which mounts here rather than in a demo of its own)
100100
pnpm dev
101101

102-
# Run an example app (console-starter and byo-backend-console are the two that ship
103-
# a dev server; hello-world has none, and schema-catalog is a data package)
104-
pnpm --filter @object-ui/example-console-starter dev
105-
106102
# Run the documentation site
107103
pnpm site:dev
108104
```

‎ui/QUICK_REFERENCE.md‎

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,17 +63,12 @@ vitest 调用被拒绝:从包目录跑 vitest 会静默跑错测试集 (objectui
6363

6464
Details in [AGENTS.md](./AGENTS.md) (“怎么跑测试”) and `scripts/vitest-invocation-guard.mjs`.
6565

66-
### Run Examples
66+
### Examples
6767

68-
```bash
69-
pnpm --filter @object-ui/example-console-starter dev # Fork-ready ObjectStack console
70-
pnpm --filter @object-ui/example-byo-backend-console dev # ObjectUI on your own backend
71-
```
72-
73-
Those are the only two dev servers under `examples/`: `hello-world` is a snippet to paste
68+
No directory under `examples/` is a dev server: `hello-world` is a snippet to paste
7469
into your own app and `schema-catalog` is a data package, so neither declares a `dev`
75-
script. [`examples/README.md`](./examples/README.md) is the index — which one to pick,
76-
what to build first, and the port each one serves on.
70+
script. [`examples/README.md`](./examples/README.md) is the index. The console to run is
71+
`apps/console` (`pnpm dev`).
7772

7873
### Release (via changesets)
7974

@@ -87,7 +82,7 @@ pnpm changeset publish # Publish to npm (CI only)
8782

8883
| Path | Purpose |
8984
| --- | --- |
90-
| `packages/*` | 36 published packages (`@object-ui/*`), plus the private `vscode-extension`, `test-support` (test-only, never released) and `runner` (workspace demo app, never released) |
85+
| `packages/*` | 35 published packages (`@object-ui/*`), plus the private `vscode-extension`, `test-support` (test-only, never released), `runner` (workspace demo app, never released) and `app-shell` (the Console's shell and views, no longer published after 18.2.0) |
9186
| `apps/console` | Full ObjectUI console app (Vite + React) |
9287
| `apps/site` | Public docs site at <https://www.objectui.org> (fumadocs) |
9388
| `examples/*` | Runnable examples and the schema catalog — see [`examples/README.md`](./examples/README.md) |

‎ui/README.md‎

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,6 @@ Pick the path that matches where you are starting from:
5656
| You want to… | Start here | Install |
5757
|---|---|---|
5858
| Render a JSON schema inside your React app | [`examples/hello-world`](examples/hello-world) | `@object-ui/react @object-ui/components` |
59-
| Embed views in an existing app, against **your own** backend | [`examples/byo-backend-console`](examples/byo-backend-console) | `@object-ui/app-shell @object-ui/plugin-view @object-ui/react` |
60-
| Stand up a complete console on an **ObjectStack** backend | [`examples/console-starter`](examples/console-starter) | fork the example |
6159
| Build a UI from a JSON file, no React code at all | [`@object-ui/cli`](packages/cli) | `npm install -g @object-ui/cli` |
6260

6361
The [examples catalog](examples/README.md) explains each one in more depth.
@@ -115,47 +113,6 @@ it is handed to the component the schema names — so a value passed as `data={
115113
read nor refused, and the expression that wanted it is returned as its own source text, with
116114
nothing thrown and one line on the console.
117115

118-
### Bring your own backend
119-
120-
Use the shell and views without the full console infrastructure — your routing, your auth, your API:
121-
122-
```bash
123-
npm install @object-ui/app-shell @object-ui/plugin-view @object-ui/react
124-
```
125-
126-
```tsx
127-
import type { FC } from 'react';
128-
import { AppShell } from '@object-ui/app-shell';
129-
import { ObjectView } from '@object-ui/plugin-view';
130-
import { ThemeProvider, SchemaRendererProvider } from '@object-ui/react';
131-
import type { DataSource } from '@object-ui/types';
132-
133-
// The two pieces you bring: the backend adapter you implement (see "Custom
134-
// Data Sources" below) and your own sidebar component.
135-
declare const myAPI: DataSource;
136-
declare const MySidebar: FC;
137-
138-
function MyConsole() {
139-
return (
140-
<ThemeProvider>
141-
<SchemaRendererProvider dataSource={myAPI}>
142-
<AppShell sidebar={<MySidebar />}>
143-
<ContactList />
144-
</AppShell>
145-
</SchemaRendererProvider>
146-
</ThemeProvider>
147-
);
148-
}
149-
150-
function ContactList() {
151-
return (
152-
<ObjectView schema={{ type: 'object-view', objectName: 'contact' }} dataSource={myAPI} />
153-
);
154-
}
155-
```
156-
157-
[`examples/byo-backend-console`](examples/byo-backend-console) is the complete working version, with a mock REST adapter.
158-
159116
### No React at all
160117

161118
```bash
@@ -167,18 +124,10 @@ objectui dev app.json # dev server on http://localhost:3000
167124

168125
Edit `app.json` to build your UI.
169126

170-
### Run the examples from this repo
171-
172-
```bash
173-
pnpm run setup # builds @objectstack/* at .objectstack-sha, then installs
174-
pnpm -w build
175-
176-
cd examples/console-starter # or examples/byo-backend-console
177-
pnpm dev
178-
```
127+
### The examples in this repo
179128

180-
`hello-world` ships no dev server: copy its `App.tsx` and `schema.json` into your own
181-
Vite/Next.js app. `schema-catalog` is a data package — the canonical JSON schemas the
129+
Neither example ships a dev server. `hello-world` is a snippet: copy its `App.tsx` and
130+
`schema.json` into your own Vite/Next.js app. `schema-catalog` is a data package — the canonical JSON schemas the
182131
docs render, a smoke test mounts, and AI agents use as a few-shot corpus.
183132

184133
## Copy-Paste Schemas
@@ -378,7 +327,7 @@ Grouped by dependency weight — atoms and fields stay light, heavy widgets live
378327

379328
| Package | Description |
380329
|---------|-------------|
381-
| **[@object-ui/app-shell](./packages/app-shell)** | Minimal application shell — the base of every console |
330+
| **[@object-ui/app-shell](./packages/app-shell)** | The Console's shell, views and Studio; a private workspace package, last published to npm as 18.2.0 |
382331
| **[@object-ui/providers](./packages/providers)** | The upload adapter context the file and image fields upload through |
383332
| **[@object-ui/auth](./packages/auth)** | `AuthProvider`, `useAuth`, `AuthGuard`, sign-in forms |
384333
| **[@object-ui/permissions](./packages/permissions)** | Object / field / row-level permission guards and hooks |

‎ui/content/docs/guide/objectos-integration.mdx‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -681,7 +681,6 @@ test('create contact workflow', async ({ page }) => {
681681
- [ObjectStack Documentation](https://docs.objectstack.ai)
682682
- [ObjectUI Components Reference](/docs/components)
683683
- [ObjectQL Schemas](/docs/api/schema-reference#objectql-schemas)
684-
- [Example: ObjectStack Console Starter](https://github.com/objectstack-ai/objectui/tree/main/examples/console-starter)
685684
- [Schema Catalog](/docs/guide/schema-catalog) - every schema rendered in these docs
686685

687686
## Support

0 commit comments

Comments
 (0)