Files
houseplan-card/legacy/docs/implementation-plans/2026-08-05-open-spans-delete.md
T

40 lines
1.8 KiB
Markdown

# Open spans + wall-centric Delete — Implementation Plan
> **For agentic workers:** execute task-by-task; checkboxes track progress.
**Goal:** Partial virtual wall stretches (`space.open_spans`) + Delete operates on walls (close → merge/delete room), then ship `v1.59.0-beta.6`.
**Architecture:** Pure helpers in `src/open-spans.ts`; card wires two-click openwall and wall-centric delete; `open_to` remains the light-zone index derived from spans; legacy `open_to`-only configs expand to full sharedBoundary on read.
**Tech Stack:** TypeScript, Lit card, node:test, Playwright smokes, GitHub prerelease.
**Spec:** [`docs/superpowers/specs/2026-08-05-open-spans-delete-design.md`](../../../docs/superpowers/specs/2026-08-05-open-spans-delete-design.md)
## Global Constraints
- Cursor openwall = crosshair (not pointer)
- Openings forbidden on virtual; purge on open
- Thickness clear on open; restore neighbour / DRAW_WALL_DEFAULT_CM on close
- Delete: virtual→close; shared→confirm merge whole pair; outer/inside→confirm delete room
- Version bump to `1.59.0-beta.6` for this ship
## File map
| File | Role |
|------|------|
| `src/open-spans.ts` | CRUD, legacy expand, snap/clamp, thickness+opening side effects, rekey/degrade |
| `src/houseplan-card.ts` | Gestures, render cuts from spans, merge via existing dialog |
| `src/styles.ts` | openwall crosshair |
| `src/i18n/en.json`, `ru.json` | Toasts / titles |
| `test/open-spans.test.mjs` | Unit |
| `demo/smoke_openwall.mjs` (+ hover/delete as needed) | Browser |
| docs CHANGELOG/STATUS/ARCHITECTURE | Ship notes |
## Tasks
- [ ] Task 1: `open-spans.ts` + unit tests
- [ ] Task 2: Wire `_openPairs` / openwall 2-click / openings refuse+purge
- [ ] Task 3: Wall-centric Delete + merge confirm path
- [ ] Task 4: Smokes, i18n, docs
- [ ] Task 5: Bump beta.6, build, commit, tag, GitHub prerelease