merge: reconcile retained-root metadata and unmount coverage

Integrate 127aa7a with the newer property-specific Host contract from 805323a. Preserve owned role and ARIA checks, callback and Behavior composition, and caller overrides for ordinary metadata. Carry the historical live-buffer unmount assertions into the current render-port revision test. Regression execution was waived; syntax and diff checks passed.
This commit is contained in:
Kinneyzhang 2026-09-08 21:37:53 +08:00
commit 04a16eeb18
2 changed files with 34 additions and 1 deletions

View File

@ -0,0 +1,29 @@
# Historical worktree integration
The September 5 benchmark worktrees contain competing repair attempts against
an earlier ETAF contract. Their changes were reconciled against current main
on September 8, rather than replacing the newer implementation.
- `127aa7a` preserves every existing root metadata value. Current main's
`805323a` already protects owned role and ARIA semantics, composes callbacks
and Behaviors, and allows caller values for ordinary metadata. Retain that
more precise implementation when reconciling the old attempt.
- `a206cfd` changes only the old metadata docstring to describe unrestricted
caller overrides. Retain the current docstring because owned semantic
conflicts are now rejected explicitly.
- The retained-root fixture's instance-scoping test is already present in
`tests/etaf-component-frontends-tests.el`. Its old role-override expectation
conflicts with the current owned-role contract and is superseded by the
existing rejection assertion.
- The three v1 unmount test attempts exercise the same lifecycle outcome.
Production no longer exposes the v1 fallback. Their live-buffer, unmounted,
zero-revision assertions are carried into the current render-port revision
contract test.
- The metadata baseline deliberately rejects every duplicate metadata key;
that blanket rule is superseded by the current property-specific policy.
- The missing-revision baseline deletes an old v1 test. Both that test and the
v1 production route have already been removed by the current SPI boundary.
The historical worktrees remain as evidence. They are not runtime dependencies.
Regression execution was explicitly waived for this integration; static checks
do not establish fresh behavioral or performance acceptance.

View File

@ -497,7 +497,11 @@
(should-error (etaf-render-port-revision buffer) :type 'error))
(cl-letf (((symbol-function 'ebox-surface-buffer-revision)
(lambda (_buffer) 0)))
(should-error (etaf-render-port-revision buffer) :type 'error)))
(should-error (etaf-render-port-revision buffer) :type 'error))
(etaf-render-port-unmount buffer)
(should (buffer-live-p buffer))
(should-not (etaf-render-port-mounted-p buffer))
(should (zerop (etaf-render-port-revision buffer))))
(when (and (buffer-live-p buffer)
(ebox-surface-buffer-mounted-p buffer))
(ebox-unmount-buffer buffer))