ktg-plugin-marketplace/plugins/ms-ai-architect/tests/screenshot
Kjell Tore Guttormsen d8882f5220 feat(ms-ai-architect): v1.15.0 — playground v3 project-view integration
Erstatter v2 project-surface (screen-tabs + category-tabs + per-command paste-cards)
med v3 renderProjectView (sidebar med 17 artifacts + main-area + import-modal overlay).
renderActive() ruter project-surface til renderProjectSurfaceV3() som wrapper
renderProjectView + topbar + app-shell.

V2-surface helt fjernet:
- renderProjectSurface (152 linjer)
- renderCommandSubCard (87 linjer)
- rehydratePasteImports (15 linjer)
- ACTIONS['project-screen'], currentProjectScreen
- 5 v2-CSS-klasser: .project-tabs, .project-tab*, .sub-zone, .paste-import-row, .project-header__*, .command-cards

Zombie-handlers beholdt for test-back-compat:
currentProjectTab, ACTIONS['project-tab'], ACTIONS['parse'],
handlePasteImport, window.__handlePasteImport. Unreachable fra v3 DOM
men nødvendige for test-playground-v3.sh + test-playground-parsers.sh.

2 fingerprint-gap lukket:
- requirements.headers: utvidet med "EU AI Act — Krav" pattern
- license.headers: utvidet med "Lisens-kapabilitetsmatrise" pattern
- KNOWN_GAP_FIXTURES = {} i test-playground-fingerprints.sh

migrateDataVersion utvidet med parserFor (3. arg):
- Demo-state med kun raw_markdown auto-parses til project.artifacts[cid]
- defaultParserFor(cmdId) resolverer PARSERS[archetypeFor(cmdId)]
- 3 bootstrap-callsites oppdatert (cold-load, import, load-demo)

Ship-QA bugfixes funnet via browser-dogfood:
- components-tier4-project-view.css lagt til i <link>-kjeden (var ikke loaded
  -> modal-overlay og two-column layout virket ikke)
- renderImportModal setter data-open="true" (DS-kontrakt for display: flex)

Bundler også sesjon 2-4 deliverables som ikke ble committed tidligere:
- shared/playground-design-system v0.6.0 (Tier 4 project-view CSS + 6 tokens)
- ms-ai-architect/playground/vendor/ re-sync til DS v0.6.0
- tests/test-playground-fingerprints.sh (sesjon 4 NY - 32 PASS)
- tests/test-playground-projectview.sh (sesjon 4 NY - 30 PASS)
- tests/test-playground-actions.sh (sesjon 4 NY - 19 PASS)
- tests/test-playground-migrations.sh utvidet (7 -> 16 PASS)
- tests/run-e2e.sh wirer alle 6 playground-suiter

Stats:
- bash tests/run-e2e.sh --playground: 386 PASS, 0 FAIL, 2 WARN (pre-eks)
- bash tests/run-e2e.sh (full): All E2E suites passed
- bash tests/validate-plugin.sh: 219 PASS

Screenshots regenerert til playground/screenshots/v1.15.0/ (24 PNG-er, 12
surfaces x 2 tema). Nye v3-surfaces: project-overview, project-artifact-*,
project-import-modal (viewport-only), project-search.

Docs oppdatert (3 nivåer): README.md (badge + version history),
CHANGELOG.md, CLAUDE.md (playground-seksjon + valideringstabell),
rot-README.md + rot-CLAUDE.md (marketplace-landingen + plugin-index).

.gitignore: ny pattern *.local.html + *.local.json for sesjon-state-filer.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 20:58:51 +02:00
..
.gitignore feat(ms-ai-architect): release v1.10.1 — demo system + screenshot gallery 2026-05-04 09:24:02 +02:00
package.json feat(ms-ai-architect): release v1.10.1 — demo system + screenshot gallery 2026-05-04 09:24:02 +02:00
README.md feat(ms-ai-architect): release v1.10.1 — demo system + screenshot gallery 2026-05-04 09:24:02 +02:00
run.mjs feat(ms-ai-architect): v1.15.0 — playground v3 project-view integration 2026-05-16 20:58:51 +02:00

Playground screenshot tooling

Standalone Playwright runner that captures playground screenshots for documentation.

Usage

cd tests/screenshot
npm install
npx playwright install chromium   # one-time, ~150 MB
node run.mjs

Output goes to ../../playground/screenshots/v1.10.0/.

What it captures

For each theme (dark, light):

# Surface Screen / tab
01 Onboarding Empty state
02 Project Rapporter / Regulatory (default)
03 Project Rapporter / each of 4 other tabs
04-06 Project Oversikt / Kontekst / Eksport
07 Home Project list with demo-prosjekt
08 Catalog All 5 expansion-grupper
09 Onboarding Prefilled from demo-state

= ~18 PNGs, captured with deviceScaleFactor: 2 (retina-crisp), fullPage: true.

How the demo state works

The screenshot script clicks [data-action="load-demo"] which reads the inline <script type="application/json" id="demo-state-v1"> block from the playground HTML. That block is generated by scripts/build-demo-state.mjs and includes one demo project ("Demo: Innbygger-chatbot for byggesak") with all 17 fixture markdowns pre-loaded as raw_markdown. After load, the project surface re-runs handlePasteImport for each report so the visualizations render automatically.

Regenerating demo state

If playground/test-fixtures/*.md changes:

node scripts/build-demo-state.mjs

This rewrites the <script id="demo-state-v1"> block in the playground HTML.

Commit policy

  • Commit playground/screenshots/v1.10.0/*.png so forkers see what the plugin looks like without running anything.
  • Don't commit node_modules/ (gitignored).