development-history-acceptance.json
docs/evidence/development-history-acceptance.json
1{
2 "date": "2026-10-25",
3 "baseCommit": "03f35c6",
4 "capability": "Lossless bounded development revision history",
5 "fullPlanEstimatePercent": 52,
6 "verification": {
7 "headless": {
8 "passed": 16,
9 "failed": 0,
10 "files": [
11 "tests/development-archive.test.ts",
12 "tests/development-room.test.ts",
13 "tests/revision-coordinator.test.ts"
14 ],
15 "log": "development-history-tests.tap"
16 },
17 "browser": {
18 "passed": 3,
19 "failed": 0,
20 "file": "tests/browser/development-room.spec.ts",
21 "results": "development-history-browser.json"
22 },
23 "typeAndBoundaries": "passed (99 package files)",
24 "productionBuild": "player and engine bundles built by isolated browser harness"
25 },
26 "proof": [
27 "Forty accepted live revisions and restart preserve the current head and original offline source",
28 "Legacy JSON compacts losslessly; interrupted dual formats reconcile",
29 "Injected open, file fsync, rename, directory fsync, unlink and removal directory fsync failures retain recoverable source",
30 "Count and byte limits preserve existing snapshots; retained publication remains idempotent",
31 "Corrupt compressed data, expansion beyond 16 MiB, checksum mismatch and unsafe symlinks rejected",
32 "Two real browsers retain shared journey across applied/rejected/corrected edits",
33 "Offline browser resumes after 36 updates; lost commit reconnect retains journey"
34 ],
35 "measurement": {
36 "fixture": "gardenFerry initial document",
37 "canonicalSourceBytes": 371464,
38 "gzipBytes": 46568,
39 "compressionLevel": 6
40 },
41 "visual": "development-history-editor.png",
42 "limits": [
43 "1024 unique snapshots and 256 MiB stored history; no automatic eviction",
44 "No arbitrary engine/schema migration or unlimited retention",
45 "Injected synchronous storage exceptions and restart are not physical power-loss proof",
46 "No complete roadmap milestone closed"
47 ]
48}
49