keepsakes-acceptance.json
docs/evidence/keepsakes-acceptance.json
1{
2 "recordedAt": "2026-10-25T14:58:26.239391+00:00",
3 "baseCommit": "9a6ab5f7f73de5a87ec989fbd6298070fd8db764",
4 "scope": "Owner-private keepsake entities and atomic host-verified action rewards; full engine milestones remain open",
5 "fullPlanEstimatePercent": 67,
6 "sourceSha256": {
7 "apps/player/main.ts": "3334c40006f166ad17a12cdd905b7355a0eacfc3340053996e3b24f542365b38",
8 "apps/player/style.css": "2fb5ca7f7e66e0296193df862ec5cdd1c52353ee438daf3603eddd65e735c297",
9 "games/darkwind/trusted-world.ts": "bffcb0c060f9ccafc72cfe0a8505773692ed75746b454e6c06ac001207a34ee5",
10 "packages/authoring/index.ts": "c116b7a80081c1a23842f54d26a3ec107b022f84d74dc71c96957e91bf19f5d2",
11 "packages/authoring/observations.ts": "8ea8448dcdf16055cf27122a096e021fa3073fc00a8d4663d7310ec2bce05d2a",
12 "packages/authoring/undo.ts": "951da1090c39ef296d85c1ea2bc41de90e4fc07a531b37a86145e286c269e93d",
13 "packages/compiler/index.ts": "bea6568375feae40495adcd9d50aecd8fbdb58d9327da309c683eeb84ab0b3d5",
14 "packages/net/durable.ts": "9b9c953bbe7d653a7e01780ec172c86fd8e560faa22170f91ea30756bc06a36f",
15 "packages/net/replication.ts": "3b7b0309beb5c46fd5c5895969bd7567bd01462b6638df2ca082d9eb8ac1b7fc",
16 "packages/schema/index.ts": "8fb357b85f5af12a27585c228db3639d3207dec99868e7b59039fe8325fea024",
17 "packages/schema/rewards.ts": "c43f541797effc2d863b08e9c6950749eeb3b7ef4c90cc57564459b4d23daec6",
18 "packages/simulation/checkpoint.ts": "7a33cb7a678fee59b7b26d2426b5c4f68e197955263d6ae02869fb13d5a7e465",
19 "services/backup/index.ts": "7cb32e546705eb81a701c603fd4b9783d9557f02d60a45724c6016ae7b3a5356",
20 "services/backup/manifest.ts": "791f13b74b594d91e134a49a86a2049f8f2f7cf6a18fca6f30cf4b3e2aca9404",
21 "services/backup/snapshot.ts": "948c2b75f932ef17202b30e323937777fffa767e2335693b984a9cf044cbadca",
22 "services/control/ledger.ts": "ebe72db09ea9ce913de409ba34ce83b96e60111453a7277193bea8063a088cfa",
23 "services/control/migrations.ts": "79db2aba9ef0af1ad38cc2678c30a0945631123738b93c6326144a26dc6deb47",
24 "services/control/upgrade-plan.ts": "7d199ff52156229e32ab04de19e0cf3f823cdb0ff4dd2bc595b400995948f531",
25 "services/sim-host/private-state.ts": "d56c7f81dea5c9d4706c35eb559d4a74d5ac8862738303f5de7a3fe5588e2f0c",
26 "tests/backup.test.ts": "3c88053c46c4278e958260325d5a1a595f6193f542b696c1147ee6f968b50cb4",
27 "tests/browser/persistent.spec.ts": "0523ffc4d90da127df5fdde2995d0e2ac69c1829301511183448c61ac71fd57f",
28 "tests/browser/trusted-latency.ts": "feaf24a92a5ba2c8cb3501dd1a6b6896cfb2e0855b0f4afb8270a13c5e208bc6",
29 "tests/control-upgrades.test.ts": "740461af5c49c905735c641f81fc9334ae359efd0d0ebe4d868135744f10afa3",
30 "tests/fixtures/control-crash.ts": "b57f98e79418e8dcefa02bb577d8a78c36f56982079ca100ed94213566368092",
31 "tests/fixtures/seed-persistent-browser.ts": "92ec21e4b232d6e3f367f0b4158be987ae45d893366898715cab7fa6bf7f5c81",
32 "tests/private-replication.test.ts": "39b4ed26a94b32c07d549dae928d6573df1b3dc8249e827107510e353befee61",
33 "tests/rewards.test.ts": "d29b0751b253c85119a7d905c37322ec092a7bc288670e9c676285d712749a44",
34 "tests/trusted-room.test.ts": "a2da7b8066addce706ae93f0839a73aa3169c52cee78adac48e609941e5e2062",
35 "tools/cli/test-control.mjs": "86a6e878e371232cda3f5e2d36a5fd65f4ce56657b4ae5fa45db3612b663ef24"
36 },
37 "worldFormat": 13,
38 "compiler": "reward-world.13",
39 "databaseSchema": 5,
40 "headless": {
41 "tests": 652,
42 "pass": 620,
43 "fail": 0,
44 "skipped": 32
45 },
46 "control": {
47 "tests": 33,
48 "pass": 33,
49 "fail": 0,
50 "skipped": 0
51 },
52 "typeAndImports": "passed, 127 source files",
53 "trustedBrowser": {
54 "durationMs": 99753.809,
55 "journey": {
56 "transport": {
57 "sent": 72,
58 "received": 138,
59 "minSendDelayMs": 75,
60 "minReceiveDelayMs": 75,
61 "droppedCaptures": 0,
62 "closes": []
63 },
64 "privateKeepsakes": 1,
65 "privateTrafficVerified": true,
66 "gardenTravelMs": 4670.602619999998,
67 "addedRoundTripLatencyMs": 150,
68 "actor": "0fc831ee-4e3a-44cb-ad75-aa9df06f2b22",
69 "place": "sanctuary",
70 "revision": "19",
71 "inventory": [
72 "keeper-lantern"
73 ],
74 "otherTraveler": "8c48cb3b-0fc1-4d5b-a5df-22670f3a30f0",
75 "errors": []
76 }
77 },
78 "cooperativeBrowser": {
79 "durationMs": 94091.417,
80 "journey": {
81 "transport": null,
82 "privateKeepsakes": 0,
83 "privateTrafficVerified": false,
84 "gardenTravelMs": 3714.7610959999947,
85 "addedRoundTripLatencyMs": 0,
86 "actor": "b21d25c6-3d09-4206-999a-4700606488c5",
87 "place": "sanctuary",
88 "revision": "22",
89 "inventory": [
90 "keeper-lantern"
91 ],
92 "otherTraveler": "c6735e2d-5126-4e9d-8139-e599864127d9",
93 "errors": []
94 }
95 },
96 "recovery": [
97 "six application process-kill transaction boundaries",
98 "PostgreSQL immediate stop before commit and after commit before acknowledgement",
99 "owner restoration after room restart and simulation-worker recovery",
100 "exact award and audit rows after backup restore",
101 "award metadata retained after definition removal in stopped-room content upgrade",
102 "schema-4 occupied database refuses automatic schema-5 upgrade"
103 ],
104 "privacy": [
105 "entity audience intersected with component visibility before encoding",
106 "server/local component values and unused descriptors omitted",
107 "other actor socket/session capture excludes award UUID, owner metadata and audit operation",
108 "production browser second-traveler capture excludes award UUID and audit operation"
109 ],
110 "priorFailedRuns": [
111 {
112 "log": "/tmp/dw-keepsakes-browser.log",
113 "reason": "Five-second garden travel assertion expired; subsequent capture showed garden reached with no socket closes/errors."
114 },
115 {
116 "log": "/tmp/dw-keepsakes-browser-final.log",
117 "reason": "All gameplay assertions completed; context/trace cleanup failed with unexpected file-stream bytes. Browser test file had been edited while running; final run freezes sources and drains routes before closing."
118 }
119 ],
120 "limitations": [
121 "static-world authoritative host only",
122 "component visibility, not arbitrary nested-field redaction",
123 "shared lantern/chest ownership remains public",
124 "return credentials are not anti-abuse accounts; no monetary economy",
125 "keepsakes are nontransferable and not equippable",
126 "no cross-schema upgrade path; dedicated schema-5 database needed",
127 "Docker host, remote CI and broad device/load qualification not established",
128 "character model redesign remains deferred to final polish"
129 ]
130}
131