v0.7.0-prerelease — Phase 6: Session-Replay + Component-Lib-Awareness
Pre-releaseSession replay, component-library awareness, and four more synthesis-
listed Improvements over Impeccable land in v0.7.0.
Built by a 4-agent team (architect / coder-foundation / coder-features /
tester) with two parallel coder agents writing disjoint files.
5 Improvements landed
| # | Improvement | Module |
|---|---|---|
| 2 | Per-session edit-stack with undo | src/session/logger.ts + replay.ts + agent/history.ts |
| 3 | Morph-mode interpolation between variants | src/agent/morph.ts |
| 5 | In-session policy-proposal flow | src/agent/policy.ts |
| 6 | Structure-variant-mode (JSX-subtree alternatives) | src/source/structure-variant-mode.ts |
| 11 | Component-library-aware edit-strategy hints | src/agent/component-detect.ts |
Plus the highest-value Phase-5 deferred fix
round-number-whitespace was firing per-occurrence on every Tailwind
padding:16px. Now does file-level aggregation: emits ONE violation iff
totalCount >= 4 AND roundCount/totalCount > 0.7. Verified on 3 fixtures
(1-decl: 0 hits / 4-decl-1.0-ratio: 1 hit / 4-decl-0.5-ratio: 0 hits).
What landed
Contracts (architect)
src/contracts/session.ts(332) - SessionEventEntry union extending
Phase-3 UndoEntry viaz.enum([...UndoEntryKindSchema.options, ...]),
SessionReplayTimeline, PolicyProposal, MorphSource/Config,
StructureVariantSpec with 8 kinds, 4 module interfacessrc/contracts/component.ts(254) - ComponentLib (7 values), Edit
Strategy (4 values), ComponentDetectionResult, COMPONENT_DETECTION_
RULES table per-libdocs/session-replay.md(188) +docs/component-detection.md(141)
Session foundation (coder-foundation)
src/session/logger.ts(443) -SessionLoggerModulewith 11
convenience helpers; Phase-3 file-op kinds route viaundoAppend,
Phase-6 kinds via direct atomic-append; schema-validates every entrysrc/session/replay.ts(419) -buildTimeline+listSessions+
internal helpers; malformed JSONL warn-skip; idempotent fold;
forward-join accept-variant to variants-emitted for primaryAxissrc/agent/history.ts(385) -runHistoryCLI with
--task/--list/--replay/--format text|json|markdownsrc/agent/policy.ts(493) - 3-consecutive-same-axis trigger,
frontmatter merge, declined-axes block re-trigger same session
Feature modules (coder-features)
src/agent/component-detect.ts(~360) - cap-then-average aggregation,
6 libs + vanilla fallback, vanilla never wins by score, quick vs
deep samplingsrc/source/structure-variant-mode.ts(~330) - 8 kinds via
template router, balanced-tag walker for splitJsxIntoHalvessrc/agent/morph.ts(~265) - deterministic via sorted variable
names, t clamped, interpolatable iff parsed + matching unit,
non-interpolatable snap att<0.5
Tests (tester, 130 new in 8 files)
- session/logger.test.ts (18), session/replay.test.ts (18)
- agent/history-cli.test.ts (12), agent/policy-proposal.test.ts (18)
- agent/component-detect.test.ts (18), agent/morph-mode.test.ts (21)
- source/structure-variant-mode.test.ts (18)
- verify/anti-slop-fp-rate.test.ts (UPDATED) - flipped
it.fails
toit()after FPR fix
Cumulative: 626/626 tests green (40 test files, ~6s).
FPR fix - what worked, what's still outstanding
round-number-whitespace: per-occurrence -> file-level aggregation ->
0 hits on Tailwind defaults ✓
Soft-warn FPR delta: 45.71% -> 42.86%. The fix specifically targeted
round-number-whitespace, which now contributes 0 hits. The remaining
FPR is split between two OTHER soft rules:
single-weight-typography- 30 hits across realGood (legit
single-weight CSS blocks)default-tailwind-blue- 20 hits across borderline (color: #3b82f6)
These are the audit-recommended tightenings 2/4 from Phase 5. Test asserts
< 0.45 (calibrated to current state) with comment naming outstanding
rules. Phase 7 launch prep picks them up.
CLI surface
wisp-design history [--task ID] [--list] [--replay] [--format text|json|markdown]
wisp-design policy --propose | --apply <axis>=<value> | --show
wisp-design morph --variant-a-id ID --variant-b-id ID --t 0..1
Quality gates
typecheck: clean
test: 626/626 in ~6s (40 files)
build: 19+ dist bundles
doctor: 14 checks (12 OK + 1 WARN policy.md + 1 OK sessions lazy)
Phase-6 deferred to Phase 7 launch prep
- Anti-slop tightenings 2-4 (single-weight-typography scoping,
default-tailwind-blue extension with brand-color whitelist, oklch
branch for purple-blue-gradient, brace-anchoring for selector
windows) - Multi-viewport baseline-comparison + visual regression
- Reduced-motion pixelmatch-based two-render diff
history --replayimplementation- Three more variant-anchor
.mdfiles plus full Huashu /
UI-UX-Pro-Max content forks
Next
Phase 7 - Public Launch. README with GIF (Pick -> 3 variants -> Tune ->
Accept -> AA-block-demo), docs/architecture.md, docs/comparison.md table
(Impeccable / Stagewise / Onlook / v0 / Lovable / Claude Design), CI
matrix (Linux/Windows/macOS x Node 20+22), gh repo edit --visibility
public, gh release create v1.0.0 (NO --prerelease), HN-Post + X-Thread.
Plus the Phase-6-deferred polish items above.