Skip to content

Broadcast partial bridge edit batches#554

Merged
dowdiness merged 1 commit into
mainfrom
ideal-bridge-partial-batch-sync
Jun 7, 2026
Merged

Broadcast partial bridge edit batches#554
dowdiness merged 1 commit into
mainfrom
ideal-bridge-partial-batch-sync

Conversation

@dowdiness

Copy link
Copy Markdown
Owner

Summary

  • Broadcast valid splice prefixes immediately when a later splice in CrdtBridge.applySpliceChanges fails bounds validation.
  • Update the bridge comment and TODO entry to reflect the tightened partial-batch semantics.
  • Add Playwright coverage for prefix-broadcast and first-splice-failure/no-broadcast behavior.

Reuse check

Existing APIs considered:

API Location Reused? Reason if not
afterLocalEdit() examples/ideal/web/src/bridge.ts Yes Existing local-edit publication path already invalidates the source map, broadcasts, and schedules reconcile; reused for valid prefixes.
scheduleReconcile() examples/ideal/web/src/bridge.ts Yes Existing drift recovery path remains responsible for reconcile scheduling when no valid splice was applied.
handle_text_intent_checked MoonBit CRDT bridge exposed via examples/ideal/web/src/types.ts Yes The checked splice path remains the source of truth for bounds validation.
handleLeafEdit() examples/ideal/web/src/bridge.ts Yes Tests exercise the public bridge entrypoint instead of reaching into the private applySpliceChanges method.

New helpers added (if any):

  • None in production code.

Test plan

  • NEW_MOON_MOD=0 moon check passes
  • NEW_MOON_MOD=0 moon test passes
  • git diff *.mbti reviewed for unintended API surface changes
  • JS rebuild run if web is affected (cd examples/ideal/web && NEW_MOON_MOD=0 CANOPY_SKIP_RELAY_SERVER=1 VITE_CANOPY_SKIP_SYNC=1 npm run build)

Validation

cd examples/ideal/web && CANOPY_SKIP_RELAY_SERVER=1 VITE_CANOPY_SKIP_SYNC=1 npx playwright test e2e/bridge-partial-batch.spec.ts --reporter=line
NEW_MOON_MOD=0 moon check
cd examples/ideal/web && NEW_MOON_MOD=0 CANOPY_SKIP_RELAY_SERVER=1 VITE_CANOPY_SKIP_SYNC=1 npm run build
NEW_MOON_MOD=0 moon fmt && NEW_MOON_MOD=0 moon info
NEW_MOON_MOD=0 moon test

Note: moon info produced newline-only .mbti churn, reviewed and reverted before commit.

@coderabbitai

coderabbitai Bot commented Jun 7, 2026

Copy link
Copy Markdown

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 59 minutes and 54 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: ed471fb2-4929-49ad-87bf-6f560a16a391

📥 Commits

Reviewing files that changed from the base of the PR and between 69f5fc1 and fd94aa5.

📒 Files selected for processing (3)
  • docs/TODO.md
  • examples/ideal/web/e2e/bridge-partial-batch.spec.ts
  • examples/ideal/web/src/bridge.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ideal-bridge-partial-batch-sync

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

Branch Preview URL
Jun 07 2026, 03:59 AM

@github-actions

github-actions Bot commented Jun 7, 2026

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) 
  58.63 µs ± 661.55 ns    57.72 µs …  59.94 µs  in 10 ×   1631 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   2.82 µs ±   9.28 ns     2.81 µs …   2.84 µs  in 10 ×  39498 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
 927.90 µs ±   6.35 µs   920.84 µs … 939.29 µs  in 10 ×     96 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  24.72 µs ± 110.99 ns    24.58 µs …  24.94 µs  in 10 ×   4054 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  14.22 ms ± 152.43 µs    14.02 ms …  14.43 ms  in 10 ×      8 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 479.74 µs ±   8.22 µs   469.21 µs … 493.36 µs  in 10 ×    207 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  49.91 µs ± 343.91 ns    49.46 µs …  50.44 µs  in 10 ×   1985 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  44.71 µs ± 130.23 ns    44.60 µs …  44.96 µs  in 10 ×   2232 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 639.44 µs ±   2.03 µs   635.11 µs … 642.02 µs  in 10 ×    155 runs
[dowdiness/btree] bench btree_benchmark.mbt:142 ("bench: delete_range middle 50% (10000)") ok
time (mean ± σ)         range (min … max) 
 651.11 µs ±   9.63 µs   637.28 µs … 663.75 µs  in 10 ×    152 runs
Total tests: 10, passed: 10, failed: 0. [wasm-gc]
node count: 502
node count: 1002
node count: 2502
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:24 ("viewnode serialization (100 defs)") ok
time (mean ± σ)         range (min … max) 
   2.38 ms ±  34.46 µs     2.33 ms …   2.43 ms  in 10 ×     42 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:35 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   6.14 ms ± 234.86 µs     5.87 ms …   6.58 ms  in 10 ×     17 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:46 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  26.54 ms ±   1.48 ms    24.56 ms …  29.27 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.85 ms ±  58.95 µs     1.80 ms …   1.96 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 ±  62.81 µs   925.95 µ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) 
   4.01 ms ±  83.28 µs     3.95 ms …   4.22 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) 
  26.26 ms ± 279.23 µs    25.96 ms …  26.81 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) 
  61.62 ms ±   1.81 ms    60.68 ms …  66.70 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) 
 772.80 µs ± 166.25 µs   546.48 µs …   1.04 ms  in 10 ×    203 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 ±  51.92 µs     1.85 ms …   1.99 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.78 ms ±  74.36 µs    12.66 ms …  12.93 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.53 ms ±   2.27 ms    32.45 ms …  39.90 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) 
   6.53 µs ±  71.84 ns     6.48 µs …   6.67 µs  in 10 ×  14965 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  26.00 µs ± 304.91 ns    25.76 µs …  26.68 µs  in 10 ×   3604 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
 116.71 µs ± 609.29 ns   116.03 µs … 117.76 µs  in 10 ×    796 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 439.33 µs ±   2.96 µs   436.33 µs … 444.89 µs  in 10 ×    230 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
  11.68 µs ±  54.65 ns    11.63 µs …  11.79 µs  in 10 ×   8584 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 217.28 µs ±   1.05 µs   216.05 µs … 218.76 µs  in 10 ×    463 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 860.39 µs ±   2.06 µs   857.02 µs … 863.41 µs  in 10 ×    117 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  47.14 µs ± 127.37 ns    46.98 µs …  47.41 µs  in 10 ×   2094 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:61 ("reconcile wide-siblings (20 defs)") ok
time (mean ± σ)         range (min … max) 
  11.38 µs ±  60.90 ns    11.33 µs …  11.53 µs  in 10 ×   8805 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:66 ("reconcile wide-siblings (80 defs)") ok
time (mean ± σ)         range (min … max) 
 103.04 µs ± 332.41 ns   102.56 µs … 103.56 µs  in 10 ×    973 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:71 ("reconcile wide-siblings (320 defs)") ok
time (mean ± σ)         range (min … max) 
   1.37 ms ±   3.00 µs     1.37 ms …   1.37 ms  in 10 ×     73 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:76 ("reconcile wide-siblings (1000 defs)") ok
time (mean ± σ)         range (min … max) 
  13.40 ms ±  45.24 µs    13.35 ms …  13.47 ms  in 10 ×      8 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:148 ("fp_incr unchanged (20 defs)") ok
time (mean ± σ)         range (min … max) 
   7.90 µs ± 105.11 ns     7.72 µs …   8.01 µs  in 10 ×  12796 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:157 ("fp_incr unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  48.04 µs ± 144.50 ns    47.91 µs …  48.33 µs  in 10 ×   2083 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:166 ("fp_incr unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
 529.18 µs ±   1.03 µs   527.99 µs … 530.93 µs  in 10 ×    190 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:175 ("fp_incr unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
   4.51 ms ±  17.01 µs     4.49 ms …   4.54 ms  in 10 ×     22 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:186 ("fp_incr tail (20 defs)") ok
time (mean ± σ)         range (min … max) 
  15.47 µs ±  39.54 ns    15.42 µs …  15.56 µs  in 10 ×   6465 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:195 ("fp_incr tail (80 defs)") ok
time (mean ± σ)         range (min … max) 
  87.69 µs ± 421.32 ns    87.18 µs …  88.39 µs  in 10 ×   1144 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:204 ("fp_incr tail (320 defs)") ok
time (mean ± σ)         range (min … max) 
 689.78 µs ±   6.50 µs   684.05 µs … 702.38 µs  in 10 ×    146 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:213 ("fp_incr tail (1000 defs)") ok
time (mean ± σ)         range (min … max) 
   5.18 ms ±  76.36 µs     5.10 ms …   5.29 ms  in 10 ×     20 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:224 ("fp_incr shifted (20 defs)") ok
time (mean ± σ)         range (min … max) 
  20.74 µs ±  42.03 ns    20.66 µs …  20.82 µs  in 10 ×   4805 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:230 ("fp_incr shifted (80 defs)") ok
time (mean ± σ)         range (min … max) 
  88.74 µs ±   1.05 µs    87.55 µs …  89.96 µs  in 10 ×   1113 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:236 ("fp_incr shifted (320 defs)") ok
time (mean ± σ)         range (min … max) 
 396.72 µs ±   6.05 µs   389.84 µs … 411.39 µs  in 10 ×    251 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:242 ("fp_incr shifted (1000 defs)") ok
time (mean ± σ)         range (min … max) 
   1.34 ms ±   5.82 µs     1.33 ms …   1.35 ms  in 10 ×     75 runs
Total tests: 36, passed: 36, failed: 0. [js]
Warning: no test entry found.
Total tests: 0, passed: 0, failed: 0. [native]

PR branch:

Registry index cloned successfully
Symbols updated successfully
Downloading moonbitlang/quickcheck@0.14.0
Downloading moonbitlang/x@0.4.38
Downloading moonbitlang/async@0.16.8
Downloading dowdiness/incr@0.8.0
Downloading dowdiness/rle@0.2.0
[dowdiness/btree] bench btree_benchmark.mbt:79 ("bench: build via inserts (100)") ok
time (mean ± σ)         range (min … max) 
  60.86 µs ±   1.89 µs    59.71 µs …  66.10 µs  in 10 ×   1591 runs
[dowdiness/btree] bench btree_benchmark.mbt:84 ("bench: build via from_sorted (100)") ok
time (mean ± σ)         range (min … max) 
   2.84 µs ±  16.24 ns     2.82 µs …   2.88 µs  in 10 ×  39554 runs
[dowdiness/btree] bench btree_benchmark.mbt:91 ("bench: build via inserts (1000)") ok
time (mean ± σ)         range (min … max) 
 978.23 µs ±  21.85 µs   956.61 µs …   1.03 ms  in 10 ×    102 runs
[dowdiness/btree] bench btree_benchmark.mbt:96 ("bench: build via from_sorted (1000)") ok
time (mean ± σ)         range (min … max) 
  26.43 µs ±   1.81 µs    25.15 µs …  29.89 µs  in 10 ×   4014 runs
[dowdiness/btree] bench btree_benchmark.mbt:103 ("bench: build via inserts (10000)") ok
time (mean ± σ)         range (min … max) 
  14.94 ms ± 344.18 µs    14.65 ms …  15.60 ms  in 10 ×      7 runs
[dowdiness/btree] bench btree_benchmark.mbt:108 ("bench: build via from_sorted (10000)") ok
time (mean ± σ)         range (min … max) 
 496.59 µs ±   4.76 µs   491.66 µs … 504.32 µs  in 10 ×    206 runs
[dowdiness/btree] bench btree_benchmark.mbt:115 ("bench: delete_range middle 10% (1000)") ok
time (mean ± σ)         range (min … max) 
  50.87 µs ± 666.37 ns    50.16 µs …  52.27 µs  in 10 ×   1929 runs
[dowdiness/btree] bench btree_benchmark.mbt:124 ("bench: delete_range middle 50% (1000)") ok
time (mean ± σ)         range (min … max) 
  46.75 µs ± 243.87 ns    46.40 µs …  47.19 µs  in 10 ×   2164 runs
[dowdiness/btree] bench btree_benchmark.mbt:133 ("bench: delete_range middle 10% (10000)") ok
time (mean ± σ)         range (min … max) 
 645.52 µs ±   4.47 µs   640.46 µs … 652.76 µs  in 10 ×    156 runs
[dowdiness/btree] bench btree_benchmark.mbt:142 ("bench: delete_range middle 50% (10000)") ok
time (mean ± σ)         range (min … max) 
 664.02 µs ±   9.93 µs   652.28 µs … 680.04 µs  in 10 ×    154 runs
Total tests: 10, passed: 10, failed: 0. [wasm-gc]
node count: 502
node count: 1002
node count: 2502
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:24 ("viewnode serialization (100 defs)") ok
time (mean ± σ)         range (min … max) 
   2.37 ms ±  23.76 µs     2.34 ms …   2.41 ms  in 10 ×     43 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:35 ("viewnode serialization (200 defs)") ok
time (mean ± σ)         range (min … max) 
   6.49 ms ± 212.20 µs     6.23 ms …   6.88 ms  in 10 ×     16 runs
[dowdiness/canopy] bench editor/view_updater_benchmark_wbtest.mbt:46 ("viewnode serialization (500 defs)") ok
time (mean ± σ)         range (min … max) 
  28.08 ms ±   1.98 ms    24.58 ms …  30.56 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.92 ms ±  65.38 µs     1.85 ms …   2.02 ms  in 10 ×     53 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:98 ("json object - incremental keystroke (20 members)") ok
time (mean ± σ)         range (min … max) 
   1.01 ms ±  65.79 µs   921.36 µs …   1.12 ms  in 10 ×     97 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:103 ("json object - incremental keystroke (100 members)") ok
time (mean ± σ)         range (min … max) 
   4.04 ms ± 205.35 µs     3.83 ms …   4.41 ms  in 10 ×     27 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:108 ("json object - incremental keystroke (500 members)") ok
time (mean ± σ)         range (min … max) 
  28.86 ms ±   2.48 ms    26.11 ms …  32.29 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.53 ms ±   4.04 ms    57.11 ms …  67.53 ms  in 10 ×      1 runs
[dowdiness/canopy] bench lang/json/companion/json_benchmark.mbt:118 ("json array - incremental keystroke (20 elements)") ok
time (mean ± σ)         range (min … max) 
 769.07 µs ± 135.85 µs   578.15 µs … 958.39 µs  in 10 ×    187 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 ±  60.54 µs     1.80 ms …   2.00 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.55 ms ± 132.33 µs    12.37 ms …  12.74 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.45 ms ±   3.16 ms    31.55 ms …  41.90 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) 
   6.43 µs ±  66.90 ns     6.39 µs …   6.56 µs  in 10 ×  15263 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:48 ("tree refresh unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  25.21 µs ±  85.12 ns    25.11 µs …  25.35 µs  in 10 ×   3704 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:58 ("tree refresh unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
 108.80 µs ±   1.21 µs   107.83 µs … 111.18 µs  in 10 ×    859 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:68 ("tree refresh unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 457.23 µs ±   2.97 µs   453.31 µs … 462.06 µs  in 10 ×    218 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:80 ("tree refresh 1 changed (20 defs)") ok
time (mean ± σ)         range (min … max) 
  11.53 µs ±  92.16 ns    11.43 µs …  11.74 µs  in 10 ×   8746 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:95 ("tree refresh 1 changed (320 defs)") ok
time (mean ± σ)         range (min … max) 
 219.20 µs ± 409.39 ns   218.48 µs … 219.77 µs  in 10 ×    455 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:110 ("tree refresh 1 changed (1000 defs)") ok
time (mean ± σ)         range (min … max) 
 904.69 µs ±   7.54 µs   894.18 µs … 914.04 µs  in 10 ×    110 runs
[dowdiness/canopy] bench projection/tree_refresh_benchmark_wbtest.mbt:125 ("tree refresh 1 changed (80 defs)") ok
time (mean ± σ)         range (min … max) 
  45.23 µs ± 107.30 ns    45.05 µs …  45.37 µs  in 10 ×   2212 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:61 ("reconcile wide-siblings (20 defs)") ok
time (mean ± σ)         range (min … max) 
  11.52 µs ±  27.19 ns    11.49 µs …  11.58 µs  in 10 ×   8672 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:66 ("reconcile wide-siblings (80 defs)") ok
time (mean ± σ)         range (min … max) 
 103.83 µs ± 202.70 ns   103.50 µs … 104.14 µs  in 10 ×    963 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:71 ("reconcile wide-siblings (320 defs)") ok
time (mean ± σ)         range (min … max) 
   1.37 ms ±   3.23 µs     1.36 ms …   1.37 ms  in 10 ×     73 runs
[dowdiness/canopy] bench projection/reconcile_lcs_benchmark_wbtest.mbt:76 ("reconcile wide-siblings (1000 defs)") ok
time (mean ± σ)         range (min … max) 
  13.46 ms ± 117.36 µs    13.37 ms …  13.74 ms  in 10 ×      7 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:148 ("fp_incr unchanged (20 defs)") ok
time (mean ± σ)         range (min … max) 
   8.53 µs ±  24.84 ns     8.50 µs …   8.57 µs  in 10 ×  11723 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:157 ("fp_incr unchanged (80 defs)") ok
time (mean ± σ)         range (min … max) 
  47.83 µs ±  81.10 ns    47.72 µs …  48.00 µs  in 10 ×   2094 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:166 ("fp_incr unchanged (320 defs)") ok
time (mean ± σ)         range (min … max) 
 532.33 µs ±   2.59 µs   529.80 µs … 538.41 µs  in 10 ×    189 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:175 ("fp_incr unchanged (1000 defs)") ok
time (mean ± σ)         range (min … max) 
   4.53 ms ±  18.38 µs     4.51 ms …   4.57 ms  in 10 ×     23 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:186 ("fp_incr tail (20 defs)") ok
time (mean ± σ)         range (min … max) 
  15.99 µs ±  48.05 ns    15.92 µs …  16.06 µs  in 10 ×   6206 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:195 ("fp_incr tail (80 defs)") ok
time (mean ± σ)         range (min … max) 
  87.80 µs ± 274.84 ns    87.43 µs …  88.27 µs  in 10 ×   1139 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:204 ("fp_incr tail (320 defs)") ok
time (mean ± σ)         range (min … max) 
 697.19 µs ±   2.77 µs   693.74 µs … 701.34 µs  in 10 ×    144 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:213 ("fp_incr tail (1000 defs)") ok
time (mean ± σ)         range (min … max) 
   5.16 ms ±  33.31 µs     5.11 ms …   5.21 ms  in 10 ×     20 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:224 ("fp_incr shifted (20 defs)") ok
time (mean ± σ)         range (min … max) 
  22.27 µs ±  48.26 ns    22.19 µs …  22.32 µs  in 10 ×   4481 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:230 ("fp_incr shifted (80 defs)") ok
time (mean ± σ)         range (min … max) 
  91.89 µs ± 406.28 ns    91.46 µs …  92.58 µs  in 10 ×   1096 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:236 ("fp_incr shifted (320 defs)") ok
time (mean ± σ)         range (min … max) 
 412.72 µs ±   1.92 µs   409.49 µs … 416.16 µs  in 10 ×    236 runs
[dowdiness/canopy] bench projection/module_projection_incremental_benchmark_wbtest.mbt:242 ("fp_incr shifted (1000 defs)") ok
time (mean ± σ)         range (min … max) 
   1.38 ms ±   7.14 µs     1.37 ms …   1.40 ms  in 10 ×     73 runs
Total tests: 36, passed: 36, failed: 0. [js]
Warning: no test entry found.
Total tests: 0, passed: 0, failed: 0. [native]

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) 
  20.24 µs ± 682.94 ns    19.55 µs …  21.86 µs  in 10 ×   4712 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) 
 103.49 µs ± 497.07 ns   102.97 µs … 104.22 µs  in 10 ×    971 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) 
 463.88 µs ±   2.59 µs   459.02 µs … 467.64 µs  in 10 ×    216 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) 
 132.80 µs ± 411.35 ns   132.21 µs … 133.49 µs  in 10 ×    748 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) 
  97.66 µs ± 362.57 ns    97.11 µs …  98.23 µs  in 10 ×   1031 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) 
  65.59 µs ± 375.97 ns    65.21 µs …  66.17 µs  in 10 ×   1518 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) 
 102.36 µs ± 712.80 ns   101.54 µs … 103.41 µs  in 10 ×    984 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) 
 205.84 µs ±   8.17 µs   201.36 µs … 228.36 µs  in 10 ×    482 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_merge_benchmark.mbt:408 ("merge - context apply operations (50 ops)") ok
time (mean ± σ)         range (min … max) 
  42.81 µs ±  23.25 µs    26.51 µs …  87.12 µs  in 10 ×   2624 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   3.75 µs ±  27.11 ns     3.71 µs …   3.79 µs  in 10 ×  26522 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  25.82 µs ± 256.72 ns    25.57 µs …  26.42 µs  in 10 ×   3909 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 390.49 µs ±   3.73 µs   386.60 µs … 399.02 µs  in 10 ×    255 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  11.78 µs ±   3.88 µs     8.68 µs …  19.74 µs  in 10 ×   8472 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
 101.77 µs ±  53.67 µs    56.51 µs … 207.39 µs  in 10 ×   1383 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  33.63 µs ± 279.72 ns    33.30 µs …  34.08 µs  in 10 ×   2991 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  33.39 µs ± 111.62 ns    33.21 µs …  33.56 µs  in 10 ×   2985 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) 
  25.88 µs ± 541.80 ns    25.33 µs …  27.15 µs  in 10 ×   3814 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.23 ms ±   3.65 ms     2.64 ms …  12.90 ms  in 10 ×     70 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  11.14 µs ±  38.98 ns    11.10 µs …  11.21 µs  in 10 ×   8938 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 117.01 µs ± 345.65 ns   116.41 µs … 117.59 µs  in 10 ×    848 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:285 ("branch - single advance (1 new op)") ok
time (mean ± σ)         range (min … max) 
   3.92 µs ± 402.93 ns     3.70 µs …   4.86 µs  in 10 ×  26032 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  39.81 µs ±  16.51 µs    29.92 µs …  78.12 µs  in 10 ×   2462 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  17.42 ms ±   9.33 ms     6.57 ms …  36.46 ms  in 10 ×     30 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:375 ("branch - concurrent merge scenario") ok
time (mean ± σ)         range (min … max) 
  19.30 µs ±   8.61 µs    11.79 µs …  33.98 µs  in 10 ×   5453 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 650.70 ns ±   7.94 ns   640.02 ns … 659.39 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.84 µs ±   3.13 ns     4.83 µs …   4.84 µs  in 10 ×  20700 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  43.36 µs ± 414.78 ns    43.04 µs …  44.40 µs  in 10 ×   2318 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.00 µs ±  11.58 ns     5.98 µs …   6.01 µs  in 10 ×  16632 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.07 µs ±   7.23 ns     6.06 µs …   6.08 µs  in 10 ×  16516 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.00 µs ±  47.81 ns     7.96 µs …   8.12 µs  in 10 ×  12525 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.43 µs ±  14.06 ns     3.42 µs …   3.45 µs  in 10 ×  29203 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.47 µs ±  11.30 ns     5.46 µs …   5.50 µs  in 10 ×  18261 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:176 ("walker - large history (10000 ops)") ok
time (mean ± σ)         range (min … max) 
 454.50 µs ±   2.38 µs   451.91 µs … 458.92 µs  in 10 ×    222 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.05 ms ± 152.16 µs     6.85 ms …   7.27 ms  in 10 ×     15 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) 
  24.27 ms ±   3.11 ms    21.86 ms …  30.23 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) 
  49.40 ns ±   0.23 ns    48.84 ns …  49.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) 
 140.91 ns ±   0.31 ns   140.21 ns … 141.17 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.15 µs ±   1.58 ns     1.15 µs …   1.15 µs  in 10 ×  86850 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) 
 170.82 ns ±   0.91 ns   169.74 ns … 172.65 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) 
 118.99 ns ±   0.61 ns   118.28 ns … 120.12 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) 
 469.51 ns ±   1.20 ns   468.25 ns … 471.76 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) 
 205.18 ns ±   0.97 ns   204.03 ns … 206.63 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) 
   1.29 µs ±  15.33 ns     1.28 µs …   1.33 µs  in 10 ×  78056 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) 
 142.75 ns ±   0.93 ns   141.76 ns … 144.24 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) 
 122.59 ns ±   0.77 ns   121.50 ns … 123.82 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) 
 594.61 ns ±   1.53 ns   592.66 ns … 597.27 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.81 µs ±  12.67 ns     4.79 µs …   4.83 µs  in 10 ×  20743 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) 
 194.91 ns ±   0.32 ns   194.30 ns … 195.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) 
   5.03 µs ±  15.12 ns     5.01 µs …   5.06 µs  in 10 ×  19854 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) 
  66.48 ns ±   0.80 ns    65.66 ns …  67.82 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.55 ns ±   0.32 ns    12.21 ns …  13.06 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) 
 189.14 µs ±   2.45 µs   186.63 µs … 194.42 µs  in 10 ×    495 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.92 ms ±  76.88 µs     2.82 ms …   3.04 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) 
  10.00 ms ± 458.54 µs     9.25 ms …  10.73 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.44 ms ± 103.11 µs     3.33 ms …   3.64 ms  in 10 ×     26 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) 
  30.75 ms ± 772.28 µs    29.90 ms …  32.12 ms  in 10 ×      4 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) 
  94.07 ns ±   0.56 ns    93.28 ns …  94.87 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) 
  93.85 ns ±   0.49 ns    93.28 ns …  94.91 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) 
 536.07 µs ±   4.06 µs   531.23 µs … 542.58 µs  in 10 ×    187 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 153.21 µs ± 757.82 ns   152.24 µs … 154.24 µs  in 10 ×    649 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:26 ("jump - concurrent insert into 1K doc") ok
time (mean ± σ)         range (min … max) 
 150.17 µs ± 410.29 ns   149.49 µs … 150.65 µs  in 10 ×    666 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:58 ("jump - concurrent insert into 10K doc") ok
time (mean ± σ)         range (min … max) 
   4.34 ms ±  93.16 µs     4.21 ms …   4.51 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) 
 150.45 µs ± 329.38 ns   149.86 µs … 150.93 µs  in 10 ×    664 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  42.60 µs ± 850.56 ns    42.10 µs …  44.94 µs  in 10 ×   2302 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 503.32 µs ±   2.44 µs   500.31 µs … 507.69 µs  in 10 ×    198 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.57 µs ± 208.45 ns    62.34 µs …  63.05 µs  in 10 ×   1608 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  28.93 µs ±  64.70 ns    28.87 µs …  29.04 µs  in 10 ×   3445 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 123.91 ns ±   0.48 ns   123.33 ns … 124.86 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) 
  20.36 ns ±   0.44 ns    19.78 ns …  21.16 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) 
  24.80 ns ±   0.38 ns    24.19 ns …  25.35 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.46 µs ±  51.28 ns     8.40 µs …   8.55 µs  in 10 ×  11644 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  15.80 µs ± 109.88 ns    15.67 µs …  16.04 µs  in 10 ×   6296 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:177 ("oplog - diff_and_collect (advance 20)") ok
time (mean ± σ)         range (min … max) 
   4.85 µs ±  11.42 ns     4.84 µs …   4.87 µs  in 10 ×  20415 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   7.31 µs ±  24.44 ns     7.28 µs …   7.35 µs  in 10 ×  13943 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 228.92 µs ± 627.57 ns   228.23 µs … 229.95 µs  in 10 ×    436 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.72 µs ± 162.65 ns    41.39 µs …  41.90 µs  in 10 ×   2406 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 156.10 ms ±  24.60 ms   122.40 ms … 185.20 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) 
  64.18 ms ±  18.99 ms    41.58 ms …  85.67 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) 
  95.88 µs ± 292.40 ns    95.36 µs …  96.36 µs  in 10 ×    900 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.39 ms ±  26.19 µs     1.34 ms …   1.42 ms  in 10 ×     74 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 157.08 µs ±   1.24 µs   155.77 µs … 159.79 µs  in 10 ×    630 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) 
 237.54 µs ± 850.95 ns   236.49 µs … 238.75 µs  in 10 ×    417 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  14.04 µs ±  90.35 ns    13.92 µs …  14.16 µs  in 10 ×   7115 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 146.21 µs ± 733.03 ns   145.12 µs … 147.27 µs  in 10 ×    685 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  12.64 ns ±   0.44 ns    12.31 ns …  13.43 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) 
  94.47 ns ±   0.77 ns    93.73 ns …  96.08 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) 
  94.82 ns ±   0.57 ns    94.34 ns …  96.13 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) 
  33.34 µs ± 226.26 ns    33.17 µs …  33.93 µs  in 10 ×   2978 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  49.06 µs ± 314.92 ns    48.59 µs …  49.44 µs  in 10 ×   2030 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 621.99 µs ±  11.71 µs   610.41 µs … 638.94 µs  in 10 ×    163 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) 
 101.83 µs ± 510.43 ns   101.38 µs … 102.95 µs  in 10 ×    991 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.09 µs ± 113.55 ns    12.96 µs …  13.27 µs  in 10 ×   7615 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 161.22 µs ± 999.90 ns   159.47 µs … 162.72 µs  in 10 ×    624 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.08 µs ±   3.51 ns     2.08 µs …   2.09 µs  in 10 ×  47804 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.47 µs ±  13.53 ns     2.45 µs …   2.50 µs  in 10 ×  40795 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  29.37 µs ± 149.72 ns    29.15 µs …  29.58 µs  in 10 ×   3396 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 471.14 µs ±   3.80 µs   468.24 µs … 481.19 µs  in 10 ×    215 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) 
  33.19 µs ± 108.62 ns    33.01 µs …  33.34 µs  in 10 ×   2990 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) 
 285.71 µs ± 912.49 ns   284.29 µs … 287.22 µs  in 10 ×    350 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.33 ms ±  18.11 µs     1.30 ms …   1.35 ms  in 10 ×     77 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.05 ms ±  60.70 µs     2.98 ms …   3.16 ms  in 10 ×     33 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:52 ("cache - jump to pos 0 every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.96 ms ±  31.88 µs     1.92 ms …   2.00 ms  in 10 ×     50 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:71 ("cache - jump to middle every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.59 ms ±  37.75 µs     2.54 ms …   2.65 ms  in 10 ×     39 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:94 ("cache - single non-seq insert on 1000-char doc") ok
time (mean ± σ)         range (min … max) 
   7.59 µs ±   2.01 µs     5.94 µs …  12.30 µs  in 10 ×  15063 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) 
   6.87 µs ±   1.05 µs     6.30 µs …   9.78 µs  in 10 ×  16258 runs
Total tests: 105, passed: 105, failed: 0.

PR branch:

Registry index updated successfully
Symbols updated successfully
Downloading dowdiness/order-tree@0.1.0
Downloading dowdiness/alga@0.3.0
Downloading dowdiness/btree@0.1.0
Using cached dowdiness/rle@0.2.0
Downloading 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) 
  20.16 µs ± 547.94 ns    19.65 µs …  21.51 µs  in 10 ×   4704 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) 
 102.83 µs ± 321.14 ns   102.42 µs … 103.30 µs  in 10 ×    966 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) 
 464.68 µs ±   4.67 µs   456.49 µs … 471.39 µs  in 10 ×    215 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) 
 133.58 µs ± 668.62 ns   132.73 µs … 134.92 µs  in 10 ×    754 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) 
  99.26 µs ± 638.35 ns    98.45 µs … 100.10 µs  in 10 ×    993 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) 
  65.98 µs ± 264.49 ns    65.67 µs …  66.47 µs  in 10 ×   1522 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) 
 101.74 µs ± 334.59 ns   101.34 µs … 102.39 µs  in 10 ×    984 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) 
 199.63 µs ± 845.24 ns   198.29 µs … 200.65 µs  in 10 ×    488 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.02 µs ±  16.51 µs    26.28 µs …  69.00 µs  in 10 ×   2233 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:6 ("branch - checkout (10 ops)") ok
time (mean ± σ)         range (min … max) 
   3.74 µs ±  31.73 ns     3.69 µs …   3.80 µs  in 10 ×  26342 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:29 ("branch - checkout (100 ops)") ok
time (mean ± σ)         range (min … max) 
  25.47 µs ±  73.30 ns    25.36 µs …  25.61 µs  in 10 ×   3944 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:47 ("branch - checkout (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 349.74 µs ±   1.82 µs   347.10 µs … 352.32 µs  in 10 ×    288 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:65 ("branch - advance (10 new ops)") ok
time (mean ± σ)         range (min … max) 
  11.68 µs ±   4.35 µs     8.41 µs …  19.53 µs  in 10 ×   9117 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:91 ("branch - advance (100 new ops)") ok
time (mean ± σ)         range (min … max) 
  91.13 µs ±  43.50 µs    55.19 µs … 177.66 µs  in 10 ×   1160 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:117 ("branch - checkout with concurrent branches") ok
time (mean ± σ)         range (min … max) 
  33.44 µs ± 166.51 ns    33.20 µs …  33.77 µs  in 10 ×   3003 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:145 ("branch - checkout with deletes") ok
time (mean ± σ)         range (min … max) 
  33.80 µs ± 185.56 ns    33.59 µs …  34.17 µs  in 10 ×   2967 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) 
  26.69 µs ± 706.60 ns    26.09 µs …  28.04 µs  in 10 ×   3751 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.16 ms ±   3.63 ms     2.66 ms …  13.00 ms  in 10 ×     69 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:246 ("branch - to_text (100 chars)") ok
time (mean ± σ)         range (min … max) 
  11.27 µs ±  34.67 ns    11.24 µs …  11.35 µs  in 10 ×   8779 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:264 ("branch - to_text (1000 chars)") ok
time (mean ± σ)         range (min … max) 
 125.61 µs ± 773.74 ns   125.02 µs … 127.47 µs  in 10 ×    795 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:285 ("branch - single advance (1 new op)") ok
time (mean ± σ)         range (min … max) 
   3.88 µs ± 203.84 ns     3.73 µs …   4.34 µs  in 10 ×  26297 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:311 ("branch - single advance (50 new ops)") ok
time (mean ± σ)         range (min … max) 
  51.07 µs ±  33.65 µs    30.15 µs … 124.93 µs  in 10 ×   2575 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:342 ("branch - realistic typing (50 chars)") ok
time (mean ± σ)         range (min … max) 
  18.51 ms ±   5.88 ms     9.30 ms …  25.96 ms  in 10 ×     21 runs
[dowdiness/event-graph-walker] bench internal/branch/branch_benchmark.mbt:375 ("branch - concurrent merge scenario") ok
time (mean ± σ)         range (min … max) 
  14.29 µs ±   4.62 µs    11.91 µs …  26.91 µs  in 10 ×   7860 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:6 ("walker - linear history (10 ops)") ok
time (mean ± σ)         range (min … max) 
 647.98 ns ±   9.49 ns   634.55 ns … 658.47 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.83 µs ±   5.69 ns     4.82 µs …   4.84 µs  in 10 ×  20610 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:38 ("walker - linear history (1000 ops)") ok
time (mean ± σ)         range (min … max) 
  43.60 µs ± 526.33 ns    43.21 µs …  44.90 µs  in 10 ×   2306 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.02 µs ±  15.00 ns     6.00 µs …   6.04 µs  in 10 ×  16642 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 ±  22.18 ns     6.15 µs …   6.21 µs  in 10 ×  16325 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.11 µs ±  32.85 ns     8.08 µs …   8.19 µs  in 10 ×  12357 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.37 µs ±   7.62 ns     3.36 µs …   3.38 µs  in 10 ×  29595 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.48 µs ±  11.63 ns     5.46 µs …   5.49 µs  in 10 ×  18297 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.68 µs ±  16.64 µs   459.42 µs … 509.91 µs  in 10 ×    217 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.26 ms ±  80.40 µs     7.11 ms …   7.38 ms  in 10 ×     15 runs
[dowdiness/event-graph-walker] bench internal/causal_graph/walker_benchmark.mbt:213 ("walker - concurrent branches (100000 ops, 5 agents)") ok
time (mean ± σ)         range (min … max) 
  27.67 ms ±   2.33 ms    24.87 ms …  32.79 ms  in 10 ×      3 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) 
  50.05 ns ±   0.52 ns    49.05 ns …  50.58 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) 
 140.12 ns ±   0.38 ns   139.67 ns … 140.93 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.13 µs ±   2.62 ns     1.13 µs …   1.14 µs  in 10 ×  86013 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) 
 170.93 ns ±   0.41 ns   170.41 ns … 171.88 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) 
 118.93 ns ±   0.64 ns   118.33 ns … 119.82 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) 
 469.41 ns ±   1.64 ns   467.42 ns … 471.84 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) 
 201.18 ns ±   0.39 ns   200.53 ns … 201.86 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) 
   1.29 µs ±   3.17 ns     1.29 µs …   1.29 µs  in 10 ×  77572 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) 
 141.91 ns ±   0.61 ns   141.34 ns … 143.14 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) 
 121.76 ns ±   1.44 ns   120.16 ns … 124.85 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) 
 561.62 ns ±   1.02 ns   559.94 ns … 563.34 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.76 µs ±  16.37 ns     4.74 µs …   4.80 µs  in 10 ×  21074 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) 
 195.18 ns ±   0.38 ns   194.70 ns … 195.76 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.96 µs ±   5.70 ns     4.95 µs …   4.97 µs  in 10 ×  20120 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) 
  66.43 ns ±   0.56 ns    65.58 ns …  67.10 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.09 ns ±   1.02 ns    12.29 ns …  14.81 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.03 µs ±   2.47 µs   188.19 µs … 195.73 µ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.93 ms ±  43.18 µs     2.88 ms …   3.01 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.57 ms ± 228.86 µs     9.31 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.39 ms ±  37.13 µs     3.35 ms …   3.46 ms  in 10 ×     28 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) 
  31.50 ms ± 736.48 µs    30.32 ms …  32.45 ms  in 10 ×      4 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) 
  92.62 ns ±   0.61 ns    91.90 ns …  93.91 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) 
  92.55 ns ±   0.30 ns    92.25 ns …  93.13 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) 
 531.17 µs ±   3.00 µs   527.41 µs … 536.91 µs  in 10 ×    190 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:2 ("jump - sequential append 1K") ok
time (mean ± σ)         range (min … max) 
 152.65 µs ± 971.20 ns   151.54 µs … 154.03 µs  in 10 ×    650 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:26 ("jump - concurrent insert into 1K doc") ok
time (mean ± σ)         range (min … max) 
 150.00 µs ± 421.95 ns   149.54 µs … 150.89 µs  in 10 ×    665 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.34 ms ±  82.46 µs     4.21 ms …   4.43 ms  in 10 ×     24 runs
[dowdiness/event-graph-walker] bench internal/fugue/jump_ancestors_benchmark.mbt:90 ("jump - degenerate chain remote insert") ok
time (mean ± σ)         range (min … max) 
 150.40 µs ± 510.17 ns   149.77 µs … 151.45 µs  in 10 ×    669 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:6 ("oplog - insert (100 ops)") ok
time (mean ± σ)         range (min … max) 
  43.16 µs ± 879.73 ns    42.68 µs …  45.61 µs  in 10 ×   2263 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:20 ("oplog - insert (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 512.48 µs ±   4.01 µs   507.61 µs … 519.54 µs  in 10 ×    198 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) 
  61.90 µs ± 207.72 ns    61.64 µs …  62.19 µs  in 10 ×   1623 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:58 ("oplog - apply_remote (50 ops)") ok
time (mean ± σ)         range (min … max) 
  29.46 µs ±  76.97 ns    29.35 µs …  29.56 µs  in 10 ×   3387 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:79 ("oplog - get_op (1000 ops)") ok
time (mean ± σ)         range (min … max) 
 124.01 ns ±   0.44 ns   123.52 ns … 124.78 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) 
  20.33 ns ±   0.31 ns    19.83 ns …  20.73 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) 
  24.62 ns ±   0.24 ns    24.24 ns …  25.04 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.35 µs ±  81.74 ns     8.25 µs …   8.52 µs  in 10 ×  11383 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:150 ("oplog - walk_and_collect (concurrent)") ok
time (mean ± σ)         range (min … max) 
  15.83 µs ± 132.91 ns    15.67 µs …  16.12 µs  in 10 ×   6281 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:177 ("oplog - diff_and_collect (advance 20)") ok
time (mean ± σ)         range (min … max) 
   4.98 µs ±  10.81 ns     4.97 µs …   5.00 µs  in 10 ×  20056 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:202 ("oplog - walk_filtered (inserts only)") ok
time (mean ± σ)         range (min … max) 
   7.28 µs ±  24.99 ns     7.25 µs …   7.33 µs  in 10 ×  14257 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:233 ("oplog - sequential typing (500 chars)") ok
time (mean ± σ)         range (min … max) 
 236.60 µs ±   4.74 µs   234.00 µs … 249.94 µs  in 10 ×    427 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.60 µs ± 123.65 ns    41.46 µs …  41.81 µs  in 10 ×   2379 runs
[dowdiness/event-graph-walker] bench internal/oplog/oplog_benchmark.mbt:270 ("oplog - sequential typing (100000 chars)") ok
time (mean ± σ)         range (min … max) 
 148.41 ms ±  18.85 ms   121.11 ms … 172.46 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) 
  55.48 ms ±  14.80 ms    38.06 ms …  75.76 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) 
  97.03 µs ±   1.05 µs    96.17 µs …  99.66 µs  in 10 ×    904 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:22 ("text - insert append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.30 ms ±  21.62 µs     1.29 ms …   1.35 ms  in 10 ×     78 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:35 ("text - insert prepend (100 chars)") ok
time (mean ± σ)         range (min … max) 
 159.16 µs ±   5.37 µs   156.08 µs … 173.14 µs  in 10 ×    633 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) 
 236.97 µs ± 820.11 ns   236.02 µs … 238.49 µs  in 10 ×    418 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:70 ("text - text() (100-char doc)") ok
time (mean ± σ)         range (min … max) 
  13.41 µs ±  75.80 ns    13.32 µs …  13.53 µs  in 10 ×   7401 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:83 ("text - text() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
 141.55 µs ±   1.23 µs   139.19 µs … 143.11 µs  in 10 ×    700 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:96 ("text - len() (1000-char doc)") ok
time (mean ± σ)         range (min … max) 
  12.49 ns ±   0.35 ns    12.25 ns …  13.33 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) 
  94.71 ns ±   0.35 ns    94.22 ns …  95.15 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) 
  96.19 ns ±   0.55 ns    95.72 ns …  97.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) 
  33.02 µs ± 498.13 ns    32.62 µs …  33.93 µs  in 10 ×   2998 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:156 ("text - sync apply (50 remote ops)") ok
time (mean ± σ)         range (min … max) 
  48.63 µs ± 611.14 ns    48.05 µs …  49.98 µs  in 10 ×   2062 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:171 ("text - sync apply (500 remote ops)") ok
time (mean ± σ)         range (min … max) 
 637.61 µs ±   7.41 µs   625.55 µs … 647.64 µs  in 10 ×    158 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) 
 102.19 µs ± 713.52 ns   101.40 µs … 103.28 µs  in 10 ×    976 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.52 µs ± 165.97 ns    13.27 µs …  13.68 µs  in 10 ×   7472 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:233 ("text - checkout (midpoint of 1000-op doc)") ok
time (mean ± σ)         range (min … max) 
 161.87 µs ±   1.11 µs   160.38 µs … 163.84 µs  in 10 ×    613 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.08 µs ±   4.09 ns     2.08 µs …   2.09 µs  in 10 ×  47939 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.34 ns     2.43 µs …   2.46 µs  in 10 ×  41241 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:281 ("text - undo undo() (10-op group)") ok
time (mean ± σ)         range (min … max) 
  29.33 µs ± 104.41 ns    29.19 µs …  29.45 µs  in 10 ×   3376 runs
[dowdiness/event-graph-walker] bench text/text_benchmark.mbt:295 ("text - undo undo() (50-op group)") ok
time (mean ± σ)         range (min … max) 
 458.88 µs ±   5.95 µs   454.59 µs … 470.05 µs  in 10 ×    218 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) 
  33.29 µs ± 210.63 ns    33.08 µs …  33.83 µs  in 10 ×   3019 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) 
 284.94 µs ±   1.66 µs   282.48 µs … 287.59 µs  in 10 ×    352 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:17 ("cache - sequential append (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.34 ms ±  15.68 µs     1.32 ms …   1.37 ms  in 10 ×     74 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:34 ("cache - alternating pos (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   3.00 ms ±  34.53 µs     2.97 ms …   3.06 ms  in 10 ×     33 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:52 ("cache - jump to pos 0 every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   1.96 ms ±  26.94 µs     1.92 ms …   2.00 ms  in 10 ×     53 runs
[dowdiness/event-graph-walker] bench text/position_cache_benchmark.mbt:71 ("cache - jump to middle every 10 chars (1000 chars)") ok
time (mean ± σ)         range (min … max) 
   2.54 ms ±  30.43 µs     2.50 ms …   2.58 ms  in 10 ×     40 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) 
   6.85 µs ± 895.06 ns     5.81 µs …   8.33 µs  in 10 ×  16107 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) 
   6.57 µs ±   1.47 µs     5.60 µs …  10.08 µs  in 10 ×  16110 runs
Total tests: 105, passed: 105, failed: 0.

Benchmarks run with --release flag

@dowdiness dowdiness merged commit 9583166 into main Jun 7, 2026
28 checks passed
@dowdiness dowdiness deleted the ideal-bridge-partial-batch-sync branch June 7, 2026 04:20
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