Skip to content

Conversation

@disconcision
Copy link
Member

@disconcision disconcision commented Feb 4, 2026

Four fixes.

1. Fix stack overflow on select-all for large programs

Convert recursive do_until and do_until_piece functions in Zipper.re to iterative implementations. The
previous recursive versions would overflow the JavaScript call stack when traversing documents with thousands of
tokens (e.g., select-all on large files). Not totally sure why we didn't see this before; or at least I hadn't seen it before the last month or so.

2. Fix probe sample click failing with nth exception

After the refactor that changed projector actions from IDs to indices, clicking on probe samples caused a List.nth
failure. Added refractor_list parameter to ProjectorPerform.go to correctly resolve indices for refractor
(probe) actions. closes #2097.

3. Render sample context menu vertically when environment is empty

When a sample has no environment bindings to display, the context menu actions (Pin/Step into) now stack vertically
like a traditional menu instead of horizontally. Improves usability when there's no environment section.

4. Remove Claude Action

After doing the reading I think doing this in a repo where other people can use Claude is a TOS violation

disconcision and others added 3 commits February 4, 2026 02:23
When a sample has no environment bindings to display, the context menu
actions (Pin/Step into) now stack vertically like a traditional menu
instead of horizontally.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <[email protected]>
After the refactor that changed projector actions from IDs to indices,
clicking on probe samples caused a List.nth failure. The issue was that
refractor indices were computed from refractor_list in the view layer,
but ProjectorPerform.go only received projector_list for index lookup.

Added refractor_list parameter to ProjectorPerform.go and use
is_refractor(kind) to select the correct list for Focus and SetModel
actions.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
Convert recursive do_until and do_until_piece functions in Zipper.re to
iterative implementations using while loops. The previous recursive
versions would overflow the JavaScript call stack when traversing
documents with thousands of tokens.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
@disconcision disconcision requested a review from cyrus- February 4, 2026 07:32
@claude
Copy link

claude bot commented Feb 4, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@codecov
Copy link

codecov bot commented Feb 4, 2026

Codecov Report

❌ Patch coverage is 27.58621% with 21 lines in your changes missing coverage. Please review.
✅ Project coverage is 50.49%. Comparing base (32d1743) to head (1379481).
⚠️ Report is 8 commits behind head on dev.

Files with missing lines Patch % Lines
src/haz3lcore/zipper/Zipper.re 50.00% 8 Missing ⚠️
src/haz3lcore/projectors/ProjectorPerform.re 0.00% 7 Missing ⚠️
.../haz3lcore/projectors/implementations/ProbeProj.re 0.00% 4 Missing ⚠️
src/haz3lcore/zipper/action/Perform.re 0.00% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##              dev    #2098      +/-   ##
==========================================
+ Coverage   50.47%   50.49%   +0.02%     
==========================================
  Files         229      229              
  Lines       25189    25203      +14     
==========================================
+ Hits        12713    12726      +13     
- Misses      12476    12477       +1     
Files with missing lines Coverage Δ
src/haz3lcore/zipper/action/Perform.re 26.15% <0.00%> (-0.84%) ⬇️
.../haz3lcore/projectors/implementations/ProbeProj.re 1.43% <0.00%> (-0.01%) ⬇️
src/haz3lcore/projectors/ProjectorPerform.re 1.94% <0.00%> (-0.04%) ⬇️
src/haz3lcore/zipper/Zipper.re 63.36% <50.00%> (-0.48%) ⬇️

... and 12 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@cyrus- cyrus- merged commit e328f3f into dev Feb 4, 2026
4 checks passed
@cyrus- cyrus- deleted the probe-fixes branch February 4, 2026 20:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Type projector can't switch modes

2 participants