sots-re/campaign/runtime/decisions/d-b51f3f76803e852ed250846a.json

121 lines
9 KiB
JSON

{
"actor": "live-record surprise resolver",
"contract": "research-completion-abi",
"explanation": "Astra resolution, session run-f63d1e050a7ee3fac7b44885. OBSERVATION/PROVENANCE: reviewed complete raw get/create and append windows in verify/results/research-live-record-bridge/run-472955e277202c411388c66b; checkpoint d08b4bbf364f3305ee2fef98 rehashed manifest ae16b4b500db5b84bea27c659e254842ab0c67c040ca782c016381384338773b and both stdout artifacts to their recorded hashes. Historical capture manifest binds sots.exe 970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841 and objdump 1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd with positive nonempty exit-zero static execution. Current binary/tool were not rehashed or rerun: resolver shell denies that operation. Worktree HEAD/common directories match baselines; dirty content is not inferred from HEAD. No game or hook ran; read-only disassembly introduces no runtime instrument effects. No stale-build or game-mechanism diagnosis is justified.\nOVERTURNED, exact captured normal miss-path domain: temporary EvTurn is initialized to zero, and append necessarily copies zero (recovered-static.md lines 68-69). Complete entry has no call before append and no store to EBP-0x20: prologue writes SEH at -4/-8/-c, stack reservation does not initialize locals, saved registers/cookie are below -24; miss stores vptr at -24, nested pointers at -1c/-18/-14 and EH state at -4. ECX names receiver+4. Append external-source branch loads source+4 at 0x884d62 and stores destination+4 at 0x884d6c, then nested-copy, then advances last at 0x884d78. Temporary nested cleanup at 0x885422 precedes requested-turn store to last-0x14 at 0x88542d.\nSURVIVES in those static windows for valid containers and normally returning helpers: ECX receiver/one stack argument/ret4/EAX bucket ABI; full last-match scan; vptr and empty nested-header initialization; scalar EvTurn copy distinct from nested deep-copy; cleanup of temporary nested vector; final new bucket turn equals requested turn and EAX=last-0x18. Existing unrelated ObservedTech, PlayerEvent equality and archived-state measurements are not falsified by this finding.\nQUALIFIED: transient EvTurn is an incoming stack word not initialized by this routine, not a measured random value or necessarily nonzero. Post-return semantics are statically usable only on successful normal paths with valid allocations; no conclusion about failure, reentrancy, transient observers, live allocator safety or all-byte/padding equivalence. Deep-copy/unwind outside inspected empty nested path retain prior static-only scope, not newly reproduced runtime coverage. Complete 0x18 layout must distinguish semantic fields from uninitialized/padding bytes, not invent defaults.\nINVALIDATION: controls withdraw both current integrated evidence records research-completion-abi-static-run-79357a65226f61d6a86c042d and research-completion-abi-validation-run-735fcb8f4876c10285b03fad and their verdict/checkpoint as acceptance, retaining raw historical measurements. ownership-recovered and independent-cross-check must be re-established against corrected interpretation; archived-state byte claims themselves are not overturned. No silent criterion waiver.\nREVISED SCOPE/NEXT: lead assigns the ABI owner a read-only identity/reproduction-and-correction quantum, then independent integrated verification and normal reacceptance. Generated row wording: On miss, initializes TurnEvents vptr and three nested-vector pointers; temporary EvTurn at +4 is not initialized by this routine. Append copies that incoming word, deep-copies nested vector and advances last. After temporary nested-vector cleanup, get/create writes requested turn into stored last element and returns it. Normal-return static semantics only; transient word, padding and failure effects are not runtime-certified. No source edits made by resolver. Bridge and replacement readiness remain gated by reaccepted ABI and all existing runtime criteria. Integrator must link this decision and regenerate projections after integration, not copy another history onto board.",
"id": "d-b51f3f76803e852ed250846a",
"invalidated_checkpoint": "campaign/runtime/checkpoints/research-completion-abi-d2e4078886c66df34ee00b24.json",
"invalidated_evidence": [
{
"axis": "static-recovery",
"binaries": [
{
"path": "dumps/sots.exe",
"sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841"
}
],
"id": "research-completion-abi-static-run-79357a65226f61d6a86c042d",
"inputs": [
{
"path": "verify/results/research-completion-abi/run-79357a65226f61d6a86c042d/report.md",
"sha256": "d5a28f01002f1711cf8575ffd817a8f0998b413c6280d656e6cdad5a90a04477"
}
],
"integrated": true,
"outcomes": [
{
"artifact": {
"path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json",
"sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c"
},
"criterion": "ownership-recovered",
"status": "pass"
}
],
"path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json",
"sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c",
"source": {
"engine": {
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
"path": "/home/alex/sots-engine"
},
"re": {
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
"path": "/home/alex/sots-re"
}
},
"source_binding": {
"engine": {
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
"path": "/home/alex/sots-engine",
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd"
},
"re": {
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
"path": "/home/alex/sots-re",
"sha256": "e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4"
}
}
},
{
"axis": "validation",
"binaries": [
{
"path": "dumps/sots.exe",
"sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841"
}
],
"id": "research-completion-abi-validation-run-735fcb8f4876c10285b03fad",
"inputs": [
{
"path": "verify/results/saves/turn3-state.sav",
"sha256": "978041acd168b56ed8eb3f5e42e78d5e70eae6e6517d75e659a5eb7ca3d60921"
},
{
"path": "verify/results/research-completion-abi-independent/integration-lead-20260910/manifest.json",
"sha256": "4fdf2cbf02f0f3dd53c4ccfd1787a2fb8012d0de76dad63e97c2b5cfbdc6c46c"
}
],
"integrated": true,
"outcomes": [
{
"artifact": {
"path": "verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json",
"sha256": "6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433"
},
"criterion": "independent-cross-check",
"status": "pass"
}
],
"path": "verify/results/research-completion-abi-independent/integration-lead-20260910/independent-state.json",
"sha256": "6463816f322803b2b7b479e1fc116c4ffa33fb2772a3005d492422a00acea433",
"source": {
"engine": {
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
"path": "/home/alex/sots-engine"
},
"re": {
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
"path": "/home/alex/sots-re"
}
},
"source_binding": {
"engine": {
"commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23",
"path": "/home/alex/sots-engine",
"sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd"
},
"re": {
"commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7",
"path": "/home/alex/sots-re",
"sha256": "e74ef6cff202ee35a6fdc38d63842b4826a074e34502dfc2981a33ffea912bd4"
}
}
}
],
"model": "openai/gpt-6-astra",
"probe": "Cheapest discriminator is read-only complete-window def/use review, performed on hash-checked archived get/create and append text here; no pre-append EBP-0x20 store exists. Before corrected acceptance, authorized analyst freshly hashes binary/tool and repeats manifest argv for those two windows plus nested empty-copy/cleanup, explicitly checks prologue stack offsets and cleanup-before-final-store order; independent verifier reproduces the corrected integrated package. No VM is needed for this interpretation repair. If transient runtime equivalence is later required, separately approve a leased fixture with two deliberately distinct initialized stack sentinels and spare/full capacity, pre/post-store observations and neutral controls; it is not authorized or executed here.",
"role": "resolver",
"schema": "sots-decision/1",
"surprise": "s-c6786945b302de2a0b629960",
"timestamp": "2026-09-10T04:19:02.935461+00:00"
}