feat(container): publish findings service and distribute workflow runner - #666
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. |
kmbroai
changed the base branch from
dev/kyleb/findings-deduplication
to
dev/kyleb/findings-writeback
August 27, 2026 03:34
Base automatically changed from
dev/kyleb/findings-writeback
to
dev/kyleb/findings-deduplication
August 27, 2026 21:42
Base automatically changed from
dev/kyleb/findings-deduplication
to
dev/kyleb/findings-api
August 27, 2026 21:43
Keep the container distribution changes on top of the current findings API, workflow, checkpoint, dashboard, and canonical plugin implementation. Combine the smoke tests so workflow checkpoints stay in the separate runner database while the service persists findings and duplicate groups.
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
Distribute the findings service and a scanner-based workflow runner through the existing two-image container release process. The runner uses the scanner image and shared Dockerfile; the findings API remains a separately deployed service.
Stacked on #660. This update merges its consolidated SDK, workflow, checkpoint, dashboard, and canonical plugin changes into the container branch. The diff against #660 remains limited to container distribution, documentation, and integration tests. Neither PR is merged into its base.
Changes
ghcr.io/openai/codex-security-findings; the existing image setting selects a version, digest, or local build.compose.runner.yamlusing the scanner image, durable state/artifact mounts, and existing security and authentication settings. Document connectivity to a separate findings service, persistent source paths, AppArmor, and lifecycle management.plugins/codex-security; generate the installed plugin payload during packaging. Keep the TypeScript SQLite/runner fixtures and existing workbench database initialization.Testing
Local verification at
a8be37a3:12345and randomized seed3716402526: each had 2,031 passed, 29 skipped, and zero failures.git diff --checkpassed.Risk and rollout
containerapproval gate. This update does not publish images or merge PRs. Local testing covers Linux amd64; native arm64 release validation remains in CI.Public disclosure review