Separate repository ext-test-projects — 313 commits over the month
| Class | Problem | Fix |
|---|---|---|
| CLASS C | MCP tools test setup — wrong parameter names | Rewrote openExplorerAndSelect, correct tree indexes |
| CLASS D | Logs panel cascade — devserver stop timing | Close preview panel before teardown + timing diagnostics |
| CLASS E | Delete element regression (PD-5-6/7/8) | Disk-read in Monaco, duplicate index 0→1, delete diagnostics |
| CLASS F | ET-17 tree scroll — DFS leaf selection | Last DFS leaf instead of first icon-like label; Feed component as scroll target |
37 versions of hypercanvas-preview shipped over 30 days
| Version | Date | Key changes |
|---|---|---|
| 0.1.9–0.1.17 | Apr 20–26 | Recompile gate, proxy retries, webview lifecycle, undo/redo fixes |
| 0.1.18–0.1.28 | Apr 27–29 | Cross-file AST, SSR Remix mock, proxy 403 retry, project switching |
| 0.1.29–0.1.41 | Apr 29–May 1 | Tamagui adapter, multi-root scan, fill color from iframe, Bulka proofs |
| 0.1.44 | May 3–8 | i18n text inspector (first ship), drag ghost, selsurv |
| 0.1.45 | May 9 | Drag bugs ×5, Shift+Enter fix, locale switcher, i18n key inspector ×4 |
| 0.1.46 | May 12 | Entry file watcher, i18n optimistic key, canvas crash fix, overlay HMR |
Spec: docs/specs/2026-05-16-preview-capabilities-v2-design.md · Status: Approved
The single cssSystem detection field is replaced by 6 independent dimensions,
each with its own support level. The readonly screen now shows the actual detected stack for the project
instead of a static compatibility table.
shadcn because class-variance-authority was used as a trigger — CVA is a utility, not a shadcn signalPreviewModeManager but absent from FULL_EDIT_BUNDLERSbun.lockb was treated as a bundler signal — it is a package manager lock file onlycanWriteStyles.| tailwind, cssmodules, styled-components, emotion, sass | full |
| vanilla-extract, pandacss, unocss, stylex | readonly |
| shadcn, daisyui, nextui, tamagui | full |
| mui, antd, chakra, mantine, fluent | readonly |
@radix-ui/* in deps.canRender.| react-*, preact | full |
| vue, svelte, solidjs, astro | unsupported |
canRender and canWriteStyles.| vite, webpack, rspack, cra, bun, parcel | full |
| unknown | unsupported |
bun-plugin-* in deps — not from bun.lockb. Rspack = webpack pipeline.
FrameworkType in framework-routing.ts.
bun.lockb → package manager only, never bundler.
ProjectCapabilities shape// Detected stack
cssFramework: CssFramework; // tailwind | cssmodules | emotion | …
designSystem: DesignSystem; // shadcn | tamagui | mui | none | …
jsFramework: JsFramework; // react-vanilla | react-nextjs | preact | …
router: RouterType; // nextjs-app | remix | tanstack-router | …
bundler: Bundler; // vite | webpack | rspack | bun | parcel | …
packageManager: PackageManager; // bun | npm | pnpm | yarn | yarn2
// Derived — no more redundant support* fields
canRender: boolean; // jsSupport !== 'unsupported' && bundlerSupport !== 'unsupported'
canWriteStyles: boolean; // CSS_SUPPORT[cssFramework] === 'full' && BUNDLER_SUPPORT[bundler] === 'full'
readonly: boolean; // canRender && !canWriteStyles
CSS_SUPPORT, DS_SUPPORT, JS_SUPPORT, BUNDLER_SUPPORT) exported from types.ts —
usable by both extension host and webview. Also: uiKit → designSystem rename across AIBridge, StateHub, styling-tools.
| JS Framework | React (vanilla) | ✅ Full |
| CSS Framework | Tailwind CSS | ✅ Full |
| Design System | shadcn/ui | ✅ Full |
| Bundler | Vite | ✅ Full |
| Package Manager | npm | ℹ️ |