diff --git a/content/docs/deployment/validating-metadata.mdx b/content/docs/deployment/validating-metadata.mdx index d5d693407c..51d3cffc16 100644 --- a/content/docs/deployment/validating-metadata.mdx +++ b/content/docs/deployment/validating-metadata.mdx @@ -538,9 +538,11 @@ A clean run walks the registry and reports timing: ✓ Validation passed (64ms) Support Desk v0.1.0 + Minimal ObjectStack environment — a clean slate for building. - Data: 1 Objects 6 Fields + Data: 2 Objects 6 Fields UI: 1 Apps 1 Views 1 Actions + Runtime: 3 plugins ``` On failure the exit code is non-zero and the error is located and corrective — diff --git a/content/docs/getting-started/build-with-claude-code.mdx b/content/docs/getting-started/build-with-claude-code.mdx index fd9850209b..1c1c675b0f 100644 --- a/content/docs/getting-started/build-with-claude-code.mdx +++ b/content/docs/getting-started/build-with-claude-code.mdx @@ -194,11 +194,44 @@ export const TicketViews = defineView({ }); ``` +```typescript title="src/apps/support.app.ts" +import { defineApp } from '@objectstack/spec'; + +export const SupportApp = defineApp({ + name: 'support_desk_support', + label: 'Support', + navigation: [ + { + id: 'grp_support', + type: 'group', + label: 'Support', + expanded: true, + children: [ + { + id: 'nav_open_tickets', + type: 'object', + label: 'Open', + objectName: 'support_desk_ticket', + viewName: 'open', + }, + ], + }, + ], +}); +``` + The agent also **wires the new files into `objectstack.config.ts`** — the object -through the `src/objects/index.ts` barrel, and the action and view via the -`actions:` / `views:` arrays in `defineStack()`. There is no filename-suffix -magic: metadata exists in the app only if the config imports it, so if a -freshly-authored action doesn't show up, the wiring is the first thing to check. +through the `src/objects/index.ts` barrel, and the action, view and app via the +`actions:` / `views:` / `apps:` arrays in `defineStack()`. There is no +filename-suffix magic: metadata exists in the app only if the config imports it, +so if a freshly-authored action doesn't show up, the wiring is the first thing to +check. + +What it does **not** touch is the starter `note` object the `blank` template +scaffolded in step 1 (`src/objects/note.object.ts`, two fields). Nothing asked +for it to go, so it stays in the project — which is why the counts below read +**two** objects and **six** fields, not one and four. Delete it once the ticket +object has replaced it and the same run reports `1 Objects 4 Fields`. This is the same metadata that powers the REST API, the Console UI, **and the MCP tools exposed to AI** — define it once, and ObjectStack derives the rest. @@ -255,9 +288,11 @@ Once it's clean: ✓ Validation passed (37ms) Support Desk v0.1.0 + Minimal ObjectStack environment — a clean slate for building. - Data: 1 Objects 6 Fields + Data: 2 Objects 6 Fields UI: 1 Apps 1 Views 1 Actions + Runtime: 3 plugins ```