Skip to content
Recued
Menu
← Back to packs

Codex Issue Pipeline

by recued-core v1 app_pack

V3 workflow-pack example for a one-person company running Codex over GitHub issues. This pack is deliberately not the golden capability-pack standard: GitHub Pack and Codex Pack are the v3 gold examples. The pipeline depends on those capability packs, then installs four workflow recipes over warehouse state. Stage 1 reads open issues through the GitHub pack's issue.search catalog operation and launches one detached Codex run per new issue through the Codex pack's codex.review CLI operation (write-tier, approval-gated). Stage 2 sweeps marker-file evidence (<key>.exit.<code>) into queue outcomes. Stages 3 and 4 notify and finalize success/failure rows. Install once; create one stage-1 dish per repository, one sweeper dish, and one success/failure handler dish. Setup: install github-pack and codex-pack, bind a GitHub api connection, bind notification email, register the result directory as a file slug, and grant the Codex 'Run Codex on local repositories' operation group.

What this pack installs

Included recipes 4 pinned recipes

This pack installs the complete recipe workflow together.

Read open GitHub issues on one repo (paginated - big repos are never silently truncated), skip the ones already queued, launch a detached Codex run per new issue (write-tier, approval-gated), and queue each as an open codex_queue row for the sweeper. Attach a schedule to this recipe's dish per repo: 10 repos = 10 dishes of this one template. Stage 1 of the Codex workflow - sweep-codex-results reconciles outcomes and the handler dishes react to them.

githubcodexqueuepipeline
by recued-core pinned v1

D-179 worked example, stage 2 (the sweeper; the scheduled-operate shape). Reconciles queue rows against completion-marker evidence with no dynamic-key reads: it lists rows still in play (state open OR fail_timeout - the latter so a marker that lands just after a timeout still upgrades the row on a later sweep, before the failure handler finalizes it) and the <result_key>.exit.<code> marker files, joins them by result_key membership, and flips each matched row to success (exit 0) or fail (non-zero). A result_key with both a 0 and a non-zero marker (a rare double launch) resolves to success - success wins. Matched markers are consumed here (deleted) so the next sweep is idempotent and downstream handlers stay file-free. An OPEN row past the timeout with no matched marker becomes fail_timeout; a young open row with no marker is left open (skip - reclassified next cycle). A marker that arrives before its row (codex faster than the next kickoff tick) is an orphan this cycle and is left for the next. Once a row is finalized (done / failed_notified by a handler) it is terminal; a marker arriving after that is an accepted orphan.

codexsweeperreconcilepipeline
by recued-core pinned v1

D-179 worked example, stage 3 (the success handler). Lists codex_queue rows in state=success, emails the issue link plus the log path, and finalizes each row to done. The sweeper already consumed the completion marker, so this stage is file-free. Notify-then-mark is at-least-once: a crash between them re-notifies next cycle. Run this as ONE scheduled dish - the scheduler serializes a schedule's runs, so the list-notify-mark sequence is not raced by a concurrent copy of itself.

codexpipelined-179handler
by recued-core pinned v1

D-179 worked example, stage 4 (the failure/stall handler). Lists codex_queue rows in state fail or fail_timeout, emails the failure kind (non-zero exit vs no evidence before the timeout - the silent/stalled case), and finalizes each row to failed_notified. File-free: the sweeper owns marker consumption. A late marker after a timeout would be reconciled by a later sweep, so an occasional follow-up success notification is expected (at-least-once by design). Run this as ONE scheduled dish - the scheduler serializes a schedule's runs, so the list-notify-mark sequence is not raced by a concurrent copy of itself.

codexpipelined-179handler
by recued-core pinned v1

Builds on

Trust & control

What installing this whole pack would let it do. Recued grants these permissions at install — review them there before approving.

Where it runs

Device + server Runs on your device (browser) or your server.

Data it touches

Warehousedata.shared

About

Tags

pack:codex-issue-pipelinecodexgithubpipelined-179backgroundservice