Skip to content

Make prop_specIsComplete actually enforce API doc completeness - #2791

Merged
noonio merged 1 commit into
masterfrom
vrom911/specIsComplete-tests
Jul 27, 2026
Merged

Make prop_specIsComplete actually enforce API doc completeness#2791
noonio merged 1 commit into
masterfrom
vrom911/specIsComplete-tests

Conversation

@vrom911

@vrom911 vrom911 commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

prop_specIsComplete was a silent no-op. It read constructor names from oneOf[].title, but those entries are bare $refs with no title, so it extracted zero keys and always passed, and it was instantiated at TimedServerOutput whose show never reveals the inner constructor. This PR reworks it to read names from the $ref basename and fail when the type produces a constructor missing from the spec, and switches the call site to ServerOutput.
Enabling it surfaced four messages that existed in code but were missing from the api.yaml channel oneOfs: DepositActivated, DepositExpired, HeadPartiallyFannedOut (server outputs) and SafeClose (client input).


  • CHANGELOG updated or not needed
  • Documentation updated or not needed
  • Haddocks updated or not needed
  • No new TODOs introduced or explained herafter

@vrom911 vrom911 self-assigned this Jul 24, 2026
@vrom911
vrom911 requested a review from a team July 24, 2026 15:34
@github-actions

Copy link
Copy Markdown

Transaction cost differences

No cost or size differences found

@github-actions

Copy link
Copy Markdown

End-to-end benchmark differences

Comparing this PR (new) against master (old). Numbers come from cloud VMs, so changes under 5% are shown as and are likely run-to-run noise rather than a real regression or improvement. 🟢 = improvement, 🔴 = regression; uncolored rows are neutral measures reported for context.

Sustained load (3 nodes, 3x5000 txs)

Metric master PR Δ
End-to-end TPS (tx/s) 526.86 476.77 🔴 -50.09 (-9.5%)
Sustained TPS (tx/s) 965.48 1,069.74 🟢 +104.26 (+10.8%)
Backlog drain time (s) 27.80 30.80 🔴 +3.00 (+10.8%)
Snapshots per second (/s) 0.60 0.54 -0.06 (-10.0%)
Avg txs per snapshot 882.40 882.40 ≈ +0.00 (+0.0%)
Avg. Confirmation Time (s) 23.031 25.941 🔴 +2.910 (+12.6%)
P50 confirmation (s) 24.384 27.487 🔴 +3.102 (+12.7%)
P95 confirmation (s) 27.993 30.913 🔴 +2.921 (+10.4%)
P99 confirmation (s) 28.181 31.128 🔴 +2.947 (+10.5%)
Tx validation time p50 (s) 8.673 10.501 🔴 +1.828 (+21.1%)
Peak node RSS (MB) 446.60 430.20 ≈ -16.40 (-3.7%)
Invalid txs 0.00 0.00 ≈ +0.00 (n/a%)

Plateau 1000 UTxO (1 node, 4000 txs)

Metric master PR Δ
End-to-end TPS (tx/s) 243.29 243.59 ≈ +0.30 (+0.1%)
Backlog drain time (s) 16.30 16.30 ≈ +0.00 (+0.0%)
Snapshots per second (/s) 0.61 0.55 -0.06 (-9.8%)
Avg txs per snapshot 400.00 444.40 +44.40 (+11.1%)
Avg. Confirmation Time (s) 9.649 10.012 ≈ +0.362 (+3.8%)
P50 confirmation (s) 9.253 9.575 ≈ +0.322 (+3.5%)
P95 confirmation (s) 16.350 16.287 ≈ -0.063 (-0.4%)
P99 confirmation (s) 16.352 16.289 ≈ -0.063 (-0.4%)
Tx validation time p50 (s) 6.316 5.915 🟢 -0.401 (-6.3%)
Peak node RSS (MB) 361.40 349.70 ≈ -11.70 (-3.2%)
Invalid txs 0.00 0.00 ≈ +0.00 (n/a%)

Round-trip latency (3 nodes, closed-loop, 3x250 txs)

Metric master PR Δ
End-to-end TPS (tx/s) 101.89 97.74 ≈ -4.15 (-4.1%)
Sustained TPS (tx/s) 102.10 100.05 ≈ -2.05 (-2.0%)
Backlog drain time (s) 0.00 0.00 ≈ +0.00 (n/a%)
Snapshots per second (/s) 68.88 65.81 ≈ -3.07 (-4.5%)
Avg txs per snapshot 1.50 1.50 ≈ +0.00 (+0.0%)
Avg. Confirmation Time (s) 0.029 0.030 ≈ +0.001 (+4.5%)
P50 confirmation (s) 0.028 0.029 ≈ +0.001 (+3.5%)
P95 confirmation (s) 0.039 0.041 🔴 +0.002 (+6.2%)
P99 confirmation (s) 0.044 0.048 🔴 +0.005 (+10.3%)
Tx validation time p50 (s) 0.008 0.008 ≈ +0.000 (+3.9%)
Peak node RSS (MB) 149.30 149.20 ≈ -0.10 (-0.1%)
Invalid txs 0.00 0.00 ≈ +0.00 (n/a%)

@github-actions

Copy link
Copy Markdown

Transaction costs

Sizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using arbitrary values and results are not fully deterministic and comparable to previous runs.

Metadata
Generated at 2026-07-24 15:41:28.984709533 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νHead f2dd4ade71e19c2310a86215aa78aea06463aca2d8b818af8dc1b8a4 12805
μHead 4abb8dedbcd6a6f03f4fe227300e2713d73b7680d47baa898b60d27a* 4971
νDeposit c78e8c9205721eb3ef4410f3db9c6169fa6db497c24641d29c20529c 1615
νCRS 09db7ee6cf7a4b358dd5c8a2f19d2c048336ffc5a01ef35a47ca7072 2736
  • The minting policy hash is only usable for comparison. As the script is parameterized, the actual script is unique per head.

Init transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 5473 9.52 3.13 0.49
2 5572 10.03 3.29 0.50
3 5665 10.53 3.45 0.51
5 5865 11.20 3.66 0.53
10 6338 13.96 4.54 0.57
50 10180 35.03 11.13 0.96
100 14984 62.14 19.60 1.45
114 16330 69.79 22.01 1.59

Cost of Increment Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 2320 20.68 7.36 0.47
2 2454 21.63 8.33 0.49
3 2587 23.18 9.50 0.52
5 2846 25.12 11.45 0.56
10 3501 29.95 16.31 0.66
50 8742 72.02 56.13 1.52
75 12019 97.01 80.59 2.04

Cost of Decrement Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 643 18.44 6.67 0.38
2 772 19.43 7.65 0.40
3 903 20.41 8.63 0.42
5 1167 22.31 10.57 0.46
10 1822 27.14 15.43 0.56
50 7063 67.78 54.80 1.40
75 10338 93.71 79.55 1.94

Close transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 669 17.78 11.67 0.41
2 796 18.72 12.64 0.43
3 931 19.71 13.62 0.45
5 1198 21.64 15.57 0.49
50 7090 67.28 59.96 1.44
75 10369 93.30 84.79 1.97

Contest transaction costs

Parties Tx size % max Mem % max CPU Min fee ₳
1 696 21.50 14.91 0.46
2 832 22.64 15.93 0.48
3 964 23.77 16.96 0.51
5 1229 26.09 19.02 0.55
10 1881 31.76 24.15 0.66
50 7121 79.59 65.75 1.58
66 9218 99.36 82.56 1.95

FanOut transaction costs

Involves spending head output and burning head tokens. Uses ada-only UTXO for better comparability.

Parties UTxO UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
10 0 0 5644 23.29 42.87 0.90
10 1 56 5677 25.63 45.39 0.93
10 5 284 5814 35.88 55.71 1.10
10 10 568 5982 49.89 68.99 1.31
10 20 1138 6322 82.42 96.97 1.79
10 20 1140 6325 82.42 96.97 1.79

PartialFanOut transaction costs

Largest chunk of ada-only outputs that can be distributed in one partial fanout step, computed dynamically. The last row is the maximum total UTxO count where at least one output can still be distributed.

Distributed UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
11 570 987 34.91 66.33 0.95
25 1311 1430 68.24 99.40 1.48
30 1305 1424 68.24 99.40 1.48
40 1307 1426 68.24 99.40 1.48
50 1307 1426 68.24 99.40 1.48
100 1309 1428 68.24 99.40 1.48
150 1307 1422 68.24 99.40 1.48
200 1310 1429 68.24 99.40 1.48
200 1308 1427 68.24 99.40 1.48

PartialFanOut transaction costs (with native tokens)

Largest chunk of native-token outputs that can be distributed in one partial fanout step, computed dynamically. The last row is the maximum total UTxO count where at least one output can still be distributed.

Distributed UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
11 1000 1477 42.00 68.83 1.05
25 2100 2346 76.56 99.12 1.59
30 2478 2742 76.59 99.22 1.61
40 2520 2786 76.59 99.27 1.61
50 2562 2831 76.56 99.27 1.61
100 2247 2501 76.59 99.17 1.59
150 2268 2519 76.56 99.17 1.59
200 1995 2237 76.59 99.12 1.58
200 2268 2523 76.56 99.17 1.59

FinalPartialFanOut transaction costs (with native tokens)

Terminal partial fanout step (FanoutProgress → Final) with outputs carrying a native token. Burns all head tokens and proves accumulator exhaustion via BLS proof.

Distributed UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 100 5519 22.10 44.30 0.89
5 500 5835 35.58 55.79 1.10
10 1180 6411 53.90 70.65 1.38
10 1230 6461 53.78 70.64 1.38

End-to-end benchmark results

This page is intended to collect the latest end-to-end benchmark results produced by Hydra's continuous integration (CI) system from the latest master code.

Please note that these results are approximate as they are currently produced from limited cloud VMs and not controlled hardware. Rather than focusing on the absolute results, the emphasis should be on relative results, such as how the timings for a scenario evolve as the code changes.

Generated at 2026-07-24 15:43:24.220704179 UTC

Baseline Scenario

Number of nodes 1
Number of txs 300
Avg. Confirmation Time (ms) 201.3
P99 206.3ms
P95 204.9ms
P50 201.1ms
Tx validation time p50 (ms) 128.2
End-to-end TPS 1423.62 tx/s
Backlog drain time (s) 0.2
Snapshots observed 3
Snapshots per second 14.24 /s
Avg txs per snapshot 100.0
Peak node RSS (MB) 145.9
Number of Invalid txs 0
Fanout outputs 2

Three local nodes

Number of nodes 3
Number of txs 900
Avg. Confirmation Time (ms) 985.3
P99 1038.2ms
P95 1037.1ms
P50 1009.0ms
Tx validation time p50 (ms) 447.3
End-to-end TPS 859.65 tx/s
Backlog drain time (s) 1.0
Snapshots observed 3
Snapshots per second 2.87 /s
Avg txs per snapshot 300.0
Peak node RSS (MB) 147.8
Number of Invalid txs 0
Fanout outputs 4

Scenario benchmark results

This page collects results from the scenario matrix: every combination of cluster size, UTxO shape, and incremental-ops mode is exercised by CI from the latest master code and reported below.

Numbers are approximate. They come from cloud VMs rather than controlled hardware, so the useful signal is the relative change between cells and between commits, not the absolute throughput.

Generated at 2026-07-24 15:57:01.460616126 UTC

Summary across cells

TPS columns are rates (transactions per second); Wall clock (s) is the measured elapsed time from the first tx submission to the last confirmation. Times are rounded to one decimal.

Scenario Txs Wall clock (s) End-to-end TPS (tx/s) Sustained TPS (tx/s) Avg conf (ms) P95 conf (ms)
Nodes=1, Constant, fire and forget 30 0.0 1045.41 n/a 27.8 28.4
Nodes=1, Constant, wait for tx valid 30 0.2 172.72 171.58 5.7 7.5
Nodes=1, Growing, fire and forget 30 0.0 925.92 n/a 31.5 32.1
Nodes=1, Growing, wait for tx valid 30 0.3 115.32 115.52 8.6 10.8
Nodes=1, Mixed, fire and forget 30 0.0 932.42 n/a 31.3 31.9
Nodes=1, Mixed, wait for tx valid 30 0.2 126.51 122.78 7.8 10.1
Nodes=2, Constant, fire and forget 60 0.1 852.26 n/a 68.3 69.1
Nodes=2, Constant, wait for tx valid 60 0.6 100.83 100.52 19.6 27.7
Nodes=2, Growing, fire and forget 60 0.1 665.16 n/a 88.1 89.8
Nodes=2, Growing, wait for tx valid 60 0.8 76.08 76.16 26.0 33.9
Nodes=2, Mixed, fire and forget 60 0.1 894.32 n/a 65.6 66.4
Nodes=2, Mixed, wait for tx valid 60 0.8 79.07 76.61 25.1 33.3
Nodes=3, Constant, fire and forget 90 0.1 658.53 n/a 131.6 133.2
Nodes=3, Constant, wait for tx valid 90 1.0 90.73 90.73 32.6 44.1
Nodes=3, Growing, fire and forget 90 0.2 437.34 n/a 201.1 204.5
Nodes=3, Growing, wait for tx valid 90 1.4 63.35 62.37 46.9 56.9
Nodes=3, Mixed, fire and forget 90 0.2 492.29 n/a 178.7 179.6
Nodes=3, Mixed, wait for tx valid 90 1.3 70.51 68.15 41.9 52.4

Nodes=1, Constant, fire and forget

Number of nodes 1
Number of txs 30
Avg. Confirmation Time (ms) 27.8
P99 28.4ms
P95 28.4ms
P50 28.0ms
Tx validation time p50 (ms) 13.0
End-to-end TPS 1045.41 tx/s
Backlog drain time (s) 0.0
Snapshots observed 2
Snapshots per second 69.69 /s
Avg txs per snapshot 15.0
Peak node RSS (MB) 143.9
Number of Invalid txs 0
Fanout outputs 2

Nodes=1, Constant, wait for tx valid

Number of nodes 1
Number of txs 30
Avg. Confirmation Time (ms) 5.7
P99 8.0ms
P95 7.5ms
P50 5.4ms
Tx validation time p50 (ms) 1.9
End-to-end TPS 172.72 tx/s
Sustained TPS 171.58 tx/s
Backlog drain time (s) 0.0
Snapshots observed 30
Snapshots per second 172.72 /s
Avg txs per snapshot 1.0
Peak node RSS (MB) 144.1
Number of Invalid txs 0
Fanout outputs 2

Nodes=1, Growing, fire and forget

Number of nodes 1
Number of txs 30
Avg. Confirmation Time (ms) 31.5
P99 32.2ms
P95 32.1ms
P50 31.9ms
Tx validation time p50 (ms) 12.3
End-to-end TPS 925.92 tx/s
Backlog drain time (s) 0.0
Snapshots observed 2
Snapshots per second 61.73 /s
Avg txs per snapshot 15.0
Peak node RSS (MB) 144.6
Number of Invalid txs 0
Fanout outputs 31

Nodes=1, Growing, wait for tx valid

Number of nodes 1
Number of txs 30
Avg. Confirmation Time (ms) 8.6
P99 11.7ms
P95 10.8ms
P50 8.3ms
Tx validation time p50 (ms) 2.5
End-to-end TPS 115.32 tx/s
Sustained TPS 115.52 tx/s
Backlog drain time (s) 0.0
Snapshots observed 30
Snapshots per second 115.32 /s
Avg txs per snapshot 1.0
Peak node RSS (MB) 144.9
Number of Invalid txs 0
Fanout outputs 31

Nodes=1, Mixed, fire and forget

Each client first grows its UTxO set (1-in to 2-out) for half of its tx budget, then contracts it back (2-in to 1-out) for the remainder.

Number of nodes 1
Number of txs 30
Avg. Confirmation Time (ms) 31.3
P99 31.9ms
P95 31.9ms
P50 31.6ms
Tx validation time p50 (ms) 10.9
End-to-end TPS 932.42 tx/s
Backlog drain time (s) 0.0
Snapshots observed 2
Snapshots per second 62.16 /s
Avg txs per snapshot 15.0
Peak node RSS (MB) 143.1
Number of Invalid txs 0
Fanout outputs 2

Nodes=1, Mixed, wait for tx valid

Each client first grows its UTxO set (1-in to 2-out) for half of its tx budget, then contracts it back (2-in to 1-out) for the remainder.

Number of nodes 1
Number of txs 30
Avg. Confirmation Time (ms) 7.8
P99 13.3ms
P95 10.1ms
P50 7.5ms
Tx validation time p50 (ms) 2.5
End-to-end TPS 126.51 tx/s
Sustained TPS 122.78 tx/s
Backlog drain time (s) 0.0
Snapshots observed 30
Snapshots per second 126.51 /s
Avg txs per snapshot 1.0
Peak node RSS (MB) 144.4
Number of Invalid txs 0
Fanout outputs 2

Nodes=2, Constant, fire and forget

Number of nodes 2
Number of txs 60
Avg. Confirmation Time (ms) 68.3
P99 69.2ms
P95 69.1ms
P50 68.4ms
Tx validation time p50 (ms) 27.2
End-to-end TPS 852.26 tx/s
Backlog drain time (s) 0.1
Snapshots observed 2
Snapshots per second 28.41 /s
Avg txs per snapshot 30.0
Peak node RSS (MB) 144.4
Number of Invalid txs 0
Fanout outputs 3

Nodes=2, Constant, wait for tx valid

Number of nodes 2
Number of txs 60
Avg. Confirmation Time (ms) 19.6
P99 35.6ms
P95 27.7ms
P50 18.3ms
Tx validation time p50 (ms) 5.5
End-to-end TPS 100.83 tx/s
Sustained TPS 100.52 tx/s
Backlog drain time (s) 0.0
Snapshots observed 60
Snapshots per second 100.83 /s
Avg txs per snapshot 1.0
Peak node RSS (MB) 145.6
Number of Invalid txs 0
Fanout outputs 3

Nodes=2, Growing, fire and forget

Number of nodes 2
Number of txs 60
Avg. Confirmation Time (ms) 88.1
P99 89.9ms
P95 89.8ms
P50 88.7ms
Tx validation time p50 (ms) 32.4
End-to-end TPS 665.16 tx/s
Backlog drain time (s) 0.1
Snapshots observed 2
Snapshots per second 22.17 /s
Avg txs per snapshot 30.0
Peak node RSS (MB) 145.3
Number of Invalid txs 0
Fanout outputs 62

Nodes=2, Growing, wait for tx valid

Number of nodes 2
Number of txs 60
Avg. Confirmation Time (ms) 26.0
P99 36.4ms
P95 33.9ms
P50 25.6ms
Tx validation time p50 (ms) 8.6
End-to-end TPS 76.08 tx/s
Sustained TPS 76.16 tx/s
Backlog drain time (s) 0.0
Snapshots observed 60
Snapshots per second 76.08 /s
Avg txs per snapshot 1.0
Peak node RSS (MB) 146.4
Number of Invalid txs 0
Fanout outputs 62

Nodes=2, Mixed, fire and forget

Each client first grows its UTxO set (1-in to 2-out) for half of its tx budget, then contracts it back (2-in to 1-out) for the remainder.

Number of nodes 2
Number of txs 60
Avg. Confirmation Time (ms) 65.6
P99 66.5ms
P95 66.4ms
P50 66.0ms
Tx validation time p50 (ms) 26.9
End-to-end TPS 894.32 tx/s
Backlog drain time (s) 0.1
Snapshots observed 2
Snapshots per second 29.81 /s
Avg txs per snapshot 30.0
Peak node RSS (MB) 145.4
Number of Invalid txs 0
Fanout outputs 3

Nodes=2, Mixed, wait for tx valid

Each client first grows its UTxO set (1-in to 2-out) for half of its tx budget, then contracts it back (2-in to 1-out) for the remainder.

Number of nodes 2
Number of txs 60
Avg. Confirmation Time (ms) 25.1
P99 37.4ms
P95 33.3ms
P50 24.3ms
Tx validation time p50 (ms) 6.6
End-to-end TPS 79.07 tx/s
Sustained TPS 76.61 tx/s
Backlog drain time (s) 0.0
Snapshots observed 60
Snapshots per second 79.07 /s
Avg txs per snapshot 1.0
Peak node RSS (MB) 146.8
Number of Invalid txs 0
Fanout outputs 3

Nodes=3, Constant, fire and forget

Number of nodes 3
Number of txs 90
Avg. Confirmation Time (ms) 131.6
P99 133.7ms
P95 133.2ms
P50 132.6ms
Tx validation time p50 (ms) 54.5
End-to-end TPS 658.53 tx/s
Backlog drain time (s) 0.1
Snapshots observed 2
Snapshots per second 14.63 /s
Avg txs per snapshot 45.0
Peak node RSS (MB) 146.3
Number of Invalid txs 0
Fanout outputs 4

Nodes=3, Constant, wait for tx valid

Number of nodes 3
Number of txs 90
Avg. Confirmation Time (ms) 32.6
P99 47.0ms
P95 44.1ms
P50 32.6ms
Tx validation time p50 (ms) 8.1
End-to-end TPS 90.73 tx/s
Sustained TPS 90.73 tx/s
Backlog drain time (s) 0.0
Snapshots observed 62
Snapshots per second 62.50 /s
Avg txs per snapshot 1.5
Peak node RSS (MB) 145.8
Number of Invalid txs 0
Fanout outputs 4

Nodes=3, Growing, fire and forget

Number of nodes 3
Number of txs 90
Avg. Confirmation Time (ms) 201.1
P99 204.6ms
P95 204.5ms
P50 202.6ms
Tx validation time p50 (ms) 61.7
End-to-end TPS 437.34 tx/s
Backlog drain time (s) 0.2
Snapshots observed 2
Snapshots per second 9.72 /s
Avg txs per snapshot 45.0
Peak node RSS (MB) 145.2
Number of Invalid txs 0
Fanout outputs 0

Nodes=3, Growing, wait for tx valid

Number of nodes 3
Number of txs 90
Avg. Confirmation Time (ms) 46.9
P99 63.4ms
P95 56.9ms
P50 47.1ms
Tx validation time p50 (ms) 11.8
End-to-end TPS 63.35 tx/s
Sustained TPS 62.37 tx/s
Backlog drain time (s) 0.1
Snapshots observed 61
Snapshots per second 42.94 /s
Avg txs per snapshot 1.5
Peak node RSS (MB) 148.2
Number of Invalid txs 0
Fanout outputs 0

Nodes=3, Mixed, fire and forget

Each client first grows its UTxO set (1-in to 2-out) for half of its tx budget, then contracts it back (2-in to 1-out) for the remainder.

Number of nodes 3
Number of txs 90
Avg. Confirmation Time (ms) 178.7
P99 180.3ms
P95 179.6ms
P50 179.1ms
Tx validation time p50 (ms) 59.5
End-to-end TPS 492.29 tx/s
Backlog drain time (s) 0.2
Snapshots observed 2
Snapshots per second 10.94 /s
Avg txs per snapshot 45.0
Peak node RSS (MB) 145.5
Number of Invalid txs 0
Fanout outputs 4

Nodes=3, Mixed, wait for tx valid

Each client first grows its UTxO set (1-in to 2-out) for half of its tx budget, then contracts it back (2-in to 1-out) for the remainder.

Number of nodes 3
Number of txs 90
Avg. Confirmation Time (ms) 41.9
P99 54.3ms
P95 52.4ms
P50 42.4ms
Tx validation time p50 (ms) 10.7
End-to-end TPS 70.51 tx/s
Sustained TPS 68.15 tx/s
Backlog drain time (s) 0.0
Snapshots observed 62
Snapshots per second 48.57 /s
Avg txs per snapshot 1.5
Peak node RSS (MB) 145.4
Number of Invalid txs 0
Fanout outputs 4

@noonio noonio left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Wow great; thanks for noticing this @vrom911 !

@noonio
noonio merged commit f12b604 into master Jul 27, 2026
38 checks passed
@noonio
noonio deleted the vrom911/specIsComplete-tests branch July 27, 2026 07:34
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.

2 participants