feat: add task-scoped shared agent boards - #13629
Merged
Merged
Conversation
Contributor
Code Review SummaryStatus: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (55 files)
Fix these issues in Kilo Cloud Reviewed by grok-4.6 · Input: 253K · Output: 23K · Cached: 1.3M Review guidance: REVIEW.md from base branch |
This was referenced Sep 1, 2026
WebReflection
approved these changes
Sep 1, 2026
Contributor
|
@marius-kilocode about this:
it wasn't part of the PR so I have approved as the issue looks to be elsewhere - feel free to follow up or maybe fix that in here, thanks. |
Collaborator
Author
|
I think that is just outdated. All good. |
1 task
This was referenced Sep 2, 2026
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.
What Problem This Solves
This is step 1 of #13673: give existing task agents a small shared communication channel. It is the foundation for Kilo Swarm, not the finished feature.
Background agents normally report their results when they finish. A useful discovery can arrive too late to help a parent or sibling that is still working. This PR adds an optional board where they can share that discovery during the task.
Each board belongs to one main session and its task descendants. It is not a global board for a repository, worktree, or unrelated sessions.
Why This Change Was Made
Start with the smallest useful communication primitive and observe how agents use it before adding a larger interface or coordination system.
The flow is:
board_post.board_readwhen the information is relevant. Only that explicit read returns the peer message bodies.Peer messages are not new user requests or approval. This revision removes the earlier automatic peer-content injection into user messages. Runtime notices contain fixed text, not peer-written instructions; actual notes remain tool-result data.
HOLDandVETOare advisory, not locks or session controls.The board stores ordered history, validates membership and recipients, deduplicates retried posts, and provides bounded reads with pagination. Background completion also preserves the current parent model and reasoning choice rather than restoring the child selection. The merge with current
mainretains its headless-drain behavior.User Impact
experimental.shared_agent_boardin CLI configuration or Shared agent board in VS Code Experimental settings.INFO,ASK,RESULT,HOLD, andVETO, directed to a participant or broadcast to the board.Message types and QoS
All five types use the same QoS: persistent board storage plus best-effort activity notices. None guarantees a read, reply, or action. Types describe meaning, not delivery priority or runtime control.
INFOASKRESULTHOLDINFOwhen resolved.VETOAll peer content, including notes from
main, remains untrusted coordination data. A type label never grants approval or expands the assigned scope.Delivery guarantees and limits
board_postconfirms that the message is stored in the board database. It does not confirm recipient notification, reading, or execution.board_readallowed, the runtime checks for addressed or broadcast activity when a normal tool returns. It can attach a fixed notice to that result. The model must still choose to callboard_read. Posting does not interrupt an in-progress model response.ALLmakes activity eligible for notice to other participants. It does not check for an active audience; posting can succeed after every other agent has finished.board_read. There are no per-recipient read receipts or acknowledgements, mandatory replies, automatic processing retries, or guaranteed handling. Areply_tolink relates messages; it is not an acknowledgement protocol.hasMoreis true.mainand participant session IDs select the notice audience, not a private inbox.Use the board for advisory coordination within authorized work. If an agent must start or resume, use the normal task/session controls rather than assuming that a board post will trigger it.
What this first step does not include
The following remain open in #13673:
There is no new scheduler, planner, automatic worker assignment, cross-session sharing, or board-management UI. In particular, V1 does not yet tell agents reliably which peers are still active.
Release dependency: mirror
experimental.shared_agent_boardin the Cloud configuration schema atapps/web/src/app/config.json/extras.tsbefore release. That companion change is outside this PR.Evidence
Checks rerun after resolving the merge:
Earlier live-agent checks confirmed useful peer exchange through explicit reads and stored-only posting to a completed task without restarting it. A false approval canary did not trigger edits in that check. These observations do not prove that every model will ignore all hostile peer text. No fresh authenticated-provider or visual UI run was performed for this merge.
Manual test
Enable the board and run two background task agents. Have one share a discovery while the other is working. Confirm that the recipient gets a fixed notice, reads the note through
board_read, and that normal task completion preserves the parent model and reasoning choice. A direct note sent after a child finishes must not restart it.Existing prototype tool cards, using synthetic data
These screenshots show the current generic cards, not the communication viewer or redesigned cards planned in the epic.