F1: Add unique agent handles for stable delegation#20
Merged
Conversation
Each agent gets an auto-generated handle (e.g., @radar, @Ink) derived from their name via Str::slug(). Handles are unique per team, immutable, and used as the primary key for delegation lookups (falling back to name for backward compatibility). Changes: - Add handle column to agents table (unique per team) - Auto-generate handle on Agent::creating model event with collision suffix - DaemonController: include handle in work queue response, use handle-first lookup for delegation - provisiond: use @handle in prompt delegation syntax, strip @ in parser - Frontend: add handle to Agent type, display @handle in org chart
Tests cover handle creation from name, slugification, per-team collision suffixes, cross-team uniqueness, explicit handle preservation, daemon work-queue response inclusion, handle-based delegation, and name fallback.
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
handlecolumn to agents (auto-generated from name viaStr::slug())@handlein delegation syntax@handlenext to agent namesTest plan