`timers.schedule/interval/scheduleAt` now accept `key: null` — the engine mints a unique `auto:N` key via an internal counter (with a `has()` collision guard) and the caller drives the timer through the returned handle. Naming a timer stays a feature (cancel-by-name, `replace`, dedup, scoped `cancelAll`), not a tax on every call. Anonymous timers live in the `auto` scope. +6 engine tests; the race-safety path is unchanged (the key is resolved before the (id,key,version) machinery). Uses it to close the raw `setTimeout`/`setInterval` and direct `getComputedStyle` violations the audit flagged — instead of waiving the uix.timers / $adom rules: - code-block, relative-time: raw setTimeout/setInterval -> eidos.timers (key:null) - cropper: raw setTimeout throttle gate -> uix.timers (key:null) - textarea, s-text, s-text-virtual-list: getComputedStyle(el) -> dom.getWindow(el) The earlier audit call that these were "nil functional gain" was wrong: the rule is the rule, and the friction (manual per-instance key invention) was removed at the framework level rather than used as grounds to skip the rule. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>active-uix
parent
19ce90b040
commit
67cec940c0
Loading…
Reference in new issue