Skip to content

Commit b3d5378

Browse files
authored
Merge pull request #702 from objectstack-ai/copilot/remove-interface-files
2 parents 6290bcd + e04e9a1 commit b3d5378

20 files changed

Lines changed: 1172 additions & 1844 deletions

ROADMAP.md

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ The following renames are planned for packages that implement core service contr
129129

130130
- [x] **Data Protocol** — Object, Field (35+ types), Query, Filter, Validation, Hook, Datasource, Dataset, Analytics, Document
131131
- [x] **Driver Specifications** — Memory, PostgreSQL, MongoDB driver schemas + SQL/NoSQL abstractions
132-
- [x] **UI Protocol** — View (List/Form/Kanban/Calendar/Gantt), App, Dashboard, Report, Action, Page (16 types), Chart, Widget, Theme, Animation, DnD, Touch, Keyboard, Responsive, Offline, Notification, i18n, Interface, Content Elements
132+
- [x] **UI Protocol** — View (List/Form/Kanban/Calendar/Gantt), App, Dashboard, Report, Action, Page (16 types), Chart, Widget, Theme, Animation, DnD, Touch, Keyboard, Responsive, Offline, Notification, i18n, Content Elements
133133
- [x] **System Protocol** — Manifest, Auth Config, Cache, Logging, Metrics, Tracing, Audit, Encryption, Masking, Migration, Tenant, Translation, Search Engine, HTTP Server, Worker, Job, Object Storage, Notification, Message Queue, Registry Config, Collaboration, Compliance, Change Management, Disaster Recovery, License, Security Context, Core Services
134134
- [x] **Automation Protocol** — Flow (autolaunched/screen/schedule), Workflow, State Machine, Trigger Registry, Approval, ETL, Sync, Webhook
135135
- [x] **AI Protocol** — Agent, Agent Action, Conversation, Cost, MCP, Model Registry, NLQ, Orchestration, Predictive, RAG Pipeline, Runtime Ops, Feedback Loop, DevOps Agent, Plugin Development
@@ -142,7 +142,7 @@ The following renames are planned for packages that implement core service contr
142142
- [x] **QA Protocol** — Testing framework schemas
143143
- [x] **Studio Protocol** — Plugin extension schemas
144144
- [x] **Contracts** — 25 service interfaces with full method signatures
145-
- [x] **Stack Definition**`defineStack()`, `defineView()`, `defineApp()`, `defineInterface()`, `defineFlow()`, `defineAgent()` helpers
145+
- [x] **Stack Definition**`defineStack()`, `defineView()`, `defineApp()`, `defineFlow()`, `defineAgent()` helpers
146146
- [x] **Error Map** — Custom Zod error messages with `objectStackErrorMap`
147147
- [x] **DX Utilities**`safeParsePretty()`, `formatZodError()`, `suggestFieldType()`
148148

@@ -355,10 +355,11 @@ The following renames are planned for packages that implement core service contr
355355
### 8.1 UI Protocol Enhancement — Airtable Interface Parity
356356

357357
> See [Airtable Interface Gap Analysis](docs/design/airtable-interface-gap-analysis.md) for the full evaluation.
358+
> **Note:** The `InterfaceSchema` layer has been removed in favor of direct App→Page navigation.
359+
> App now supports unlimited nesting depth and sharing/embed capabilities directly.
358360
359-
#### Phase A: Interface Foundation (v3.2) ✅
361+
#### Phase A: Page Foundation (v3.2) ✅
360362

361-
- [x] `InterfaceSchema` — Self-contained, shareable, multi-page application surface (`src/ui/interface.zod.ts`)
362363
- [x] `RecordReviewConfigSchema` — Sequential record review/approval page type with navigation and actions
363364
- [x] Content elements — `element:text`, `element:number`, `element:image`, `element:divider` as `PageComponentType` extensions
364365
- [x] Per-element data binding — `dataSource` property on `PageComponentSchema` for multi-object pages
@@ -369,26 +370,26 @@ The following renames are planned for packages that implement core service contr
369370
- [x] Interactive elements — `element:button`, `element:filter`, `element:form`, `element:record_picker`
370371
- [x] `BlankPageLayoutSchema` — Free-form canvas composition with grid-based positioning
371372
- [x] Record picker variable binding — `PageVariableSchema` integration with `element:record_picker`
372-
- [x] `InterfaceBuilderConfigSchema` — Canvas snap, zoom, element palette, layer panel configuration
373-
- [ ] Studio Interface Builder — Drag-and-drop element placement UI (runtime)
373+
- [x] `PageBuilderConfigSchema` — Canvas snap, zoom, element palette, layer panel configuration
374+
- [ ] Studio Page Builder — Drag-and-drop element placement UI (runtime)
374375

375376
#### Phase C: Sharing, Embedding & Permissions (v4.0) 🟡
376377

377378
- [x] `SharingConfigSchema` — Public link, password, domain restriction, expiration (`src/ui/sharing.zod.ts`)
378379
- [x] `EmbedConfigSchema` — iframe embedding with origin restrictions and display options
379-
- [x] Per-interface role assignment `assignedRoles` on `InterfaceSchema`
380+
- [x] App-level sharing/embed `sharing` and `embed` on `AppSchema`
380381
- [x] Public form sharing — `sharing` property on `FormViewSchema`
381-
- [ ] Design-time user impersonation — `previewAs` option for interface preview (see [UX Optimization](docs/design/visual-design-ux-optimization.md))
382+
- [ ] Design-time user impersonation — `previewAs` option for page preview (see [UX Optimization](docs/design/visual-design-ux-optimization.md))
382383
- [ ] Share link generation runtime service
383384
- [ ] Embed code generation runtime service
384385
- [ ] Security audit for shared/embedded access control
385386

386-
#### Phase D: Advanced Interface Features (v4.1)
387+
#### Phase D: Advanced Page Features (v4.1)
387388

388-
- [ ] Interface templates and duplication
389-
- [ ] Interface versioning — draft → published → archived lifecycle
390-
- [ ] Real-time collaborative interface editing
391-
- [ ] Interface analytics — page views, element interactions, user engagement
389+
- [ ] Page templates and duplication
390+
- [ ] Page versioning — draft → published → archived lifecycle
391+
- [ ] Real-time collaborative page editing
392+
- [ ] Page analytics — page views, element interactions, user engagement
392393

393394
### 8.2 Studio IDE
394395

@@ -398,7 +399,7 @@ The following renames are planned for packages that implement core service contr
398399
- [ ] ER Diagram — interactive entity-relationship diagram with force/hierarchy/grid layouts, minimap, zoom, export (PNG/SVG)
399400
- [ ] Object Manager — unified object list with search, filter, card/table/tree views, quick preview, statistics
400401
- [ ] View Builder — drag-and-drop list/form/dashboard designers
401-
- [ ] Interface Builder — drag-and-drop interface designer with element palette (see [Gap Analysis](docs/design/airtable-interface-gap-analysis.md))
402+
- [ ] Page Builder — drag-and-drop page designer with element palette (see [Gap Analysis](docs/design/airtable-interface-gap-analysis.md))
402403
- [ ] Flow Builder — visual automation flow editor
403404
- [ ] Security Console — permission matrix, RLS policy editor
404405
- [ ] AI Playground — agent testing, NLQ sandbox
@@ -525,10 +526,10 @@ The following renames are planned for packages that implement core service contr
525526
|:---|:---|:---|
526527
| **v3.0** | ✅ Shipped | Protocol specification complete, core runtime stable |
527528
| **v3.1** | Q2 2026 | Essential services (`service-cache`, `service-queue`, `service-job`, `service-storage`), PostgreSQL driver, Turso/libSQL core driver ([design](docs/design/driver-turso.md)) |
528-
| **v3.2** | Q3 2026 | Communication services (`service-realtime`, `service-graphql`, `service-i18n`, `service-notification`), Turso embedded replica & edge sync, UI Protocol Enhancement Phase A (`InterfaceSchema`, `RecordReviewConfig`, content elements) — see [gap analysis](docs/design/airtable-interface-gap-analysis.md) |
529-
| **v3.3** | Q4 2026 | Business logic services (`service-automation`, `service-workflow`, `service-search`), Turso multi-tenancy (database-per-tenant), UI Protocol Enhancement Phase B spec ✅ complete (interactive elements, blank page layout), Studio Interface Builder runtime, Visual Design UX optimization ([plan](docs/design/visual-design-ux-optimization.md)) |
529+
| **v3.2** | Q3 2026 | Communication services (`service-realtime`, `service-graphql`, `service-i18n`, `service-notification`), Turso embedded replica & edge sync, UI Protocol Enhancement Phase A (`RecordReviewConfig`, content elements) — see [gap analysis](docs/design/airtable-interface-gap-analysis.md) |
530+
| **v3.3** | Q4 2026 | Business logic services (`service-automation`, `service-workflow`, `service-search`), Turso multi-tenancy (database-per-tenant), UI Protocol Enhancement Phase B spec ✅ complete (interactive elements, blank page layout), Studio Page Builder runtime, Visual Design UX optimization ([plan](docs/design/visual-design-ux-optimization.md)) |
530531
| **v4.0** | Q1 2027 | Zod v4 migration, `plugin-auth``service-auth` rename, JSON Schema output, OpenAPI generation, AI services, multi-tenancy, Turso vector search & FTS5 integration, UI Protocol Enhancement Phase C spec 🟡 mostly complete (sharing, embedding), `previewAs` design-time preview, Data Studio protocol, runtime share/embed services |
531-
| **v4.1** | Q2 2027 | Studio IDE general availability, marketplace launch, UI Protocol Enhancement Phase D (templates, versioning, collaborative editing), Interface Builder enhancements (selection model, clipboard, alignment) |
532+
| **v4.1** | Q2 2027 | Studio IDE general availability, marketplace launch, UI Protocol Enhancement Phase D (templates, versioning, collaborative editing), Page Builder enhancements (selection model, clipboard, alignment) |
532533
| **v5.0** | 2027+ | Managed cloud, app store, global ecosystem |
533534

534535
---

apps/studio/ROADMAP.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -118,12 +118,12 @@
118118
| | Mode-specific config panels: Kanban (status field, swimlanes), Calendar (date fields, duration), Gantt (dependencies, milestones). | | |
119119
| 2.3 | **FormView Designer** | `objectstack.form-designer` | 🔴 P0 |
120120
| | Section/column layout editor. Field placement with drag-and-drop. Conditional visibility (`visibleOn`). Widget selection per field. Preview mode. | | |
121-
| 2.4 | **Interface Builder** | `objectstack.interface-builder` | 🔴 P0 |
122-
| | **Airtable Interface Designer parity.** Drag-and-drop element canvas using `BlankPageLayoutSchema`. Element palette (12 types: text, number, image, divider, button, filter, form, record_picker, grid, chart, details, list). Property panel per element. Snap-to-grid with alignment guides. Layer ordering. Undo/redo (50 steps). Data source binding per element (`ElementDataSourceSchema`). See `InterfaceBuilderConfigSchema` in `@objectstack/spec/studio`. | | |
123-
| 2.5 | **Page Builder** | `objectstack.page-builder` | 🟡 P1 |
121+
| 2.4 | **Page Builder** | `objectstack.page-builder` | 🔴 P0 |
122+
| | **Drag-and-drop element canvas** using `BlankPageLayoutSchema`. Element palette (12 types: text, number, image, divider, button, filter, form, record_picker, grid, chart, details, list). Property panel per element. Snap-to-grid with alignment guides. Layer ordering. Undo/redo (50 steps). Data source binding per element (`ElementDataSourceSchema`). See `PageBuilderConfigSchema` in `@objectstack/spec/studio`. | | |
123+
| 2.5 | **Component Builder** | `objectstack.component-builder` | 🟡 P1 |
124124
| | Component composition canvas. Drag regions and components (header, details, related list, AI chat, custom). Property panel for each component. Preview with live data context. | | |
125125
| 2.6 | **App Builder** | `objectstack.app-builder` | 🟡 P1 |
126-
| | Navigation tree editor (drag-and-drop reorder). Add object/dashboard/page/URL items. Interface management (`interfaces[]`). Branding panel (colors, logo). Home page selector. | | |
126+
| | Navigation tree editor (drag-and-drop reorder). Add object/dashboard/page/URL/group items. Branding panel (colors, logo). Home page selector. Sharing/embed configuration. | | |
127127
| 2.7 | **Dashboard Designer** | `objectstack.dashboard-designer` | 🟡 P1 |
128128
| | Grid layout editor (React-Grid-Layout). Widget palette: charts, KPIs, lists, embedded views. Data source binding per widget. Auto-refresh config. | | |
129129
| 2.8 | **Report Builder** | `objectstack.report-builder` | 🟢 P2 |
@@ -361,7 +361,7 @@ export const myPlugin: StudioPlugin = {
361361
| Metadata types with dedicated viewer | 1 / 30+ | 15 / 30+ | 30+ / 30+ |
362362
| Object Designer protocol schemas | 16 schemas |||
363363
| Object Designer protocol tests | 46 tests |||
364-
| Interface Builder protocol schemas | 4 schemas | 10+ | 15+ |
364+
| Page Builder protocol schemas | 4 schemas | 10+ | 15+ |
365365
| Component test coverage | 0% | 50% | 80% |
366366
| Deep-linkable views | 0 | All | All |
367367
| Plugin count (built-in) | 7 | 20 | 35+ |

docs/design/airtable-interface-gap-analysis.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> **Author:** ObjectStack Core Team
44
> **Created:** 2026-02-16
5-
> **Status:** Phase A–C Spec Complete · Studio Runtime Pending
5+
> **Status:** ⚠️ SUPERSEDED — The `InterfaceSchema` layer has been removed. App now supports unlimited-depth navigation trees directly. Sharing/embed capabilities have been promoted to `AppSchema`. See the updated `app.zod.ts` for the current architecture.
66
> **Target Version:** v3.2 – v4.0
77
88
---

0 commit comments

Comments
 (0)