Gergő Törcsvári
574284c486
feat(collab): local-ops-only undo — remote applies skip the undo stack (ysync miss 09)
...
Ctrl+Z after a peer's edit no longer reverts (and re-broadcasts) the
peer's work, and the adopt undo-bomb is gone:
- doApply/doApplyItems (both editors) Push with SKIP_UNDO; the emit path
is unaffected (suppression keys off s_applyingRemote, not undo).
- With SKIP_UNDO no picker owns removed items — the bindings free them
after Push (explicit removals + upsert's remove-before-re-add; fields
excluded: CHT_REMOVE hides them, parent keeps ownership). Freeing stays
out of the fork commit classes so DRC's SKIP_UNDO callers can't
double-free.
- Test hooks kicadCollabTestUndo/UndoDepth, registered per-editor AND in
the kicad_editor dispatcher (merged image compiles out per-app
registrations).
- kicad pointer: eeschema UUID undo guard + SKIP_UNDO connectivity split
+ quiet stale-entry drop (ca8877324c).
- tests/kicad/collab-undo.spec.ts: 5 scenarios (no undo entry from remote
applies; selective undo; stranded replaced/deleted entries) — 5/5, plus
collab/ysync regression 30 pass.
- docs: ysync-review 20 fix record; 09 marked FIXED; overview indexed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019ejJEvS7ogef2o9gVTXjmp
2026-07-08 11:09:26 +02:00
..
00-overview.md
feat(collab): local-ops-only undo — remote applies skip the undo stack (ysync miss 09)
2026-07-08 11:09:26 +02:00
01-bug-first-tab-listener-never-registered.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
02-bug-footprint-blob-zeroes-pad-nets.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
03-bug-child-removal-dangling-slot.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
04-bug-lossy-change-detection.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
05-bug-rebaseline-swallows-local-edits.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
06-bug-concurrent-seed-duplicates-layout.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
07-bug-sheet-switch-stale-down-hook.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
08-miss-layout-state-never-syncs.md
feat(ysync): lib_symbols travel + layout save-sync (miss 08), TS hot-path opts (12), diff-on-rebind adopt (13) — doc 18
2026-07-06 08:57:58 +02:00
09-miss-undo-not-collab-aware.md
feat(collab): local-ops-only undo — remote applies skip the undo stack (ysync miss 09)
2026-07-08 11:09:26 +02:00
10-miss-no-repair-path.md
docs(ysync-review): repro suite results + empirical findings (doc 16); plan 15 executed
2026-07-06 08:56:11 +02:00
11-miss-no-v2-e2e-coverage.md
docs(ysync-review): repro suite results + empirical findings (doc 16); plan 15 executed
2026-07-06 08:56:11 +02:00
12-opt-hot-path-full-model-work.md
feat(ysync): lib_symbols travel + layout save-sync (miss 08), TS hot-path opts (12), diff-on-rebind adopt (13) — doc 18
2026-07-06 08:57:58 +02:00
13-opt-parked-dirty-full-sheet-replace.md
feat(ysync): lib_symbols travel + layout save-sync (miss 08), TS hot-path opts (12), diff-on-rebind adopt (13) — doc 18
2026-07-06 08:57:58 +02:00
14-opt-item-granularity-bandwidth.md
feat(ysync): lib_symbols travel + layout save-sync (miss 08), TS hot-path opts (12), diff-on-rebind adopt (13) — doc 18
2026-07-06 08:57:58 +02:00
15-plan-repro-tests-and-v2-e2e.md
docs(ysync-review): repro suite results + empirical findings (doc 16); plan 15 executed
2026-07-06 08:56:11 +02:00
16-repro-suite-results-and-empirical-findings.md
docs(ysync-review): repro suite results + empirical findings (doc 16); plan 15 executed
2026-07-06 08:56:11 +02:00
17-fixes-bugs-01-07.md
fix(ysync): review bugs 01–07 — listener registration, pad nets, child removals, dirty-set emit, targeted rebaseline, seed arbitration, stale hook (doc 17)
2026-07-06 08:57:57 +02:00
18-miss08-opts-12-13.md
feat(ysync): lib_symbols travel + layout save-sync (miss 08), TS hot-path opts (12), diff-on-rebind adopt (13) — doc 18
2026-07-06 08:57:58 +02:00
19-undo-option1-feasibility.md
docs(ysync-review): 19 — miss-09 option 1 (local-ops-only undo) feasibility research
2026-07-07 21:09:24 +02:00
20-fix-miss09-collab-aware-undo.md
feat(collab): local-ops-only undo — remote applies skip the undo stack (ysync miss 09)
2026-07-08 11:09:26 +02:00