You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Вердикт свипа идей (81 → 20 кластеров, 2026-07-23): STRONG, приоритет Tier-1. Два связанных элемента — порядок обязателен (гольф создаёт headroom, warp его тратит).
1. Гольф-пакет (−85…150 B gz, цель 1002 → sub-1000)
animation.finished.then(...) вместо new Promise((resolve,reject)=>{...finished.catch(reject); addEventListener('finish',...)}) — реджект протекает нативно; тот же хвост продублирован в src/compiler/runtime (−20…30 B и там). Проверить microtask-vs-event порядок при duration:0.
Единый цикл сборки кадра: if (props.scale != null) спецветка дублирует общий цикл (мёртвая); rotate — единственный честный спецкейс (deg-суффикс). Проверить, что C4 не пинит порядок ключей кадра.
addEventListener('finish') → onfinish (Animation принадлежит nano).
ln-слияние: max(ln a, ln b)/α ≡ ln(max(a,b))/α; Number.isFinite(k+c+m) вместо .every(isFinite) (отрицательные уже отвергнуты >0-проверкой; переполнение суммы отвергает только абсурдные пружины).
⚠️ Замена do/while на замкнутую верхнюю ln-границу длительности удлиняет duration → у overdamped может вырастиcount и строка. Мерить строку, не только код; underdamped не затронут (уже замкнутая форма).
2. Огибающе-растянутая сетка (перенос инсайта #228 в замкнутую форму SSOT)
Вердикт свипа идей (81 → 20 кластеров, 2026-07-23): STRONG, приоритет Tier-1. Два связанных элемента — порядок обязателен (гольф создаёт headroom, warp его тратит).
1. Гольф-пакет (−85…150 B gz, цель 1002 → sub-1000)
animation.finished.then(...)вместоnew Promise((resolve,reject)=>{...finished.catch(reject); addEventListener('finish',...)})— реджект протекает нативно; тот же хвост продублирован вsrc/compiler/runtime(−20…30 B и там). Проверить microtask-vs-event порядок приduration:0.if (props.scale != null)спецветка дублирует общий цикл (мёртвая); rotate — единственный честный спецкейс (deg-суффикс). Проверить, что C4 не пинит порядок ключей кадра.addEventListener('finish')→onfinish(Animation принадлежит nano).max(ln a, ln b)/α ≡ ln(max(a,b))/α;Number.isFinite(k+c+m)вместо.every(isFinite)(отрицательные уже отвергнуты>0-проверкой; переполнение суммы отвергает только абсурдные пружины).countи строка. Мерить строку, не только код; underdamped не затронут (уже замкнутая форма).2. Огибающе-растянутая сетка (перенос инсайта #228 в замкнутую форму SSOT)
count = ceil(T·w/√(8ε))равномерен, хотя|x″| = w²·e^{−at}затухает экспоненциально — хвост пере-сэмплирован. Квадратичный warpt_i = T·(i/count)²(плотность ~√|x″|): 107 → ~42 стопа, строка ~750 → ~290 символов; точный exp-warp — ~23 стопа, но дороже кодом.spring-linear.ts— SSOT, обе стороны двигаются вместе. feat(compiler): serialization-aware portfolio выбирает минимальный сертифицированный artifact #232 не нарушен (меняется сетка, не текстовая эмиссия). Пины строк обновляются одним versioned-коммитом.Первый шаг: копия springLinear с warp → дифф
max|Δ| < εна плотной сетке → size-gate. Вердикт за полчаса.Гейт NANO_GATE_BYTES=1024 — продуктовая граница, не трогать; ратчет вниз по факту. Связи: #228, #232.