feat: expose swarm agent identity and execution state - #13732
Merged
Conversation
Contributor
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Files Reviewed (39 files)
Previous Review Summary (commit 08cbaf1)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 08cbaf1)Status: 1 Issue Found | Recommendation: Address before merge Overview
Issue Details (click to expand)SUGGESTION
Files Reviewed (38 files)
Reviewed by grok-4.6 · Input: 184.7K · Output: 20.9K · Cached: 1.1M Review guidance: REVIEW.md from base branch |
marius-kilocode
force-pushed
the
swarm-v2-identity-13670
branch
from
September 3, 2026 09:39
08cbaf1 to
a3755ed
Compare
marius-kilocode
enabled auto-merge
September 3, 2026 10:00
WebReflection
approved these changes
Sep 3, 2026
This was referenced Sep 6, 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
Shared-board participants previously appeared as generic agent types or session IDs. This made same-type workers difficult to distinguish and made it unclear who sent a message to whom. Successful posts also did not consistently distinguish finished recipients from recipients whose availability was unknown.
Closes #13670. Part of #13673, built on the merged prototype in #13629.
Why This Change Was Made
Use existing session titles as display labels and keep session IDs as routing keys. Titles, including legitimate parentheses and suffixes, are preserved. There is no separate naming registry, duplicated assignment field, or copy of the full task prompt.
Execution information comes from the existing directory-scoped Task job and session-status services. A finished invocation is not inferred from idle state, and missing runtime metadata remains unknown after restart. Availability is a timestamped observation at the post attempt, not a live status or delivery guarantee.
The roster prioritizes the root, reader, and recently active members while retaining the 50-member and 32 KiB response bounds. Title lookup does not depend on which members fit in that roster. Queries retain project/directory isolation; active priorities are materialized once, and posting uses indexed title lookups for already validated endpoints rather than scanning history under the writer lock.
The contract remains compatible with existing records: participant metadata adds
sessionID, optionalagent, andstate; reads expose the observation time and roster truncation; messages carry optionalfromLabel/toLabel; post metadata includesfromand anavailabilitysnapshot withobservedAt,total,active,inactive, andunknowncounts. No database schema or server endpoint changes are required.User Impact
INFOandRESULTremain in tool data but are not shown on the cards.mainis preserved.Evidence
81 focused tests passed: 69 board/store/context/Task regressions, the existing real Task-runtime board scenario, and 11 tool-display tests. After rebasing onto current main, the exact CI command
bun turbo typecheck --filter='!@kilocode/kilo-jetbrains'passed all 29 tasks. The notification test fixture now provides the required job/status services, and replay assertions compare stable history and cursors rather than the changing observation time. Extension compilation, focused lint, Knip, annotation checks, marker checks, and whitespace checks passed. Lint retains pre-existing warnings. Locale coverage and{{from}}/{{to}}placeholders were checked across all 28 dictionaries.The local compile succeeded using the existing active-Bun fallback after the pinned
bunxlauncher failed. Local validation used Bun 1.4.0-canary and SQLite 3.51.0.Latest screenshots
Updated from the rebased build in isolated VS Code on September 3, with protocol-code badges removed. These use synthetic message records, not a live-provider conversation. The captures were cropped and checked for private data; media is hosted separately and is not included in the code diff.
Reading directed and broadcast messages, wide layout
Posting a message
Narrow layout and long-title tooltip
Visual checks covered narrow and wide layouts, long titles, broadcasts, legacy fallbacks, and supplied
maintitles. Light, dark, and both high-contrast themes were exercised during implementation. Isolated test instances were cleaned up.Scoped query-cost verification
An equivalent-result native SQLite comparison checked the initial correlated lookup against the final indexed approach. These are synthetic query measurements within this implementation, not a speedup claim against the prototype or end-to-end UI latency.
Medians of five interleaved runs used identical in-memory data and production index order, including bindings, preparation, materialization/index creation, execution, and finalization. Every run returned identical ordered roster results and title rows. Title queries ran inside
BEGIN IMMEDIATE, but measurements exclude transaction boundaries and other post work. The 1,000-active case is a same-directory stress condition, not observed ordinary usage.Manual Test