Repository navigation
Replies: 3 comments
|
The concrete pilot for this proposal is now open: #15010 — refactor(web): register the Diff side panel.
|
|
Updated proposal (replaces the four questions above). We opened #15010 before getting an answer here, against what this post said. We did that so you can judge real code and before/after evidence rather than a sketch. Here is what we're asking you to approve: Accept a static, first-party panel registry in
Scope stays fixed: no SDK, no runtime or remote loading, no third-party panels, no CSP/IPC or persistence changes, one panel per PR, and every PR can be reverted on its own. Prior discussion: this is the internal panel host proposed in #1377 ("Could be cool, if you have a clear idea how you'd do it feel free to send a draft PoC"), with the same goal as splitting ChatView (#830). #15010 is that PoC, starting with Diff. Third-party extension ideas (#6837, #6977, #6714) stay out of scope here; this registry is first-party and build-time only. What we need from you: approval of this direction and scope, or a "no". If it's no, we close #15010 and stop here. |
|
The whole panel host is now open as a stack of ready PRs. Instead of waiting for an answer on the pilot, we finished the work so you can judge all of it. Each PR moves one surface onto the registry from #15010 or fixes one bug found along the way. Each was tested at its own head, reviewed, and has before/after captures on web and desktop, plus a remote
Stores, keybindings, storage keys, server, contracts and mobile are unchanged throughout. The two fixes (#16040, #16044) are useful on their own if you'd rather not take the host. If the answer to the proposal is no, we'll close #16038–#16043 and keep only what you want. The plugin system that builds on this (plugin views as right-panel tabs) is listed on #6837. |
Uh oh!
There was an error while loading. Please reload this page.
Problem
Each right-panel surface (Diff, Preview, Device, Files) is mounted by its own hand-written branch in
ChatView. To add, replace or move a panel, you edit a ~9k-line component and copy its lazy-load, title and tab wiring. Forks that want a different panel carry invasive patches to it.Proposed direction
{ id, title, placement: "side-panel", load: () => import(literal) }. Duplicate ids are rejected, and panels render throughReact.lazyunder the existing Suspense. No runtime loading, persistence, RPC or package.What we're asking you to decide
apps/web?If the answer is no, we drop the pilot and it stays unmerged.
Evidence (pilot built locally, no PR)
main: 10 files, +329/−113 including tests, +16 net production lines. No store, contract, server, mobile, CSP or IPC changes.Media will be uploaded to GitHub and linked here.
What we will NOT do
blob:or CSP changes.🤖 Generated with Claude Code
All reactions