feat(editor): scaffold editor package

UI-only feature package for the ADR-029 editor rebuild: tsconfig
rootDir '.', vitest jsdom base with '@' alias and honest L0 baseline
thresholds, conformance ESLint active, React 19, @xyflow/react +
zustand wired against the pre-approved 2026-07-12 library traces.
Minimal feature.manifest.ts (empty useCases — no binders; declares
requiredCores runner-protocol + baseline coverage band) so the editor
participates in pnpm conformance without weakening any lint rule.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
This commit is contained in:
2026-07-12 22:00:34 +02:00
parent e9edad69b4
commit c42eca5b80
12 changed files with 527 additions and 1 deletions

View File

@@ -0,0 +1,23 @@
import path from "node:path";
import { mergeConfig } from "vitest/config";
import { jsdomVitestConfig } from "@repo/core-typescript/vitest.base.jsdom";
// Coverage thresholds are the honest L0 baseline inherited from
// `nodeVitestConfig` (80/75/80/80 — DEFAULT_COVERAGE_BANDS.baseline, ADR-020).
// The editor has no entities / use-cases / controllers layers yet, so no
// per-layer band globs apply; `feature.manifest.ts` declares the same
// baseline band and `feature.manifest.test.ts` guards against drift.
export default mergeConfig(jsdomVitestConfig, {
resolve: {
alias: { "@": path.resolve(__dirname, "./src") },
},
test: {
coverage: {
exclude: [
// Storybook stories — excluded from vitest by design; exercised by
// the Storybook test runner (`pnpm test:stories`).
"src/**/*.stories.{ts,tsx}",
],
},
},
});