Explorer
/tmp/fix_assert.py
← Zurück ↓ Download
#!/usr/bin/env python3
"""Align ADD_KNOWLEDGE assertions with UNIQUE(obsidian_path,content_hash) contract."""
src = open('/opt/struktur/obsidian-graphiti-import-staging-p2i/p2i_e2e.py').read()
old = '''ak_rid = decision.reconciliation_record_id
assert ak_rid.startswith("aa043:"), ak_rid
rows = queue_rows(kc, ak_rid)
assert len(rows) == 1 and rows[0]["action"] == "ADD_KNOWLEDGE", [
    (r["reconciliation_record_id"], r["action"]) for r in rows]
assert rows[0]["payload_json"] and rows[0]["payload_hash"]
print("   new-scheme rid:", rows[0]["reconciliation_record_id"])'''
new = '''all_p2i = kc.execute("SELECT * FROM graphiti_import_queue WHERE obsidian_path='P2I/e2e-note.md'").fetchall()
assert len(all_p2i) == 1, [(r["reconciliation_record_id"], r["action"]) for r in all_p2i]
row = all_p2i[0]
assert row["action"] == "ADD_KNOWLEDGE", row["action"]
assert row["reconciliation_record_id"].startswith("aa043:"), row["reconciliation_record_id"]
assert row["payload_json"] and row["payload_hash"] and row["post_request_id"]
print("   rid:", row["reconciliation_record_id"])
print("   action:", row["action"], "(exactly one logical work item per source)")'''
assert old in src, 'block not found'
open('/opt/struktur/obsidian-graphiti-import-staging-p2i/p2i_e2e.py', 'w').write(src.replace(old, new))
import py_compile
py_compile.compile('/opt/struktur/obsidian-graphiti-import-staging-p2i/p2i_e2e.py', doraise=True)
print('OK')