Skip to content

fix(qoder): recover incomplete forward destroys - #97

Merged
heimanba merged 1 commit into
mainfrom
codex/forward-destroy-recovery
Aug 23, 2026
Merged

fix(qoder): recover incomplete forward destroys#97
heimanba merged 1 commit into
mainfrom
codex/forward-destroy-recovery

Conversation

@heimanba

Copy link
Copy Markdown
Contributor

Summary

  • Allow destroy to proceed when a Qoder Forward default Memory Store has neither a tracked Template nor a tracked Identity after an incomplete apply.
  • Require --cascade to archive an in-use Forward Environment when Qoder rejects physical deletion.
  • Add regression coverage for both paths.

Why

Destroy was blocked by a configured default Memory Store that could not have been created because neither owner was present in local state. After fixing that, Qoder rejected the in-use Forward Environment and directed the caller to archive it.

Type

  • Bug fix
  • Tests

Surface area

  • Provider interface / adapter contract
  • State management
  • Execution / planning logic
  • Tests / fixtures

Checklist

  • bun run verify:full passes
  • No new runtime dependencies added without justification

Behavior / risk

When neither a Template nor an Identity is tracked, destroy no longer invents a default Memory Store cleanup dependency. A partially tracked owner set remains protected. For Qoder Forward, an environment that cannot be deleted due to retained session references is archived only after explicit --cascade.

Validation

  • bun scripts/verify.ts push (pre-push hook)
  • bun test packages/sdk/tests/unit/destroy-runtime.test.ts packages/sdk/tests/unit/qoder-forward-template.test.ts
  • bun run --cwd packages/sdk typecheck

@heimanba
heimanba marked this pull request as ready for review August 23, 2026 13:49
@heimanba
heimanba merged commit 982704f into main Aug 23, 2026
16 checks passed
@heimanba
heimanba deleted the codex/forward-destroy-recovery branch August 23, 2026 13:49
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