Skip to content

fix: AI-built apps usable immediately — table sync on publish + valid kanban config#1559

Merged
xuyushun441-sys merged 1 commit into
mainfrom
fix/publish-object-table-sync-and-kanban-groupby
Jun 3, 2026
Merged

fix: AI-built apps usable immediately — table sync on publish + valid kanban config#1559
xuyushun441-sys merged 1 commit into
mainfrom
fix/publish-object-table-sync-and-kanban-groupby

Conversation

@xuyushun441-sys

Copy link
Copy Markdown
Contributor

Context

Found by testing a complex AI-built app (招聘管理 / ATS: 3 objects, lookups, a kanban) end-to-end as a real user. Two genuine gaps surfaced — the kind that make an AI-built app feel broken even though the metadata pipeline "succeeded".

Fixes

1. A freshly-published object couldn't accept records until a server restart

Publishing a drafted object registered it in the in-memory registry but never created its physical table — table sync (driver.syncSchema) only ran at boot. So inserting into a just-published object failed with object_not_found ("no such table") until the next restart.

  • Added ObjectQL.syncObjectSchema(objectName) — a targeted, idempotent single-object schema sync.
  • New protocol.ensureObjectStorage(type, name) calls it after the registry mutation in both publish paths (publishMetaItem and saveMetaItem mode:'publish'). Best-effort + non-fatal.

Verified live: built an app via the AI, published it, created a record with no restart — previously this threw object_not_found.

2. AI-generated kanban views rendered as lists (and could fail validation)

viewBody emitted list.type:'kanban' with no kanban config. KanbanConfigSchema requires both groupByField and columns.

  • Added an optional groupBy to the blueprint view schema (lenient + strict mirror).
  • apply_blueprint now sets list.kanban = { groupByField, columns } — explicit groupBy when provided, else inferred from the object's first select field.

Verified live: an AI-built kanban app publishes the kanban view (4/4 artifacts) with kanban: { groupByField: 'bug_state', columns: [...] }.

Tests

New blueprint-tools kanban test; full suites green: service-ai + objectql + spec/ai = 1108 passing.

Known follow-up (objectui, out of scope)

The console still renders the kanban as a list / doesn't surface AI views as tabs — a frontend renderer gap, now unblocked because the metadata is valid.

🤖 Generated with Claude Code

… kanban config

Found via end-to-end testing of an AI-built app:

1) A freshly-published object couldn't take records until a restart — publish
   registered it but never created its table (sync only ran at boot), so inserts
   threw object_not_found. Added ObjectQL.syncObjectSchema(name) and call it from
   the publish paths (publishMetaItem + saveMetaItem publish) via ensureObjectStorage.

2) AI kanban views rendered as lists / failed validation — viewBody emitted no
   kanban config, but KanbanConfigSchema needs groupByField + columns. Added
   blueprint view groupBy (lenient+strict) and emit list.kanban={groupByField,columns},
   explicit groupBy else inferred from the object's first select field.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 3, 2026 6:52am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation tests protocol:ai tooling size/m labels Jun 3, 2026
@xuyushun441-sys xuyushun441-sys merged commit 36719db into main Jun 3, 2026
12 checks passed
@xuyushun441-sys xuyushun441-sys deleted the fix/publish-object-table-sync-and-kanban-groupby branch June 3, 2026 07:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation protocol:ai size/m tests tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants