Repository navigation
phase 3 of 4: a shell you live in #342
Copy link
Copy link
Open
Labels
featureA feature request or a pull request that adds oneA feature request or a pull request that adds one
Description
Goal
Make the panel a place you stay in: commands, settings, one timeline, errors, and a one-command setup. Devframe already ships most of the shell (ctx.commands, ctx.messages, ctx.terminals, settings), and the devtools use only docks.register, rpc, sharedState and agent today, so most of this phase is wiring. Rough size: 4 to 6 weeks. Follows #340 and #341.
Shell
- Command palette (Cmd/Ctrl+K) through
ctx.commands, with a command for every tab and action (pick, record change detection, clear, dock mode). Use a local palette when there is no hub. Add a global popup shortcut, configurable throughpopup.hotkey. - Settings page: theme toggle, hide, pin and reorder tabs, and a passive mode where the popup stays hidden until the shortcut.
- A splitter for the docked popup, and pop-out into its own window.
- Deep links to an item, not just a tab (
#tab=&id=&page=), plus anopen-in-panelagent tool. - One timeline with toggleable layers for router, HTTP, NgRx, change detection, forms and signals, instead of five separate timelines.
- Errors inspector: wrap
ErrorHandler,errorandunhandledrejection, parse NG0xxx codes with a doc link, and link the owning component. Replace the three console patches with one console tap. Addlist-errors,explain-errorandlist-consoleagent tools. - A terminals dock (
ctx.terminals) forng buildandng testoutput. - Reuse devframe plugins and services where they fit (
@devframes/plugin-a11y,@devframes/plugin-data-inspector,@devframes/plugin-messages,@devframes/service-open) instead of building the same thing again.
Setup and distribution
- An
ng addschematic that patchesmain.tsandserver.ts, plus a dev-server builder that mounts the hub middleware. This removes the CLI, proxy and one-time-code steps from the client-only setup. - Publish the extension to the Chrome Web Store and Edge Add-ons, and ship a Firefox build.
- Docs: a one-path quick start and screenshots on every inspector page.
Platforms
- Ionic support, on top of the Capacitor support. Tracked in First-class mobile support: a core plus an adapter per framework #307.
Performance and scale
- Push deltas instead of full snapshots for the component tree, injectors, change detection and forms. Use MutationObserver dirty flags, throttle to about once a second, and add an activity lease so idle pages stop pushing.
- Virtualize long lists and trees (2,000-row tables), starting with
content-visibility.
Done when
- Every tab and action is reachable from the command palette.
- First-run setup is one command.
Progress
- The command palette with
popup.hotkey, the Settings page with passive mode, item links with theopen-in-paneltool, and the Errors inspector with one shared console tap landed in feat(ui): add a command palette, settings, item links and an Errors inspector #389. - The Timeline tab, the docked popup splitter and pop-out, and the opt-in Terminals dock landed in feat(ui): add one timeline, a popup splitter and pop-out, and a terminals dock #390. Of the devframe plugins,
plugin-terminalsis adopted,plugin-messagesandservice-openwere already in use, andplugin-a11yandplugin-data-inspectorare not adopted (one writes into the app's page, the other skips redaction). The Shell section is done. - The quick start and panel screenshots on every inspector page, with
scripts/docs-screenshots.mjsto regenerate them, landed in docs(docs): add a quick start and panel screenshots on every inspector page #391. - Deltas, the 1 s throttle, the cached component tree, the idle lease (
limits.idleAfterMs) and windowed long lists landed in perf(overlay): push deltas, pause idle pages and window long panel lists #392. On a 2,000-component app, an element added every 100 ms went from 4.9 MB to 25 KB of pushes, and an idle page from 4.9 MB to two pings. - Parked for later: the
ng addschematic, store publishing with the Firefox build, and Ionic (First-class mobile support: a core plus an adapter per framework #307). Everything else in phase 3 is done.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureA feature request or a pull request that adds oneA feature request or a pull request that adds one
Activity
docs(ui): list the Errors tab for open-in-panel and the tab hashes
feat(ui): add a command palette, settings, item links and an Errors i…
fix(popup): reserve the pop-out window during the click
feat(ui): add one timeline, a popup splitter and pop-out, and a termi…
docs(docs): keep build folders when the screenshot script skips the b…
docs(docs): add a quick start and panel screenshots on every inspecto…
fix(overlay): share in-flight wakes, skip gone pages and pace form pu…
fix(overlay): only confirm a wake when every report went out
perf(overlay): push deltas, pause idle pages and window long panel li…