REPOSITORY SOURCE

control-acceptance.json

docs/evidence/control-acceptance.json

1{
2  "capability": "PostgreSQL control service for durable item ownership and same-room place travel",
3  "approximate_full_plan_percent": 61,
4  "integration": "Standalone internal service. Playable relay still uses existing fsynced files; browser integration remains incomplete.",
5  "database": {
6    "version": "PostgreSQL 18.6",
7    "tests_passed": 7,
8    "tests_failed": 0,
9    "duration_ms": 3433.021833,
10    "command": "npm run test:control",
11    "evidence": "control-postgres.tap",
12    "crash_matrix": {
13      "commands": [
14        "pickup",
15        "travel with owned item"
16      ],
17      "boundaries": [
18        "state mutated",
19        "receipt inserted",
20        "outbox inserted",
21        "before commit",
22        "commit completed before response",
23        "receipt acknowledged"
24      ],
25      "process_kills": 12
26    },
27    "verified": [
28      "One winner from concurrent item claims",
29      "Exact operation retries return original receipts; altered payloads reject",
30      "Live lease ownership, stale epochs and expiry during a transaction",
31      "Single committed player/inventory snapshot with exact content and engine identity",
32      "Ordered durable outbox, cursor compare-and-set and missing-range rejection",
33      "Immutable room release and migration checksum drift rejection",
34      "HTTP authentication, browser Origin rejection, no response before commit",
35      "Abrupt database restart and pg_dump/pg_restore preserve acknowledged receipt, item ownership, release and outbox",
36      "Compiled production entry point accepts container-style database environment and shuts down cleanly"
37    ]
38  },
39  "engine_regression": {
40    "passed": 599,
41    "failed": 0,
42    "database_tests_skipped": 6,
43    "evidence": "control-engine-regression.tap",
44    "scope": "Full engine suite before the final database-only checks were expanded to seven cases; those seven all passed independently."
45  },
46  "checks": [
47    "TypeScript and package boundaries: 121 source files",
48    "Production SSR control build",
49    "Compose configuration validation"
50  ],
51  "measurement": "control-recovery.json",
52  "container": {
53    "configuration": "compose.control.yaml",
54    "volume": "darkwind-control-db mounted at /var/lib/postgresql",
55    "public_ports": false,
56    "local_runtime_test": "Unavailable: Docker socket permission denied and sudo requires a password. Native PostgreSQL and built service startup verified instead.",
57    "ci": "Disposable Compose build/start/health smoke configured; remote result not yet asserted."
58  },
59  "initial_failures": [
60    {
61      "cause": "Release storage initially used the existing fingerprint envelope rather than a world object.",
62      "fix": "Persist and hash exact canonical world source plus engine identity; verify on read."
63    },
64    {
65      "cause": "Database restart test omitted the temporary socket and no-TCP options used at startup.",
66      "fix": "Preserve those options for restart; retain the temporary server log before cleanup."
67    }
68  ],
69  "remaining": [
70    "Playable relay integration and file-state migration",
71    "Account/session identities and authorization beyond internal host credential",
72    "Server validation of predicted movement and destination readiness",
73    "Shared flags/doors, durable containers, trades, rewards and removed-object recovery storage",
74    "Object-store adapter and full engine bundle backup/restore",
75    "Cross-host travel coordination",
76    "Measured production RPO/RTO and five-second motion checkpoint policy",
77    "Outbox delivery to clients and retention/compaction",
78    "No numbered roadmap milestone closed; final character art deferred"
79  ]
80}
81