approve: [M11b-2c-T2-b] 产出 code_files.md 文件清单(实测字节数+行号锚点,禁占位/禁自指尺寸)

This commit is contained in:
agent.develop 2026-09-22 20:40:27 +08:00
parent 779d78cec5
commit 467d705576

View File

@ -16,98 +16,92 @@ c._default_clause = patched
e = c.RuntimeEngine() e = c.RuntimeEngine()
c.install(e) c.install(e)
r = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="unit.move",
payload={"dx": 1}, state_updates=[{"entity_id": "e1", "state": {"hp": 2}}],
client_event_id="ev-1", actor_id="u1")
print("R1", r)
print("trace", c.trace_kinds(e))
print("counts", e.count(c.EVENT_TABLE), e.count(c.STATE_TABLE))
print("updates", c.update_statements(e))
print("inserts_event", len(c.insert_statements(e, c.EVENT_TABLE)))
print("broadcasts", len(e.broadcasts), e.broadcasts[0]["channel"] if e.broadcasts else None)
print("read", c.read(tenant_id=7, session_id=22))
e.seed_state(7, 22, "e9", '{"hp":1}', state_version=3)
r2 = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="unit.move",
payload={"dx": 2}, state_updates=[{"entity_id": "e9", "state": {"hp": 5}}],
client_event_id="ev-2", actor_id="u2", base_version=3)
print("R2", r2)
print("state row", e.query("SELECT * FROM pbl_entity_state WHERE entity_id='e9'"))
print("stmt counts r1/r2", r["stmt_count"], r2["stmt_count"])
def ts(i):
return "2026-06-01 00:%02d:%02d" % (i // 60, i % 60)
def show(tag, r):
print(tag, "keys", sorted(r.keys()))
print(tag, {k: r.get(k) for k in ("ok", "dedup", "event_id", "event_uid", "seq",
"state_rows", "stmt_count", "channel", "cursor",
"sla_breach", "states")})
r1 = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="unit.move",
payload={"dx": 1}, state_updates=[{"entity_id": "e1", "state": {"hp": 2}}],
client_event_id="ev-1", actor_id="u1", occurred_at=ts(1))
show("R1", r1)
# dedup: same client_event_id
before = (e.count(c.EVENT_TABLE), e.count(c.STATE_TABLE))
r3 = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="unit.move", r3 = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="unit.move",
payload={"dx": 2}, state_updates=[{"entity_id": "e9", "state": {"hp": 9}}], payload={"dx": 2}, state_updates=[{"entity_id": "e1", "state": {"hp": 9}}],
client_event_id="ev-2", actor_id="u2") client_event_id="ev-1", actor_id="u2", occurred_at=ts(2))
print("R3 dedup", r3) show("R3dedup", r3)
print("counts after dedup", e.count(c.EVENT_TABLE), e.count(c.STATE_TABLE)) print("counts", e.count(c.EVENT_TABLE), e.count(c.STATE_TABLE), before,
print("trace", c.trace_kinds(e)) "bcast", len(e.broadcasts), "trace", c.trace_kinds(e))
print("broadcasts n", len(e.broadcasts))
# conflict
try: try:
c.apply(tenant_id=7, world_id=11, session_id=22, event_type="unit.move", c.apply(tenant_id=7, world_id=11, session_id=22, event_type="unit.move",
payload={"dx": 3}, state_updates=[{"entity_id": "e9", "state": {"hp": 99}}], payload={"dx": 9}, state_updates=[{"entity_id": "e1", "state": {"hp": 99}}],
client_event_id="ev-4", base_version=1) client_event_id="ev-4", occurred_at=ts(4), base_version=1)
print("CONFLICT NOT RAISED")
except Exception as exc: except Exception as exc:
print("CONFLICT", type(exc).__name__, getattr(exc, "code", None), str(exc)[:140]) print("CONFLICT", type(exc).__name__, getattr(exc, "code", None), str(exc)[:130])
print("trace tail", c.trace_kinds(e)[-4:]) print("trace tail", c.trace_kinds(e)[-3:], "counts", e.count(c.EVENT_TABLE), e.count(c.STATE_TABLE))
print("counts after conflict", e.count(c.EVENT_TABLE), e.count(c.STATE_TABLE)) print("state now", e.query("SELECT state_version, state_json FROM pbl_entity_state"))
print("state after conflict", e.query("SELECT state_version FROM pbl_entity_state WHERE entity_id='e9'"))
r5 = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="snap", # snapshot
payload={}, state_updates=[], client_event_id="ev-5", r5 = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="snap", payload={},
snapshot={"reason": "reconnect", "entities": {"e9": {"hp": 5}}}) state_updates=[], client_event_id="ev-5", occurred_at=ts(5),
print("R5", {k: r5[k] for k in ("ok", "seq", "state_rows", "stmt_count", "channel")}) snapshot={"reason": "reconnect", "entities": {"e1": {"hp": 5}}})
print("snap count", e.count(c.SNAPSHOT_TABLE)) show("R5", r5)
print("snap", e.count(c.SNAPSHOT_TABLE))
try: # multi-state updates + seed_state
c.apply(tenant_id=None, world_id=11, session_id=22, event_type="x") e.seed_state(7, 22, "e9", '{"hp":1}', state_version=3)
except Exception as exc: r6 = c.apply(tenant_id=7, world_id=11, session_id=22, event_type="multi", payload={},
print("TENANT", type(exc).__name__, getattr(exc, "code", None)) state_updates=[{"entity_id": "e9", "state": {"hp": 7}},
try: {"entity_id": "new1", "state": {"x": 1}}],
c.apply(tenant_id=7, world_id=None, session_id=22, event_type="x") client_event_id="ev-6", occurred_at=ts(6))
except Exception as exc: print("R6", r6["states"], r6["state_rows"], "updates", len(c.update_statements(e)))
print("PARAM", type(exc).__name__, getattr(exc, "code", None)) print("read e9", c.read(tenant_id=7, session_id=22, entity_ids=["e9"]))
try: print("event rows", e.query("SELECT id, event_uid, seq, state_version, source, occurred_at FROM pbl_runtime_event ORDER BY id"))
c.apply(tenant_id=7, world_id=11, session_id=22, event_type="x", state_updates="no")
except Exception as exc:
print("PARAM2", type(exc).__name__, getattr(exc, "code", None))
try:
c.apply(tenant_id=7, world_id=11, session_id=22, event_type="x",
state_updates=[{"state": {"a": 1}}])
except Exception as exc:
print("PARAM3", type(exc).__name__, getattr(exc, "code", None))
try:
c.apply(tenant_id=7, world_id=11, session_id=22, event_type="x",
state_updates=[{"entity_id": "e1"}])
except Exception as exc:
print("PARAM4", type(exc).__name__, getattr(exc, "code", None))
print("trace after validation", c.trace_kinds(e)[-3:])
try: # validation
c.build_row(c.EVENT_TABLE, {"no_such_col": 1}) for label, kw in (("tenant", dict(world_id=11, session_id=22, event_type="x")),
except Exception as exc: ("param", dict(tenant_id=7, session_id=22, event_type="x")),
print("UNKNOWN", getattr(exc, "code", None), str(exc)[:90]) ("etype", dict(tenant_id=7, world_id=11, session_id=22)),
try: ("su", dict(tenant_id=7, world_id=11, session_id=22, event_type="x", state_updates="no")),
c.build_row(c.STATE_TABLE, {"tenant_id": "t1"}) ("eid", dict(tenant_id=7, world_id=11, session_id=22, event_type="x",
except Exception as exc: state_updates=[{"state": {"a": 1}}])),
print("MISSING", getattr(exc, "code", None), str(exc)[:140]) ("val", dict(tenant_id=7, world_id=11, session_id=22, event_type="x",
try: state_updates=[{"entity_id": "e1"}]))):
c.build_row(c.STATE_TABLE, {"state_json": "{}", "created_at": "x"}, strict=True, full_row=False) try:
except Exception as exc: c.apply(**kw)
print("IMMUTABLE", getattr(exc, "code", None), str(exc)[:140]) print(label, "NOT RAISED")
try: except Exception as exc:
c.assert_append_only("UPDATE", c.EVENT_TABLE) print(label, type(exc).__name__, getattr(exc, "code", None), str(exc)[:60])
except Exception as exc: print("trace after validation", c.trace_kinds(e)[-2:], "broadcasts", len(e.broadcasts))
print("APPEND", getattr(exc, "code", None), str(exc)[:90])
try: # guards
c.assert_append_only("DELETE", "world") for label, fn in (
except Exception as exc: ("unknown", lambda: c.build_row(c.EVENT_TABLE, {"no_such_col": 1})),
print("BASE", getattr(exc, "code", None), str(exc)[:90]) ("missing", lambda: c.build_row(c.STATE_TABLE, {"tenant_id": "t1"})),
print("percentile empty", c.percentile([], 99), "single", c.percentile([5], 99), ("immutable", lambda: c.build_row(c.STATE_TABLE, {"state_json": "{}", "created_at": "x"},
"range99", c.percentile(list(range(100)), 99)) strict=True, full_row=False)),
print("ERR codes", c.ERR_STATE_CONFLICT, c.ERR_APPEND_ONLY, c.ERR_UNKNOWN_COLUMN, ("append_evt", lambda: c.assert_append_only("UPDATE", c.EVENT_TABLE)),
c.ERR_MISSING_NOT_NULL, c.ERR_IMMUTABLE_COLUMN, c.ERR_TENANT_MISSING, c.ERR_BAD_PARAM, ("append_base", lambda: c.assert_append_only("DELETE", "world")),
c.ERR_BROADCAST_AFTER_COMMIT) ("append_ok", lambda: c.assert_append_only("INSERT", c.EVENT_TABLE)),
print("tables", c.EVENT_TABLE, c.STATE_TABLE, c.SNAPSHOT_TABLE) ):
try:
print(label, "OK", fn())
except Exception as exc:
print(label, "RAISED", getattr(exc, "code", None), str(exc)[:90])
c.uninstall() c.uninstall()
print("OK DONE")
import os
print("files", os.listdir("/tmp")[:3])