Skip to content

Research: Component override system feasibility analysis#147

Draft
Copilot wants to merge 2 commits into
copilot/review-provider-decoupling-filesfrom
copilot/explore-component-replaceability
Draft

Research: Component override system feasibility analysis#147
Copilot wants to merge 2 commits into
copilot/review-provider-decoupling-filesfrom
copilot/explore-component-replaceability

Conversation

Copilot AI commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Assessed feasibility of making core UI components replaceable (ModelSelect, ModelCatalog, ChatContainer, DocumentEditor, PromptEditor) to enable custom implementations without forking.

Key Findings

Existing foundations:

  • Registry pattern (_registry.ts) proven across 5+ subsystems
  • Hook/filter system with 50+ extension points
  • Custom pane apps already demonstrate component replacement viability

Current state:

  • Core components hardcoded in PageShell.vue and consumers
  • No override mechanism exists

Proposed Architecture

Component override registry using existing patterns:

// Registration API
registerComponentOverride({
    id: COMPONENT_IDS.MODEL_SELECT,
    component: () => import('./CustomModelSelect.vue'),
    order: 10,
});

// Resolution with fallback
const { resolve } = useComponentOverride();
const component = resolve(COMPONENT_IDS.MODEL_SELECT, {
    fallback: ModelSelect,
});

Implementation Scope

Effort: 2-4 days (~360 LOC core + tests + docs)

Priority components:

  • P0: ModelSelect, ModelCatalog (high value, low-medium complexity)
  • P1: ChatContainer, DocumentEditor, PromptEditor (higher complexity)

Deliverable

Full feasibility report in component-override-report.md includes:

  • Architecture design with type-safe contracts
  • Props/emits interfaces for each component
  • Testing strategy and migration path
  • Risk assessment (Low risk - backward compatible, zero breaking changes)
  • Example plugin demonstrating override

Next: Approve scope and priority, then implement registry + integration.

Original prompt

Can you look into how hard it would be to make some components replaceable? For example the model catalog, prompt catalog, doc editor, etc.. technically most stuff is done using seperated composables anyway. W just need a way to render a custom component it one exists. If not we register the default. I want you to look into how hard this would be. And find good areas of the codebase to do this to.. some stuff will not make sense but some will...bring me your findings in a markdown file called "component-overide-report.md" , once you have a good understand come back to me and we will make a plan

Custom agent used: Code Reviewer
Used for code reviews


💡 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.

Co-authored-by: Saluana <46250649+Saluana@users.noreply.github.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Feb 9, 2026

Copy link
Copy Markdown

Deploying or3-chat with  Cloudflare Pages  Cloudflare Pages

Latest commit: dda24b6
Status:🚫  Build failed.

View logs

Copilot AI changed the title [WIP] Investigate component replaceability implementation Research: Component override system feasibility analysis Feb 9, 2026
Copilot AI requested a review from Saluana February 9, 2026 20:35
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.

2 participants