Shared drag placement; drags snap one block to join a diagonal (t67 phases 3-4)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 15:08:37 -04:00
co-authored by Claude Opus 5.5
parent c3f9387b24
commit 72efe85a1b
8 changed files with 97 additions and 20 deletions
+17
View File
@@ -4,6 +4,23 @@ What agents have done, newest first. Add an entry for every piece of work: the d
note or request it was for, what changed, the files touched, the tests run, and anything left
open or not verified. Keep each entry short; the git history has the details.
## 2026-10-27: t67 phase 3 shared drag placement, and snapping (Claude Code)
- `dragPlan(P, a, b, shift)` in `src/ui/selection.js` gives code, direction, variant, blocks and
a planned map for every block piece. `primaryRelease` and the drag preview both use it (the
duplicated `blockLine(...)` expression and the screw/slope-only planned map are gone).
- Snapping: `joinSnap` in `src/sim/joins.js` moves a line one block up or down when its first
block would not join but would join seamlessly there with a diagonal piece involved, and
every block there is free. Fixes the owner's report that an uphill belt started beside a flat
belt on the same level did not join like screws do: it now snaps up to the seamless join. Also
covers t58's flat belt level with a downhill low end (snaps down) and a diagonal screw started
one block off. Straight beside straight never snaps. `joinIsDrop` (same-row feed into a slope's
low end) is now the one source for the drop, used by snapping and belt drawing.
- Files: `src/sim/joins.js`, `src/ui/selection.js`, `src/ui/actions.js`, `src/ui/previews.js`,
`src/render/slope-belts.js`, `test/t_joins.js`, `test/t_slope_belts.js`.
- Tests: `python3 test/run_all.py --browser` all passed; 9 snap checks plus a real
`primaryRelease` check. Open: phase 4's "doesn't connect" mark is not built yet.
## 2026-10-27: t66 dev console (Claude Code + Codex)
- Backtick opens a dev console in any build. The first time in a world it warns that the save