HISTORY: freshen Editor & tooling and By the numbers (post-v0.0.123)#545
Conversation
Two stale sections caught while reviewing HISTORY.md after the
v0.0.122 / v0.0.123 release pair landed.
Editor and tooling support:
* Last entry was 29 Mar; five weeks of agent-usability and tooling
work since then was unlogged. Three new rows:
- 26 Apr: Crash-debugging UX -- runtime traps now classified
into a stable kind, IO.print preserved across traps via
WasmTrapError, JSON envelope gains trap_kind (#516 Stage 1,
#522).
- 26 Apr: veralang.dev homepage redesign + Agent Score
improvements (3 fails + 2 warns -> 2 fails + 1 warn; markdown
parity 90% miss -> 21% miss).
- 27 Apr: IO.print writes flush live to sys.stdout in vera run
text mode -- animations, progress bars, REPL-style output,
ANSI cursor / clear-screen escapes render in real time (#543).
By the numbers:
* Replaced the v0.0.113 (16 Apr) column with a v0.0.123 (27 Apr)
column. v0.0.101 was kept as the prior milestone (inference
release, consequential). Updated counts:
- Tests: 3,319 -> 3,575
- Examples: 30 -> 33
- Built-in functions: 122 -> 164
- Conformance programs: 73 -> 81
- Spec chapters: 13 (unchanged)
- Code coverage: 96% (unchanged)
- Compiler layers: unchanged (no architectural additions)
Active-development-day count:
* Both the intro line and the totals footer said "40 active
development days". Recomputed via `git log --pretty=format:%ad
--date=short | sort -u | wc -l` = 48. Updated both occurrences.
The 40 figure dated to v0.0.101's stage cut and had been
carried forward verbatim through 22 subsequent releases.
Co-Authored-By: Claude <noreply@anthropic.invalid>
📝 WalkthroughWalkthroughDocumentation update to HISTORY.md records the progression from version 0.0.113 to 0.0.123, extending the active development window from 40 to 48 days and documenting three substantial feature implementations: crash-debugging enhancements (runtime traps, JSON envelope modifications), homepage redesign with bilingual support, and improved IO.print real-time output flushing for animations and REPL functionality. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #545 +/- ##
=======================================
Coverage 91.02% 91.02%
=======================================
Files 58 58
Lines 22034 22034
Branches 259 259
=======================================
Hits 20056 20056
Misses 1971 1971
Partials 7 7
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
HISTORY.md (1)
257-260:⚠️ Potential issue | 🟠 MajorKeep
HISTORY.mdrows as concise single-line outcomes, not implementation detail dumps.These entries are currently too detailed for
HISTORY.mdand include internal mechanics that should live inCHANGELOG. Please compress each to one sentence focused on user-visible outcome.Suggested concise replacements
-| v0.0.120 | 26 Apr | **Crash-debugging UX: trap categorisation + stdout preserved on trap** ([`#522`](https://github.com/aallan/vera/issues/522), [`#516`](https://github.com/aallan/vera/issues/516) Stage 1) — first pair from the bug-killing campaign. New `WasmTrapError` (`RuntimeError` subclass) carries captured `stdout`/`stderr` and a stable `kind` (`divide_by_zero`/`out_of_bounds`/`stack_exhausted`/`unreachable`/`overflow`/`contract_violation`/`unknown`) so `IO.print` output preceding a trap reaches the user and traps stop being mis-labelled "Runtime contract violation". JSON envelope gains `trap_kind`. | +| v0.0.120 | 26 Apr | **Crash-debugging UX:** runtime traps now report a stable `kind`, preserve pre-trap `IO.print` output, and include `trap_kind` in the JSON envelope ([`#522`](https://github.com/aallan/vera/issues/522), [`#516`](https://github.com/aallan/vera/issues/516)). | -| v0.0.121 | 27 Apr | **Nested closures + ADT capture work end-to-end** ([`#514`](https://github.com/aallan/vera/issues/514), [`#527`](https://github.com/aallan/vera/issues/527)) — the natural 2D `array_map(rows, fn { array_map(cols, fn { ... }) })` shape compiles at arbitrary depth. Pair-type captures split into [`#535`](https://github.com/aallan/vera/issues/535); CVE-2026-3219 ignore dropped (pip 26.1 shipped). | +| v0.0.121 | 27 Apr | **Nested closures + ADT capture:** deeply nested closure patterns now compile reliably end-to-end, including 2D `array_map`-style usage ([`#514`](https://github.com/aallan/vera/issues/514), [`#527`](https://github.com/aallan/vera/issues/527)). | -| v0.0.122 | 27 Apr | **Conservative GC bounds-checked against `$heap_ptr`** ([`#515`](https://github.com/aallan/vera/issues/515)) — `$gc_collect` no longer faults when a non-pointer i32 in payload data (e.g. a bit-packed `Nat` row in Conway-style code) happens to satisfy the worklist-seeding alignment + range guards. Layer 2 sanity-checks `obj_ptr + obj_size <= heap_ptr` before marking or scanning a worklist entry; Layer 1 adds a per-iteration bound check inside the conservative scan loop so any future caller that bypasses the upstream check still cannot read past the heap. 40×20×200 Conway now runs cleanly through every generation. | +| v0.0.122 | 27 Apr | **Conservative GC hardening:** collector worklist scanning is now heap-bounds-safe, preventing false-pointer faults in long-running payload-heavy programs ([`#515`](https://github.com/aallan/vera/issues/515)). | -| v0.0.123 | 27 Apr | **`IO.print` writes mirror live to `sys.stdout`** ([`#543`](https://github.com/aallan/vera/issues/543)) — `vera run` text mode now flushes per call, so animations, progress bars, REPL-style output, and any program using ANSI cursor / clear-screen escapes render in real time instead of dumping the whole transcript at exit. Tee preserves the in-memory capture, so trap preservation (`#522`) and JSON-envelope packaging still work. | +| v0.0.123 | 27 Apr | **Live `IO.print` output in `vera run`:** text mode now flushes to `sys.stdout` per call so interactive/ANSI output renders in real time ([`#543`](https://github.com/aallan/vera/issues/543)). | -| 26 Apr | Crash-debugging UX — runtime traps classified into a stable `kind` (`divide_by_zero`/`out_of_bounds`/`stack_exhausted`/`unreachable`/`overflow`/`contract_violation`/`unknown`), `IO.print` output preserved across traps via `WasmTrapError`, JSON envelope gains `trap_kind` | +| 26 Apr | Crash-debugging UX — runtime traps now expose a stable `kind`, preserve pre-trap `IO.print` output, and include `trap_kind` in JSON output. | -| 26 Apr | `veralang.dev` homepage redesign — editorial-research aesthetic, bilingual reading-path device (`@reader.0 → humans` / `@reader.1 → agents`), Agent Score improvements (3 fails + 2 warns → 2 fails + 1 warn; markdown content parity 90% miss → 21% miss) | +| 26 Apr | `veralang.dev` homepage redesign shipped with clearer human/agent reading paths and improved Agent Score/parity metrics. | -| 27 Apr | `IO.print` writes flush live to `sys.stdout` in `vera run` text mode — animations, progress bars, REPL-style output, and ANSI cursor / clear-screen escapes render in real time instead of buffering until exit | +| 27 Apr | `IO.print` now flushes live to `sys.stdout` in `vera run` text mode, enabling real-time animations, progress, REPL output, and ANSI cursor control. |Based on learnings: “HISTORY file is single-line summaries. Detail is for the CHANGELOG.” and “the correct format is ~70 words or fewer”.
Also applies to: 282-284
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@HISTORY.md` around lines 257 - 260, HISTORY.md entries for versions v0.0.120–v0.0.123 are too verbose and include implementation details; replace each multi-clause row with a single concise user-visible sentence (<= ~70 words) that summarizes the outcome (e.g., "Preserve stdout on Wasm traps and add trap kind", "Nested closures and ADT capture work end-to-end", "Conservative GC bounds-checking prevents $gc_collect faults", "IO.print mirrors live to sys.stdout"), and move the detailed mechanics into CHANGELOG; apply the same compaction rule to the other verbose rows noted around lines 282–284.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Outside diff comments:
In `@HISTORY.md`:
- Around line 257-260: HISTORY.md entries for versions v0.0.120–v0.0.123 are too
verbose and include implementation details; replace each multi-clause row with a
single concise user-visible sentence (<= ~70 words) that summarizes the outcome
(e.g., "Preserve stdout on Wasm traps and add trap kind", "Nested closures and
ADT capture work end-to-end", "Conservative GC bounds-checking prevents
$gc_collect faults", "IO.print mirrors live to sys.stdout"), and move the
detailed mechanics into CHANGELOG; apply the same compaction rule to the other
verbose rows noted around lines 282–284.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 8b1ee1f9-db3c-4aae-a80d-1a89e906c923
📒 Files selected for processing (1)
HISTORY.md
Two stale sections in
HISTORY.mdcaught while reviewing post-v0.0.122 / v0.0.123.Editor and tooling support
Last entry was 29 March; five weeks of agent-usability and tooling work since then was unlogged. Three new rows added (in date order):
kind,IO.printpreserved across traps viaWasmTrapError, JSON envelope gainstrap_kind(Runtime traps need Vera-native diagnostics, not raw wasmtime stack traces #516 Stage 1, IO.print output lost when program traps (stdout fully buffered) #522)veralang.devhomepage redesign + Agent Score improvements (3 fails + 2 warns → 2 fails + 1 warn; markdown content parity 90% miss → 21% miss)IO.printwrites flush live tosys.stdoutinvera runtext mode (IO.print buffered until exit — animations and TUIs invisible #543) — animations, progress bars, REPL-style output, ANSI cursor / clear-screen escapes render in real timeBy the numbers
Last column was v0.0.113 (16 Apr); ten releases of progress not reflected. Replaced the v0.0.113 column with v0.0.123 (27 Apr); v0.0.101 stays as the prior milestone (inference release, consequential).
Compiler-layers row unchanged (no architectural additions since v0.0.65 added the GC + browser).
Active-development-day count
Both the intro line and the totals footer said "40 active development days". Recomputed via
git log --pretty=format:%ad --date=short | sort -u | wc -l→ 48. Updated both occurrences. The 40 figure dated to v0.0.101's stage cut and had been carried forward verbatim through 22 subsequent releases.Test plan
python scripts/check_doc_counts.py— clean (touches no checked counts)python scripts/check_version_sync.py— cleanCo-Authored-By: Claude noreply@anthropic.invalid
Summary by CodeRabbit
New Features
Bug Fixes