Commit Graph

51 Commits

Author SHA1 Message Date
Kinneyzhang
f1f91468aa chore: freeze verified ebox baseline before C1b
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-09-05 05:07:37 +08:00
Kinneyzhang
5236100add test(surface): stabilize cache rollback fingerprint
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-09-01 02:28:22 +08:00
Kinneyzhang
958132f604 feat: support framework Host teardown
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-09-01 01:07:23 +08:00
Kinneyzhang
17d67c063a fix: complete M2a E1 retained-state inventory
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-08-31 22:46:55 +08:00
Kinneyzhang
b5e8b6d863 feat: publish Ebox SPI v2 provider for M2a E5
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-08-31 21:52:51 +08:00
Kinneyzhang
918a88d95d refactor: unify style schema truth for M2a E4
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-08-31 21:25:19 +08:00
Kinneyzhang
a19672a25e refactor: add pure patch planner for M2a E3
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-08-31 20:57:54 +08:00
Kinneyzhang
12ce14d43a refactor: inject surface-free layout context for M2a E2
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-08-31 20:37:08 +08:00
Kinneyzhang
e55798e0e9 refactor: classify Ebox retained state for M2a E1
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-08-31 20:11:16 +08:00
Kinneyzhang
54b3514668 fix: publish inherited native paint updates 2026-08-29 01:01:58 +08:00
Kinneyzhang
722791a01e refactor: unify canonical style and font projection 2026-08-28 22:06:30 +08:00
Kinneyzhang
cb0e1823d3 refactor: own author facts behind opaque source handles 2026-08-28 16:48:09 +08:00
Kinneyzhang
31046ad8c9 refactor: derive Ebox styles from immutable package schemas 2026-08-28 03:13:56 +08:00
Kinneyzhang
8b28f278bd perf: expose correlated Ebox publication observation 2026-08-27 23:33:23 +08:00
Kinneyzhang
d0ffe112e6 refactor: restore the green typed layout baseline 2026-08-27 20:30:47 +08:00
Kinneyzhang
8861902b7e fix: define native commands at the Ebox facade
Some checks are pending
CI / test (push) Waiting to run
CI / native-build (macos-latest) (push) Waiting to run
CI / native-build (ubuntu-latest) (push) Waiting to run
CI / native-build (windows-latest) (push) Waiting to run
CI / native-msrv (macos-latest) (push) Waiting to run
CI / native-msrv (ubuntu-latest) (push) Waiting to run
CI / native-msrv (windows-latest) (push) Waiting to run
2026-08-27 16:53:12 +08:00
Kinneyzhang
9f48b2f283 perf: eliminate cold-scroll flicker and GC stalls 2026-08-27 16:42:59 +08:00
Kinneyzhang
0c7e7b974a refactor: enforce canonical Text and Box runtime boundaries 2026-08-27 12:14:51 +08:00
Kinneyzhang
f9050cee72 fix: declare Emacs 31 native compiler dependencies 2026-08-26 23:06:37 +08:00
Kinneyzhang
e5276d1cac feat: complete typed Normal Row and Column layout core 2026-08-26 21:33:32 +08:00
Kinneyzhang
6d9f2a4d82 refactor: make Grid placement a direct Box role 2026-08-26 20:49:07 +08:00
Kinneyzhang
4b409f16f4 feat: validate Box participation against final parent layout 2026-08-26 20:42:36 +08:00
Kinneyzhang
5b55c00015 feat: validate canonical GridConfig track grammar 2026-08-26 19:56:20 +08:00
Kinneyzhang
0a552293f0 feat: validate complete canonical FlexConfig schema 2026-08-26 19:43:14 +08:00
Kinneyzhang
31838e4e02 feat: drive default GridConfig through canonical Box 2026-08-26 19:32:46 +08:00
Kinneyzhang
e7dcb55d61 feat: drive default FlexConfig through canonical Box 2026-08-26 19:25:27 +08:00
Kinneyzhang
53001719c4 feat: retain Row and Column within canonical Box identity 2026-08-26 19:03:35 +08:00
Kinneyzhang
b530b0513c feat: add typed Text and Normal Box property boundary 2026-08-26 18:41:59 +08:00
Kinneyzhang
47f9da2ef2 feat: classify Box axes as structural style 2026-08-26 16:13:02 +08:00
Kinneyzhang
9f2cdfb299 feat: add canonical Box layout axes 2026-08-26 16:10:40 +08:00
Kinneyzhang
fcfbeb0368 fix: restore immediate retained viewport updates 2026-08-26 00:09:53 +08:00
Kinneyzhang
d58ec51650 perf: coalesce viewport resize delivery 2026-08-25 22:45:13 +08:00
Kinneyzhang
175ae2ed4e fix: preserve intrinsic row sizing across containing blocks 2026-08-25 20:55:43 +08:00
Kinneyzhang
b25328198c perf: defer GC across interactive viewport rerenders 2026-08-25 17:42:01 +08:00
Kinneyzhang
c591a9fcf4 perf: add native retained frame commits 2026-08-25 17:16:56 +08:00
Kinneyzhang
dd731cfbbf Optimize incremental mixed-owner rendering 2026-08-24 02:08:53 +08:00
Kinneyzhang
b65b5937cc Fix retained Flex ownership and responsive viewport updates 2026-08-22 17:37:03 +08:00
Kinneyzhang
33c625ad82 Make minmax grid tracks responsive 2026-08-22 10:19:12 +08:00
Kinneyzhang
1edc6d5bb6 Fix interactive Ebox publication and viewport bounds 2026-08-22 08:21:08 +08:00
Kinneyzhang
3fd63989e8 Complete retained Ebox publication and scrolling 2026-08-22 06:18:56 +08:00
Kinneyzhang
972126e239 docs(ebox): align public API and usage references 2026-08-11 21:09:12 +08:00
Kinneyzhang
3dc0706af9 chore(ebox): checkpoint current implementation and docs 2026-08-11 20:43:40 +08:00
Kinneyzhang
d279f94ee0 refactor(ebox): delegate selector matching to TP
Compile CSS-like selectors to TP structured ASTs and make TP the sole final matcher while Ebox retains logical tree adaptation and candidate indexes. Separate logical selector types from raw runtime type counts so internal flex adapters still drive bounded scroll scheduling without leaking into selector semantics.\n\nVerified: make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs
2026-08-06 14:28:29 +08:00
Kinneyzhang
654c824630 refactor(ebox): route retained updates through TP
Make TP the sole owner of live-buffer text-property publication, mount spans, scoped diff execution, and transaction rollback. Ebox now computes layout owners and retained surface plans, publishes handle/viewport/theme/scroll changes through TP, and keeps its mirrored runtime state transactionally consistent. Remove the former Ebox marker/index/patch executor instead of preserving a second mutation path.\n\nVerification:\n- make ci EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs\n- make package-lint-install EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs\n- strict byte compilation passed for 16 files\n- Ebox production has no tp-- private calls or marker writers\n- TP production has no Ebox dependency
2026-08-06 13:46:53 +08:00
Kinneyzhang
cdf841232a refactor(ebox): publish roots through TP surfaces
Move ephemeral rendering, initial buffer mounts, declarative commits, and opaque handle updates onto retained TP surfaces while keeping Ebox layout planning and runtime indexes transactionally synchronized.

Verified with: make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs
2026-08-06 05:49:22 +08:00
Kinneyzhang
fad54d7fb1 feat(ebox): project layouts into TP surface plans
Assign retained TP identity before layout and emit pure, runtime-free surface plans with exact character and text-property equivalence. Keep live publication unchanged for the staged cutover and add focused surface, package, docs, and CI contracts.\n\nVerified: make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs\nVerified: WERROR byte compilation for all 16 active Lisp files\nVerified: focused ebox-surface checkdoc has zero warnings
2026-08-06 04:13:13 +08:00
Kinneyzhang
bfef45f765 fix: size grid auto rows after item width resolution
Render auto-width grid children at their resolved track widths before resolving row heights. This keeps wrapped content visible and prevents stale intrinsic heights from clipping the final line.

Verification: make grid-tests EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs; make compile EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs; make check EMACS=/Applications/Emacs.app/Contents/MacOS/Emacs.
2026-08-05 20:42:58 +08:00
Kinneyzhang
d4dc572c2d fix: keep grid borders aligned across multiline items
Measure auto-width children intrinsically, constrain them to resolved tracks, account for border-box wrapper content, and align every rendered line before painting the wrapper border.
2026-08-05 20:36:29 +08:00
Kinneyzhang
ab9efe62a7 refactor: move playground fixtures to sibling package
Keep the standalone Ebox package focused on its public layout and DSL primitives while the generic ebox-playground package owns executable .ebox references.
2026-08-05 20:36:24 +08:00
Kinneyzhang
de6f56637b fix: measure full stack leaf width
Measure every rendered line when a column determines its natural width so a narrower first Grid line cannot cause later lines to overflow after stack padding.\n\nVerified with make check; core 545/545 and Grid 11/11 passed.
2026-08-05 12:01:36 +08:00