dashboard/app: moderate and report AI patches to the mailing lists#7047
Open
a-nogikh wants to merge 15 commits intogoogle:masterfrom
Open
dashboard/app: moderate and report AI patches to the mailing lists#7047a-nogikh wants to merge 15 commits intogoogle:masterfrom
a-nogikh wants to merge 15 commits intogoogle:masterfrom
Conversation
Just a string sort becomes problematic once we go above 10 migrations. Explicitly parse the file names and sort by the full numbers at the beginning.
The API will let us implement external AI job reporters. Several configurable stages are supported.
It's more reiable to update the job field inside the transaction than to separate querying and saving it.
Unify web interface and dashapi AI commands journaling. For commands submitted via dashapi, use Journal to ensure idempotency - if we have already processed a command with the same ExtID, do not actually do it.
It was necessary to save memory, but now it complicates email archive listetning implementations. Reset Body and Patch explicitly where it's really needed.
The implementation will be used for polling replies under the syzbot LKML archive. Instead of relying on persistent storage for root message id tracking, use an in-memory graph of the messages. That is simple and will work for a very long time. Also, avoid storing "last processed" cursors - instead, take all last day's messages on start. If the processing API is idempotent, that is also a simple and reliable solution.
Use the newly created pkg/email/lore.Poller when receiving user commands in syz-cluster.
It will be used in AI job result moderation.
Move the code from syz-cluster/pkg/emailclient so that it can be reused more easily.
The new package will contain the functionality that integrates AI job reporting API with Lore. For now, add initial templates for the emails we'll be sending.
The component represents a lore integration of AI job result reporting. It polls dashapi and the lore archive at the same time. Add various integration tests.
We'll reuse this folder for other AI-related components.
Move the code that resolved prefixed keys from syz-agent to make it reusable in other components.
Load the config and run the pkg/lore-relay functionality. Host on GKE.
We'll use these later to regenerate the new patch versions.
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 for the reviewer:
Architecture & Design
dashapiAPI (e.g.,PollExternalReport,AIConfirmReport,AIReportCommand).syzbot@kernel.organd receive replies by polling the Lore Git archive forsyzbot@lists.linux.dev(avoiding the need for a listening SMTP server).Once we pilot this integration here, we may later switch whole of syzbot to it.
Components Added:
pkg/lore-relay): A service that bridges Dashboard and Lore. It polls Dashboard for outgoing reports and polls Lore for incoming replies. It will be hosted on a GKE cluster (seesyz-agent/lore-relay).pkg/email/lore): Fetches and parses emails from a Git-based Lore archive.pkg/email/sender): Library for sending emails over SMTP.Success Workflow
lore-relaypolls Dashboard for pending reports (PollExternalReport).lore-relaysends the patch email viapkg/email/sender.lore-relaynotifies Dashboard of publication (AIConfirmReport).We can configure multiple reporting stages, i.e.
[PATCH RFC] Fix ABCD.#syz upstream.What is NOT implemented yet
pkg/aflowworkflow to react to them yet. The PR is already too big for that.[PATCH RFC] Fix ABCD, then[PATCH RFC v2] Fix ABCD, etc.