test: property-based tests for protocol-shaped code (RFC 001)

Adds fast-check + one tests/properties.spec.ts per protocol-shaped package
(llm/BlockAssembler, session, tools/schema DSL, agent-loop scheduling). The
tools suite includes the RFC 001<->005 composition property (generated args
satisfying a spec pass validateArgs), closing the validator/InferArgs drift
risk from ADR 0011. Loop properties are deterministic (settle on agent/status,
no sleeps).

The BlockAssembler suite found a real bug on first run: a duplicate block-end
at the same index overwrote an already-flushed block, so the streamed prefix
disagreed with final blocks(). Fixed (first close wins, matching the existing
straggler rule) + regression test. Graduates RFC 001 -> ADR 0013.
This commit is contained in:
Tianyi Cui
2026-06-14 00:06:25 +08:00
parent 89e63f1436
commit 2f6d3b8539
12 changed files with 601 additions and 2 deletions

View File

@@ -32,6 +32,7 @@
"@vitest/coverage-v8": "^4.1.8",
"@yarnpkg/types": "^4.0.1",
"eslint": "^10.4.1",
"fast-check": "^4.8.0",
"knip": "^6.16.1",
"lefthook": "^2.1.9",
"publint": "^0.3.21",