Skip to content

id: PoC: conversion executor — linked transfer pairs, write-ahead intent, recovery scanner #2289

Closed

Description

@dezren39

From the conversion-engine design on #2063 (feeds #2043; parent epic #2056).

Build a proof of concept of the conversion executor:

  • Linked-chain submission against a TigerBeetle test cluster: T1 user→LP (source ledger), optional fee leg, T3 LP→user (dest ledger), all legs stamped user_data_128 = conversion_id, submitted as one linked batch.
  • Write-ahead intent record persisted (conversion_id + both transfer IDs + amounts + authorisation id) before any TigerBeetle submission.
  • Recovery scanner: reconciles SUBMITTED-state records by looking up the pre-generated transfer IDs (present ⇒ POSTED; absent ⇒ resubmit same IDs or abandon).
  • Demonstrate the failure cases from id: design: conversion engine — linked transfer pairs, rate authorisation, liquidity accounts #2063 §4: in-batch leg failure moves nothing; crash between intent and submission recovers without double-posting; insufficient LP inventory fails pre-flight.

Acceptance criteria:

This is a PoC, not the permanent feature — do not build production conversion on top of it without a review round (program rule, #2056). Account/LP representation comes from #2062; stub accounts are acceptable for the PoC.

Activity

  1. developing-today commented on Oct 29, 2026

    @developing-today
    Contributor
  2. added
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 1, 2026
  3. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · handed off

  4. dezren39 commented on Nov 1, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

    • Agent: OpenChamber scheduled lane (repo-worker-code)
    • Task: 5239, assess the conversion executor PoC.
  5. 125 remaining items

  6. removed
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    on Nov 3, 2026
  7. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  8. added
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    status/parkedDeliberately paused with a recorded resume condition
    and removed
    queue/claimedQueue worker lifecycle state
    on Nov 3, 2026
  9. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · parked

  10. added a commit that references this issue on Nov 3, 2026
  11. dezren39 commented on Nov 3, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · done

    Results — LedgerBackend over the official TigerBeetle Rust client (task 8190)

    PR #5072 merged (d99399c): LedgerBackend is bound to the official TigerBeetle Rust client and the currency_poc scenario suite runs against the live single-replica harness cluster (binary pinned 0.17.9), not only the in-memory backend.

    • Tests (laptop, prior claims of task 8190): live suite 8/8 serial — including live_same_request_twice_posts_once — and in-memory suite 44/44. Posted conversion legs are findable by user_data_128 on the live cluster; atomic-failure and crash-recovery scenarios pass.
    • Codex gate: all findings dispositioned — four P2s on the first head fixed in ecf15d3, the P1 design-record finding fixed in 082158d (dated design record added), the final P2 (linked-chain retry) fixed in 13cb9d2; Codex's review of head 13cb9d2 completed with no findings.
    • CI note: the basic line-limit check sat queued from 21:20Z without starting (infra queue stall, not a failure); the merge proceeded under the standing merge authority (verified tests + Codex clean + diff matches intent; PRs do not wait for CI in this repo's current regime).

    Acceptance of issue #2289 is now fully met: (1) posted conversion against a real TigerBeetle test cluster with legs findable by user_data_128; (2) atomic-failure and crash-recovery tests; (3) results linked from issue #2063 (note posted there in the same pass). Closing issue #2289.

  12. removed
    task/triageQueue packet kind: verify, reproduce, and route this item
    status/parkedDeliberately paused with a recorded resume condition
    queue/parkedQueue task is parked (waiting on CI, time, or an event)
    work/assignedQueue worker lifecycle state
    on Nov 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)kind/enhancementpriority/normalOrdinary priority (the default)source/creatorFiled by the new-issue-creator job

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions