Skip to content

docs: reconcile modules.md with .gitmodules and moon.mod.json (#425)#432

Merged
dowdiness merged 1 commit into
mainfrom
fix/modules-md-425
May 31, 2026
Merged

docs: reconcile modules.md with .gitmodules and moon.mod.json (#425)#432
dowdiness merged 1 commit into
mainfrom
fix/modules-md-425

Conversation

@dowdiness
Copy link
Copy Markdown
Owner

Summary

Resolves #425. Brings docs/architecture/modules.md back in line with the authoritative .gitmodules and root moon.mod.json, following responsibility-map's "Source of Truth on Drift" (code and generated .mbti are authoritative; docs are a reuse index, not a parallel list that re-drifts).

All facts re-verified against the current main HEAD's .gitmodules, root moon.mod.json, and each submodule's own moon.mod.json.

Changes (docs-only, single file)

  • Submodule table: add the 3 missing submodules (order-tree, alga, rabbita → 8 total); note .gitmodules as authoritative; fix svg-dsl/graphviz module names antisatori/*dowdiness/* (verified against their moon.mod.json). order-tree/alga back event-graph-walker; rabbita is a vendored UI lib, not a root dep.
  • loom section: add loom/pretty; note loom is a nested monorepo (its own loom/.gitmodules declares incr/egraph/egglog/event-graph-walker; examples/ adds json/markdown), with no top-level module file — each package owns its moon.mod.json. The bullet list is explicitly marked non-exhaustive.
  • MoonBit Module Configuration: replace the stale 5-of-15 partial JSON copy with a pointer to moon.mod.json as authority plus a two-shape example (path dep vs registry dep; incr is the registry exception).

Verification

  • Cross-checked against .gitmodules (8 submodules), root moon.mod.json (15 dowdiness/* deps), and submodule moon.mod.json names.
  • Codex pre-PR review caught two factual errors (over-claimed loom completeness; a non-existent loom/moon.mod.json reference) — both fixed before this PR.

Closes #425. Related: #413, #421.

🤖 Generated with Claude Code

Bring docs/architecture/modules.md back in line with the authoritative
.gitmodules and root moon.mod.json, per responsibility-map "Source of Truth
on Drift" (code and generated .mbti are authoritative; docs are a reuse index).

- submodule table: add order-tree, alga, rabbita (8 submodules total); note
  .gitmodules as authoritative; fix svg-dsl/graphviz module names
  antisatori/* -> dowdiness/* (verified against their moon.mod.json)
- loom section: add loom/pretty; note loom is a nested monorepo whose own
  moon.mod.json/.gitmodules own its full package set (egglog/egraph/examples)
- MoonBit Module Configuration: replace the stale 5-of-15 partial JSON copy
  with a pointer to moon.mod.json as authority plus a two-shape example
  (path dep vs registry dep; incr is the registry exception)

Closes #425

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

coderabbitai Bot commented May 31, 2026

Warning

Review limit reached

@dowdiness, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 2 minutes and 48 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, 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 include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c71811b6-4191-4663-ad87-c2f50f4bcb22

📥 Commits

Reviewing files that changed from the base of the PR and between 5b26725 and 52b2952.

📒 Files selected for processing (1)
  • docs/architecture/modules.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/modules-md-425

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.

@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
lambda-editor 52b2952 Commit Preview URL

Branch Preview URL
May 31 2026, 02:19 PM

@github-actions
Copy link
Copy Markdown

Benchmark Comparison Report

Comparing PR branch against main

Main Module Benchmarks

Base branch:

[dowdiness/btree] bench btree_benchmark.mbt:79 ("bench: build via inserts (100)") ok
time (mean ± σ)         range (min … max) 
  64.84 µs ± 677.64 ns    64.23 µs …  66.60 µs  in 10 ×   1499 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   3.04 µs ±   9.27 ns     3.03 µs …   3.06 µs  in 10 ×  35738 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
   1.05 ms ±  22.33 µs     1.03 ms …   1.11 ms  in 10 ×     94 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  30.60 µs ± 256.15 ns    30.19 µs …  30.95 µs  in 10 ×   3300 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  15.99 ms ± 201.73 µs    15.74 ms …  16.34 ms  in 10 ×      7 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 532.95 µs ±  10.03 µs   520.99 µs … 549.08 µs  in 10 ×    188 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  58.27 µs ± 651.95 ns    57.54 µs …  59.34 µs  in 10 ×   1690 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  56.19 µs ±   4.85 µs    53.39 µs …  66.30 µs  in 10 ×   1872 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 723.43 µs ±   1.86 µs   720.28 µs … 727.52 µs  in 10 ×    140 runs
[dowdiness/btree] bench btree_benchmark.mbt:142 ("bench: delete_range middle 50% (10000)") ok
time (mean ± σ)         range (min … max) 
 714.32 µs ±   6.97 µs   707.71 µs … 729.03 µs  in 10 ×    142 runs
Total tests: 10, passed: 10, failed: 0. [wasm-gc]
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) 
   1.85 ms ±  35.27 µs     1.81 ms …   1.93 ms  in 10 ×     54 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:35 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   4.81 ms ± 506.12 µs     4.55 ms …   6.19 ms  in 10 ×     22 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:46 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  21.31 ms ±   1.56 ms    19.55 ms …  23.84 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.76 ms ±  31.95 µs     1.74 ms …   1.85 ms  in 10 ×     57 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:98 ("json object - incremental keystroke (20 members)") ok
time (mean ± σ)         range (min … max) 
   1.03 ms ±  60.88 µs   924.73 µs …   1.10 ms  in 10 ×     95 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.92 ms ±  99.65 µs     3.81 ms …   4.07 ms  in 10 ×     26 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:108 ("json object - incremental keystroke (500 members)") ok
time (mean ± σ)         range (min … max) 
  25.68 ms ± 204.58 µs    25.49 ms …  26.06 ms  in 10 ×      4 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:113 ("json object - incremental keystroke (1000 members)") ok
time (mean ± σ)         range (min … max) 
  60.15 ms ±   2.51 ms    58.74 ms …  67.17 ms  in 10 ×      2 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:118 ("json array - incremental keystroke (20 elements)") ok
time (mean ± σ)         range (min … max) 
 794.81 µs ± 166.71 µs   560.25 µs …   1.03 ms  in 10 ×    212 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:123 ("json array - incremental keystroke (100 elements)") ok
time (mean ± σ)         range (min … max) 
   1.87 ms ±  55.11 µs     1.79 ms …   1.94 ms  in 10 ×     57 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:128 ("json array - incremental keystroke (500 elements)") ok
time (mean ± σ)         range (min … max) 
  12.43 ms ± 107.40 µs    12.24 ms …  12.58 ms  in 10 ×      9 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:133 ("json array - incremental keystroke (1000 elements)") ok
time (mean ± σ)         range (min … max) 
  31.71 ms ± 689.26 µs    30.99 ms …  33.55 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) 
   4.23 µs ±  89.44 ns     4.15 µs …   4.38 µs  in 10 ×  23305 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  15.20 µs ± 185.65 ns    15.07 µs …  15.69 µs  in 10 ×   6463 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
  64.07 µs ±   1.11 µs    63.20 µs …  67.09 µs  in 10 ×   1572 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 236.53 µs ±   1.65 µs   234.11 µs … 239.13 µs  in 10 ×    420 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
   7.37 µs ±  25.34 ns     7.33 µs …   7.40 µs  in 10 ×  13499 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 109.72 µs ± 353.87 ns   109.04 µs … 110.36 µs  in 10 ×    915 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 420.35 µs ±   2.95 µs   416.75 µs … 425.98 µs  in 10 ×    239 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  25.07 µs ±  98.77 ns    24.94 µs …  25.24 µs  in 10 ×   4002 runs
Total tests: 20, passed: 20, failed: 0. [js]

PR branch:

Registry index cloned successfully
Symbols updated successfully
Downloading moonbit-community/rabbita@0.12.3
Downloading dowdiness/rle@0.2.0
Downloading moonbitlang/x@0.4.38
Downloading moonbitlang/quickcheck@0.11.2
Downloading moonbitlang/async@0.16.8
[dowdiness/btree] bench btree_benchmark.mbt:79 ("bench: build via inserts (100)") ok
time (mean ± σ)         range (min … max) 
  66.45 µs ± 842.70 ns    65.64 µs …  68.49 µs  in 10 ×   1476 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   3.14 µs ±  20.57 ns     3.11 µs …   3.16 µs  in 10 ×  35446 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
   1.07 ms ±  16.72 µs     1.05 ms …   1.10 ms  in 10 ×     83 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  31.68 µs ± 157.99 ns    31.46 µs …  31.94 µs  in 10 ×   3159 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  16.49 ms ± 168.60 µs    16.28 ms …  16.72 ms  in 10 ×      6 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 540.05 µs ±  13.20 µs   526.07 µs … 561.10 µs  in 10 ×    185 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  59.21 µs ± 199.04 ns    58.92 µs …  59.61 µs  in 10 ×   1682 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  54.32 µs ± 188.71 ns    54.13 µs …  54.76 µs  in 10 ×   1835 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 740.10 µs ±  10.32 µs   724.58 µs … 750.63 µs  in 10 ×    134 runs
[dowdiness/btree] bench btree_benchmark.mbt:142 ("bench: delete_range middle 50% (10000)") ok
time (mean ± σ)         range (min … max) 
 732.29 µs ±   7.88 µs   718.05 µs … 746.50 µs  in 10 ×    138 runs
Total tests: 10, passed: 10, failed: 0. [wasm-gc]
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) 
   1.98 ms ±  24.22 µs     1.95 ms …   2.03 ms  in 10 ×     51 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:35 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   4.84 ms ±  58.02 µs     4.74 ms …   4.91 ms  in 10 ×     21 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:46 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  22.78 ms ±   2.15 ms    20.44 ms …  26.66 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.82 ms ±  53.28 µs     1.78 ms …   1.93 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) 
   1.02 ms ±  60.28 µs   942.03 µs …   1.10 ms  in 10 ×     93 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.92 ms ±  50.04 µs     3.87 ms …   4.00 ms  in 10 ×     25 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:108 ("json object - incremental keystroke (500 members)") ok
time (mean ± σ)         range (min … max) 
  28.33 ms ±   1.10 ms    26.62 ms …  29.41 ms  in 10 ×      4 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:113 ("json object - incremental keystroke (1000 members)") ok
time (mean ± σ)         range (min … max) 
  62.73 ms ±   2.51 ms    61.27 ms …  69.11 ms  in 10 ×      2 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:118 ("json array - incremental keystroke (20 elements)") ok
time (mean ± σ)         range (min … max) 
 793.86 µs ± 153.97 µs   575.80 µs …   1.00 ms  in 10 ×    200 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:123 ("json array - incremental keystroke (100 elements)") ok
time (mean ± σ)         range (min … max) 
   1.90 ms ±  49.47 µs     1.83 ms …   1.97 ms  in 10 ×     56 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:128 ("json array - incremental keystroke (500 elements)") ok
time (mean ± σ)         range (min … max) 
  12.62 ms ± 131.55 µs    12.48 ms …  12.90 ms  in 10 ×      8 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:133 ("json array - incremental keystroke (1000 elements)") ok
time (mean ± σ)         range (min … max) 
  33.22 ms ±   2.49 ms    32.13 ms …  40.24 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) 
   4.10 µs ±  51.50 ns     4.05 µs …   4.19 µs  in 10 ×  21518 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  16.33 µs ± 162.66 ns    16.19 µs …  16.74 µs  in 10 ×   6027 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
  73.38 µs ±   7.16 µs    69.38 µs …  89.29 µs  in 10 ×   1407 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 262.96 µs ±   2.57 µs   259.67 µs … 268.09 µs  in 10 ×    385 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
   6.90 µs ±  15.94 ns     6.88 µs …   6.92 µs  in 10 ×  14491 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 115.99 µs ± 790.94 ns   115.19 µs … 117.67 µs  in 10 ×    846 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 437.58 µs ±   3.31 µs   433.10 µs … 443.57 µs  in 10 ×    228 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  26.45 µs ±  74.05 ns    26.36 µs …  26.60 µs  in 10 ×   3769 runs
Total tests: 20, passed: 20, failed: 0. [js]

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) 
  21.45 µs ± 587.07 ns    20.93 µs …  22.92 µs  in 10 ×   4660 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) 
 111.84 µs ± 288.46 ns   111.49 µs … 112.37 µs  in 10 ×    899 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) 
 524.38 µs ±   4.24 µs   517.83 µs … 532.43 µs  in 10 ×    190 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) 
 142.57 µs ± 742.33 ns   141.74 µs … 143.77 µs  in 10 ×    696 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) 
 108.06 µs ± 663.83 ns   107.23 µs … 109.25 µs  in 10 ×    923 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) 
  70.47 µs ± 589.19 ns    70.02 µs …  71.70 µs  in 10 ×   1429 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) 
 112.29 µs ±   6.16 µs   108.87 µs … 125.85 µs  in 10 ×    912 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) 
 213.05 µs ± 730.86 ns   211.99 µs … 214.46 µs  in 10 ×    469 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) 
  39.62 µs ±  20.28 µs    26.05 µs …  83.04 µs  in 10 ×   2141 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   4.13 µs ±  23.50 ns     4.08 µs …   4.16 µs  in 10 ×  23826 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  28.92 µs ± 169.91 ns    28.65 µs …  29.16 µs  in 10 ×   3510 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 373.61 µs ±   1.43 µs   371.74 µs … 376.06 µs  in 10 ×    268 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  14.28 µs ±   8.23 µs     9.21 µs …  33.91 µs  in 10 ×   8136 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
  75.84 µs ±  29.70 µs    58.70 µs … 136.70 µs  in 10 ×   1552 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  37.46 µs ± 211.15 ns    37.13 µs …  37.74 µs  in 10 ×   2644 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  39.22 µs ±   1.19 µs    38.24 µs …  41.47 µs  in 10 ×   2595 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.52 µs ±   1.93 µs    25.95 µs …  31.75 µs  in 10 ×   3394 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) 
   8.62 ms ±   3.88 ms     3.35 ms …  14.70 ms  in 10 ×     61 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  12.43 µs ± 106.01 ns    12.33 µs …  12.63 µs  in 10 ×   7766 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 126.67 µs ± 683.93 ns   125.77 µs … 127.55 µs  in 10 ×    786 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.10 µs ± 253.87 ns     3.91 µs …   4.67 µs  in 10 ×  25006 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  52.53 µs ±  31.27 µs    30.96 µs … 105.51 µs  in 10 ×   2333 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  16.71 ms ±   7.75 ms     6.90 ms …  31.49 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) 
  17.45 µs ±   7.96 µs    13.11 µs …  37.07 µs  in 10 ×   6798 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 637.77 ns ±  15.32 ns   614.60 ns … 656.49 ns  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.95 µs ±  35.48 ns     4.91 µs …   5.03 µs  in 10 ×  20429 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  47.51 µs ± 520.40 ns    46.88 µs …  48.72 µs  in 10 ×   2150 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.27 µs ±  57.47 ns     6.21 µs …   6.38 µs  in 10 ×  15554 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.39 µs ± 100.80 ns     6.28 µs …   6.63 µs  in 10 ×  15958 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:99 ("walker - diamond pattern (50 diamonds)") ok
time (mean ± σ)         range (min … max) 
   8.60 µs ±  59.81 ns     8.56 µs …   8.74 µs  in 10 ×  11355 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.57 µs ± 180.46 ns     3.51 µs …   4.08 µs  in 10 ×  27612 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.58 µs ±  13.97 ns     5.57 µs …   5.61 µs  in 10 ×  17801 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 471.92 µs ±   2.94 µs   469.85 µs … 479.88 µs  in 10 ×    213 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.89 ms ± 142.11 µs     7.68 ms …   8.07 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) 
  31.81 ms ±   3.76 ms    27.96 ms …  38.63 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) 
  62.62 ns ±   0.51 ns    61.84 ns …  63.61 ns  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) 
 331.47 ns ±  63.94 ns   296.50 ns … 462.88 ns  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.36 µs ±   4.83 ns     1.35 µs …   1.37 µs  in 10 ×  73466 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) 
 352.18 ns ±   0.79 ns   350.89 ns … 353.10 ns  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) 
 166.42 ns ±   0.78 ns   165.61 ns … 167.77 ns  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) 
 698.99 ns ±  11.99 ns   692.85 ns … 731.30 ns  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) 
 469.15 ns ±   0.84 ns   468.10 ns … 470.50 ns  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.66 µs ±   7.50 ns     2.65 µs …   2.67 µs  in 10 ×  37650 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) 
 248.84 ns ±   2.08 ns   245.45 ns … 252.16 ns  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) 
 182.08 ns ±  12.70 ns   173.81 ns … 212.75 ns  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) 
 580.33 ns ±  46.46 ns   556.51 ns … 682.05 ns  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.60 µs ±  12.59 ns     4.58 µs …   4.61 µs  in 10 ×  21555 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) 
 265.22 ns ±   1.19 ns   264.23 ns … 267.36 ns  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.95 µs ±  20.46 ns     4.92 µs …   4.99 µs  in 10 ×  20155 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) 
  80.55 ns ±   6.22 ns    77.65 ns …  98.06 ns  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) 
  13.27 ns ±   0.55 ns    12.72 ns …  14.08 ns  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) 
 200.57 µs ±   2.04 µs   197.80 µs … 204.49 µs  in 10 ×    455 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) 
   2.99 ms ±  41.95 µs     2.93 ms …   3.05 ms  in 10 ×     34 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.97 ms ± 244.00 µs     9.62 ms …  10.48 ms  in 10 ×     10 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) 
   3.85 ms ±  77.71 µs     3.74 ms …   3.95 ms  in 10 ×     24 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) 
  36.81 ms ± 932.67 µs    35.44 ms …  38.63 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) 
 103.13 ns ±   0.55 ns   102.41 ns … 103.86 ns  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) 
 102.96 ns ±   0.51 ns   102.16 ns … 103.74 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/fugue/tree_position_benchmark.mbt:20 ("bench: lv_to_position middle of 10K tree") ok
time (mean ± σ)         range (min … max) 
 568.01 µs ±   4.66 µs   561.65 µs … 574.30 µs  in 10 ×    176 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 166.76 µs ±   1.08 µs   165.13 µs … 168.53 µs  in 10 ×    598 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) 
 160.65 µs ±   1.14 µs   159.29 µs … 163.06 µs  in 10 ×    628 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.55 ms ± 120.60 µs     4.36 ms …   4.71 ms  in 10 ×     23 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:90 ("jump - degenerate chain remote insert") ok
time (mean ± σ)         range (min … max) 
 177.45 µs ±  33.42 µs   160.77 µs … 246.32 µs  in 10 ×    620 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  43.14 µs ±   1.36 µs    41.85 µs …  45.88 µs  in 10 ×   2349 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 550.44 µs ±   7.20 µs   541.84 µs … 563.79 µs  in 10 ×    182 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) 
  64.99 µs ± 599.82 ns    63.83 µs …  66.02 µs  in 10 ×   1506 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  30.56 µs ± 167.52 ns    30.31 µs …  30.88 µs  in 10 ×   3296 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 128.98 ns ±   0.64 ns   128.21 ns … 130.48 ns  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) 
  22.66 ns ±   0.42 ns    22.09 ns …  23.37 ns  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) 
  26.17 ns ±   0.37 ns    25.55 ns …  26.62 ns  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) 
   8.54 µs ±  86.49 ns     8.45 µs …   8.73 µs  in 10 ×  11297 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  17.73 µs ±  68.78 ns    17.62 µs …  17.83 µs  in 10 ×   5584 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.14 µs ±  70.89 ns     5.10 µs …   5.33 µs  in 10 ×  19460 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   7.48 µs ±  27.36 ns     7.44 µs …   7.52 µs  in 10 ×  13925 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 242.32 µs ±   2.99 µs   238.86 µs … 247.72 µs  in 10 ×    413 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  42.80 µs ± 930.09 ns    41.13 µs …  43.59 µs  in 10 ×   2337 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 178.74 ms ±  30.48 ms   136.68 ms … 234.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) 
  60.01 ms ±  17.61 ms    39.23 ms …  83.29 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) 
 105.44 µs ±   1.53 µs   104.28 µs … 109.60 µs  in 10 ×    863 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.44 ms ±  19.64 µs     1.42 ms …   1.48 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) 
 181.06 µs ± 663.33 ns   180.09 µs … 181.93 µs  in 10 ×    552 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) 
 257.89 µs ±   1.04 µs   256.82 µs … 259.63 µs  in 10 ×    388 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  14.89 µs ±  32.44 ns    14.84 µs …  14.93 µs  in 10 ×   6683 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 151.64 µs ± 679.43 ns   150.95 µs … 152.84 µs  in 10 ×    663 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  13.60 ns ±   0.52 ns    13.16 ns …  14.46 ns  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) 
 107.99 ns ±   0.73 ns   106.79 ns … 109.59 ns  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) 
 114.05 ns ±  18.17 ns   105.93 ns … 163.94 ns  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) 
  36.77 µs ± 154.60 ns    36.56 µs …  36.97 µs  in 10 ×   2733 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  53.06 µs ± 367.30 ns    52.42 µs …  53.47 µs  in 10 ×   1864 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 670.91 µs ±  21.92 µs   657.09 µs … 728.96 µs  in 10 ×    127 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) 
 110.59 µs ± 365.07 ns   109.96 µs … 111.08 µs  in 10 ×    906 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:216 ("text - checkout (midpoint of 100-op doc)") ok
time (mean ± σ)         range (min … max) 
  13.55 µs ±  47.44 ns    13.47 µs …  13.62 µs  in 10 ×   7341 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 154.25 µs ±   1.27 µs   153.26 µs … 157.52 µs  in 10 ×    651 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.02 µs ±   6.27 ns     2.01 µs …   2.03 µs  in 10 ×  49621 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) 
   2.44 µs ±  10.48 ns     2.43 µs …   2.46 µs  in 10 ×  41267 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  32.49 µs ± 237.17 ns    32.16 µs …  32.84 µs  in 10 ×   3051 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 513.34 µs ±   3.01 µs   509.82 µs … 518.94 µ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) 
  36.00 µs ± 246.18 ns    35.63 µs …  36.38 µs  in 10 ×   2715 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) 
 305.15 µs ±   2.26 µs   302.75 µs … 308.82 µs  in 10 ×    327 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.41 ms ±  24.78 µs     1.38 ms …   1.44 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.68 ms ±  34.36 µs     3.63 ms …   3.74 ms  in 10 ×     27 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) 
   2.34 ms ±  44.63 µs     2.30 ms …   2.44 ms  in 10 ×     42 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) 
   3.17 ms ±  41.02 µs     3.12 ms …   3.22 ms  in 10 ×     31 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) 
   8.70 µs ±   1.28 µs     7.55 µs …  11.88 µs  in 10 ×  13386 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.05 µs ±   1.28 µs     7.02 µs …  11.00 µs  in 10 ×  16116 runs
Total tests: 105, passed: 105, failed: 0.

PR branch:

Registry index updated successfully
Symbols updated successfully
Using cached moonbitlang/quickcheck@0.11.2
Using cached dowdiness/rle@0.2.0
Downloading dowdiness/btree@0.1.0
Downloading dowdiness/order-tree@0.1.0
Downloading dowdiness/alga@0.3.0
[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) 
  22.68 µs ± 753.97 ns    21.84 µs …  24.48 µs  in 10 ×   4021 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) 
 112.92 µs ± 869.18 ns   111.56 µs … 113.96 µs  in 10 ×    890 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) 
 534.25 µs ±   2.16 µs   531.37 µs … 537.65 µs  in 10 ×    190 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) 
 144.56 µs ± 524.78 ns   143.82 µs … 145.38 µs  in 10 ×    697 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) 
 113.79 µs ±  10.09 µs   107.75 µs … 134.08 µs  in 10 ×    912 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) 
  69.47 µs ± 292.89 ns    69.04 µs …  69.95 µs  in 10 ×   1439 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) 
 111.79 µs ± 214.45 ns   111.48 µs … 112.08 µs  in 10 ×    896 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) 
 218.14 µs ±   2.72 µs   216.29 µs … 225.47 µs  in 10 ×    460 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) 
  45.22 µs ±  21.16 µs    29.31 µs …  83.90 µs  in 10 ×   2447 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   4.44 µs ±  18.23 ns     4.42 µs …   4.47 µs  in 10 ×  22541 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  30.28 µs ± 304.41 ns    29.86 µs …  30.66 µs  in 10 ×   3305 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 392.29 µs ±   3.95 µs   387.29 µs … 397.72 µs  in 10 ×    256 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  12.05 µs ±   2.93 µs     9.54 µs …  18.45 µs  in 10 ×   8021 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
  98.02 µs ±  52.45 µs    60.65 µs … 207.93 µs  in 10 ×   1148 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  38.05 µs ± 168.99 ns    37.76 µs …  38.25 µs  in 10 ×   2587 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  39.55 µs ± 344.48 ns    38.97 µs …  39.95 µs  in 10 ×   2569 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) 
  28.62 µs ± 734.52 ns    27.92 µs …  30.19 µs  in 10 ×   3509 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.44 ms ±   3.54 ms     2.85 ms …  13.48 ms  in 10 ×     62 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  12.29 µs ± 200.75 ns    12.12 µs …  12.73 µs  in 10 ×   7840 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 125.93 µs ± 888.02 ns   125.00 µs … 127.75 µs  in 10 ×    793 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.29 µs ± 390.41 ns     4.01 µs …   5.17 µs  in 10 ×  23129 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  41.25 µs ±  18.56 µs    32.08 µs …  84.86 µs  in 10 ×   2252 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  16.12 ms ±   6.81 ms     6.87 ms …  27.06 ms  in 10 ×     27 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:375 ("branch - concurrent merge scenario") ok
time (mean ± σ)         range (min … max) 
  21.84 µs ±  11.71 µs    12.89 µs …  49.38 µs  in 10 ×   4796 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 626.30 ns ±   7.73 ns   617.05 ns … 636.56 ns  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.80 µs ±  12.53 ns     4.79 µs …   4.83 µs  in 10 ×  20761 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  46.51 µs ± 809.46 ns    45.54 µs …  47.92 µs  in 10 ×   2186 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.11 µs ±  50.53 ns     6.04 µs …   6.18 µs  in 10 ×  16205 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.14 µs ±  12.94 ns     6.12 µs …   6.16 µs  in 10 ×  16241 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:99 ("walker - diamond pattern (50 diamonds)") ok
time (mean ± σ)         range (min … max) 
   8.29 µs ±  49.70 ns     8.24 µs …   8.39 µs  in 10 ×  11725 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.40 µs ±   5.93 ns     3.40 µs …   3.42 µs  in 10 ×  29266 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.52 µs ±  18.85 ns     5.50 µs …   5.56 µs  in 10 ×  18082 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 466.63 µs ±   1.24 µs   464.87 µs … 468.76 µs  in 10 ×    216 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:196 ("walker - linear history (100000 ops)") ok
time (mean ± σ)         range (min … max) 
   9.16 ms ± 161.04 µs     8.96 ms …   9.42 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) 
  31.16 ms ±   4.46 ms    27.14 ms …  37.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) 
  59.65 ns ±   0.36 ns    58.93 ns …  60.14 ns  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) 
 276.94 ns ±   0.59 ns   276.06 ns … 278.08 ns  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.35 µs ±   3.50 ns     1.35 µs …   1.36 µs  in 10 ×  74210 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) 
 335.73 ns ±   0.99 ns   334.27 ns … 337.31 ns  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) 
 166.08 ns ±   0.41 ns   165.67 ns … 166.94 ns  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) 
 688.90 ns ±   3.25 ns   686.67 ns … 696.97 ns  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) 
 471.89 ns ±   1.26 ns   470.52 ns … 473.79 ns  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.64 µs ±   4.24 ns     2.63 µs …   2.64 µs  in 10 ×  37917 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) 
 245.45 ns ±   1.84 ns   243.29 ns … 248.23 ns  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) 
 171.24 ns ±   0.74 ns   170.32 ns … 172.31 ns  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) 
 550.95 ns ±   0.90 ns   549.70 ns … 552.76 ns  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.60 µs ±   9.96 ns     4.59 µs …   4.61 µs  in 10 ×  21817 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) 
 274.27 ns ±  26.91 ns   262.73 ns … 349.69 ns  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.90 µs ±   7.44 ns     4.89 µs …   4.91 µs  in 10 ×  20215 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) 
  77.10 ns ±   0.71 ns    76.20 ns …  78.33 ns  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) 
  12.93 ns ±   0.47 ns    12.45 ns …  13.74 ns  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) 
 193.73 µs ±   1.00 µs   192.40 µs … 195.33 µs  in 10 ×    476 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.05 ms ±  45.87 µs     2.98 ms …   3.11 ms  in 10 ×     32 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) 
  10.06 ms ± 429.19 µs     9.62 ms …  10.73 ms  in 10 ×     10 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) 
   3.84 ms ±  78.06 µs     3.75 ms …   3.96 ms  in 10 ×     25 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) 
  35.04 ms ±   1.01 ms    33.57 ms …  36.07 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) 
 101.52 ns ±   0.57 ns   100.84 ns … 102.81 ns  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) 
 102.15 ns ±   0.47 ns   101.66 ns … 102.89 ns  in 10 × 100000 runs
[dowdiness/event-graph-walker] bench internal/fugue/tree_position_benchmark.mbt:20 ("bench: lv_to_position middle of 10K tree") ok
time (mean ± σ)         range (min … max) 
 570.32 µs ±   4.78 µs   562.98 µs … 577.22 µs  in 10 ×    180 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 165.70 µs ±   1.16 µs   164.34 µs … 167.28 µs  in 10 ×    596 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) 
 160.73 µs ± 918.83 ns   159.18 µs … 161.84 µs  in 10 ×    624 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.49 ms ± 123.97 µs     4.33 ms …   4.67 ms  in 10 ×     23 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:90 ("jump - degenerate chain remote insert") ok
time (mean ± σ)         range (min … max) 
 160.25 µs ±   1.05 µs   158.37 µs … 161.64 µs  in 10 ×    630 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  42.20 µs ± 907.86 ns    41.70 µs …  44.71 µs  in 10 ×   2336 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 537.54 µs ±   6.43 µs   531.72 µs … 553.11 µs  in 10 ×    186 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) 
  62.04 µs ± 158.44 ns    61.82 µs …  62.32 µs  in 10 ×   1605 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  30.82 µs ±  59.91 ns    30.74 µs …  30.93 µs  in 10 ×   3233 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 129.30 ns ±   0.40 ns   128.70 ns … 129.88 ns  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) 
  22.44 ns ±   0.35 ns    21.94 ns …  22.92 ns  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) 
  26.25 ns ±   0.55 ns    25.62 ns …  27.66 ns  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) 
   8.47 µs ±  60.55 ns     8.40 µs …   8.59 µs  in 10 ×  11319 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  17.34 µs ± 146.80 ns    17.14 µs …  17.61 µs  in 10 ×   5705 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.18 µs ±  12.37 ns     5.16 µs …   5.20 µs  in 10 ×  19267 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   7.55 µs ±  20.61 ns     7.52 µs …   7.59 µs  in 10 ×  14021 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 241.37 µs ± 593.68 ns   240.67 µs … 242.39 µs  in 10 ×    414 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  43.45 µs ± 259.72 ns    42.99 µs …  43.72 µs  in 10 ×   2310 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 170.63 ms ±  28.07 ms   128.92 ms … 199.31 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) 
  70.60 ms ±  19.43 ms    44.09 ms …  92.57 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) 
 105.60 µs ±   1.12 µs   104.55 µs … 108.47 µs  in 10 ×    869 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.41 ms ±  35.52 µs     1.36 ms …   1.49 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) 
 185.02 µs ±   9.68 µs   179.33 µs … 205.98 µs  in 10 ×    543 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) 
 258.69 µs ±   2.98 µs   256.73 µs … 266.52 µs  in 10 ×    389 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  15.30 µs ± 821.69 ns    14.72 µs …  17.08 µs  in 10 ×   6711 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 153.07 µs ±   1.29 µs   152.29 µs … 156.56 µs  in 10 ×    635 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  13.35 ns ±   0.42 ns    12.92 ns …  14.14 ns  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) 
 105.83 ns ±   0.46 ns   105.33 ns … 106.91 ns  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) 
 106.25 ns ±   0.51 ns   105.69 ns … 107.09 ns  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.23 µs ± 384.12 ns    36.97 µs …  38.24 µs  in 10 ×   2710 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  53.00 µs ± 230.96 ns    52.61 µs …  53.30 µs  in 10 ×   1872 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 685.74 µs ±   9.32 µs   671.39 µs … 703.56 µs  in 10 ×    150 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) 
 118.56 µs ±  10.43 µs   112.81 µs … 146.24 µs  in 10 ×    882 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:216 ("text - checkout (midpoint of 100-op doc)") ok
time (mean ± σ)         range (min … max) 
  13.95 µs ± 184.30 ns    13.76 µs …  14.22 µs  in 10 ×   6976 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 157.77 µs ± 636.37 ns   156.88 µs … 158.68 µs  in 10 ×    633 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.03 µs ±  27.46 ns     2.02 µs …   2.11 µs  in 10 ×  49273 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) 
   2.43 µs ±   5.28 ns     2.42 µs …   2.44 µs  in 10 ×  41207 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  32.45 µs ± 278.54 ns    32.04 µs …  32.85 µs  in 10 ×   3111 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 507.86 µs ±   1.99 µs   504.82 µs … 510.95 µs  in 10 ×    198 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) 
  35.99 µs ± 250.81 ns    35.67 µs …  36.41 µs  in 10 ×   2724 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) 
 310.10 µs ±   2.46 µs   306.58 µs … 312.97 µs  in 10 ×    327 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.51 ms ±  66.09 µs     1.40 ms …   1.57 ms  in 10 ×     63 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.85 ms ±  55.69 µs     3.78 ms …   3.96 ms  in 10 ×     26 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) 
   2.34 ms ±  41.56 µs     2.28 ms …   2.40 ms  in 10 ×     42 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) 
   3.10 ms ±  52.68 µs     3.03 ms …   3.17 ms  in 10 ×     32 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) 
   8.43 µs ±   1.49 µs     7.22 µs …  11.80 µs  in 10 ×  16087 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.50 µs ±   1.38 µs     7.38 µs …  11.68 µs  in 10 ×  14663 runs
Total tests: 105, passed: 105, failed: 0.

Benchmarks run with --release flag

@dowdiness dowdiness merged commit f48b178 into main May 31, 2026
27 checks passed
@dowdiness dowdiness deleted the fix/modules-md-425 branch May 31, 2026 14:26
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.

docs: modules.md is stale — missing submodules and dependencies (doc-drift from #413 AC4)

1 participant