# Copyright © Albert Lane. All Rights Reserved.
# Proprietary and Confidential — Albert Lane Proprietary Software License.
# Unauthorized use, copying, modification, or distribution is prohibited.
# License inquiries: https://albertlane.net
# t1237 test run (t1239 wording update), Tue Nov 10 2026 3:59 PM PST (box time, America/Los_Angeles). Keys in this run were throwaway TEST ONLY keys.
# Command: python3 tests/test_all.py

[PASS] valid 2-of-2 MEM_WRITE executes — [SENTRY] *** TEST ONLY configuration (throwaway keys) ***
[PASS] valid 4-packet program (write, compute 6*7, read, sink) — [EXEC] packet 2: MEM_WRITE [159156]=5 | [EXEC] packet 3: COMPUTE mul -> [176840]=42 | [EXEC] packet 4: MEM_READ [176840]=42 | [EXEC] packet 5: IO_SINK "Albert and Robot Don't Fuck Around"
[PASS] missing robot_sig -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 10 | reason=missing signature: robot | prev=d6e41ae316a9416f595bc981a0ca6ae20177b4433efb9843ea34025bc67a314b | hash=c92b3925
[PASS] missing human_sig -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 11 | reason=missing signature: human | prev=c92b3925fc6f99a7a6e60383436f56be4e8a7d3aee8b46f982300733a3a09635 | hash=a0f730e3
[PASS] wrong human signer (attacker key) -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 12 | reason=cryptographic mismatch: human=wrong signer 0x25692c57a885cdf4b4f63df6d86e50100149d020 robot=ok | prev=a0f730e3c3
[PASS] wrong robot signer (attacker key) -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 13 | reason=cryptographic mismatch: human=ok robot=wrong signer 0x25692c57a885cdf4b4f63df6d86e50100149d020 | prev=5d70ef7dbf
[PASS] robot slot signed by Albert's key (one key cannot be both) -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 14 | reason=cryptographic mismatch: human=ok robot=wrong signer 0x4891bbae0dc60288366e308d926ff363dbd982b3 | prev=347da3ece0
[PASS] tampered instruction after signing -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 15 | reason=cryptographic mismatch: human=wrong signer 0x8f979e785988be111aeb3d172a8caa713147a68c robot=wrong signer 0xa8c52
[PASS] tampered human_sig -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 16 | reason=cryptographic mismatch: human=wrong signer 0xc2e38bb0e8c8883bd293f318072f12859c6ea9e9 robot=wrong signer 0xe0e4a
[PASS] tampered payload -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 17 | reason=cryptographic mismatch: human=wrong signer 0x07cd23a4e61fc162d016924fc9223dde3b6f006a robot=ok | prev=8a1f119e2d
[PASS] tampered packet_id -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 19 | reason=cryptographic mismatch: human=wrong signer 0x6466373d78c45c52114993041303d1fbdded5013 robot=ok | prev=a7e4d5c145
[PASS] high-s (malleated) robot_sig -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 20 | reason=cryptographic mismatch: human=ok robot=high-s signature rejected | prev=0118f99ac2f851a289c30b4b0b21d46b389ce767
[PASS] truncated 64-byte robot_sig -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 21 | reason=cryptographic mismatch: human=ok robot=signature must be 65 bytes (got 64) | prev=5422dbe8efa41c6f888be796a5a7c1
[PASS] replayed packet_id 1 (already executed) -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 1 | reason=replay: packet_id already executed | prev=da409c01523a9ebf3ecd6a3aeb0a6b77830cfcc6bb8274745a8b54ae628179e8 | hash
[PASS] SYS_CALL with valid 2-of-2 is still refused -> ORPHAN — rc=1 tombstone: ORPHAN_BLOCK | Packet ID: 22 | reason=SYS_CALL refused: no state extraction | prev=f46c61531648a0ddb65562b3f4bda877eb081496aaf3ca14ae10ad3471ddc3ea | 
[PASS] empty ALBERT_ADDRESS -> host refuses to run (exit 3) — [SENTRY] REFUSING TO RUN: ALBERT_ADDRESS is empty or invalid; Albert Lane must supply his signing address. Refusing to r
[PASS] placeholder '0x...' ALBERT_ADDRESS -> refuses (exit 3)
[PASS] robot address override without TEST_ONLY=1 -> refuses (exit 3) — [SENTRY] REFUSING TO RUN: ROBOT_ADDRESS differs from Robot's own address 0xc136…16DF6; only allowed with TEST_ONLY=1
[PASS] aros_chain.txt hash chain verifies end to end — 18 blocks, head d8325b63e9d0d95b…
[PASS] Robot refuses to start without ROBOT_PRIVATE_KEY — ROBOT_PRIVATE_KEY is not set: Robot's key for 0xc136aB7d8775F58253f3C10C1af93cBB9ff16DF6 i
[PASS] Robot refuses a key that is not 0xc136…16DF6
[PASS] Robot refuses empty ALBERT_ADDRESS
[PASS] Robot: APPROVED -> CONSENSUS_REACHED, approver logged — {"status": "CONSENSUS_REACHED", "robot_sig": "42f9821cb620763d729ad4f6c080c5269e623646e86ff238f0db5d419d8e98dd0c153e2a4d89674b21537d278703c0
[PASS] Robot's signature accepted by C++ Sentry (Python->C++) — [SENTRY] *** TEST ONLY configuration (throwaway keys) ***
[PASS] Robot: REJECTED reply -> ORPHAN_STATE + tombstone — REJECTED: state extraction
[PASS] Robot: non-strict reply -> ORPHAN_STATE + tombstone — REJECTED: malformed validator reply: Sure! I think this is APPROVED
[PASS] Robot: malformed JSON shape -> ORPHAN_STATE + tombstone — REJECTED: validator failure - KeyError
[PASS] Robot: HTTP 500 -> ORPHAN_STATE + tombstone — REJECTED: validator HTTP 500
[PASS] Robot refuses human_sig not from Albert (validator never asked)
[PASS] validator unreachable -> REJECTED — REJECTED: validator failure - ConnectionError
[PASS] no XAI_API_KEY / no CF token -> NoValidator rejects
[PASS] model name configurable (GROK_MODEL)
[PASS] JS core verifies Python human_sig and re-encodes byte-identically — {"js_human_signer":"0x4891bbae0dc60288366e308d926ff363dbd982b3","js_robot_addr":"0x9dd61bc7df37ad4caa1581879e1703a263db2d9a","h_human":"10cf90be506f4f4546c21694
[PASS] JS robot_sig accepted by C++ Sentry (JS->C++) — [SENTRY] *** TEST ONLY configuration (throwaway keys) ***
[PASS] KAT Python: key 1 derives to 0x7E5F…5Bdf
[PASS] KAT JS: key 1 derives to 0x7E5F…5Bdf — 0x7e5f4552091a69125d5dfcb7b8c2659029395bdf
[PASS] KAT C++: ecrecover of key-1 signature = 0x7E5F…5Bdf (Sentry accepts) — [SENTRY] *** TEST ONLY configuration (throwaway keys) ***
37/37 passed. (TEST ONLY artifacts kept in a temp dir)
