Skip to content

docs: shared move contract for drag-drop#180

Merged
dowdiness merged 1 commit intomainfrom
docs/move-contract
Apr 15, 2026
Merged

docs: shared move contract for drag-drop#180
dowdiness merged 1 commit intomainfrom
docs/move-contract

Conversation

@dowdiness
Copy link
Copy Markdown
Owner

Summary

  • Adds docs/development/move-contract.md documenting the shared drag-drop move contract across editors
  • Covers payload shape, position semantics, legality rules, backend execution (lambda vs block editor), drag lifecycle state machine, and new-editor checklist
  • Marks the TODO item as done

Test plan

  • Documentation only — no code changes
  • CI green

🤖 Generated with Claude Code

Documents the payload shape, position semantics, legality rules, backend
execution differences (lambda vs block editor), drag lifecycle state machine,
and checklist for adding move support to new editors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 15, 2026

Warning

Rate limit exceeded

@dowdiness has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 7 minutes and 15 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 7 minutes and 15 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 41c74b68-8ffa-4ff0-9dab-aa3fc408a0f2

📥 Commits

Reviewing files that changed from the base of the PR and between 8d98854 and 9f45c70.

📒 Files selected for processing (2)
  • docs/TODO.md
  • docs/development/move-contract.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/move-contract

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.

❤️ Share

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

@github-actions
Copy link
Copy Markdown

Benchmark Comparison Report

Comparing PR branch against main

Main Module Benchmarks

Base branch:

node count: 402
node count: 802
node count: 2002
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:24 ("viewnode serialization (100 defs)") ok
time (mean ± σ)         range (min … max) 
   2.36 ms ±  59.84 µs     2.29 ms …   2.49 ms  in 10 ×     44 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:35 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   6.30 ms ± 183.42 µs     6.06 ms …   6.66 ms  in 10 ×     16 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:46 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  26.40 ms ±   2.95 ms    23.09 ms …  30.74 ms  in 10 ×      4 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:57 ("compute_view_patches (100 defs, single edit)") ok
time (mean ± σ)         range (min … max) 
   1.78 ms ±  91.25 µs     1.68 ms …   1.94 ms  in 10 ×     56 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:98 ("json object - incremental keystroke (20 members)") ok
time (mean ± σ)         range (min … max) 
 601.19 µs ±  99.44 µs   455.13 µs … 739.86 µs  in 10 ×    248 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   1.41 ms ±  32.86 µs     1.36 ms …   1.44 ms  in 10 ×     78 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:108 ("json object - incremental keystroke (500 members)") ok
time (mean ± σ)         range (min … max) 
  12.37 ms ± 485.83 µs    11.82 ms …  13.52 ms  in 10 ×      9 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:113 ("json object - incremental keystroke (1000 members)") ok
time (mean ± σ)         range (min … max) 
  45.37 ms ±   4.32 ms    40.65 ms …  51.14 ms  in 10 ×      3 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:118 ("json array - incremental keystroke (20 elements)") ok
time (mean ± σ)         range (min … max) 
 622.54 µs ± 167.24 µs   407.40 µs … 875.66 µs  in 10 ×    315 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:123 ("json array - incremental keystroke (100 elements)") ok
time (mean ± σ)         range (min … max) 
 947.09 µs ±  68.69 µs   844.47 µs …   1.03 ms  in 10 ×    126 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:128 ("json array - incremental keystroke (500 elements)") ok
time (mean ± σ)         range (min … max) 
   8.07 ms ± 125.47 µs     7.94 ms …   8.31 ms  in 10 ×     13 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:133 ("json array - incremental keystroke (1000 elements)") ok
time (mean ± σ)         range (min … max) 
  36.02 ms ±   3.10 ms    31.79 ms …  41.09 ms  in 10 ×      3 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:38 ("tree refresh unchanged (20 defs)") ok
time (mean ± σ)         range (min … max) 
   5.54 µs ±   0.09 µs     5.37 µs …   5.63 µs  in 10 ×  18490 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  20.08 µs ±   0.21 µs    19.88 µs …  20.54 µs  in 10 ×   4977 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
  77.46 µs ±   1.04 µs    76.58 µs …  80.16 µs  in 10 ×   1286 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 257.74 µs ±   0.54 µs   256.62 µs … 258.69 µs  in 10 ×    384 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
   9.91 µs ±   0.51 µs     9.71 µs …  11.36 µs  in 10 ×  10169 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 138.70 µs ±   0.35 µs   138.11 µs … 139.12 µs  in 10 ×    707 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 453.54 µs ±   1.23 µs   452.09 µs … 456.22 µs  in 10 ×    221 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  35.37 µs ±   0.09 µs    35.27 µs …  35.58 µs  in 10 ×   2829 runs
Total tests: 20, passed: 20, failed: 0.

PR branch:

Registry index cloned successfully
Symbols updated successfully
Downloading moonbitlang/async@0.16.8
Downloading moonbitlang/x@0.4.38
Downloading moonbitlang/quickcheck@0.11.2
node count: 402
node count: 802
node count: 2002
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:24 ("viewnode serialization (100 defs)") ok
time (mean ± σ)         range (min … max) 
   2.30 ms ±  31.95 µs     2.25 ms …   2.34 ms  in 10 ×     43 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:35 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   6.18 ms ± 233.69 µs     5.78 ms …   6.54 ms  in 10 ×     17 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:46 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  26.50 ms ±   3.13 ms    22.62 ms …  30.99 ms  in 10 ×      4 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:57 ("compute_view_patches (100 defs, single edit)") ok
time (mean ± σ)         range (min … max) 
   1.90 ms ± 170.66 µs     1.73 ms …   2.24 ms  in 10 ×     39 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:98 ("json object - incremental keystroke (20 members)") ok
time (mean ± σ)         range (min … max) 
 603.18 µs ±  96.99 µs   474.62 µs … 746.15 µs  in 10 ×    219 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   1.39 ms ±  48.78 µs     1.32 ms …   1.45 ms  in 10 ×     79 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:108 ("json object - incremental keystroke (500 members)") ok
time (mean ± σ)         range (min … max) 
  12.05 ms ± 435.84 µs    11.67 ms …  13.11 ms  in 10 ×      9 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:113 ("json object - incremental keystroke (1000 members)") ok
time (mean ± σ)         range (min … max) 
  48.00 ms ±   6.48 ms    42.46 ms …  58.66 ms  in 10 ×      3 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:118 ("json array - incremental keystroke (20 elements)") ok
time (mean ± σ)         range (min … max) 
 621.33 µs ± 176.05 µs   389.72 µs … 871.46 µs  in 10 ×    315 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:123 ("json array - incremental keystroke (100 elements)") ok
time (mean ± σ)         range (min … max) 
 948.43 µs ±  78.31 µs   845.92 µs …   1.06 ms  in 10 ×    130 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:128 ("json array - incremental keystroke (500 elements)") ok
time (mean ± σ)         range (min … max) 
   7.99 ms ±  90.52 µs     7.88 ms …   8.19 ms  in 10 ×     13 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:133 ("json array - incremental keystroke (1000 elements)") ok
time (mean ± σ)         range (min … max) 
  35.43 ms ±   2.93 ms    31.28 ms …  39.98 ms  in 10 ×      4 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:38 ("tree refresh unchanged (20 defs)") ok
time (mean ± σ)         range (min … max) 
   5.50 µs ±   0.06 µs     5.45 µs …   5.62 µs  in 10 ×  18301 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  20.91 µs ±   0.31 µs    20.45 µs …  21.41 µs  in 10 ×   4894 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
  84.65 µs ±   1.16 µs    83.79 µs …  87.79 µs  in 10 ×   1175 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 291.52 µs ±  12.81 µs   285.21 µs … 327.20 µs  in 10 ×    349 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
   9.30 µs ±   0.08 µs     9.25 µs …   9.52 µs  in 10 ×  10763 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 139.83 µs ±   0.79 µs   139.31 µs … 141.33 µs  in 10 ×    712 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 469.72 µs ±   2.07 µs   466.94 µs … 472.29 µs  in 10 ×    214 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  35.19 µs ±   0.17 µs    35.03 µs …  35.59 µs  in 10 ×   2810 runs
Total tests: 20, passed: 20, failed: 0.

event-graph-walker Benchmarks

Base branch:

Registry index updated successfully
Symbols updated successfully
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:21 ("merge - concurrent edits (2 agents x 10)") ok
time (mean ± σ)         range (min … max) 
  25.03 µs ±   0.45 µs    24.58 µs …  26.06 µs  in 10 ×   3972 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:59 ("merge - concurrent edits (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
 121.50 µs ±   1.48 µs   118.58 µs … 123.51 µs  in 10 ×    826 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:97 ("merge - concurrent edits (2 agents x 200)") ok
time (mean ± σ)         range (min … max) 
 544.87 µs ±   2.60 µs   541.95 µs … 548.32 µs  in 10 ×    188 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:135 ("merge - many agents (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
 158.09 µs ±   0.76 µs   157.20 µs … 159.18 µs  in 10 ×    631 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:184 ("merge - with deletes (50 inserts, 25 deletes)") ok
time (mean ± σ)         range (min … max) 
 117.34 µs ±   0.71 µs   116.11 µs … 118.29 µs  in 10 ×    860 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:230 ("merge - graph_diff advance (20 ops)") ok
time (mean ± σ)         range (min … max) 
  77.26 µs ±   0.86 µs    75.85 µs …  78.78 µs  in 10 ×   1304 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:303 ("merge - repeated small (10 iterations x 5 ops)") ok
time (mean ± σ)         range (min … max) 
 119.28 µs ±   1.17 µs   117.40 µs … 121.19 µs  in 10 ×    835 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:341 ("merge - retreat concurrent deletes (500 items, 50 deletes)") ok
time (mean ± σ)         range (min … max) 
 208.42 µs ±   1.65 µs   205.12 µs … 210.14 µs  in 10 ×    473 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:408 ("merge - context apply operations (50 ops)") ok
time (mean ± σ)         range (min … max) 
  42.07 µs ±  20.92 µs    26.09 µs …  78.31 µs  in 10 ×   2435 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   5.27 µs ±   0.06 µs     5.18 µs …   5.34 µs  in 10 ×  19441 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  30.54 µs ±   0.34 µs    30.07 µs …  31.28 µs  in 10 ×   3236 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 381.04 µs ±   2.78 µs   377.22 µs … 384.73 µs  in 10 ×    267 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  13.37 µs ±   4.65 µs     9.63 µs …  23.20 µs  in 10 ×   8087 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
 111.73 µs ±  71.65 µs    62.45 µs … 267.54 µs  in 10 ×   1458 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  31.56 µs ±   0.29 µs    31.14 µs …  31.97 µs  in 10 ×   3091 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  41.63 µs ±   0.54 µs    40.85 µs …  42.51 µs  in 10 ×   2381 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:176 ("branch - repeated advance steady-state (10 iterations)") ok
time (mean ± σ)         range (min … max) 
  27.67 µs ±   0.71 µs    27.14 µs …  29.21 µs  in 10 ×   3531 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:220 ("branch - repeated advance with oplog mutations (10 iterations)") ok
time (mean ± σ)         range (min … max) 
   7.61 ms ±   4.01 ms     2.69 ms …  14.44 ms  in 10 ×     67 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  11.74 µs ±   0.15 µs    11.50 µs …  11.94 µs  in 10 ×   8553 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 122.49 µs ±   2.15 µs   118.84 µs … 124.86 µs  in 10 ×    830 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:285 ("branch - single advance (1 new op)") ok
time (mean ± σ)         range (min … max) 
   4.04 µs ±   0.42 µs     3.80 µs …   5.06 µs  in 10 ×  25571 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  47.87 µs ±  18.61 µs    34.35 µs …  92.17 µs  in 10 ×   2008 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  16.76 ms ±   7.88 ms     6.65 ms …  30.66 ms  in 10 ×     28 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:375 ("branch - concurrent merge scenario") ok
time (mean ± σ)         range (min … max) 
  18.87 µs ±   9.81 µs    13.12 µs …  41.29 µs  in 10 ×   5006 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
   0.60 µs ±   0.01 µs     0.59 µs …   0.61 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:22 ("walker - linear history (100 ops)") ok
time (mean ± σ)         range (min … max) 
   4.46 µs ±   0.01 µs     4.45 µs …   4.48 µs  in 10 ×  22352 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  42.48 µs ±   0.74 µs    41.56 µs …  43.44 µs  in 10 ×   2394 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:54 ("walker - concurrent branches (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
   6.30 µs ±   0.05 µs     6.21 µs …   6.37 µs  in 10 ×  15700 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:79 ("walker - concurrent branches (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
   6.24 µs ±   0.04 µs     6.21 µs …   6.32 µs  in 10 ×  15806 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:99 ("walker - diamond pattern (50 diamonds)") ok
time (mean ± σ)         range (min … max) 
   7.89 µs ±   0.06 µs     7.79 µs …   7.96 µs  in 10 ×  12518 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:121 ("walker - diff advance only (10 new ops)") ok
time (mean ± σ)         range (min … max) 
   3.58 µs ±   0.02 µs     3.54 µs …   3.61 µs  in 10 ×  27721 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:145 ("walker - diff with concurrent branches") ok
time (mean ± σ)         range (min … max) 
   5.69 µs ±   0.05 µs     5.61 µs …   5.76 µs  in 10 ×  17417 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 459.41 µs ±   1.29 µs   457.75 µs … 460.79 µs  in 10 ×    218 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:196 ("walker - linear history (100000 ops)") ok
time (mean ± σ)         range (min … max) 
   7.91 ms ± 140.52 µs     7.70 ms …   8.17 ms  in 10 ×     13 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:213 ("walker - concurrent branches (100000 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
  27.69 ms ±   4.01 ms    24.80 ms …  35.39 ms  in 10 ×      4 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:6 ("version_vector - create (1 agent)") ok
time (mean ± σ)         range (min … max) 
   0.07 µs ±   0.00 µs     0.07 µs …   0.07 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:15 ("version_vector - create (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.33 µs ±   0.00 µs     0.32 µs …   0.33 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:29 ("version_vector - create (20 agents)") ok
time (mean ± σ)         range (min … max) 
   1.54 µs ±   0.04 µs     1.50 µs …   1.60 µs  in 10 ×  64195 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:42 ("version_vector - compare equal (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.21 µs ±   0.00 µs     0.21 µs …   0.21 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:63 ("version_vector - compare <= (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.15 µs ±   0.00 µs     0.15 µs …   0.15 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:84 ("version_vector - compare <= (20 agents)") ok
time (mean ± σ)         range (min … max) 
   0.56 µs ±   0.00 µs     0.56 µs …   0.56 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:100 ("version_vector - merge (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.40 µs ±   0.00 µs     0.40 µs …   0.41 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:118 ("version_vector - merge (20 agents)") ok
time (mean ± σ)         range (min … max) 
   2.02 µs ±   0.01 µs     2.01 µs …   2.03 µs  in 10 ×  49459 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:134 ("version_vector - includes (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.20 µs ±   0.00 µs     0.20 µs …   0.20 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:153 ("version_vector - concurrent (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.16 µs ±   0.00 µs     0.16 µs …   0.16 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:170 ("version_vector - from_frontier (10 ops)") ok
time (mean ± σ)         range (min … max) 
   0.51 µs ±   0.01 µs     0.51 µs …   0.53 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:186 ("version_vector - from_frontier (100 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.14 µs ±   0.01 µs     4.13 µs …   4.16 µs  in 10 ×  24117 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:206 ("version_vector - to_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.25 µs ±   0.00 µs     0.25 µs …   0.25 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:230 ("version_vector - roundtrip (5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.41 µs ±   0.02 µs     4.39 µs …   4.48 µs  in 10 ×  22202 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:251 ("version_vector - agents (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.06 µs ±   0.00 µs     0.05 µs …   0.06 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:266 ("version_vector - length (20 agents)") ok
time (mean ± σ)         range (min … max) 
   0.01 µs ±   0.00 µs     0.01 µs …   0.02 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:20 ("bench: cache invalidate + position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 265.59 µs ±   3.68 µs   260.14 µs … 271.80 µs  in 10 ×    374 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:31 ("bench: cache invalidate + position query (5000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.54 ms ± 130.26 µs     3.36 ms …   3.76 ms  in 10 ×     28 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:41 ("bench: cache invalidate + position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
  12.08 ms ± 772.35 µs    10.77 ms …  12.98 ms  in 10 ×      9 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:57 ("bench: 10 remote inserts + queries (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
   4.95 ms ±  53.69 µs     4.88 ms …   5.04 ms  in 10 ×     20 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:84 ("bench: 10 remote inserts + queries (5000-char doc)") ok
time (mean ± σ)         range (min … max) 
  42.38 ms ±   1.17 ms    41.27 ms …  44.34 ms  in 10 ×      3 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:113 ("bench: warm cache position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   0.10 µs ±   0.00 µs     0.10 µs …   0.10 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:120 ("bench: warm cache position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
   0.10 µs ±   0.00 µs     0.10 µs …   0.10 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 153.06 µs ±   2.14 µs   149.96 µs … 155.79 µs  in 10 ×    647 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:26 ("jump - concurrent insert into 1K doc") ok
time (mean ± σ)         range (min … max) 
 150.75 µs ±   1.54 µs   148.81 µs … 153.09 µs  in 10 ×    666 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:58 ("jump - concurrent insert into 10K doc") ok
time (mean ± σ)         range (min … max) 
   4.77 ms ± 168.71 µs     4.53 ms …   5.05 ms  in 10 ×     22 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:90 ("jump - degenerate chain remote insert") ok
time (mean ± σ)         range (min … max) 
 154.29 µs ±  11.30 µs   148.11 µs … 186.13 µs  in 10 ×    671 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  49.41 µs ±   0.64 µs    48.39 µs …  50.79 µs  in 10 ×   2007 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 602.00 µs ±   5.23 µs   596.14 µs … 611.59 µs  in 10 ×    167 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:34 ("oplog - insert and delete mix (100 ops)") ok
time (mean ± σ)         range (min … max) 
  73.27 µs ±   0.21 µs    73.04 µs …  73.75 µs  in 10 ×   1377 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  33.71 µs ±   0.21 µs    33.41 µs …  34.04 µs  in 10 ×   2964 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
   0.16 µs ±   0.00 µs     0.16 µs …   0.16 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:97 ("oplog - get_frontier (single agent)") ok
time (mean ± σ)         range (min … max) 
   0.03 µs ±   0.00 µs     0.03 µs …   0.03 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:112 ("oplog - get_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.03 µs ±   0.00 µs     0.03 µs …   0.03 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:134 ("oplog - walk_and_collect (100 ops)") ok
time (mean ± σ)         range (min … max) 
  10.46 µs ±   0.03 µs    10.43 µs …  10.52 µs  in 10 ×   9566 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  12.47 µs ±   0.04 µs    12.41 µs …  12.54 µs  in 10 ×   8015 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:177 ("oplog - diff_and_collect (advance 20)") ok
time (mean ± σ)         range (min … max) 
   5.47 µs ±   0.04 µs     5.43 µs …   5.52 µs  in 10 ×  18071 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   8.60 µs ±   0.09 µs     8.46 µs …   8.72 µs  in 10 ×  12003 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 273.78 µs ±   2.75 µs   268.92 µs … 276.53 µs  in 10 ×    367 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  49.02 µs ±   0.34 µs    48.52 µs …  49.56 µs  in 10 ×   2046 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 191.77 ms ±  25.93 ms   158.24 ms … 221.26 ms  in 10 ×      1 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:287 ("oplog - diff_and_collect (100000 ops advance)") ok
time (mean ± σ)         range (min … max) 
  68.03 ms ±  16.91 ms    45.69 ms …  89.44 ms  in 10 ×      2 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:10 ("text - insert append (100 chars)") ok
time (mean ± σ)         range (min … max) 
 100.28 µs ±   0.80 µs    98.91 µs … 101.13 µs  in 10 ×    925 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.40 ms ±  28.11 µs     1.35 ms …   1.43 ms  in 10 ×     71 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 154.93 µs ±   1.00 µs   153.53 µs … 156.44 µs  in 10 ×    635 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:51 ("text - delete (100 deletes from 100-char doc)") ok
time (mean ± σ)         range (min … max) 
 244.78 µs ±   2.39 µs   240.71 µs … 247.38 µs  in 10 ×    404 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  15.02 µs ±   0.17 µs    14.80 µs …  15.25 µs  in 10 ×   6572 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 150.38 µs ±   1.78 µs   147.99 µs … 153.09 µs  in 10 ×    664 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
   0.01 µs ±   0.00 µs     0.01 µs …   0.01 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:113 ("text - sync export_all (100 ops)") ok
time (mean ± σ)         range (min … max) 
   0.10 µs ±   0.00 µs     0.10 µs …   0.10 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:126 ("text - sync export_all (1000 ops)") ok
time (mean ± σ)         range (min … max) 
   0.10 µs ±   0.00 µs     0.10 µs …   0.10 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:139 ("text - sync export_since (50-op delta, 1000-op base)") ok
time (mean ± σ)         range (min … max) 
  37.92 µs ±   0.83 µs    36.96 µs …  39.24 µs  in 10 ×   2703 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  58.76 µs ±   0.54 µs    58.11 µs …  59.72 µs  in 10 ×   1706 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 717.66 µs ±  10.16 µs   702.63 µs … 735.17 µs  in 10 ×    141 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:186 ("text - bidirectional sync (2 peers, 50 ops each)") ok
time (mean ± σ)         range (min … max) 
 119.98 µs ±   1.28 µs   117.91 µs … 121.91 µs  in 10 ×    831 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:216 ("text - checkout (midpoint of 100-op doc)") ok
time (mean ± σ)         range (min … max) 
  15.26 µs ±   0.10 µs    15.10 µs …  15.43 µs  in 10 ×   6731 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 149.95 µs ±   1.02 µs   148.16 µs … 151.05 µs  in 10 ×    658 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:256 ("text - undo record_insert (100 ops, 1 group)") ok
time (mean ± σ)         range (min … max) 
   2.35 µs ±   0.03 µs     2.30 µs …   2.39 µs  in 10 ×  42341 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:269 ("text - undo record_insert (100 ops, 100 groups)") ok
time (mean ± σ)         range (min … max) 
   3.41 µs ±   0.07 µs     3.31 µs …   3.50 µs  in 10 ×  29130 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  33.70 µs ±   0.46 µs    33.09 µs …  34.26 µs  in 10 ×   2943 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 509.58 µs ±   9.05 µs   497.20 µs … 523.07 µs  in 10 ×    195 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:309 ("text - undo undo+redo roundtrip (10-op group)") ok
time (mean ± σ)         range (min … max) 
  38.01 µs ±   0.50 µs    37.20 µs …  38.54 µs  in 10 ×   2596 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:324 ("text - undo 10 undo+redo cycles (10-op group)") ok
time (mean ± σ)         range (min … max) 
 320.36 µs ±   3.11 µs   317.17 µs … 325.56 µs  in 10 ×    312 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.42 ms ±  12.60 µs     1.40 ms …   1.45 ms  in 10 ×     70 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.34 ms ±  42.09 µs     3.28 ms …   3.40 ms  in 10 ×     30 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:52 ("cache - jump to pos 0 every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.87 ms ±  24.95 µs     1.84 ms …   1.93 ms  in 10 ×     54 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:71 ("cache - jump to middle every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.58 ms ±  17.49 µs     2.54 ms …   2.60 ms  in 10 ×     39 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:94 ("cache - single non-seq insert on 1000-char doc") ok
time (mean ± σ)         range (min … max) 
   7.40 µs ±   1.37 µs     5.95 µs …  10.62 µs  in 10 ×  16020 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:108 ("cache - single non-seq insert on 5000-char doc") ok
time (mean ± σ)         range (min … max) 
   8.06 µs ±   2.03 µs     6.42 µs …  12.99 µs  in 10 ×  14259 runs
Total tests: 104, passed: 104, failed: 0.

PR branch:

Registry index updated successfully
Symbols updated successfully
Using cached moonbitlang/quickcheck@0.11.2
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:21 ("merge - concurrent edits (2 agents x 10)") ok
time (mean ± σ)         range (min … max) 
  24.73 µs ±   0.26 µs    24.29 µs …  25.18 µs  in 10 ×   4155 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:59 ("merge - concurrent edits (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
 123.02 µs ±   0.90 µs   121.15 µs … 123.89 µs  in 10 ×    821 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:97 ("merge - concurrent edits (2 agents x 200)") ok
time (mean ± σ)         range (min … max) 
 554.13 µs ±  19.17 µs   535.95 µs … 593.38 µs  in 10 ×    185 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:135 ("merge - many agents (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
 161.44 µs ±   0.96 µs   159.94 µs … 162.67 µs  in 10 ×    617 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:184 ("merge - with deletes (50 inserts, 25 deletes)") ok
time (mean ± σ)         range (min … max) 
 117.12 µs ±   1.56 µs   114.52 µs … 119.74 µs  in 10 ×    838 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:230 ("merge - graph_diff advance (20 ops)") ok
time (mean ± σ)         range (min … max) 
  77.75 µs ±   2.11 µs    75.95 µs …  83.29 µs  in 10 ×   1275 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:303 ("merge - repeated small (10 iterations x 5 ops)") ok
time (mean ± σ)         range (min … max) 
 120.29 µs ±   0.89 µs   119.17 µs … 122.10 µs  in 10 ×    832 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:341 ("merge - retreat concurrent deletes (500 items, 50 deletes)") ok
time (mean ± σ)         range (min … max) 
 212.10 µs ±   1.88 µs   209.61 µs … 215.14 µs  in 10 ×    466 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:408 ("merge - context apply operations (50 ops)") ok
time (mean ± σ)         range (min … max) 
  42.06 µs ±  24.02 µs    26.50 µs …  86.93 µs  in 10 ×   2654 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   5.39 µs ±   0.11 µs     5.23 µs …   5.56 µs  in 10 ×  19732 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  29.80 µs ±   0.41 µs    29.08 µs …  30.42 µs  in 10 ×   3378 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 369.30 µs ±   4.11 µs   363.51 µs … 376.04 µs  in 10 ×    270 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  13.29 µs ±   6.73 µs     9.39 µs …  28.81 µs  in 10 ×   7566 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
 100.71 µs ±  55.25 µs    62.47 µs … 230.82 µs  in 10 ×   1473 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  31.12 µs ±   0.29 µs    30.72 µs …  31.73 µs  in 10 ×   3211 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  38.86 µs ±   0.37 µs    38.17 µs …  39.26 µs  in 10 ×   2503 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:176 ("branch - repeated advance steady-state (10 iterations)") ok
time (mean ± σ)         range (min … max) 
  27.42 µs ±   0.80 µs    26.71 µs …  29.21 µs  in 10 ×   3672 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:220 ("branch - repeated advance with oplog mutations (10 iterations)") ok
time (mean ± σ)         range (min … max) 
   7.60 ms ±   3.98 ms     2.73 ms …  14.30 ms  in 10 ×     68 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  11.94 µs ±   0.34 µs    11.37 µs …  12.34 µs  in 10 ×   8122 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 124.56 µs ±   3.37 µs   118.79 µs … 128.81 µs  in 10 ×    795 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:285 ("branch - single advance (1 new op)") ok
time (mean ± σ)         range (min … max) 
   4.08 µs ±   0.22 µs     3.85 µs …   4.42 µs  in 10 ×  25708 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  48.02 µs ±  25.46 µs    33.29 µs … 111.68 µs  in 10 ×   2171 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  17.28 ms ±   8.23 ms     6.72 ms …  31.70 ms  in 10 ×     28 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:375 ("branch - concurrent merge scenario") ok
time (mean ± σ)         range (min … max) 
  23.80 µs ±  10.30 µs    13.37 µs …  42.26 µs  in 10 ×   6459 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
   0.62 µs ±   0.01 µs     0.61 µs …   0.63 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:22 ("walker - linear history (100 ops)") ok
time (mean ± σ)         range (min … max) 
   4.50 µs ±   0.01 µs     4.49 µs …   4.52 µs  in 10 ×  22188 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  42.07 µs ±   0.97 µs    40.84 µs …  43.55 µs  in 10 ×   2441 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:54 ("walker - concurrent branches (2 agents x 50)") ok
time (mean ± σ)         range (min … max) 
   6.31 µs ±   0.06 µs     6.24 µs …   6.41 µs  in 10 ×  15519 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:79 ("walker - concurrent branches (5 agents x 20)") ok
time (mean ± σ)         range (min … max) 
   6.36 µs ±   0.45 µs     6.12 µs …   7.63 µs  in 10 ×  15950 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:99 ("walker - diamond pattern (50 diamonds)") ok
time (mean ± σ)         range (min … max) 
   7.87 µs ±   0.04 µs     7.81 µs …   7.91 µs  in 10 ×  12763 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:121 ("walker - diff advance only (10 new ops)") ok
time (mean ± σ)         range (min … max) 
   3.61 µs ±   0.03 µs     3.56 µs …   3.65 µs  in 10 ×  27215 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:145 ("walker - diff with concurrent branches") ok
time (mean ± σ)         range (min … max) 
   5.70 µs ±   0.05 µs     5.63 µs …   5.76 µs  in 10 ×  17436 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 470.14 µs ±   1.75 µs   467.89 µs … 473.84 µs  in 10 ×    212 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:196 ("walker - linear history (100000 ops)") ok
time (mean ± σ)         range (min … max) 
   8.86 ms ± 380.68 µs     8.41 ms …   9.45 ms  in 10 ×     11 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:213 ("walker - concurrent branches (100000 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
  30.27 ms ±   4.40 ms    26.04 ms …  36.58 ms  in 10 ×      4 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:6 ("version_vector - create (1 agent)") ok
time (mean ± σ)         range (min … max) 
   0.07 µs ±   0.00 µs     0.07 µs …   0.07 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:15 ("version_vector - create (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.33 µs ±   0.01 µs     0.32 µs …   0.34 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:29 ("version_vector - create (20 agents)") ok
time (mean ± σ)         range (min … max) 
   1.56 µs ±   0.01 µs     1.54 µs …   1.58 µs  in 10 ×  64073 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:42 ("version_vector - compare equal (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.21 µs ±   0.00 µs     0.21 µs …   0.22 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:63 ("version_vector - compare <= (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.15 µs ±   0.00 µs     0.15 µs …   0.15 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:84 ("version_vector - compare <= (20 agents)") ok
time (mean ± σ)         range (min … max) 
   0.57 µs ±   0.00 µs     0.57 µs …   0.57 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:100 ("version_vector - merge (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.41 µs ±   0.00 µs     0.41 µs …   0.42 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:118 ("version_vector - merge (20 agents)") ok
time (mean ± σ)         range (min … max) 
   2.03 µs ±   0.01 µs     2.02 µs …   2.04 µs  in 10 ×  49038 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:134 ("version_vector - includes (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.20 µs ±   0.00 µs     0.20 µs …   0.20 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:153 ("version_vector - concurrent (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.16 µs ±   0.00 µs     0.16 µs …   0.16 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:170 ("version_vector - from_frontier (10 ops)") ok
time (mean ± σ)         range (min … max) 
   0.50 µs ±   0.00 µs     0.50 µs …   0.51 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:186 ("version_vector - from_frontier (100 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.18 µs ±   0.01 µs     4.17 µs …   4.19 µs  in 10 ×  23995 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:206 ("version_vector - to_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.25 µs ±   0.00 µs     0.25 µs …   0.25 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:230 ("version_vector - roundtrip (5 agents)") ok
time (mean ± σ)         range (min … max) 
   4.42 µs ±   0.01 µs     4.41 µs …   4.44 µs  in 10 ×  22517 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:251 ("version_vector - agents (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.06 µs ±   0.00 µs     0.06 µs …   0.06 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/version_vector_benchmark.mbt:266 ("version_vector - length (20 agents)") ok
time (mean ± σ)         range (min … max) 
   0.01 µs ±   0.00 µs     0.01 µs …   0.02 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:20 ("bench: cache invalidate + position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 262.91 µs ±   2.62 µs   258.88 µs … 267.64 µs  in 10 ×    371 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:31 ("bench: cache invalidate + position query (5000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.36 ms ± 194.10 µs     3.09 ms …   3.60 ms  in 10 ×     29 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:41 ("bench: cache invalidate + position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
   9.96 ms ± 472.36 µs     9.32 ms …  10.57 ms  in 10 ×     11 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:57 ("bench: 10 remote inserts + queries (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
   4.74 ms ± 105.85 µs     4.59 ms …   4.89 ms  in 10 ×     21 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:84 ("bench: 10 remote inserts + queries (5000-char doc)") ok
time (mean ± σ)         range (min … max) 
  40.81 ms ± 878.23 µs    39.49 ms …  42.35 ms  in 10 ×      3 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:113 ("bench: warm cache position query (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   0.09 µs ±   0.00 µs     0.09 µs …   0.09 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/document/document_benchmark.mbt:120 ("bench: warm cache position query (10000 chars)") ok
time (mean ± σ)         range (min … max) 
   0.10 µs ±   0.00 µs     0.09 µs …   0.10 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 152.50 µs ±   1.19 µs   150.56 µs … 154.01 µs  in 10 ×    650 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:26 ("jump - concurrent insert into 1K doc") ok
time (mean ± σ)         range (min … max) 
 148.92 µs ±   1.14 µs   147.85 µs … 151.11 µs  in 10 ×    667 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:58 ("jump - concurrent insert into 10K doc") ok
time (mean ± σ)         range (min … max) 
   4.81 ms ± 114.71 µs     4.69 ms …   5.04 ms  in 10 ×     21 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:90 ("jump - degenerate chain remote insert") ok
time (mean ± σ)         range (min … max) 
 150.59 µs ±   0.59 µs   150.03 µs … 151.75 µs  in 10 ×    665 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  48.72 µs ±   0.63 µs    47.97 µs …  50.02 µs  in 10 ×   2170 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 595.42 µs ±   7.42 µs   582.57 µs … 602.32 µs  in 10 ×    168 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:34 ("oplog - insert and delete mix (100 ops)") ok
time (mean ± σ)         range (min … max) 
  72.06 µs ±   0.73 µs    70.97 µs …  73.42 µs  in 10 ×   1369 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  32.98 µs ±   0.35 µs    32.60 µs …  33.54 µs  in 10 ×   2994 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
   0.16 µs ±   0.00 µs     0.15 µs …   0.16 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:97 ("oplog - get_frontier (single agent)") ok
time (mean ± σ)         range (min … max) 
   0.03 µs ±   0.00 µs     0.03 µs …   0.03 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:112 ("oplog - get_frontier (5 agents)") ok
time (mean ± σ)         range (min … max) 
   0.03 µs ±   0.00 µs     0.03 µs …   0.03 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:134 ("oplog - walk_and_collect (100 ops)") ok
time (mean ± σ)         range (min … max) 
  10.61 µs ±   0.05 µs    10.53 µs …  10.67 µs  in 10 ×   9273 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  12.48 µs ±   0.08 µs    12.35 µs …  12.61 µs  in 10 ×   8023 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:177 ("oplog - diff_and_collect (advance 20)") ok
time (mean ± σ)         range (min … max) 
   5.49 µs ±   0.03 µs     5.44 µs …   5.53 µs  in 10 ×  18109 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   8.54 µs ±   0.05 µs     8.46 µs …   8.61 µs  in 10 ×  12033 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 272.61 µs ±   2.43 µs   269.04 µs … 276.00 µs  in 10 ×    365 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  49.02 µs ±   0.36 µs    48.36 µs …  49.54 µs  in 10 ×   2044 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 205.94 ms ±  23.53 ms   172.33 ms … 229.14 ms  in 10 ×      1 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:287 ("oplog - diff_and_collect (100000 ops advance)") ok
time (mean ± σ)         range (min … max) 
  67.17 ms ±  15.79 ms    47.78 ms …  85.43 ms  in 10 ×      2 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:10 ("text - insert append (100 chars)") ok
time (mean ± σ)         range (min … max) 
  99.97 µs ±   0.48 µs    99.12 µs … 100.75 µs  in 10 ×    962 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.40 ms ±  22.39 µs     1.36 ms …   1.44 ms  in 10 ×     74 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 155.31 µs ±   1.17 µs   153.45 µs … 157.08 µs  in 10 ×    641 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:51 ("text - delete (100 deletes from 100-char doc)") ok
time (mean ± σ)         range (min … max) 
 245.58 µs ±   2.12 µs   242.33 µs … 248.56 µs  in 10 ×    404 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  15.19 µs ±   0.24 µs    14.81 µs …  15.50 µs  in 10 ×   6539 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 152.93 µs ±   3.41 µs   148.03 µs … 157.69 µs  in 10 ×    661 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
   0.01 µs ±   0.00 µs     0.01 µs …   0.01 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:113 ("text - sync export_all (100 ops)") ok
time (mean ± σ)         range (min … max) 
   0.10 µs ±   0.00 µs     0.10 µs …   0.10 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:126 ("text - sync export_all (1000 ops)") ok
time (mean ± σ)         range (min … max) 
   0.10 µs ±   0.00 µs     0.10 µs …   0.10 µs  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:139 ("text - sync export_since (50-op delta, 1000-op base)") ok
time (mean ± σ)         range (min … max) 
  37.24 µs ±   0.11 µs    37.03 µs …  37.39 µs  in 10 ×   2691 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  59.66 µs ±   0.77 µs    58.50 µs …  60.64 µs  in 10 ×   1693 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 729.95 µs ±   5.48 µs   721.66 µs … 738.15 µs  in 10 ×    139 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:186 ("text - bidirectional sync (2 peers, 50 ops each)") ok
time (mean ± σ)         range (min … max) 
 122.17 µs ±   1.40 µs   120.34 µs … 124.78 µs  in 10 ×    808 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:216 ("text - checkout (midpoint of 100-op doc)") ok
time (mean ± σ)         range (min … max) 
  15.33 µs ±   0.15 µs    15.08 µs …  15.55 µs  in 10 ×   6517 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 153.73 µs ±   1.26 µs   151.76 µs … 155.90 µs  in 10 ×    644 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:256 ("text - undo record_insert (100 ops, 1 group)") ok
time (mean ± σ)         range (min … max) 
   2.44 µs ±   0.02 µs     2.41 µs …   2.47 µs  in 10 ×  41025 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:269 ("text - undo record_insert (100 ops, 100 groups)") ok
time (mean ± σ)         range (min … max) 
   3.57 µs ±   0.08 µs     3.49 µs …   3.75 µs  in 10 ×  28986 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  34.65 µs ±   0.24 µs    34.31 µs …  35.07 µs  in 10 ×   2917 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 513.63 µs ±  10.70 µs   497.23 µs … 525.35 µs  in 10 ×    192 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:309 ("text - undo undo+redo roundtrip (10-op group)") ok
time (mean ± σ)         range (min … max) 
  39.25 µs ±   0.31 µs    38.81 µs …  39.70 µs  in 10 ×   2540 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:324 ("text - undo 10 undo+redo cycles (10-op group)") ok
time (mean ± σ)         range (min … max) 
 327.85 µs ±   2.24 µs   323.69 µs … 330.23 µs  in 10 ×    309 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.48 ms ±  10.28 µs     1.47 ms …   1.50 ms  in 10 ×     69 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.45 ms ±  35.09 µs     3.39 ms …   3.49 ms  in 10 ×     30 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:52 ("cache - jump to pos 0 every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.94 ms ±  15.63 µs     1.92 ms …   1.97 ms  in 10 ×     52 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:71 ("cache - jump to middle every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.64 ms ±  42.43 µs     2.57 ms …   2.70 ms  in 10 ×     38 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:94 ("cache - single non-seq insert on 1000-char doc") ok
time (mean ± σ)         range (min … max) 
   7.74 µs ±   1.35 µs     6.38 µs …  11.28 µs  in 10 ×  14893 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:108 ("cache - single non-seq insert on 5000-char doc") ok
time (mean ± σ)         range (min … max) 
   7.58 µs ±   1.44 µs     6.67 µs …  11.31 µs  in 10 ×  15083 runs
Total tests: 104, passed: 104, failed: 0.

Benchmarks run with --release flag

@dowdiness dowdiness merged commit 6ebbfda into main Apr 15, 2026
17 checks passed
@dowdiness dowdiness deleted the docs/move-contract branch April 15, 2026 10:23
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.

1 participant