Skip to content

(CODUX-216) Resume durable runs after approval decisions - #2965

Merged
numnx merged 2 commits into
feature/CODUX-216-nodes-full-integrationfrom
task/feature-codux-21-t11-codex-05b7ce90-mrhh9i1a
Jul 12, 2026
Merged

(CODUX-216) Resume durable runs after approval decisions#2965
numnx merged 2 commits into
feature/CODUX-216-nodes-full-integrationfrom
task/feature-codux-21-t11-codex-05b7ce90-mrhh9i1a

Conversation

@numnx

@numnx numnx commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

🧩 Task: Resume durable runs after approval decisions

Automated task PR opened by Code UX for T11.

📋 Summary

Sprint: Sprint 216 · Nodes Full Integration · Task: T11

Turn the existing project-scoped node-flow foundation and browser-local canvas into a canonical, secure, versioned automation control plane with registry-driven nodes, encrypted credentials, durable execution, governed integrations, isolated custom nodes, agent authoring, dashboard integration, and authenticated headless readiness.

🤖 Model & Provider

Provider Codex CLI
Model gpt-5.6-sol

⏱️ Timing

Started 2026-07-12 07:34:13 UTC
Finished 2026-07-12 07:53:12 UTC
Duration 18m 59s

📊 Token Usage

Metric Value
Input tokens 242,450
Cached input tokens 13,067,264
Output tokens 36,190
Total tokens 13,345,904
Invocations 1
Tool calls 95
Active time 18m 14s

Included usage estimate (subscription/local login): $8.83

✅ QA Review

⏳ QA review runs after this PR is opened. Check the task card in the dashboard for the outcome once it lands.

📝 Full Task Prompt
## Objective
Make approval-gated built-ins continue durably after an approval decision without duplicate attempts or side effects.

## Scope
- `src/services/node-flow-runtime-service.ts`
- `src/services/node-flow-service.ts`
- `src/services/node-flows/approval-service.ts`
- `src/repositories/automation-approval-repository.ts`
- `src/server/node-flow-routes.ts`
- `src/services/node-flows/node-flow-recovery-service.ts`
- related contracts and dashboard run-debugger APIs/tests

## Requirements
1. Add an explicit approval-resume operation for `approval_waiting` runs, or make the existing decision route enqueue/resume the exact pinned run safely.
2. Preserve the original publication, run id, logical item, attempt numbering, lease ownership, and approval decision.
3. Prevent duplicate approval requests and duplicate outbox sends when a decision is repeated or the process restarts.
4. Rejected and expired approvals must terminate with clear durable states; approved approvals must continue from the governed node boundary.
5. Keep cancellation, timeout, unknown-side-effect, and attention-required semantics intact.

## Verification
- Add runtime and route tests for pending, approved, rejected, expired, restart, repeated decision, and duplicate-send cases.
- Verify an email-send flow remains approval-waiting before approval, reaches the outbox exactly once after approval, and cannot be retried as a second side effect.
- Run focused runtime/repository/route tests, `pnpm run test:backend`, typecheck, and build.
🌿 Branch Info

Base: feature/CODUX-216-nodes-full-integration
Head: task/feature-codux-21-t11-codex-05b7ce90-mrhh9i1a


🤖 Generated by Code UX

@numnx
numnx merged commit e37aa28 into feature/CODUX-216-nodes-full-integration Jul 12, 2026
20 checks passed
@numnx
numnx deleted the task/feature-codux-21-t11-codex-05b7ce90-mrhh9i1a branch July 12, 2026 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant