23 Commits

Author SHA1 Message Date
alonso.torres
b8f05a6dc5 🐛 Track reference inputs for selective library pulls
Refresh generated oracle inputs after reset, swap and variant switch using
the loaded sources from before the operation. Keep other copies stale and
preserve inputs for variant requests that do not switch.

Journal reference-only changes with the real undo group so undo and redo
restore inputs even when a pull leaves the head's shape unchanged.

Add real-event controls for selective pulls, stale copies, no-op requests,
independent replay and propagation through a local main. The original F252
regression passes with unchanged assertions.

Validation: 1,773 frontend tests, 15,142 assertions; lint and format pass.
This changes only the frontend test harness; no sync benchmark is needed.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
1732b730a2 🐛 Checkpoint generated histories after foreign writes
Verify each consumer history segment before opening a source editor.
Start new segments after external writes while retaining undo entries,
no-op baselines and recorded failures.

Add real-event controls for update-main, older undo/redo and failure
preservation. The original F250 regression passes with unchanged assertions.

Validation: 1,768 frontend tests, 15,004 assertions; lint and format pass.
This changes only the frontend test harness; no sync benchmark is needed.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
69c328ca5b 🐛 Canonicalize references retained after source undo
Resolve missing shape references through each copy's retained source inputs.
Name them by receiving and source paths while keeping live tree names first.
Preserve sharing and keep distinct historical replacements distinguishable.
Unknown references remain visible to comparison.

Keep the original red regression unchanged and remove both F251 frontend
marks. Cover independent UUID allocation, shared references, corrupt swaps,
live replacements and historical replacements at the same source path.

Validation: full common JVM/JavaScript, frontend and backend/exporter suites;
common/frontend lint and format; all six common properties with 40 programs
at seed 712 in both runtimes. Focused common: 3 tests, 13 assertions;
frontend parity/retained-state controls: 30 and 14 assertions without marks.
Production code did not change; no new sync benchmark was required.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
d88c43c26d 🐛 Retain accepted library references in frontend replay
Predict explicit library acceptance inputs from the live before-state.
Journal changed shapes' before/after reference inputs under actual undo
groups, then restore them on undo/redo without replacing loaded libraries.
Carry reference bookkeeping between editors while keeping separate journals.

Remove F249's mark with its original grid acceptance history unchanged.
Cover repeated acceptance, newer unaccepted sources and transitive editor
histories. Pin the separately confirmed F251 canonical identity mismatch
with its exact diff and an independent valid-state and undo/redo control.

Validation: full frontend suite, 1,765 tests and 14,905 assertions; build,
lint and format. Original grid history: 146 assertions; reference controls:
73 repeated/newer-source, 33 transitive, 14 retained-reference, 30 parity.
Production and common code did not change; no sync benchmark was required.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
37a9558f17 🐛 Replay source-library edits in their owning editor
Keep separate workspace undo state for source and consumer editors. Run
source operations through their real watchers, verify they leave other
files unchanged, and check exact per-step and whole-history undo/redo.
Retain each editor's own baseline when loaded foreign files change.

Cover source additions, interleaved source/consumer edits and undo/redo,
and two source owners. The original F248 positive regression passes without
changing its assertions. Keep the full acceptance history unchanged and
pin its newly exposed F249 reference failure, with a real acceptance control.

Validation: full frontend suite, 1,760 tests and 14,721 assertions; build,
lint and format. Focused controls: 80 interleaved, 31 two-source, 9 acceptance
and 138 full-history assertions. Production and common code did not change;
no new sync benchmark was required.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
3953129adb 🐛 Resolve direction edits for empty generated grids
Allow direction edits on eligible grid containers without requiring cells.
Keep cell edits limited to grids with an existing cell. Add an opt-in empty
grid fixture without changing random operation distributions.

Cover main and copy scopes, nested grids, meaningful edits, skipped cell
edits and exact undo/redo. Add reset, update-main, duplicate, detach, child
addition and direction-return histories in common and frontend runners.
The original 40 assertions failed 16 times before the fix and pass unchanged.

Validation: full common JVM/JavaScript and frontend suites; backend/exporter
CI; common/frontend lint and format. All six common component properties
pass 40 programs at seed 712 in both runtimes. Focused common: 61 assertions;
frontend controls: 56 direction and 204 history assertions.
No production code changed; no sync benchmark was required.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
4eb64ff7e9 🐛 Predict grid growth in the composable override model
Retain authored cell bounds and direction through identity remapping.
Use accepted reference context and child identities to predict new cells
and track capacity without reading resulting cell values. Check expected
bounds as well as cell values, while keeping pending copies unchanged.

Cover row/column growth, corruption, structural histories, stale libraries
and exact undo/redo. Keep the original four failing assertions unchanged.
Pin the separate source-library frontend routing gap as F248 with an exact
failure signature and a passing source-editor control.

Validation: full common JVM/JavaScript and frontend suites; backend/exporter
CI; common/frontend lint and format. All six common component properties
pass 40 programs at seed 712 in both runtimes. Focused controls: 6 tests,
89 assertions. No production code changed; no sync benchmark was required.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
59731e8d2c 🐛 Check update-main intent in the component oracle
Check authored values against the copy before update-main clears its
overrides. Verify scalar and text values, grid membership and component
choice in the destination main. Use before-state geometry ownership and
the existing tolerances.

Retain intent through deferred synchronization, including explicit sync,
and check the completed result before dropping that temporary context.
Add real and corrupt controls for local and linked libraries, scalar
inputs, text units, geometry and the frontend replay pipeline.

Validation: common JVM 2,012 tests / 33,188 assertions; common JS
1,948 / 31,799; frontend 1,751 / 13,976; backend 1,793 / 9,007;
exporter 16 / 40. Six properties pass 40 programs at seed 712 in
both common runtimes. Lint and format checks pass for all four modules.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
7d2c20b804 🐛 Track authored grid cells in the component oracle
Compare overridden cells with independent before-state and intent values,
while keeping copy child structure tied to the main. Remap child identities
across duplication, update-main, detach and frontend replay. Direction edits
track both changed groups. The former I4 reproduction stays unchanged.

Add grid actions and seven histories with exact undo/redo, plus controls
for corrupt values, membership, groups, child order and dropped main edits.
Keep random grid rollout pending track growth and switch carry coverage.

Validation: common JVM 2,009/32,967; JS 1,945/31,582; frontend
1,749/13,838; backend 1,793/9,007; exporter 16/40. All suites, lint and
format pass. Six properties run 40 programs at seed 712 in both runtimes.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
a086fd9657 ✨ Generate layout item edits in component histories
Add grid item justification and child margin mode, alignment, fixed/fill
sizing, size limits, absolute position and stacking order. Sample optional
asymmetric margins before copying. Keep existing input indexes and fixture
defaults, with explicit target eligibility and independent authored groups.

Check companion values, propagation, preserved overrides, reset, update
main, detach and exact undo/redo. Replay the histories through the real
frontend layout events and retain corrupt-result controls.

Correct F239's full-sync comparison to wait for layout on both routes.
The reduced add-child/absolute-child history stays settled, while the
negative control still rejects a real 0.25 px absolute-child displacement.
No geometry tolerance or golden data changes.

Validate the final continuation on common JVM (2004 tests / 32919
assertions), common JS (1940 / 31522), frontend (1745 / 13569), backend
(1793 / 9007) and exporter (16 / 40). All four modules pass lint and format.
All six generated properties pass 40 programs at seed 712 in both runtimes.
Golden data is unchanged.

The final continuation benchmark passes with no regression flags. Lower
quantile ratios against Phase 1e: main 10/100/1000 0.51/0.58/0.57, three
levels 0.57, chain 0.53, library 0.57, many shapes 0.45, variant switch 0.66.
Machine/JVM differences make these rough comparisons; baseline unchanged.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
c49bebf85a ✨ Exercise layout container edits in component histories
Generate flex direction, wrapping, justification, content alignment, gap
mode and padding mode edits against settled multi-child layouts. Track
their authored groups and replay histories through real layout events.

Settle raw layout property changes after copy sync in the pure runner and
keep derived writes in the user's undo group. Normalize absent and nil
typography references in the independent text model.

Make frontend undo checks account for capped history and grouped layout
entries. Verify segments before eviction and keep missing-undo controls.

AI-assisted-by: GPT-6
2026-10-30 09:50:19 +01:00
alonso.torres
49712e64c8 ✨ Generate shadow, blur and corner edits
Add drop/inner shadows, layer and background blur, and the three remaining
corner radii to generated style edits. Preserve the existing input order
and describe their authored groups independently of production metadata.

Check distinct inputs, main propagation, preserved overrides, corrupt
values and lost touched groups. Run component update, reset, detach and
exact undo/redo histories in common and the async frontend.

The input test fails six assertions before the addition. Focused common
checks pass 4 tests / 90 assertions; the six frontend histories pass
204 assertions. Full common JVM/JS, frontend, backend and exporter suites
and lint/format checks pass, including six 40-program properties at seed
712. F227's parity correction is covered separately. Golden data and
production behavior are unchanged.

Wider attribute/layout and source-copy generation, pending-work coverage
and the five fresh 5,000-program gates remain open.

AI-assisted-by: GPT-6
2026-10-30 09:50:19 +01:00
alonso.torres
e1472c025f 🐛 Compare layout source placement in backend test parity
A hidden copy follows its visible main child's layout-derived position.
Only the frontend runs real reflow, so comparing that copy's raw position
with the pure runner reported a false mismatch (F227).

Compare untouched images against expected source placement for backend
parity. Keep strict same-run comparisons and the numeric tolerances.
Independent controls still reject image drift and authored geometry edits.
The source/image translation control fails before the correction.

Reduce the generated history from 41 operations to five and replay it in
common and the async frontend, including exact undo and redo.

Validation: 30 focused tests / 177 assertions; full common JVM/JS,
frontend, backend and exporter suites; lint and formatting. All six
generated properties pass 40 programs at seed 712. Golden data and
production behavior are unchanged.

AI-assisted-by: GPT-6
2026-10-30 09:50:19 +01:00
alonso.torres
ecc00c586c 🐛 Take nested swap constraints from their position source
Settle a nested swap's untouched constraint group from the replaced
position, including fixed-scroll. Carry compatible switch overrides first
so an inherited position cannot discard an authored constraint override.

Cover F224's reduced history in common and the async frontend, both
constraint axes, absent position fields, compatible carry and exact undo.
The complete original history and browser ShapeProxy replay also pass.

Validation: focused swap/variant/golden tests (123 tests, 1,764 assertions),
full common JVM/JS, frontend, backend and exporter suites; lint and format.
Golden data is unchanged.

Benchmark ratios against the unchanged baseline, with no regression flags:
mains 10/100/1,000: 0.53/0.58/0.63; three levels: 0.56; chain: 0.55;
library: 0.56; many shapes: 0.48; variant switch: 0.65.
The baseline uses another machine/JVM, so ratios are rough comparisons.

AI-assisted-by: GPT-6
2026-10-30 09:50:19 +01:00
alonso.torres
ea4bf5d56f 🐛 Skip numerically equal component sync writes
Compare integer and floating forms exactly for scalar values, points and
selection rectangles. A library update that only changes their numeric
representation must not create changes or an undo entry. Preserve every
nonzero difference, including real subpixel moves.

Add the reduced resize/library-sync regression and a subpixel control,
plus async frontend undo/redo replay. Review and update eight golden
states in case N: only equal integer/float representations changed.
The recreated seed-712 audit leaves all 61 syncs and undo depths unchanged.

Common JVM 1,914 tests/31,146 assertions and JS 1,845/29,810 pass.
Frontend 1,563/10,880, its added replay, backend 1,610/8,104 and exporter
14/32 pass. Lint and formatting pass. Exporter needs its test-only secret.

Benchmark ratios against the unchanged baseline: mains 10/100/1000
0.54/0.61/0.61, levels 0.53, chain 0.55, library 0.55, many shapes 0.62,
variant switch 0.65. No regression flag.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
f2ba6b90a9 🐛 Predict typography ownership across variant switches
Correct the independent switch model when only some typography styles
carry into the new variant. Mixed ownership drops the reference, while
fully carried styles retain it. Predict this from the two mains and
prior authored groups, including when the result is corrupt.

F221's regression and ownership controls failed before the correction;
they pass 2 tests / 6 assertions afterward. The original program and
shrink pass. Async frontend replay passes 19 assertions with undo/redo.
Common/frontend lint passes; changed files were formatted.

No production behavior, golden data or benchmark baseline changes.
Fresh 5,000-program gates remain required.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
7d1db022fc 🚧 Save component stabilization follow-up
Expand generated component coverage with independent library histories,
meaningful mutation counts, varied geometry and variants, all text style
units, oracle corruption controls and pending-sync frontend replays.

Fix reflected descendants, partial size carry, WASM shape defaults,
deferred swap and sidebar text undo, grid visibility, explicit typography
ownership, metadata filtering and swapped placement through sync/detach.

Recorded validation after F219:
- Common JVM: 1,909 tests / 31,088 assertions; JS: 1,840 / 29,688.
- Frontend: 1,560 tests / 10,821 assertions.
- Backend: 1,610 tests / 8,104 assertions; exporter: 14 / 32.
- Applicable lint and formatting pass; golden data stays unchanged.

Benchmark ratios against the unchanged Phase 1e baseline:
- Main edits into 10/100/1,000 copies: 0.52/0.57/0.58.
- Three levels: 0.51; dependency chain: 0.52; library update: 0.58.
- Many shapes: 0.42; variant switch: 0.62. No regression flags.

This is a checkpoint. The fresh legacy-library gate at seed 712 fails
at program 351 (F221); its cause remains unclassified. The other four
large gates did not run. F220, F187, F214 and wider coverage remain open.

AI-assisted-by: gpt-6
2026-10-30 09:50:19 +01:00
alonso.torres
58a0cf7d4e ✨ Generate component programs across library files
Build a shared library world and route edits, updates and settlement across
working and library files. Check the independent override model, geometry,
propagation and exact undo for both files. Replay shrunk library failures
through the async frontend with the same target choices and barriers.

Keep common generation/shrinking and CLJS replay as the main regression
suite. Use the plugin for public API, WASM and measured-text smoke checks;
retain its existing fixed cases until equivalent coverage replaces them.

All four properties pass 5000 programs each with seed712, each in a full
run. Fresh swaps: 5009 assertions; library: 5008. Isolated Stage3: 55/379.
Live WASM, fonts, undo/redo and later propagation checks pass.
Full frontend: 1539 tests, 9312 assertions, including 39 generated replays.
Common JVM: 1851 tests, 30684 assertions; JS: 1782 tests, 29308 assertions.
Backend: 1610 tests, 8104 assertions; exporter: 14 tests, 32 assertions.
Plugin: 68 cases. Lint, formatting and unchanged goldens pass.

AI-assisted-by: GPT-6
2026-10-30 09:50:19 +01:00
alonso.torres
4a63d6dc74 ✨ Generate component swaps and variant switches
Generate swaps and variant switches across three component levels. Track
carried groups independently by main names, ancestor kinds and ordinal;
retain authored swapped subtrees and predict orientation from old values.
Replay shrunk failures through the async frontend with target and undo
checks after every step. Follow authored swaps to their content main,
without taking overrides from the position they replaced or the result.

All four properties pass 5000 programs each, seed712. The fresh swap run
passes 5009 assertions; library passes 5008. MVP and structure runs remain
valid because later changes only affect swaps and variant content.
Isolated stage check: 55 tests, 379 assertions. Full frontend: 1539 tests,
9312 assertions; full common JVM and registered JavaScript suites pass.

AI-assisted-by: GPT-6
2026-10-30 09:50:18 +01:00
alonso.torres
3452946a93 ✨ Extend generated component checks to structure and geometry
Cover text, layouts, nesting, duplication and transforms with independent
geometry and override predictions. Compare raw design geometry within a
pixel tolerance and keep exact undo snapshots. Add corrupt-state controls
and replay shrunk programs through the async frontend.

Route pure-runner changes by file so later library scenarios can share
ordered sync and inverse changes. Refresh every frontend file on replay.

Final-generator MVP and structure gates each pass 5000 scenarios, seed712.
Isolated stage check: 40 tests, 156 assertions. The full working-tree
frontend run passes 1528 tests and 8877 assertions.
Existing golden changes record reviewed fixes; raw undo stays strict.

AI-assisted-by: GPT-6
2026-10-30 09:50:18 +01:00
alonso.torres
84a0e6a94c 🐛 Keep update-main and deferred text sync in one undo group
Use the same explicit group for inverse sync and every copy sync. Text
reflow can finish after the update transaction closes; one undo must still
restore the main, its copies and the source overrides together (F152).

The five-operation text regression fails before this change. All 12
frontend generated replays pass: 865 assertions. Common and frontend lint
and format pass. Shared benchmark ratios: mains 0.47/0.53/0.55; levels
0.51; chain 0.64; library 0.64; many shapes 0.96; switch 0.68, no flags.

AI-assisted-by: GPT-6
2026-10-30 09:50:08 +01:00
alonso.torres
20343e1c8b 🐛 Record user undo changes before starting derived component sync
Hand applied transitions to the component watcher only after the workspace
records their undo entry. Keep the handoff synchronous with the captured
prior file data. This preserves transaction order when nesting triggers
several component syncs. Fix F137.

The minimal replay failed both undo and redo before the fix; its 4 checks
now pass. Existing sync scenarios pass their behavior and undo checks;
60 golden digests need review for the accumulated Phase 4 fixes.
Common benchmark ratios against Phase 1e: main 10/100/1000
0.46/0.52/0.53; levels 0.47; chain 0.51; library 0.51; many 0.49;
switch 0.61. This handoff changes no common benchmark code.

AI-assisted-by: GPT-6
2026-10-30 09:50:08 +01:00
alonso.torres
4d7c802ff2 🚧 Save Phase 4 random harness and grid fixes in progress
Save Stage 2 structure, text, geometry and layout generation, independent
oracle checks, frontend seeded replay and plugin visible-value checks.
Include pending grid sync and deletion fixes with focused regressions.

WIP validation: component sync 21 tests / 106 assertions; move shapes
6 tests / 33 assertions. Earlier plugin checks passed 68 full cases,
11 unit tests and types. The final generated replay, golden check,
5000-case gate, full suites and live WASM check remain unfinished.
Stages 3 (swaps/variants) and 4 (library files) have not started.

F124 benchmark ratios against Phase 1e: main 10/100/1000 copies
0.48/0.52/0.54; three levels 0.53; chain 0.56; library 0.52;
many shapes 0.42; variant switch 0.64. No regression flag.
The F125 deletion change still needs its final benchmark.

Save the detailed resume checklist and logs in the local stabilization
plan. Keep that workflow document out of the commit.

AI-assisted-by: GPT-6
2026-10-30 09:50:08 +01:00