Repository navigation
Conversation
OpenRig's addressable messaging (`rig send`) lets agents consult a specialist without creating a tracked assignment. Add `t3_thread_ask` (and `consult` on message dispatch) so T3 can do the same via send+wait, keeping `delegate_task` for owned child lifecycles. Co-authored-by: Cursor <cursoragent@cursor.com>
Add thread-scoped owned work items (assign → claim → progress → handoff) inspired by OpenRig rig queue, with MCP t3_owned_work and a minimal chat panel.
Bind OpenRig-style named specialist roles to listed project threads so agents can resume domain-owned context by stable key instead of spawning turn-scoped subagents.
Show assignee/claimer and handoff notes in the panel, and skip auto-settle while owned work remains open.
Interrupt only stops an active ask turn; a still-queued consult needs t3_queue cancel on that runId so agents are not told a false stop path. Co-authored-by: Cursor <cursoragent@cursor.com>
Preserve omitted specialist fields on resume, reuse create-path identities for accepted retries, enforce caller/mode guards before mutations, and unarchive archived specialists when opening them. Co-authored-by: Cursor <cursoragent@cursor.com>
Add t3_thread_broadcast on the existing send path so a team can fan out one message to selected or active agents, with an optional shared room audit copy.
Allow create_with_handoff provider switches while a turn is still running without detaching the live session, and frame the portable handoff with durable seat identity (title, place, open queue) so the successor keeps the seat across harness changes. Co-authored-by: Cursor <cursoragent@cursor.com>
Productize an OpenRig-style Workshop team (lead, builder, QA, reviewer) as durable pinned project threads launched from the command palette.
OpenRig's --host lets one surface talk to a specialist on another machine. Add fleet seat helpers that route queue-create through the seat's connected environment, and gate the relationships panel on that addressability. Co-authored-by: Cursor <cursoragent@cursor.com>
Add t3_roster_find over ThreadSearch so peers discover specialist threads from title, branch, PR, and message history without a new DB.
Bind OpenRig-style named specialist roles to listed project threads so agents can resume domain-owned context by stable key instead of spawning turn-scoped subagents.
Preserve omitted specialist fields on resume, reuse create-path identities for accepted retries, enforce caller/mode guards before mutations, and unarchive archived specialists when opening them. Co-authored-by: Cursor <cursoragent@cursor.com>
Do not advertise remote seat open as a finished queue-remotely product action; Connect-to-environment UX still owns that surface. Co-authored-by: Cursor <cursoragent@cursor.com>
Drop the separate Team roster. Enhance Thread Details Agents/Lineage with durable specialist labels from the specialist ownership model and Needs-you status, without treating turn-scoped subagents as specialists. Co-authored-by: Cursor <cursoragent@cursor.com>
Surface whether a match is thread identity (title/branch/PR) or only a message mention so agents prefer specialists over drive-bys.
Add agent-only t3_exec so callers can hand a bounded task to a provider, wait for its report in ordinary thread history, and avoid app_owned specialist ownership.
Absorb closure reasons and hold/attention into Work (not boards/footer); UI and MCP share the same assign/handoff/complete/cancel ops, with history after close.
Keep the live modelSelection as current while staging a cross-provider pick on nextTurnModelSelection. Timeline notices record staged/cancelled outcomes; the composer shows next-turn with cancel. Drop human-facing "seat" naming from handoff framing. Co-authored-by: Cursor <cursoragent@cursor.com>
Thread Details can bind, edit, clear, stop-archive, and restore specialists; MCP retire_specialist absorbs grow/shrink stop-archive without a team manager. Co-authored-by: Cursor <cursoragent@cursor.com>
Unify built-in Workshop and t3.contributor-bundle.json behind one preview-then-create action that binds durable ThreadSpecialist identities instead of title-only pinned threads. Contributor bundles fold into this installer rather than a separate path.
Work no longer counts as finished when the worker says so: open proof judges (requested/rejected) block manual and auto settle until accepted, mirroring OpenRig rig proof. Co-authored-by: Cursor <cursoragent@cursor.com>
Stamp pending approvals with an environment permission-routing policy (default any-operator, optional subject assignee) and optionally accept them when nobody matching is connected, recording resolvedBy for audit. Co-authored-by: Cursor <cursoragent@cursor.com>
Bind OpenRig-style named specialist roles to listed project threads so agents can resume domain-owned context by stable key instead of spawning turn-scoped subagents.
Preserve omitted specialist fields on resume, reuse create-path identities for accepted retries, enforce caller/mode guards before mutations, and unarchive archived specialists when opening them. Co-authored-by: Cursor <cursoragent@cursor.com>
…sions When context fills, hand the same thread to a new provider session with a full-thread portable handoff instead of only compacting in place or clearing without history. Co-authored-by: Cursor <cursoragent@cursor.com>
Work review is now a pending runtime request (kind work_review, responseCapability orchestration) shown as an approval card. Decline clears the ask so settle can proceed; Accept records acceptance; re-request creates a new pending review. Absorbs quiet hours client settings and an optional workReviewModelSelection intake field.
OpenRig-style role loadouts: specialists declare skills and MCP servers so agents bound to that role receive them automatically on turns (Claude/Codex). Co-authored-by: Cursor <cursoragent@cursor.com>
Inspect specialist loadout with a From role source line and remove actions that patch the binding. Sequences after human-manageable specialist bindings; no parallel role system. Co-authored-by: Cursor <cursoragent@cursor.com>
Add /recap, command palette, and mobile slash/banner paths that arm a fresh session with a durable written handoff, distinct from Compact and Clear. Co-authored-by: Cursor <cursoragent@cursor.com>
…wned work Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…agent/openrig-agent-teams
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
… into agent/openrig-agent-teams
…to agent/openrig-agent-teams
Persist a project AgentTeam on install, expose readAgentTeam, and surface the roster in Project Settings plus Add agent team entry points. Co-authored-by: Cursor <cursoragent@cursor.com>
Register readAgentTeam RPC tracing, fix AgentTeamService types, refresh context budget bytes, mock agent team settings in project panel tests, stage cross-provider model picks in fake environments, and align handoff compaction browser test with next-turn staging.
Put Agent Teams behind a Labs server setting and fold Work / Specialist / Role tools into one Team section so the details card stays compact. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep Agent Teams /recap command detection and main's worktree-pending side-chat guard after merging origin/main. Co-authored-by: Cursor <cursoragent@cursor.com>
Trim agent-facing MCP tool descriptions and slimmer specialist/exec schemas so measured context stays at or below main; validate narrowed inputs at runtime. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep typed FindOrOpenSpecialist and owned-work inputs while dropping runtime decode paths; trim a few long tool descriptions so MCP JSON stays under main. Co-authored-by: Cursor <cursoragent@cursor.com>
Split seat binding from the owned-work board, match Automations/Servers row chrome, and keep Assign in a modal with ownership-safe actions. Reviewed with sol-loop: 1 round with gpt-6.1-sol on high. Sol verdict: approved. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep both consult follow-up and background-wake delivery tests. Co-authored-by: Cursor <cursoragent@cursor.com>
Gate work_review accepts, redact specialist MCP secrets on the wire, require full-access for role stdio MCP, prefer staged next-turn providers, and serialize specialist key binds per project. Co-authored-by: Cursor <cursoragent@cursor.com>
Suppress duplicate provider /recap, gate Claude T3 instructions on the T3 MCP session, validate owned-work targets, keep steers on the live run's model, and hide staged-switch Cancel without operate scope. Co-authored-by: Cursor <cursoragent@cursor.com>
Null assignees must skip thread lookup, and steer model selection needs a narrowed targetRunId so evals typecheck stops failing Build and Typecheck. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep /recap fresh-session arms while adopting main's replyTo guard in the composer send path. Co-authored-by: Cursor <cursoragent@cursor.com>
Assign can name a destination seat while work stays on the home board; assignees see those obligations in Thread Details and claim against the home id. Co-authored-by: Cursor <cursoragent@cursor.com>
Work items now live under project-scoped settings instead of as thread-projection children, so seats assign and claim across threads without a home-thread parent.
|
This PR changes the test suite by +90 test cases (browser 0, unit +54, server +36). Keep tests that would fail for a real reason, and test logic below the UI where it can be. See Testing. |
This branch has not been deployed
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
orchestration.readAgentTeam, Project Settings roster) while membership stays specialist bindings on listed threads—no second membership graph and no chat-footer boards.Screenshots
Labs — Agent Teams
Enable the beta under Settings → Labs.
Thread Details — Team
One condensed Team section: specialist seat (bind/edit) plus owned-work board with Claim/Resume/Done.
Assign work
Plus in the Team section opens a modal; work lands on the board for teammates to claim.
Project Settings — Agent team
Project-scoped Agent Team roster (empty state with install CTA), visible when Labs is on.
Add agent team…
Workshop template preflight: roles, model, workspace, idle until send.
Folded PRs (close as superseded)
Left separate: pingdotgg#34608 honest restore.
Test plan
vp run check:changedfind_or_open_specialist,t3_thread_ask,t3_thread_broadcast,t3_exec,t3_roster_find,t3_owned_work,t3_work_review/recaphandoffMade with Cursor
🤖 Generated with Claude Code