Governance: add exact migration inventory and dry-run orchestration - #168
Governance: add exact migration inventory and dry-run orchestration#168Niko4417 wants to merge 11 commits into
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5dda02a2de
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 5dda02a2de
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 41bbcda2eb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1c92819499
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review\n\nPlease review exact signed head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: be7048eb09
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact signed head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cbb6c32330
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact signed head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 603d82d1c2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact signed head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 42b2853620
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact signed head |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 3ae080e453
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review Please review exact signed head |
|
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: adc2fdf0a6
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const finalDeliveries = associated.filter( | ||
| (pullRequest) => | ||
| pullRequest.merged === true && | ||
| pullRequest.finalDeliveryValidated === true, | ||
| ); |
There was a problem hiding this comment.
Identify the actual final PR before classifying completion
Fresh evidence on the exact head is that the new finalDeliveryValidated flag is applied independently to every merged association and this filter treats any single matching historical PR as the final delivery, without merge chronology or another final-delivery discriminator. With sequential delivery, an earlier PR can satisfy the terminal contract while the actual later/final PR is invalid; the earlier PR is then the sole item in finalDeliveries, so the issue is incorrectly reconciled to status: done. Select and validate the actual final delivery rather than any historical PR that passes terminal validation.
AGENTS.md reference: AGENTS.md:L44-L48
Useful? React with 👍 / 👎.
| assignee { ... on User { login } } | ||
| } | ||
| ... on UnassignedEvent { | ||
| id createdAt actor { login } | ||
| assignee { ... on User { login } } |
There was a problem hiding this comment.
Retain non-User historical assignees
When an assignment event references a non-User assignable, such as a mannequin retained after an account migration, this fragment returns no login; issueEvent() then rejects the event because every assignment requires a string assignee. Since the provider loads assignment history for every issue, one otherwise irrelevant historical event aborts both complete scans and permanently prevents a migration inventory. Preserve the assignable type as untrusted history and require a usable current identity only when reconstructing an in-progress claim.
Useful? React with 👍 / 👎.
| nodes { | ||
| number title state merged isDraft mergeable body baseRefName baseRefOid headRefName headRefOid | ||
| headRepository { nameWithOwner } | ||
| mergedBy { login } |
There was a problem hiding this comment.
Authenticate the merger as an allowlisted human
When historical mergedBy attribution resolves to a non-User actor such as a mannequin whose login matches an allowlisted name, this query discards the actor type and immutable database ID, and validMergeProof() accepts the remaining string. The inventory can consequently classify a completed delivery without proving that Niko or Oscharko personally initiated the merge; load the complete actor identity and validate it against the repository's ID/type-based governance-maintainer allowlist.
AGENTS.md reference: AGENTS.md:L196-L202
Useful? React with 👍 / 👎.



Scope
v2codex/52-migration-inventory-orchestrator-v2devarchitecture/governanceProduct and architecture alignment
CONTEXT.md, accepted ADRs, and the issue Quality Plan.Acceptance criteria and evidence
quality/migration-github-provider.mjs,quality/migration-inventory.mjs, provider/inventory tests, live repository dry runadc2fdf0a6e0d0738b08d947c77c57dfb9b81c4fplanReconciliationfixtures and live sanitized disposition reportadc2fdf0a6e0d0738b08d947c77c57dfb9b81c4fadc2fdf0a6e0d0738b08d947c77c57dfb9b81c4fquality/migration-orchestrator.test.mjs; report digest842caff41ba1a09fe728449d0bae9434e7b216715dcc0bf9ce75e2496f2b744dadc2fdf0a6e0d0738b08d947c77c57dfb9b81c4fAcceptance journey evidence
Quality Plan settlement
Verification
npm ci --ignore-scriptsnpm run qualitynpm audit --audit-level=high— 0 vulnerabilitiesAdditional affected checks and concise results:
Independent audit and findings
adc2fdf0a6e0d0738b08d947c77c57dfb9b81c4f3ae080e453465d1c56cee56b6c42254174a13c79adc2fdf0a6e0d0738b08d947c77c57dfb9b81c4fcleanly and all 41 settled conversations are resolvedIntegrated epic acceptance
Delivery
epic/standalone -> devadc2fdf0a6e0d0738b08d947c77c57dfb9b81c4fhas a verified SSH signature forniko.vasilopoulos96@gmail.com; all exact-head remote gates are green, the fresh Codex review is clean, and zero review conversations remain unresolved.Ready for Human Reviewbefore every required Acceptance Journey result and exact-head gate was complete. This replacement PR was kept draft until every required exact-head gate and acceptance result completed successfully.This PR replaces closed stale draft #156 without rewriting history. For this dev-target pull request, only Niko or Oscharko may manually initiate merge. No agent will enable auto-merge, enqueue, merge, or update
dev.Residual risks and follow-ups
Closes #52