Skip to content

Close #466 and remove stale ergonomic framing from ROADMAP#521

Merged
aallan merged 5 commits into
mainfrom
roadmap-cleanup
Apr 23, 2026
Merged

Close #466 and remove stale ergonomic framing from ROADMAP#521
aallan merged 5 commits into
mainfrom
roadmap-cleanup

Conversation

@aallan

@aallan aallan commented Apr 23, 2026

Copy link
Copy Markdown
Owner

Summary

Two small cleanup items the user flagged after PR #518 merged:

  1. Closed Add array utility built-ins (sort, reverse, contains, find, any/all) #466 (the array utility built-ins umbrella). Phase 1 shipped as v0.0.117; the phase 2 follow-up (Eq/Ord-dispatched array ops) is tracked separately as Phase 2 of #466: Eq/Ord-dispatched array operations (array_sort, array_contains, array_index_of) #507. Add array utility built-ins (sort, reverse, contains, find, any/all) #466 itself was still open despite having no remaining scope.

  2. Removed stale capability-vs-ergonomic framing from the ROADMAP's "ordering principle" section:

The remaining #466 / #470 / #471 citations in ROADMAP.md (lines 45, 203, 204) are correct historical context for the phase-2 follow-up issues #507 and #509 — not stale work-to-do.

Test plan

  • scripts/check_site_assets.py green
  • scripts/check_doc_counts.py green
  • scripts/check_limitations_sync.py green

Summary by CodeRabbit

  • Documentation
    • Revised roadmap to prioritise runtime stability as a “bug‑killing” campaign, focusing work that improves the experience for users writing non‑trivial programs.
    • Added a known‑issue documenting that IO.print output can be lost if execution ends with a runtime trap, and suggested mitigations (flush on trap or direct live output).
    • Extended troubleshooting guidance and updated the changelog to include the new tracked bug.

Two items:
- Closed #466 (array utility built-ins umbrella) — phase 1 shipped
  in v0.0.117; phase 2 tracked separately as #507.  #466 itself
  was still open despite all its phase-1 scope having shipped.
- ROADMAP 'ordering principle' section: removed the stale Conway
  quote and the capability-vs-ergonomic framing that cited four
  issues (#466, #470, #471, #366) all now closed.  Replaced with a
  short framing of the current state: Stage 11 closed the
  ergonomic gaps, so the near-term queue is a bug-killing campaign
  driven by the second Game of Life agent run.

No stale references remain; the remaining #466 / #470 / #471
citations in the ROADMAP are historical context for the phase-2
follow-up issues (#507, #509) and are correct.

Co-Authored-By: Claude <noreply@anthropic.invalid>
@coderabbitai

coderabbitai Bot commented Apr 23, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 379c95fe-53b7-4199-b3f4-121d389c751e

📥 Commits

Reviewing files that changed from the base of the PR and between 9325905 and e4ccee3.

📒 Files selected for processing (1)
  • CHANGELOG.md

📝 Walkthrough

Walkthrough

Documentation-only updates: ROADMAP.md reframes short‑term priorities as a "bug‑killing campaign" and pairs implementation entries #516 and #522 to add an IO.print stdout-buffering fix. KNOWN_ISSUES.md, SKILL.md and CHANGELOG.md add an entry for lost IO.print output when execution traps.

Changes

Cohort / File(s) Summary
Roadmap
ROADMAP.md
Rewrote short‑term prioritisation to a single "bug‑killing campaign" narrative, changed ordering to prioritise impact on authors of non‑trivial programs, and combined implementation entries (#516 + #522) to include a fix for IO.print output being lost on traps (flush/tee on trap path).
Known issues
KNOWN_ISSUES.md
Added known‑issue row: IO.print output can be dropped when host stdout is buffered and execution traps; documents fixes (flush output on trap, or write host_print directly to sys.stdout).
Troubleshooting docs
SKILL.md
Extended runtime‑trap troubleshooting checklist with the stdout‑buffering failure mode and guidance not to treat missing prints as proof of non‑execution when traps occur.
Changelog
CHANGELOG.md
Updated Unreleased "Tracked bugs" list and added entry #522 describing dropped IO.print output on traps and its coordination with trap‑reporting UX (#516).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

docs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly addresses the primary stated objective: closing issue #466 and removing stale ergonomic framing from ROADMAP.md, which aligns with the actual changes across all four modified documentation files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch roadmap-cleanup

Comment @coderabbitai help to get the list of available commands and usage tips.

@codecov

codecov Bot commented Apr 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.03%. Comparing base (801a8cc) to head (e4ccee3).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #521   +/-   ##
=======================================
  Coverage   91.03%   91.03%           
=======================================
  Files          58       58           
  Lines       21964    21964           
  Branches      259      259           
=======================================
  Hits        19995    19995           
  Misses       1962     1962           
  Partials        7        7           
Flag Coverage Δ
javascript 56.83% <ø> (ø)
python 95.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 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.

aallan and others added 2 commits April 23, 2026 20:12
New bug surfaced during the Conway's Game of Life agent run: host-side
stdout is fully buffered, so any IO.print output preceding a runtime
trap is discarded. Verified reproduction: four IO.print lines preceding
`42 / 0` produce no output at all — only the wasmtime trap message.

Slots into the short-term queue paired with #516 (both are "program
crashed — why?" UX); updates KNOWN_ISSUES and the SKILL Known Bugs
table with the reproducer shape and interim guidance (don't treat
print-absence as non-execution.

Co-Authored-By: Claude <noreply@anthropic.invalid>
EOF
)
Lint hook flagged SKILL.md substantive change without a matching
CHANGELOG update. Extends the existing Unreleased "Tracked bugs"
bullet from four to five, adding #522 (IO.print lost on trap).

Co-Authored-By: Claude <noreply@anthropic.invalid>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@CHANGELOG.md`:
- Line 18: CHANGELOG.md claims a fix (IO.print line-buffering) that isn't
implemented; either update the runtime to implement line-buffered host printing
or change the changelog wording to mark it as planned. To implement the runtime
fix, modify vera/codegen/api.py: replace the simple StringIO() + host_print that
only calls output_buf.write(text) with a buffer that flushes on '\n' (e.g.,
track writes and call flush/emit when a newline is written) and ensure IO.print
in the host-interop path triggers that flush; alternatively, edit CHANGELOG.md
to rephrase the entry to state this is a tracked/planned fix rather than already
fixed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 04f18429-5e1f-4307-a531-a601a7eb22d7

📥 Commits

Reviewing files that changed from the base of the PR and between e01cc85 and 84443e7.

📒 Files selected for processing (1)
  • CHANGELOG.md

Comment thread CHANGELOG.md Outdated
aallan and others added 2 commits April 23, 2026 20:19
The original issue body and docs incorrectly attributed the lost-print
symptom to Rust stdout line-buffering heuristics. The compiler is
Python; wasmtime-py calls host_print synchronously. Actual cause:
host_print in vera/codegen/api.py appends to a Python io.StringIO
that execute() only surfaces to the CLI (via ExecuteResult.stdout)
on the success path. The except-Trap branch re-raises without
returning the buffer, so the CLI at vera/cli.py:605 never sees the
prior IO.print output.

Fix shape is Python-side too: flush output_buf to sys.stdout inside
execute()'s trap-handling path before re-raising (or attach the
buffer to the raised RuntimeError so the CLI can print it
alongside the trap message).

Updates the issue body, KNOWN_ISSUES, ROADMAP row, and CHANGELOG
bullet with the corrected explanation and fix shape. No change to
SKILL.md (its workaround text is agnostic to the mechanism).

Co-Authored-By: Claude <noreply@anthropic.invalid>
CodeRabbit flagged the earlier 'Fix is ...' phrasing as potentially
ambiguous (could machine-read as past-tense). Sharpen to 'Proposed
fix (not yet implemented): ...' under the existing '### Tracked
bugs' heading. No change to host_print itself — bug remains open.

Co-Authored-By: Claude <noreply@anthropic.invalid>
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.

Add array utility built-ins (sort, reverse, contains, find, any/all)

1 participant