Skip to content

docs: add gui layer integration report#431

Merged
dowdiness merged 3 commits into
mainfrom
docs/modules-drift-425
May 31, 2026
Merged

docs: add gui layer integration report#431
dowdiness merged 3 commits into
mainfrom
docs/modules-drift-425

Conversation

@dowdiness
Copy link
Copy Markdown
Owner

Summary

  • Add GUI layer integration report for synchronized source/structure editing.
  • Document existing UI surfaces, ViewMode/ViewNode implications, graph adapter direction, operation modeling, performance notes, and tracking issues.
  • Link the new report from the docs index.

Validation

  • rtk git diff --check -- docs/README.md docs/development/gui-layer-integration.md
  • rtk moon check

dowdiness and others added 2 commits May 31, 2026 22:46
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>
@cloudflare-workers-and-pages
Copy link
Copy Markdown

cloudflare-workers-and-pages Bot commented May 31, 2026

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 eb324ea Commit Preview URL

Branch Preview URL
May 31 2026, 02:21 PM

@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 1 minute and 17 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: 15ce4705-1e24-4297-9ca3-92475f4dd821

📥 Commits

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

📒 Files selected for processing (3)
  • docs/README.md
  • docs/architecture/modules.md
  • docs/development/gui-layer-integration.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/modules-drift-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.

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 135f6489fa

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/architecture/modules.md Outdated
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 31, 2026

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) 
  65.22 µs ± 664.03 ns    64.53 µs …  66.80 µs  in 10 ×   1492 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   3.04 µs ±  11.57 ns     3.03 µs …   3.07 µs  in 10 ×  36028 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
   1.06 ms ±  24.00 µs     1.04 ms …   1.12 ms  in 10 ×     94 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  29.75 µs ± 125.83 ns    29.61 µs …  29.93 µs  in 10 ×   3379 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  16.12 ms ± 179.46 µs    15.87 ms …  16.35 ms  in 10 ×      7 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 521.91 µs ±   7.66 µs   506.87 µs … 528.15 µs  in 10 ×    196 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  58.07 µs ± 608.64 ns    57.41 µs …  59.28 µs  in 10 ×   1713 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  53.42 µs ±   2.64 µs    52.06 µs …  60.79 µs  in 10 ×   1897 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 711.71 µs ±   4.29 µs   706.64 µs … 718.09 µs  in 10 ×    141 runs
[dowdiness/btree] bench btree_benchmark.mbt:142 ("bench: delete_range middle 50% (10000)") ok
time (mean ± σ)         range (min … max) 
 700.48 µs ±  13.00 µs   685.47 µs … 718.02 µs  in 10 ×    144 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.86 ms ±  27.70 µs     1.83 ms …   1.92 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.57 ms ± 144.36 µs     4.36 ms …   4.79 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.07 ms ±   1.66 ms    19.38 ms …  23.16 ms  in 10 ×      5 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.87 ms ±  53.47 µs     1.80 ms …   1.97 ms  in 10 ×     55 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 ±  50.82 µs   949.44 µs …   1.09 ms  in 10 ×     96 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 ±  87.44 µs     3.85 ms …   4.14 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.81 ms ± 189.76 µs    25.62 ms …  26.17 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) 
  59.06 ms ± 354.55 µs    58.57 ms …  59.77 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) 
 799.79 µs ± 177.51 µs   549.65 µs …   1.04 ms  in 10 ×    218 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:123 ("json array - incremental keystroke (100 elements)") ok
time (mean ± σ)         range (min … max) 
   1.91 ms ±  61.94 µs     1.82 ms …   2.02 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.79 ms ± 153.62 µs    12.61 ms …  13.04 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.00 ms ±   2.66 ms    31.78 ms …  40.53 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) 
   3.69 µs ±  61.82 ns     3.64 µs …   3.80 µs  in 10 ×  26346 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  13.50 µs ± 168.63 ns    13.34 µs …  13.90 µs  in 10 ×   7406 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
  58.03 µs ± 916.29 ns    57.58 µs …  60.63 µs  in 10 ×   1724 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 206.74 µs ±   1.70 µs   203.90 µs … 209.05 µs  in 10 ×    484 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
   6.74 µs ±  24.59 ns     6.71 µs …   6.78 µs  in 10 ×  14824 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 105.75 µs ± 379.48 ns   105.05 µs … 106.18 µs  in 10 ×    953 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 388.08 µs ±   5.39 µs   380.59 µs … 395.46 µs  in 10 ×    258 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  24.55 µs ±  96.05 ns    24.41 µs …  24.70 µs  in 10 ×   4062 runs
Total tests: 20, passed: 20, failed: 0. [js]

PR branch:

Registry index cloned successfully
Symbols updated successfully
Downloading moonbitlang/async@0.16.8
Downloading moonbitlang/quickcheck@0.11.2
Downloading moonbitlang/x@0.4.38
Downloading dowdiness/rle@0.2.0
Downloading moonbit-community/rabbita@0.12.3
[dowdiness/btree] bench btree_benchmark.mbt:79 ("bench: build via inserts (100)") ok
time (mean ± σ)         range (min … max) 
  65.84 µs ± 675.80 ns    65.20 µs …  67.55 µs  in 10 ×   1487 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   3.06 µs ±  34.91 ns     3.04 µs …   3.16 µs  in 10 ×  35933 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
   1.07 ms ±  25.33 µs     1.04 ms …   1.13 ms  in 10 ×     93 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  30.10 µs ± 191.35 ns    29.87 µs …  30.44 µs  in 10 ×   3308 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  16.56 ms ± 596.41 µs    15.87 ms …  17.69 ms  in 10 ×      6 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 523.66 µs ±   7.66 µs   514.15 µs … 534.76 µs  in 10 ×    191 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  57.53 µs ± 318.51 ns    57.14 µs …  58.16 µs  in 10 ×   1661 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  52.39 µs ± 250.14 ns    52.06 µs …  52.81 µs  in 10 ×   1891 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 712.73 µs ±  12.95 µs   703.74 µs … 746.23 µ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.11 µs ±  22.51 µs   698.20 µs … 775.03 µs  in 10 ×    140 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.80 ms ±  10.11 µs     1.78 ms …   1.82 ms  in 10 ×     56 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:35 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   4.53 ms ±  94.92 µs     4.38 ms …   4.68 ms  in 10 ×     23 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:46 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  21.24 ms ±   2.33 ms    18.49 ms …  24.93 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.86 ms ±  58.92 µs     1.82 ms …   1.99 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.00 ms ±  66.95 µs   915.64 µs …   1.11 ms  in 10 ×     96 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   3.90 ms ±  66.81 µs     3.84 ms …   4.04 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.50 ms ± 128.10 µs    25.34 ms …  25.64 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) 
  59.46 ms ± 217.66 µs    59.14 ms …  59.79 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) 
 798.82 µs ± 180.66 µs   563.20 µs …   1.07 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.95 ms ± 148.38 µs     1.81 ms …   2.18 ms  in 10 ×     54 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:128 ("json array - incremental keystroke (500 elements)") ok
time (mean ± σ)         range (min … max) 
  13.15 ms ± 733.05 µs    12.47 ms …  14.71 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) 
  32.55 ms ±   1.65 ms    30.77 ms …  35.54 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) 
   3.85 µs ±  53.89 ns     3.79 µs …   3.94 µs  in 10 ×  25350 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  17.17 µs ± 175.81 ns    16.99 µs …  17.51 µs  in 10 ×   5702 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
  74.63 µs ±   1.27 µs    73.88 µs …  78.22 µs  in 10 ×   1342 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 272.97 µs ±   3.31 µs   269.85 µs … 280.66 µs  in 10 ×    367 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
   6.93 µs ±  17.58 ns     6.90 µs …   6.95 µs  in 10 ×  14396 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 120.45 µs ±   3.43 µs   118.14 µs … 129.41 µs  in 10 ×    843 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 443.79 µs ±   2.41 µs   440.19 µs … 446.63 µs  in 10 ×    227 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  26.86 µs ±  99.96 ns    26.72 µs …  27.00 µs  in 10 ×   3695 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.63 µs ± 667.93 ns    20.99 µs …  23.18 µs  in 10 ×   4557 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.02 µs ± 505.47 ns   110.29 µs … 111.64 µs  in 10 ×    894 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) 
 515.06 µs ±   3.90 µs   509.48 µs … 522.11 µs  in 10 ×    193 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) 
 141.87 µs ± 992.31 ns   140.64 µs … 143.75 µs  in 10 ×    704 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) 
 107.28 µs ± 424.47 ns   106.70 µs … 108.05 µs  in 10 ×    915 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.93 µs ± 413.12 ns    69.33 µs …  70.56 µs  in 10 ×   1412 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) 
 110.50 µs ± 720.43 ns   109.59 µs … 111.53 µs  in 10 ×    901 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) 
 214.21 µs ± 629.26 ns   213.19 µs … 215.38 µs  in 10 ×    468 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) 
  40.56 µs ±  16.80 µs    26.64 µs …  70.78 µs  in 10 ×   2249 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   4.14 µs ±  65.00 ns     4.06 µs …   4.22 µs  in 10 ×  24390 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  29.35 µs ± 158.27 ns    29.15 µs …  29.61 µs  in 10 ×   3375 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 385.91 µs ±   3.06 µs   381.07 µs … 389.41 µs  in 10 ×    260 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  12.58 µs ±   4.12 µs     9.33 µs …  19.69 µs  in 10 ×   8723 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
 106.22 µs ±  57.65 µs    60.01 µs … 218.99 µs  in 10 ×   1068 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  38.00 µs ± 431.99 ns    37.38 µs …  38.61 µs  in 10 ×   2624 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  39.48 µs ± 239.61 ns    39.16 µs …  39.88 µs  in 10 ×   2522 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.93 µs ± 792.17 ns    28.27 µs …  30.39 µs  in 10 ×   3434 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.31 ms ±   3.32 ms     2.96 ms …  12.54 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) 
  11.93 µs ±  64.93 ns    11.84 µs …  12.04 µs  in 10 ×   8161 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 123.93 µs ± 946.77 ns   122.83 µs … 125.28 µs  in 10 ×    811 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.14 µs ± 434.72 ns     3.89 µs …   5.14 µs  in 10 ×  23800 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.50 µs ±  17.80 µs    30.83 µs …  81.05 µs  in 10 ×   2392 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  16.49 ms ±   7.69 ms     6.77 ms …  31.24 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) 
  19.51 µs ±   9.87 µs    12.66 µs …  41.01 µs  in 10 ×   5330 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 625.18 ns ±   6.36 ns   616.68 ns … 634.24 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.82 µs ±   7.04 ns     4.81 µs …   4.83 µs  in 10 ×  20745 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  45.57 µs ± 625.96 ns    44.88 µs …  46.58 µs  in 10 ×   2209 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.15 µs ±  36.52 ns     6.09 µs …   6.19 µs  in 10 ×  16096 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.17 µs ±  25.43 ns     6.14 µs …   6.22 µs  in 10 ×  16092 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.43 µs ±  32.98 ns     8.38 µs …   8.47 µs  in 10 ×  11846 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.47 µs ±  10.64 ns     3.45 µs …   3.48 µs  in 10 ×  28858 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.56 µs ±  21.79 ns     5.53 µs …   5.60 µs  in 10 ×  17932 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 475.06 µs ±   1.57 µs   473.15 µs … 477.03 µs  in 10 ×    211 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.50 ms ± 468.20 µs     8.81 ms …  10.15 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) 
  33.38 ms ±   4.26 ms    29.33 ms …  39.66 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.63 ns ±   0.31 ns    58.95 ns …  60.00 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) 
 278.18 ns ±   0.68 ns   277.16 ns … 279.16 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 ±   2.54 ns     1.35 µs …   1.36 µs  in 10 ×  73920 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) 
 334.10 ns ±   1.00 ns   332.58 ns … 335.75 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) 
 167.85 ns ±   0.79 ns   166.99 ns … 169.14 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) 
 685.69 ns ±   1.87 ns   683.48 ns … 688.29 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.33 ns ±   2.19 ns   466.96 ns … 473.29 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.63 µs ±   4.07 ns     2.62 µs …   2.64 µs  in 10 ×  38061 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.42 ns ±   1.67 ns   243.29 ns … 248.59 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) 
 172.85 ns ±   1.11 ns   171.46 ns … 174.10 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) 
 558.19 ns ±   1.31 ns   556.36 ns … 560.25 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.42 ns     4.59 µs …   4.62 µs  in 10 ×  21686 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) 
 263.29 ns ±   1.14 ns   261.82 ns … 265.60 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 ±   6.57 ns     4.89 µs …   4.91 µs  in 10 ×  20406 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.88 ns ±   0.81 ns    76.39 ns …  78.56 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.33 ns ±   0.58 ns    12.79 ns …  14.36 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) 
 194.28 µs ± 377.40 ns   193.78 µs … 194.95 µs  in 10 ×    467 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.06 ms ±  58.63 µs     3.00 ms …   3.15 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) 
   9.88 ms ± 212.13 µs     9.62 ms …  10.19 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) 
   3.94 ms ± 146.48 µs     3.71 ms …   4.11 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) 
  35.45 ms ±   1.19 ms    33.45 ms …  36.90 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.29 ns ±   0.38 ns   100.81 ns … 101.95 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) 
 101.24 ns ±   0.35 ns   100.77 ns … 101.88 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) 
 573.17 µs ±   3.43 µs   567.99 µs … 579.09 µs  in 10 ×    175 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 166.41 µs ±   1.16 µs   165.17 µs … 168.54 µ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.85 µs ± 946.16 ns   159.86 µs … 163.04 µs  in 10 ×    620 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.66 ms ± 109.50 µs     4.50 ms …   4.77 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) 
 161.03 µs ±   1.17 µs   159.73 µs … 163.08 µs  in 10 ×    624 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  41.84 µs ± 943.32 ns    41.23 µs …  44.44 µs  in 10 ×   2347 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 548.40 µs ±   7.29 µs   539.60 µs … 558.63 µs  in 10 ×    181 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.24 µs ± 327.59 ns    61.78 µs …  62.71 µs  in 10 ×   1614 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  31.02 µs ± 212.27 ns    30.77 µs …  31.49 µs  in 10 ×   3194 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 128.84 ns ±   0.66 ns   128.12 ns … 130.04 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) 
  23.47 ns ±   0.38 ns    22.75 ns …  23.77 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.18 ns ±   0.46 ns    25.62 ns …  26.84 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 ±  51.32 ns     8.41 µs …   8.59 µs  in 10 ×  11512 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  17.11 µs ±  69.37 ns    17.01 µs …  17.20 µs  in 10 ×   5787 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.07 µs ±   8.07 ns     5.06 µs …   5.08 µs  in 10 ×  19675 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 ±  29.22 ns     7.44 µs …   7.52 µs  in 10 ×  13965 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 241.28 µs ±   1.26 µs   239.66 µs … 243.28 µs  in 10 ×    411 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  41.86 µs ±  80.50 ns    41.71 µs …  41.97 µs  in 10 ×   2386 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 174.93 ms ±  30.76 ms   133.14 ms … 207.63 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) 
  63.24 ms ±  20.13 ms    40.48 ms …  88.16 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) 
 106.15 µs ± 433.79 ns   105.58 µs … 106.90 µs  in 10 ×    830 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.47 ms ±  33.36 µs     1.43 ms …   1.52 ms  in 10 ×     68 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 182.47 µs ± 534.14 ns   181.65 µs … 183.07 µs  in 10 ×    545 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) 
 259.52 µs ± 975.70 ns   257.81 µs … 260.86 µs  in 10 ×    383 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  14.86 µs ±  60.81 ns    14.79 µs …  14.97 µs  in 10 ×   6642 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 152.63 µs ± 732.11 ns   151.82 µs … 153.86 µs  in 10 ×    659 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  12.91 ns ±   0.44 ns    12.55 ns …  13.67 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) 
 114.66 ns ±   0.67 ns   114.03 ns … 115.85 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) 
 112.22 ns ±   0.49 ns   111.75 ns … 113.15 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.86 µs ± 136.50 ns    36.70 µs …  37.06 µs  in 10 ×   2697 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  53.13 µs ± 473.13 ns    52.52 µs …  53.79 µs  in 10 ×   1728 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 693.18 µs ±   9.51 µs   682.80 µs … 711.67 µs  in 10 ×    146 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) 
 111.98 µs ± 371.45 ns   111.60 µs … 112.64 µs  in 10 ×    899 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.70 µs ± 126.70 ns    13.51 µs …  13.87 µs  in 10 ×   7226 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 156.98 µs ± 789.28 ns   156.11 µs … 158.34 µs  in 10 ×    638 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.04 µs ±   5.23 ns     2.03 µs …   2.05 µs  in 10 ×  48909 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.49 µs ±  13.14 ns     2.47 µs …   2.51 µs  in 10 ×  40426 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  31.79 µs ± 186.40 ns    31.58 µs …  32.13 µs  in 10 ×   3137 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 512.33 µs ±   4.18 µs   506.09 µs … 519.25 µs  in 10 ×    196 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.28 µs ± 100.67 ns    35.10 µs …  35.45 µs  in 10 ×   2811 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) 
 301.62 µs ±   1.91 µs   300.26 µs … 305.68 µs  in 10 ×    325 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.50 ms ±  17.15 µs     1.48 ms …   1.53 ms  in 10 ×     68 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.73 ms ±  64.55 µs     3.64 ms …   3.84 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.44 ms ±  63.96 µs     2.32 ms …   2.50 ms  in 10 ×     41 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.11 ms ±  36.35 µs     3.07 ms …   3.18 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.57 µs ±   1.36 µs     7.15 µs …  11.16 µs  in 10 ×  14922 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.12 µs ±   1.28 µs     6.80 µs …  10.27 µs  in 10 ×  15850 runs
Total tests: 105, passed: 105, failed: 0.

PR branch:

Registry index updated successfully
Symbols updated successfully
Downloading dowdiness/alga@0.3.0
Downloading dowdiness/order-tree@0.1.0
Using cached dowdiness/rle@0.2.0
Downloading dowdiness/btree@0.1.0
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) 
  22.31 µs ± 606.47 ns    21.66 µs …  23.83 µs  in 10 ×   4013 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) 
 113.65 µs ± 289.13 ns   113.18 µs … 113.98 µs  in 10 ×    875 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) 
 523.33 µs ±   5.38 µs   517.55 µs … 532.52 µs  in 10 ×    195 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.67 µs ± 699.63 ns   144.00 µs … 146.10 µs  in 10 ×    691 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) 
 107.99 µs ± 744.87 ns   106.98 µs … 109.61 µs  in 10 ×    937 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.14 µs ± 377.37 ns    69.54 µs …  70.61 µs  in 10 ×   1431 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) 
 110.35 µs ± 466.57 ns   109.66 µs … 111.20 µs  in 10 ×    905 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) 
 211.39 µs ± 704.48 ns   210.24 µs … 212.11 µs  in 10 ×    472 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) 
  38.16 µs ±  16.26 µs    27.30 µs …  77.76 µs  in 10 ×   2142 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   3.95 µs ±  26.59 ns     3.92 µs …   4.00 µs  in 10 ×  25277 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  29.97 µs ± 806.89 ns    28.77 µs …  30.75 µs  in 10 ×   3289 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 389.39 µs ±   1.84 µs   386.30 µs … 391.78 µs  in 10 ×    258 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  12.76 µs ±   5.26 µs     9.22 µs …  25.51 µs  in 10 ×   8296 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
 103.81 µs ±  67.19 µs    58.73 µs … 252.42 µs  in 10 ×   1493 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  41.74 µs ± 390.32 ns    41.26 µs …  42.23 µs  in 10 ×   2392 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  42.82 µs ± 412.46 ns    41.91 µs …  43.46 µs  in 10 ×   2375 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) 
  30.51 µs ±   1.22 µs    29.28 µs …  33.36 µs  in 10 ×   3247 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.25 ms ±   3.38 ms     2.89 ms …  12.65 ms  in 10 ×     63 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  12.20 µs ±  90.58 ns    12.03 µs …  12.30 µs  in 10 ×   8161 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 122.77 µs ± 509.51 ns   122.10 µs … 123.51 µs  in 10 ×    817 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 ± 268.55 ns     4.08 µs …   4.85 µs  in 10 ×  24079 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  49.46 µs ±  27.35 µs    30.86 µs … 100.49 µs  in 10 ×   2325 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  16.42 ms ±   7.69 ms     6.71 ms …  31.18 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) 
  15.99 µs ±   6.47 µs    12.69 µs …  30.70 µs  in 10 ×   7062 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 627.58 ns ±   7.61 ns   618.09 ns … 637.35 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.82 µs ±   3.84 ns     4.81 µs …   4.83 µs  in 10 ×  20758 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  45.33 µs ±   1.49 µs    44.14 µs …  48.76 µs  in 10 ×   2262 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.06 µs ±   7.94 ns     6.05 µs …   6.08 µs  in 10 ×  16314 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.06 µs ±  21.68 ns     6.03 µs …   6.09 µs  in 10 ×  16467 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.34 µs ±  41.11 ns     8.30 µs …   8.42 µs  in 10 ×  11585 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.42 µs ±  10.44 ns     3.41 µs …   3.44 µs  in 10 ×  29204 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 ±  22.20 ns     5.49 µs …   5.55 µs  in 10 ×  18061 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 464.08 µs ± 587.94 ns   463.28 µs … 464.96 µ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) 
   8.03 ms ± 116.06 µs     7.86 ms …   8.20 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) 
  29.04 ms ±   3.39 ms    25.79 ms …  34.16 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.42 ns ±   0.17 ns    59.16 ns …  59.64 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.82 ns ±   6.43 ns   274.03 ns … 295.03 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 ±   1.83 ns     1.35 µs …   1.35 µs  in 10 ×  74159 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) 
 333.12 ns ±   0.70 ns   331.81 ns … 333.86 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) 
 165.62 ns ±   0.55 ns   165.22 ns … 166.74 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) 
 687.06 ns ±   1.46 ns   685.09 ns … 689.12 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) 
 470.65 ns ±   1.43 ns   468.93 ns … 472.67 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.62 µs ±   5.17 ns     2.61 µs …   2.63 µs  in 10 ×  38119 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) 
 244.99 ns ±   1.40 ns   242.50 ns … 246.65 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.01 ns ±   1.06 ns   169.93 ns … 172.70 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) 
 549.93 ns ±   0.20 ns   549.66 ns … 550.30 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.59 µs ±   7.50 ns     4.58 µs …   4.60 µs  in 10 ×  21768 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) 
 260.79 ns ±   0.70 ns   259.87 ns … 262.10 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.87 µs ±   6.48 ns     4.86 µs …   4.88 µs  in 10 ×  20496 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.16 ns ±   0.70 ns    76.22 ns …  78.17 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.24 ns ±   0.66 ns    12.61 ns …  14.21 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) 
 192.84 µs ±   1.95 µs   190.50 µs … 196.68 µs  in 10 ×    479 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.94 ms ±  43.47 µs     2.88 ms …   2.99 ms  in 10 ×     35 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.48 ms ± 241.37 µs     9.19 ms …   9.95 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) 
   3.76 ms ±  93.97 µs     3.65 ms …   3.91 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) 
  34.18 ms ± 840.13 µs    32.90 ms …  36.04 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) 
 100.98 ns ±   0.40 ns   100.45 ns … 101.68 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) 
 101.57 ns ±   0.36 ns   100.98 ns … 102.14 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) 
 561.94 µs ±   3.26 µs   557.50 µs … 568.00 µ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) 
 164.88 µs ±   1.17 µs   163.17 µs … 166.79 µs  in 10 ×    604 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) 
 158.98 µs ± 716.52 ns   157.80 µs … 159.86 µs  in 10 ×    633 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.63 ms ± 125.51 µs     4.45 ms …   4.82 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) 
 159.79 µs ±   1.26 µs   158.52 µs … 161.86 µs  in 10 ×    626 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  41.91 µs ± 933.31 ns    41.26 µs …  44.46 µs  in 10 ×   2367 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 539.17 µs ±   2.44 µs   536.33 µs … 542.76 µs  in 10 ×    187 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.18 µs ± 570.85 ns    61.55 µs …  63.24 µs  in 10 ×   1601 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  30.23 µs ± 150.75 ns    30.05 µs …  30.43 µs  in 10 ×   3301 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 128.84 ns ±   0.37 ns   128.27 ns … 129.35 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.98 ns ±   0.37 ns    22.39 ns …  23.44 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.12 ns ±   0.23 ns    25.70 ns …  26.39 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.40 µs ±  55.58 ns     8.35 µs …   8.55 µs  in 10 ×  11567 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  17.08 µs ±  43.81 ns    17.00 µs …  17.12 µs  in 10 ×   5821 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.06 µs ±  11.73 ns     5.03 µs …   5.07 µs  in 10 ×  19429 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   7.47 µs ±  26.76 ns     7.43 µs …   7.50 µs  in 10 ×  14122 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 240.00 µs ± 641.50 ns   239.04 µs … 240.92 µs  in 10 ×    417 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:249 ("oplog - random position inserts (100 ops)") ok
time (mean ± σ)         range (min … max) 
  41.64 µs ± 129.47 ns    41.36 µs …  41.78 µs  in 10 ×   2403 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 172.06 ms ±  27.76 ms   133.09 ms … 201.45 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) 
  61.25 ms ±  15.61 ms    40.90 ms …  81.02 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) 
 106.14 µs ±   1.77 µs   104.95 µs … 110.13 µs  in 10 ×    913 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.45 ms ±  19.80 µs     1.42 ms …   1.48 ms  in 10 ×     70 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 183.98 µs ±   7.55 µs   180.06 µs … 204.97 µs  in 10 ×    547 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.52 µs ±   1.06 µs   256.27 µs … 259.65 µ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) 
  14.66 µs ± 119.95 ns    14.53 µs …  14.82 µs  in 10 ×   6757 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 150.14 µs ± 579.80 ns   149.33 µs … 151.15 µs  in 10 ×    662 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  13.24 ns ±   0.38 ns    12.88 ns …  13.85 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.61 ns ±   0.36 ns   107.22 ns … 108.16 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) 
 107.09 ns ±   0.68 ns   106.28 ns … 108.30 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.74 µs ± 228.59 ns    36.44 µs …  37.22 µs  in 10 ×   2708 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 ± 469.73 ns    52.33 µs …  53.70 µs  in 10 ×   1882 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 676.62 µs ±   6.44 µs   668.52 µs … 685.82 µs  in 10 ×    147 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) 
 111.70 µs ± 449.96 ns   110.95 µs … 112.40 µs  in 10 ×    899 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.66 µs ± 113.83 ns    13.57 µs …  13.93 µs  in 10 ×   7299 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 156.50 µs ± 262.45 ns   156.15 µs … 157.00 µs  in 10 ×    643 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 ±   4.28 ns     2.01 µs …   2.03 µs  in 10 ×  44817 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 ±  12.14 ns     2.42 µs …   2.46 µs  in 10 ×  41187 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  31.45 µs ± 171.72 ns    31.20 µs …  31.70 µs  in 10 ×   3198 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 502.36 µs ±   2.48 µs   499.37 µs … 507.49 µs  in 10 ×    199 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.03 µs ± 211.00 ns    34.74 µs …  35.33 µs  in 10 ×   2870 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) 
 299.24 µs ±   1.27 µs   297.29 µs … 300.93 µs  in 10 ×    335 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.43 ms ±   9.91 µs     1.42 ms …   1.45 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.64 ms ±  55.04 µs     3.59 ms …   3.75 ms  in 10 ×     28 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.31 ms ±  34.36 µs     2.27 ms …   2.36 ms  in 10 ×     44 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.07 ms ±  73.24 µs     2.98 ms …   3.17 ms  in 10 ×     33 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.31 µs ±   1.39 µs     7.18 µs …  11.76 µs  in 10 ×  13682 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.85 µs ±   1.09 µs     6.64 µs …   9.84 µs  in 10 ×  16049 runs
Total tests: 105, passed: 105, failed: 0.

Benchmarks run with --release flag

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>
@dowdiness dowdiness merged commit 38a231a into main May 31, 2026
27 checks passed
@dowdiness dowdiness deleted the docs/modules-drift-425 branch May 31, 2026 14:38
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