Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .changeset/25922-unpublish-app-shell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
'@object-ui/app-shell': patch
---

chore(ui)!: `@object-ui/app-shell` is no longer published to npm (#25922)

Clause-②: `yes (narrowing)`: a published package leaves the registry; ADR-0087 marker per the lane's rules
Metadata-protocol: none

**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.

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.

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.

<!-- 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. -->
1 change: 0 additions & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,6 @@
"create-objectstack",
"@objectstack/connector-openapi",
"@objectstack/verify",
"@object-ui/app-shell",
"@object-ui/auth",
"@object-ui/cli",
"@object-ui/collaboration",
Expand Down
158 changes: 0 additions & 158 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 0 additions & 1 deletion turbo.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,6 @@
"$TURBO_ROOT$/ui/scripts/vite-*.ts",
"$TURBO_ROOT$/ui/vitest.config.mts",
"$TURBO_ROOT$/ui/tsconfig.json",
"$TURBO_ROOT$/ui/tsconfig.tier-base.json",
"$TURBO_ROOT$/ui/apps/console/src/lib/auth-preflight.ts",
"$TURBO_ROOT$/ui/eslint-rules/no-unprefixed-query-params.js",
"$TURBO_ROOT$/ui/packages/cli/src/commands/generate.ts",
Expand Down
4 changes: 0 additions & 4 deletions ui/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,6 @@ git checkout -b feature/your-feature-name
# including the visual designer, which mounts here rather than in a demo of its own)
pnpm dev

# Run an example app (console-starter and byo-backend-console are the two that ship
# a dev server; hello-world has none, and schema-catalog is a data package)
pnpm --filter @object-ui/example-console-starter dev

# Run the documentation site
pnpm site:dev
```
Expand Down
15 changes: 5 additions & 10 deletions ui/QUICK_REFERENCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,17 +63,12 @@ vitest 调用被拒绝:从包目录跑 vitest 会静默跑错测试集 (objectui

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

### Run Examples
### Examples

```bash
pnpm --filter @object-ui/example-console-starter dev # Fork-ready ObjectStack console
pnpm --filter @object-ui/example-byo-backend-console dev # ObjectUI on your own backend
```

Those are the only two dev servers under `examples/`: `hello-world` is a snippet to paste
No directory under `examples/` is a dev server: `hello-world` is a snippet to paste
into your own app and `schema-catalog` is a data package, so neither declares a `dev`
script. [`examples/README.md`](./examples/README.md) is the index — which one to pick,
what to build first, and the port each one serves on.
script. [`examples/README.md`](./examples/README.md) is the index. The console to run is
`apps/console` (`pnpm dev`).

### Release (via changesets)

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

| Path | Purpose |
| --- | --- |
| `packages/*` | 36 published packages (`@object-ui/*`), plus the private `vscode-extension`, `test-support` (test-only, never released) and `runner` (workspace demo app, never released) |
| `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) |
| `apps/console` | Full ObjectUI console app (Vite + React) |
| `apps/site` | Public docs site at <https://www.objectui.org> (fumadocs) |
| `examples/*` | Runnable examples and the schema catalog — see [`examples/README.md`](./examples/README.md) |
Expand Down
59 changes: 4 additions & 55 deletions ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ Pick the path that matches where you are starting from:
| You want to… | Start here | Install |
|---|---|---|
| Render a JSON schema inside your React app | [`examples/hello-world`](examples/hello-world) | `@object-ui/react @object-ui/components` |
| 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` |
| Stand up a complete console on an **ObjectStack** backend | [`examples/console-starter`](examples/console-starter) | fork the example |
| Build a UI from a JSON file, no React code at all | [`@object-ui/cli`](packages/cli) | `npm install -g @object-ui/cli` |

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

### Bring your own backend

Use the shell and views without the full console infrastructure — your routing, your auth, your API:

```bash
npm install @object-ui/app-shell @object-ui/plugin-view @object-ui/react
```

```tsx
import type { FC } from 'react';
import { AppShell } from '@object-ui/app-shell';
import { ObjectView } from '@object-ui/plugin-view';
import { ThemeProvider, SchemaRendererProvider } from '@object-ui/react';
import type { DataSource } from '@object-ui/types';

// The two pieces you bring: the backend adapter you implement (see "Custom
// Data Sources" below) and your own sidebar component.
declare const myAPI: DataSource;
declare const MySidebar: FC;

function MyConsole() {
return (
<ThemeProvider>
<SchemaRendererProvider dataSource={myAPI}>
<AppShell sidebar={<MySidebar />}>
<ContactList />
</AppShell>
</SchemaRendererProvider>
</ThemeProvider>
);
}

function ContactList() {
return (
<ObjectView schema={{ type: 'object-view', objectName: 'contact' }} dataSource={myAPI} />
);
}
```

[`examples/byo-backend-console`](examples/byo-backend-console) is the complete working version, with a mock REST adapter.

### No React at all

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

Edit `app.json` to build your UI.

### Run the examples from this repo

```bash
pnpm run setup # builds @objectstack/* at .objectstack-sha, then installs
pnpm -w build

cd examples/console-starter # or examples/byo-backend-console
pnpm dev
```
### The examples in this repo

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

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

| Package | Description |
|---------|-------------|
| **[@object-ui/app-shell](./packages/app-shell)** | Minimal application shell — the base of every console |
| **[@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 |
| **[@object-ui/providers](./packages/providers)** | The upload adapter context the file and image fields upload through |
| **[@object-ui/auth](./packages/auth)** | `AuthProvider`, `useAuth`, `AuthGuard`, sign-in forms |
| **[@object-ui/permissions](./packages/permissions)** | Object / field / row-level permission guards and hooks |
Expand Down
1 change: 0 additions & 1 deletion ui/content/docs/guide/objectos-integration.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -681,7 +681,6 @@ test('create contact workflow', async ({ page }) => {
- [ObjectStack Documentation](https://docs.objectstack.ai)
- [ObjectUI Components Reference](/docs/components)
- [ObjectQL Schemas](/docs/api/schema-reference#objectql-schemas)
- [Example: ObjectStack Console Starter](https://github.com/objectstack-ai/objectui/tree/main/examples/console-starter)
- [Schema Catalog](/docs/guide/schema-catalog) - every schema rendered in these docs

## Support
Expand Down
Loading
Loading