Uh oh!
There was an error while loading. Please reload this page.
feat(app-shell): Studio 设计面 MVP (ADR-0080 slice-1) — 三支柱 + 真实元数据 + 开源 AI slot - #2060
Merged
Conversation
…ice-1) Additive /dev/studio-design route + DevStudioDesign four-zone shell reusing getMetadataPreview/getMetadataInspector + SchemaRenderer. Touches no existing surface. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…t (ADR-0080) Move the design surface out of the apps/console dev harness into @object-ui/app-shell as StudioDesignSurface. The left AI copilot becomes an injected aiSlot prop — OSS renders three zones (nav/canvas/inspector); the cloud edition injects AI. Repoint /dev/studio-design at the promoted component. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…#3/#4) Replace the fixture with the shared MetadataClient: the single-App nav lists real pages, clicking loads that surface into the canvas (real PagePreview + live data), and the toolbar saves drafts / publishes through the real pipeline. Route moves inside ProtectedRoute for the connected client + data adapter. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ions,interfaces} Three pillars are now real routes scoped to the package being designed. The shell renders the package + pillar route links; Interfaces drives the real MetadataClient (nav/canvas/inspector + draft/publish), Data/Automations are scaffolded placeholders pending the App-nav + object/flow surface reuse map. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…utomations Interfaces: load the real App by package id and render its navigation tree (groups + typed leaves page/object/dashboard/report); clicking loads the bound surface (PagePreview/DashboardPreview/object-grid). Data: object list + record grid (object-grid) + field table. Automations: flow list + FlowPreview graph. All reuse existing renderers — no new editor code. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ble parity) Drop the redundant field table — the record grid's columns ARE the fields. Data mode now reads like a spreadsheet (objects on the left, the records directly viewable), matching Airtable's Data tab. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ot raw grid) Per design direction, the Data pillar (and Interfaces object items) render an object via object-view — its named list views + ViewSwitcher + record actions, falling back to a grid — instead of the raw object-grid. Matches our view model. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…hooks/static-components) AutomationsPillar assigned `const Preview = getMetadataPreview(...)` and rendered it as JSX, which react-hooks/static-components flags as a component created during render. Render via React.createElement instead, and derive the type from the selected flow (current.type) to mirror InterfacesPillar. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
什么
Studio 从「通用元数据 CRUD admin」重构为预览优先的 WYSIWYG 设计面的 slice-1(ADR-0080,决策与深度设计文档已合并 cloud#697)。新增
packages/app-shell/src/views/studio-design/StudioDesignSurface.tsx,从@object-ui/app-shell导出,挂在apps/console的/studio/:packageId/:tab路由。核心理念:设计态 = 运行态——同一个 objectui 渲染器,给每次编辑一条不依赖 AI 的兜底(补 Airtable 拆解暴露的「阶段二迭代面」缺口)。
三支柱(全真实数据,零新渲染器,复用现成 preview/inspector 注册表)
/studio/:packageId/interfaces:左侧导航树镜像真实 App 的多级菜单(Workspace / Data Model / Analytics / Pages),菜单项绑定到对象 / 看板 / 报表 / 页面;点选 leaf 进画布,用同一渲染器预览("预览即运行 · 同一渲染器");画布点选积木 → 右侧 inspector 直接改属性 →保存草稿/发布。/studio/:packageId/data:用我们的视图模型(object-view 列表视图,非 Airtable 裸 grid),整版主视图;按当前软件包过滤对象。/studio/:packageId/automations:flow 列表 + FlowPreview 流程图;按当前软件包过滤。开源/闭源边界
AI 副驾是注入式
aiSlotprop——开源版留空,cloud 版填左栏聊天。开放机制、闭源智能,沿用 ai-studio open-core 模式。不进产品 nav
只挂
/studio路由,暂不进控制台导航——MVP,opt-in,零回归面。验证
eslint .— 0 errors(5 个 warning,CI 不拦)tsc --noEmit(app-shell,依赖已构建)— 0 errorsColumns3→2 → 画布即时回流(onPatch→同一渲染器重渲)→ 保存草稿("未发布草稿" badge)→ 发布 → 元数据 overlay 层持久化columns:2(overlayScope:env),effective 解析为 2,draft 已清。后续 PR(已记 TODO,不在本 PR)
🤖 Generated with Claude Code