Repository navigation
feat(migrate): expose context-aware in-process runner - #37
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
pkg/runner.Newfor context-aware, in-process ordered migrations using the existing registered drivers.Design And Plan
Accepted recovery design
Locked Gate 0A plan
Scope Manifest: 21 tasks / 10 PRs, locked 2026-10-03T01:51:30Z.
PR grouping row 7: Expose reusable ordered migration runner, Task 15,
branch
feat/reusable-migration-runner-20261002.This is one prerequisite slice, not completion of recovery or compute slimming.
Verification
Fresh lead verification against a real disposable PostgreSQL 16 Alpine instance,
using the repository CI's
WORKFLOW_MIGRATE_TEST_DSNpath:The independently compiled public-API consumer used the real runner/native driver:
The initial unconfigured embedded-PostgreSQL run failed because parallel package
processes shared the existing extraction directory. No runtime fix or baseline
test-helper change was made; rerunning with CI's supported database path passed.
Runtime Launch
Released native wfctl v0.86.0 launched the actual candidate plugin binary
(release-equivalent build flags, temporary candidate manifest only):
The actual standalone CLI used an isolated schema in that disposable database:
These are local candidate/real-database proofs, not a published release, STG
migration, or live provider workload. No cloud or retained-agent mutation.
Compatibility And Review
Workflow dependency is the released v0.86.0 module; no local replacement.
Existing host/tooling pins remain older intentionally: this slice introduces a
public Go consumer package and changes native driver execution, not a new plugin
RPC. Released v0.86.0 host launch passed; configured CI retains its existing
older-host contract/packaging checks as an additional compatibility gate.
One independent initial adversarial code/security pass and one targeted
correction check are complete. No new broad design round or Minor/Nit loop.
That initial pass found two concrete timeout gaps. RED reproduced 3-second
Atlas initialization despite a 100ms operation timeout and timeout flags on
four ancillary commands that bypass the runner. Minimal corrections thread
context through existing Atlas initialization and restrict the flag to the
four runner-backed commands. GREEN showed 100-110ms Atlas cancellation and
absence of the misleading flags. Targeted review closed both findings with
SHIP-IT, no remaining substantive defect. No speculative feature was added.
Doc-reconciliation: clean; changelog names match the implemented public API.
Rollback
Consumers remain on the prior migrations release until immutable new release
source/assets/checksums are verified. Revert this slice if needed; never repair
dirty migration metadata automatically.