Repository navigation
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
Comment |
|
@coderabbitai Нужна предметная проверка одной оси в текущем HEAD Проверьте достижимые истории Новый CI завершился SUCCESS, 10/10 jobs. Installed ESM/CJS retention GREEN; отдельный мутант без |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
git rev-parse HEAD
git status --short
git diff --stat 957ceaf26501525eff476cdc1d149d81fd5ebcd7...33f496a0b8350b1902b5c7651b2886ecf95102ed
for f in src/compositor/follow.ts src/compositor/core.ts test/compositor-follow.test.ts test/resource-actual-package-retention.test.ts; do
ast-grep outline "$f" --items all
done
cat -n package.jsonLength of output: 28057 🏁 Script executed: #!/bin/bash
set -euo pipefail
cat -n src/compositor/follow.ts
sed -n '340,1015p' src/compositor/core.ts | nl -ba -v340
cat -n test/compositor-follow.test.ts
cat -n test/resource-actual-package-retention.test.ts
git diff 957ceaf26501525eff476cdc1d149d81fd5ebcd7...HEAD -- src/compositor/core.ts package.json src/compositor/follow/index.ts
ast-grep outline src/internal/velocity-tracker.ts --items all
ast-grep outline browser/fixtures/compositor-follow-recipes.mjs --items all
rg -n -C3 'beginFollow|pickup|ownership|destroy|follow' docs/compositor.mdLength of output: 79983 🏁 Script executed: #!/bin/bash
set -euo pipefail
ast-grep outline src/motion-value.ts --items all
cat -n src/internal/velocity-tracker.ts
cat -n browser/fixtures/compositor-follow-recipes.mjs
ast-grep outline test/compositor-follow-recipes.test.ts --items all
cat -n test/compositor-follow-recipes.test.ts
cat -n test/compositor-follow-package.test.ts
rg -n -C3 'throw|reentra|cleanup|destroy|scheduler' test --iglob '*compositor*' --iglob '*lifecycle*'
rg -n -C3 'compositorFollow|beginFollow|AbortController|dragstart|ownerDocument' docs/recipes.md
git diff --name-only 957ceaf26501525eff476cdc1d149d81fd5ebcd7...HEAD -- src
fd -i 'compositor|motion-value|frame-loop' test srcLength of output: 119948 🏁 Script executed: #!/bin/bash
set -euo pipefail
sed -n '120,510p' src/motion-value.ts | nl -ba -v120
ast-grep outline src/internal/sliding-window.ts --items all
cat -n src/internal/sliding-window.ts
sed -n '415,570p' docs/recipes.md | nl -ba -v415
ast-grep outline test/compositor-host-owner.test.ts --items all
sed -n '572,638p' test/compositor-host-owner.test.ts | nl -ba -v572
sed -n '667,733p' test/compositor-host-owner.test.ts | nl -ba -v667
sed -n '773,849p' test/compositor-host-owner.test.ts | nl -ba -v773
ast-grep outline src/compositor/index.ts --items all
cat -n src/compositor/index.ts
cat -n src/compositor/stagger/index.tsLength of output: 39258
Оставшихся ошибок владения и освобождения ресурсов в проверенных историях не нашёл. Ниже — основания и границы этого вывода. Владение и освобождение
Ключевые участки:
Повторный вход и ошибки callbacksПроверил следующие переходы:
Соответствующие случаи представлены в Terminal cleanup и retention
Общий Installed-package retention test действительно содержит:
Это видно в Граница примитива и публичного APISnap/page/focus policy остаётся в Recipes снимают listeners через Ограничения выводаЭто не исчерпывающее доказательство всех комбинаций повторного входа. Если host
Вывод не подтверждает native/GPU bytes, mobile profile, полный RESOURCE-01/M-07 или production readiness. Он также не является полным review либо разрешением на merge/release. Спасибо за уточнение границ проверки. ✏️ Learnings added
You are interacting with an AI system. |
|
@coderabbitai Проверьте одну ось на HEAD Нужно проверить повторную доставку одной requestFrame-заявки, отдельный reentrant successor, синхронный injected host, порядок listener/scheduler ошибок и отозванные подписки. Сопоставьте с публичным RequestFrameFn/asRequestFrame и контрактом Svelte. Нужны конкретные оставшиеся ошибки либо вывод об их отсутствии с границами проверки. Это обычный scoped chat; платный или полный review не запрашивается. Текущий CI прошёл 10/10, merge/release не запрашиваются. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
git rev-parse HEAD
git status --short
git diff --stat 33f496a0b8350b1902b5c7651b2886ecf95102ed c59e47ae3a7083a2469b878b89ca807e81bdb6ba
git diff --name-only 33f496a0b8350b1902b5c7651b2886ecf95102ed c59e47ae3a7083a2469b878b89ca807e81bdb6ba
ast-grep outline src/motion-value.ts --items all
ast-grep outline src/compositor/core.ts --items all
fd -i 'svelte|request.frame|retention|resource|lifecycle' src test
rg -n -C3 'RequestFrameFn|asRequestFrame' src
cat package.jsonLength of output: 50216 🏁 Script executed: #!/bin/bash
set -euo pipefail
ast-grep outline src/svelte/index.ts --items all
ast-grep outline src/frame/index.ts --items all
for f in test/motion-value-frame-delivery.test.ts test/motion-value-reentrant-start.test.ts test/motion-value-listener-isolation.test.ts test/svelte-unsubscribe-lifecycle.test.ts test/resource-actual-package-retention.test.ts; do ast-grep outline "$f" --items all; done
cat -n src/motion-value.ts
cat -n src/svelte/index.ts
cat -n src/frame/index.ts
git diff 33f496a0b8350b1902b5c7651b2886ecf95102ed HEAD -- src/compositor/core.ts CHANGELOG.md
cat -n test/motion-value-frame-delivery.test.ts
cat -n test/motion-value-reentrant-start.test.ts
cat -n test/motion-value-listener-isolation.test.ts
cat -n test/svelte-unsubscribe-lifecycle.test.ts
git diff 33f496a0b8350b1902b5c7651b2886ecf95102ed HEAD -- test/motion-value.test.ts test/compositor-host-owner.test.ts test/resource-actual-package-retention.test.tsLength of output: 92480 🏁 Script executed: #!/bin/bash
set -euo pipefail
git diff 33f496a0b8350b1902b5c7651b2886ecf95102ed HEAD -- src/motion-value.ts src/svelte/index.ts
sed -n '560,810p' src/compositor/core.ts | nl -ba -v560
sed -n '925,995p' src/compositor/core.ts | nl -ba -v925
ast-grep outline src/internal/solver.ts --items all
rg -n -C4 'function solveSpring|mass|stiffness|damping' src/internal/solver.ts
fd -i 'unsubscribe|retention|svelte|frame' test
rg -n -C3 'WeakRef|unsubscribe|onChange|springStore|throw|subscribe' test/frame-retention-gc.test.ts test/fixtures/frame-retention-gc.probe.ts test/svelte.test.ts test/svelte-current-value.test.ts
cat -n test/resource-actual-package-retention.test.ts | sed -n '80,185p;300,355p'
rg -n -C3 'subscribe|Svelte|RequestFrameFn|asRequestFrame' docs/bindings.mdLength of output: 62680 🤖 web_search executed:
Length of output: 1533 🏁 Script executed: #!/bin/bash
set -euo pipefail
git show 33f496a0b8350b1902b5c7651b2886ecf95102ed:src/svelte/index.ts | nl -ba | sed -n '91,145p'
rg -n -C3 'toBe\(.*[Oo]ff|toBe\(.*first|subscribe.*destroy|initial.*throw|throw.*initial|WeakRef|destroy' test/svelte-unsubscribe-lifecycle.test.ts test/svelte.test.ts test/resource-actual-package-retention.test.ts || true
sed -n '807,840p' src/compositor/core.ts | nl -ba -v807Length of output: 17071 🤖 web_search executed:
Length of output: 773
Новых ошибок владения callbacks в этом diff не нашёл. Однако в Svelte остаются два прежних пути удержания callbacks. Поэтому общий вывод «на этой оси ошибок нет» был бы слишком широким. Проверенные изменения
Основания: Regression tests проверяют дубль заявки, successor из getter/listener, синхронный successor, вложенную доставку старой заявки и порядок ошибок. Это не только проверки конечного значения: тесты проверяют число pending callbacks и timers. В Публичные контракты
Новая защита совместима с этим контрактом. Заявка следующего кадра имеет собственный Svelte. Немедленная доставка текущего значения и прекращение уведомлений после Повторный Оставшиеся ограничения SvelteОба случая существовали уже в проверенном baseline. Это не регрессии данного diff. 1. Ошибка первой доставки оставляет регистрацию без выданного
|
|
Интегрировано через #471 в Обязательный CI кандидата прошёл, CodeRabbit одобрил этот head 5 октября 2026 в 15:23 UTC. Закрываю поглощённый PR с сохранением ветки. Открытые измерительные и продуктовые условия остаются в действующем плане r13. |
Добавляет опциональный
@labpics/motion/compositor/follow: координаты жеста передаются в native spring, а текущую анимацию можно снова захватить. Snap points, страницы и фокус принадлежат потребителю. Опубликованные recipes и component exports сохранены.Исправляет владение ресурсами MotionValue и Svelte. Повторная доставка одной заявки на кадр больше не исполняет её второй раз; новая анимация продолжает движение после
stop() → setTarget()из getter/listener. Освобождённые подписки перестают удерживать callbacks, а ошибки listener сохраняют порядок уведомления соседей. Повторная Svelte-подписка с тем жеrunтеперь возвращает один текущийoffobject — это наблюдаемое изменение identity.HEAD
c59e47ae3a7083a2469b878b89ca807e81bdb6ba: все 10 проверок GitHub CI прошли, включая package/consumer contract и Chromium/Firefox/WebKit. Исправленный carousel-тест различает корректный pickup и намеренно подставленную старую позицию. Для последнего изменения дополнительно прошли 174 затронутых теста, ESM/CJS consumer-сценарии и две независимые проверки жизненного цикла и совместимости host. Размеры в sandbox: full-core 2319/2330 B gzip, stagger 6597/6600 B gzip; лимиты не изменены.Содержательное CodeRabbit review текущего HEAD запрошено. Полные RESOURCE/M-07, JOURNEY и PROFILE остаются открытыми; PR остаётся draft. Merge/release/deploy не выполнялись.