{ "schema": "sots-live-record-static-capture/1", "session": "run-a247a9d6650d9e0954596cc0", "model": "openai/gpt-5.6-sol", "actor": "live-record bridge architect", "role": "architecture-review", "scope": "Read-only ObservedTech constructor, scalar-deleting destructor, and vtable-slot capture; planning evidence only, not live allocator-safety evidence.", "source": { "engine": { "path": "/tmp/opencode/sots-final-research-engine", "commit": "7741d42fc5e4e761e6449bdaf0e4a61d00036a23", "sha256": "ccd8e02083e8d2e2b3e97976ace2273c8f924dfc02a39e919004eaf3544c50fd" }, "re": { "path": "/tmp/opencode/sots-final-research-re", "commit": "3bfde5a70d874a723e797a695bbd847fd82c0aa7", "sha256": "6696fd5201e144843617cbf6d78b41b5287ad5dcc9fa1e8aaa861d52b64e72e8" } }, "binary": { "path": "dumps/sots.exe", "sha256": "970b7de729956a53094c7eb98aba4270aee98e2fed5daf0d39e290013c90c841", "image_base": "0x00400000" }, "tool": { "path": "/usr/bin/objdump", "version": "GNU Binutils 2.38", "sha256": "1eaaef2e7f57c4c7f69115c495e2466f5a8c8e5f3bc42221d092382f30f9d4cd" }, "captures": [ { "name": "observed-ctor", "argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x008562a0", "--stop-address=0x0085630d", "dumps/sots.exe"], "returncode": 0, "stdout": {"path": "verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-ctor.stdout.txt", "bytes": 2086, "sha256": "402267f37b84f516b329764296600a19921c9cbafabd696a3fb00ff1891601fd"}, "stderr": {"path": "verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-ctor.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} }, { "name": "observed-dtor", "argv": ["/usr/bin/objdump", "-D", "-Mintel", "--start-address=0x00793610", "--stop-address=0x00793653", "dumps/sots.exe"], "returncode": 0, "stdout": {"path": "verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-dtor.stdout.txt", "bytes": 1320, "sha256": "2e35acb290eb5afe6a1780e4d9bab70a80f407955c9f87e7d7ebcd72be7dcc2c"}, "stderr": {"path": "verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-dtor.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} }, { "name": "observed-vtable", "argv": ["/usr/bin/objdump", "-s", "--start-address=0x00a24390", "--stop-address=0x00a243ac", "dumps/sots.exe"], "returncode": 0, "stdout": {"path": "verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-vtable.stdout.txt", "bytes": 195, "sha256": "4e487adaf5648a071ea3e11c8f4cdfaddf6ee4e76aba599f7e0a0154317fcdce"}, "stderr": {"path": "verify/results/research-live-record-bridge/run-a247a9d6650d9e0954596cc0/observed-vtable.stderr.txt", "bytes": 0, "sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"} } ], "observations": { "constructor": "VA 0x008562a0 consumes ECX=this, no stack arguments, returns this in EAX, and ends in plain ret. It installs vptr 0x00a2439c, initializes the embedded string at +0x0c, then zeros +0x04, byte +0x08, and +0x28.", "destructor": "VA 0x00793610 consumes ECX=this and one flags stack word, returns this in EAX, and ends ret 4. It frees the name buffer through 0x00924faa only when capacity at +0x20 is at least 0x10, resets the string, writes base vptr 0x009e22bc, and frees this only when flags bit 0 is set.", "vtable": "Little-endian words at vtable VA 0x00a2439c are slot 0 = 0x00793610, slot 1 = 0x00817c40, slot 2 = 0x00817cf0; the preceding COL word at 0x00a24398 is 0x00a81c78.", "embedded_rule": "Bridge destruction of stack, vector-element, or otherwise embedded ObservedTech values must invoke slot 0 with flags=0. Accepted dependency capture observed-realloc-wide.stdout.txt positively exposes push 0 followed by slot-0 virtual dispatch for old vector elements." }, "limitations": [ "No original function was executed; this is static ABI planning evidence.", "No allocator failure, destruction, VM, game process, or bridge path was exercised.", "The destructor stop address is the first byte after its complete ret 4 encoding." ] }