feat: checkpoint dedupe reviews and replay group writes - #674
Merged
kmbroai merged 12 commits intoAug 27, 2026
Merged
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
3 tasks
3 tasks
3 tasks
…ngs-review-checkpoints
…ngs-review-checkpoints
soyeon-oai
approved these changes
Aug 27, 2026
zcrab-oai
reviewed
Aug 27, 2026
zcrab-oai
left a comment
Collaborator
There was a problem hiding this comment.
Four validated findings introduced in this PR: generated-source placement, append-only migration ordering, eager checkout requirements, and unsafe/expensive source snapshots.
* feat(server): add read-only findings dashboard * fix(dashboard): show workflows first * refactor(dashboard): simplify rendering and reuse workflow storage * fix(dashboard): preserve filters and completed result semantics * fix(dashboard): retain published repository identities in search * fix(dashboard): include deep scan activity in freshness * refactor(dashboard): use native selects and remove dropdown machinery * refactor(dashboard): show only stored findings and groups
kmbroai
added a commit
that referenced
this pull request
Aug 27, 2026
* feat: persist resumable local findings workflows * fix: store workflow metadata in explicit SQLite columns * test(plugin): align workflow helper and schema contracts * feat: checkpoint dedupe reviews and replay group writes (#674) * feat: checkpoint dedupe reviews and replay group writes * fix: keep workflow source snapshots within the checkout * fix: migrate dedupe checkpoint bindings to SQLite columns * test: retain required canonical ID in translated checkpoint checks * test: align checkpoint contracts with the updated findings stack * feat(server): add read-only findings dashboard (#679) * feat(server): add read-only findings dashboard * fix(dashboard): show workflows first * refactor(dashboard): simplify rendering and reuse workflow storage * fix(dashboard): preserve filters and completed result semantics * fix(dashboard): retain published repository identities in search * fix(dashboard): include deep scan activity in freshness * refactor(dashboard): use native selects and remove dropdown machinery * refactor(dashboard): show only stored findings and groups --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com>
kmbroai
added a commit
that referenced
this pull request
Aug 27, 2026
* feat: publish custom findings and persist dedupe groups * refactor(test): translate write-back smoke assertions to TypeScript * test: align findings writeback with pair-only deduplication * test(plugin): include dedupe groups in schema expectations * test(plugin): update dedupe group migration snapshots * feat: persist resumable local findings workflows (#673) * feat: persist resumable local findings workflows * fix: store workflow metadata in explicit SQLite columns * test(plugin): align workflow helper and schema contracts * feat: checkpoint dedupe reviews and replay group writes (#674) * feat: checkpoint dedupe reviews and replay group writes * fix: keep workflow source snapshots within the checkout * fix: migrate dedupe checkpoint bindings to SQLite columns * test: retain required canonical ID in translated checkpoint checks * test: align checkpoint contracts with the updated findings stack * feat(server): add read-only findings dashboard (#679) * feat(server): add read-only findings dashboard * fix(dashboard): show workflows first * refactor(dashboard): simplify rendering and reuse workflow storage * fix(dashboard): preserve filters and completed result semantics * fix(dashboard): retain published repository identities in search * fix(dashboard): include deep scan activity in freshness * refactor(dashboard): use native selects and remove dropdown machinery * refactor(dashboard): show only stored findings and groups --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com>
kmbroai
added a commit
that referenced
this pull request
Aug 27, 2026
* feat(typescript): deduplicate stored findings with Codex * refactor(typescript): group server deduplication modules * refactor(typescript): run scan deduplication in SDK and CLI * feat(typescript): scope finding retrieval by repository * refactor(typescript): trim redundant deduplication code * fix(typescript): restore complete deduplication reviews * refactor(typescript): trim deduplication setup and smoke bookkeeping * perf(typescript): reduce deduplication review work * test(plugin): include repository associations in schema expectations * test(plugin): update repository migration snapshots * test: read scan smoke manifest from canonical plugin source * feat: publish custom findings and persist dedupe groups (#667) * feat: publish custom findings and persist dedupe groups * refactor(test): translate write-back smoke assertions to TypeScript * test: align findings writeback with pair-only deduplication * test(plugin): include dedupe groups in schema expectations * test(plugin): update dedupe group migration snapshots * feat: persist resumable local findings workflows (#673) * feat: persist resumable local findings workflows * fix: store workflow metadata in explicit SQLite columns * test(plugin): align workflow helper and schema contracts * feat: checkpoint dedupe reviews and replay group writes (#674) * feat: checkpoint dedupe reviews and replay group writes * fix: keep workflow source snapshots within the checkout * fix: migrate dedupe checkpoint bindings to SQLite columns * test: retain required canonical ID in translated checkpoint checks * test: align checkpoint contracts with the updated findings stack * feat(server): add read-only findings dashboard (#679) * feat(server): add read-only findings dashboard * fix(dashboard): show workflows first * refactor(dashboard): simplify rendering and reuse workflow storage * fix(dashboard): preserve filters and completed result semantics * fix(dashboard): retain published repository identities in search * fix(dashboard): include deep scan activity in freshness * refactor(dashboard): use native selects and remove dropdown machinery * refactor(dashboard): show only stored findings and groups --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: Kyle Brown <272643392+kmbroai@users.noreply.github.com>
kmbroai
added a commit
that referenced
this pull request
Aug 27, 2026
* feat(typescript): add findings service plumbing * feat(typescript): persist findings and embeddings through the service API * test(typescript): extract findings service Docker smoke runner * refactor(test): translate findings storage fixture to TypeScript * refactor(server): omit provisional bulk dedupe endpoint * docs: use canonical plugin source in findings import example * fix(plugin): support isolated findings helper execution * test(plugin): include findings storage in schema expectations * test(plugin): update findings migration snapshots * test: read findings smoke fixture from canonical plugin source * feat(typescript): deduplicate scans through SDK and CLI (#661) * feat(typescript): deduplicate stored findings with Codex * refactor(typescript): group server deduplication modules * refactor(typescript): run scan deduplication in SDK and CLI * feat(typescript): scope finding retrieval by repository * refactor(typescript): trim redundant deduplication code * fix(typescript): restore complete deduplication reviews * refactor(typescript): trim deduplication setup and smoke bookkeeping * perf(typescript): reduce deduplication review work * test(plugin): include repository associations in schema expectations * test(plugin): update repository migration snapshots * test: read scan smoke manifest from canonical plugin source * feat: publish custom findings and persist dedupe groups (#667) * feat: publish custom findings and persist dedupe groups * refactor(test): translate write-back smoke assertions to TypeScript * test: align findings writeback with pair-only deduplication * test(plugin): include dedupe groups in schema expectations * test(plugin): update dedupe group migration snapshots * feat: persist resumable local findings workflows (#673) * feat: persist resumable local findings workflows * fix: store workflow metadata in explicit SQLite columns * test(plugin): align workflow helper and schema contracts * feat: checkpoint dedupe reviews and replay group writes (#674) * feat: checkpoint dedupe reviews and replay group writes * fix: keep workflow source snapshots within the checkout * fix: migrate dedupe checkpoint bindings to SQLite columns * test: retain required canonical ID in translated checkpoint checks * test: align checkpoint contracts with the updated findings stack * feat(server): add read-only findings dashboard (#679) * feat(server): add read-only findings dashboard * fix(dashboard): show workflows first * refactor(dashboard): simplify rendering and reuse workflow storage * fix(dashboard): preserve filters and completed result semantics * fix(dashboard): retain published repository identities in search * fix(dashboard): include deep scan activity in freshness * refactor(dashboard): use native selects and remove dropdown machinery * refactor(dashboard): show only stored findings and groups --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: Kyle Brown <272643392+kmbroai@users.noreply.github.com> * feat(container): publish findings service and distribute workflow runner (#666) * feat(typescript): deduplicate stored findings with Codex * refactor(typescript): group server deduplication modules * refactor(typescript): run scan deduplication in SDK and CLI * feat(typescript): scope finding retrieval by repository * refactor(typescript): trim redundant deduplication code * fix(typescript): restore complete deduplication reviews * feat(container): publish findings service image to GHCR * feat: publish custom findings and persist dedupe groups * refactor(container): trim findings release verification * refactor(typescript): trim deduplication setup and smoke bookkeeping * feat(container): add scanner workflow runner Compose * refactor(test): translate write-back smoke assertions to TypeScript * refactor(test): translate runner smoke fixtures to TypeScript * perf(typescript): reduce deduplication review work * test: align findings writeback with pair-only deduplication * test(plugin): include repository associations in schema expectations * test(plugin): include dedupe groups in schema expectations * test(plugin): update repository migration snapshots * test(plugin): update dedupe group migration snapshots * test: read scan smoke manifest from canonical plugin source --------- Co-authored-by: Kyle Brown <272643392+kmbroai@users.noreply.github.com> --------- Co-authored-by: kmbroai <272643392+kmbroai@users.noreply.github.com>
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
Resume interrupted deduplication from validated review checkpoints and replay saved group writes after failure or a lost acknowledgement.
Stacked on #673. This update includes the current parent and canonical plugin source layout, and aligns checkpoint coverage with screening and pair reviews. Neither PR is merged into its base.
Changes
canonicalFindingIdand generatedmergedFinding.review_validator.submit_decisions.--workflow-id/ SDKworkflowId; no additional public syntax, dependency, or command output shape.Testing
Current integration at
18052bb5:12345and randomized seed2857796939: each had 2,013 passed, 29 skipped, and zero failures.git diff --checkpassed.Risk and rollout
Checkpoint reuse is opt-in through explicitly named workflows. Existing workflows without review checkpoints run their unfinished reviews. Use updated workflow/checkpoint code after schema migration; old JSON-metadata readers are incompatible with the upgraded tables.
Metadata remains outside sealed artifacts in the private workbench database, which review processes cannot read. Source hashing includes ignored files and can add filesystem work for large checkouts; directory links are not followed outside the approved checkout.
A pending write or completed workflow is the saved result of its reviewed snapshot. Use another workflow ID for a fresh review. Unfinished workflows with changed inputs rerun affected reviews. Use one coordinating process per workflow.
Local verification uses Linux and synthetic provider responses. Native Windows execution and live model reviews were not run locally. No release, image publication, or PR merge is performed by this update.
Public disclosure review