Skip to content

feat(ui): add InterfaceNavItemSchema, disambiguate PageTypeSchema overlaps#697

Merged
hotlong merged 2 commits intocopilot/enhance-ui-protocolfrom
copilot/review-design-document-revisions
Feb 16, 2026
Merged

feat(ui): add InterfaceNavItemSchema, disambiguate PageTypeSchema overlaps#697
hotlong merged 2 commits intocopilot/enhance-ui-protocolfrom
copilot/review-design-document-revisions

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Feb 16, 2026

Design review of Interface/App relationship and PageType duplicates. Conclusion: don't merge InterfaceSchema into AppSchema (navigation container ≠ content surface), don't merge overlapping page types (distinct abstraction levels). Instead, bridge and clarify.

InterfaceNavItemSchema (app.zod.ts)

App navigation had no way to reference Interfaces. Added type: 'interface' nav item:

const app = defineApp({
  name: 'data_platform',
  label: 'Data Platform',
  navigation: [
    { id: 'nav_review', label: 'Order Review', type: 'interface', interfaceName: 'order_review' },
    { id: 'nav_sales', label: 'Sales', type: 'interface', interfaceName: 'sales_portal', pageName: 'page_dashboard' },
  ],
});

PageTypeSchema disambiguation (page.zod.ts)

Added JSDoc clarifying the 3 overlap pairs that were flagged:

  • record (component-based FlexiPage layout) vs record_detail (auto-generated field display)
  • home (platform-level landing) vs overview (interface-level navigation hub)
  • app/utility/blank — distinct layout contexts, not duplicates

Design doc updates

Tests

5 new tests for InterfaceNavItemSchema + 1 real-world App↔Interface navigation test. 199 files, 5473 tests pass.

Original prompt

拉取请求: #696

重新评审设计文档修订,评估能否要将interfaces 和 app合并,page 的 type有重复,是否需要合并。


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

@vercel
Copy link
Copy Markdown

vercel bot commented Feb 16, 2026

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

Project Deployment Actions Updated (UTC)
objectstack-play Ready Ready Preview, Comment Feb 16, 2026 5:58am
spec Ready Ready Preview, Comment Feb 16, 2026 5:58am

Request Review

…date design doc decisions

Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Copilot AI changed the title [WIP] Review design document revisions and evaluate possible merging feat(ui): add InterfaceNavItemSchema, disambiguate PageTypeSchema overlaps Feb 16, 2026
Copilot AI requested a review from hotlong February 16, 2026 05:58
@hotlong hotlong marked this pull request as ready for review February 16, 2026 06:45
Copilot AI review requested due to automatic review settings February 16, 2026 06:45
@hotlong hotlong merged commit 334ca87 into copilot/enhance-ui-protocol Feb 16, 2026
7 checks passed
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR implements a design review that clarifies the architectural relationship between InterfaceSchema and AppSchema, adds a navigation bridge between them, and disambiguates overlapping page types in the UI protocol. The conclusion is to keep these schemas separate (navigation container ≠ content surface) and provide clear documentation on their distinct purposes.

Changes:

  • Added InterfaceNavItemSchema to enable App navigation items to reference Interfaces (with optional deep-linking to specific pages)
  • Enhanced PageTypeSchema JSDoc with disambiguation comments explaining the differences between similar page types (record vs record_detail, home vs overview, etc.)
  • Updated design document with implementation status, decision log entries (#9-11), and Phase A checklist completion

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
packages/spec/src/ui/app.zod.ts Added InterfaceNavItemSchema with interfaceName and optional pageName fields to bridge App navigation to Interface content surfaces
packages/spec/src/ui/app.test.ts Added 5 unit tests for InterfaceNavItemSchema validation and 1 integration test showing real-world App↔Interface navigation
packages/spec/src/ui/page.zod.ts Added detailed JSDoc disambiguation comments explaining the 3 overlapping page type pairs and their distinct use cases
docs/design/airtable-interface-gap-analysis.md Updated gap analysis matrix to reflect Phase A implementation, marked Phase A checklist complete, and added 3 decision log entries documenting architectural rationale

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants