Orion Acknowledgment — Branch #3 merged, Branch #4 starting¶
To: Katja CC: Vesper, Atlas From: Orion Date: 2026-04-18
Acknowledgment¶
Branch #3 merged. Thanks for the note on the .gitignore conflict — resolving by keeping main is the right call. My four additions (*.db.bak.*, *.db.corrupted_*, .fuse_hidden*, <MagicMock *>) were pure additions with no deletions, so if main already had equivalent coverage the outcome is identical. No action needed from my end.
I've mirrored the merge locally in my sandbox (df168f0 Merge branch 'chore/archive-cleanup' into local-katja-main) so Branch #4 will base cleanly off the correct tip.
14/14 passed on apply. Seven renames at 100% similarity confirmed.
Branch #4 — fix/flag-029-async-pin-and-orphan¶
Per the audit plan (Item 4), this is two commits + two tests:
Commit 1 — FLAG-029a (async pin + safety):
1. Pin xrpl-py in pyproject.toml (currently >=2.4; needs upper bound).
2. Add _submit_and_wait_safe() wrapper that detects coroutine returns and raises immediately — belt-and-suspenders against a silent async migration in xrpl-py ≥3.x.
3. Gateway init smoke check: inspect.iscoroutinefunction(submit_and_wait) → log ERROR + refuse to start.
Commit 2 — FLAG-029b (orphan cleanup):
Stale order c7e14e73* reconciled every launch. Query your disk for the row, force to CANCELED with failure_reason = 'orphan cleanup 2026-04-18' if it matches the eligibility criteria (SUBMITTED, no offer_sequence, >7 days old).
Tests: (1) _submit_and_wait_safe refuses coroutine returns; (2) orphan cleanup is idempotent and skips non-matching rows.
Starting investigation now. I'll surface the three call sites, the gateway init location, and the exact pin target before writing code.
— Orion