Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 1 remain after this review. 📝 WalkthroughWalkthroughScope binding now separates root scopes from nested inner scopes. Compiler context extraction and frame-scope resolution use reverse indexing for inner scopes. Tests cover evaluated expressions and global-context loading and attachment scenarios. ChangesScope Binding
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~25 minutes Change: Bug fix Merge Risk: ⚪ Minimal · up to No concrete regression is established in the reviewed change, so no change-specific user impact currently warrants delaying the merge. Security Architecture ReviewSecurity architecture risk: 🔵 Low · up to The change stabilizes cached expression bindings without demonstrating broader access to objects or methods. Risk is bounded, but compatibility with external hosts and behavior during concurrent attachment or interrupted execution remain unverified. Retained concerns Security review detailsSecurity Blast Radius
Trust Boundaries and Controls
Resilience and Maintainability Implications
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Внешние компоненты, которые добавляют глобальный скоуп ривносят столько адовых ошибок, что мы просто отказались их поддерживать. На эту тему тут уже заведено три или больше issues. Если по простому, то добавление контекстов в рантайме дает очень и очень неочевидные баги. Иными словами, я боюсь это трогать и вливать. Надо найти все старые issues с этими же проблемами и смотреть в т.ч. и те тестовые ситуации |
|
Нашел старые: #344 и #911 (к ним привязан #804). Там компонента с глобальным контекстом подключалась в Прогнал их сценарии на develop и на этой ветке с тестовой компонентой с Если нужно, добавлю эти сценарии в тесты: класс с |
e1b042e to
c71b377
Compare
|
Добавил эти сценарии в тесты: в тестовой компоненте теперь есть класс с |
Скомпилированное выражение связывало области по номеру в списке кадра, где сначала идут глобальные контексты, а за ними область модуля. После ПодключитьВнешнююКомпоненту с глобальным контекстом номера сдвигались, и выражение из кэша читало компоненту вместо модуля или падало с ArgumentOutOfRangeException. Глобальные контексты теперь связываются напрямую, область модуля и вложенных вычислений - по номеру с конца. В тестовую компоненту добавлен глобальный контекст, а в tests - сценарии из EvilBeaver#344 и EvilBeaver#911 и подключение компоненты во время работы. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
c71b377 to
9224118
Compare
|

0 New Issues
2 Fixed Issues
0 Accepted Issues
No data about coverage (35.10% Estimated after merge)
Вычислить/Выполнитькэшируют скомпилированное выражение, а оно связывало области по номеру в списке кадра: сначала глобальные контексты, за ними область модуля и вложенных вычислений.ПодключитьВнешнююКомпонентус[GlobalContext]добавляет в этот список контекст, номера сдвигаются, и выражение из кэша вместо переменной или метода модуля берет свойство/метод компоненты или падает сArgumentOutOfRangeException. Воспроизводится и в одном потоке:Глобальные контексты теперь связываются с выражением напрямую, а область модуля и вложенных вычислений — по номеру с конца списка, который от числа глобальных контекстов не зависит.
Тест
EvalScopesTestsв Core.Tests, аtests/global-context-addin.osпрогоняет сценарии из #344 и #911 и подключение во время работы с тестовой компонентой, которая теперь добавляет глобальный контекст.🤖 Generated with Claude Code
Summary by CodeRabbit