-
Notifications
You must be signed in to change notification settings - Fork 3.4k
v0.8.68 remaining: make AgentProfile canonical for Fleet rosters #4111
Copy link
Copy link
Closed
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestlane-fleetreliabilityReliability, flaky behavior, retries, fallbacks, and robustnessReliability, flaky behavior, retries, fallbacks, and robustnesssubagentsSub-agent orchestration, lifecycle, and completion handlingSub-agent orchestration, lifecycle, and completion handlingtuiTerminal UI behavior, rendering, or interactionTerminal UI behavior, rendering, or interactionuxUser experience, interaction, or presentation polishUser experience, interaction, or presentation polishv0.8.68Targeting v0.8.68Targeting v0.8.68workflow-runtimeWorkflow IR, executor, control flow, and replay runtimeWorkflow IR, executor, control flow, and replay runtime
Milestone
Description
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestlane-fleetreliabilityReliability, flaky behavior, retries, fallbacks, and robustnessReliability, flaky behavior, retries, fallbacks, and robustnesssubagentsSub-agent orchestration, lifecycle, and completion handlingSub-agent orchestration, lifecycle, and completion handlingtuiTerminal UI behavior, rendering, or interactionTerminal UI behavior, rendering, or interactionuxUser experience, interaction, or presentation polishUser experience, interaction, or presentation polishv0.8.68Targeting v0.8.68Targeting v0.8.68workflow-runtimeWorkflow IR, executor, control flow, and replay runtimeWorkflow IR, executor, control flow, and replay runtime
Projects
StatusShow more project fields
Done
Purpose
Fleet should inherit and configure canonical AgentProfiles, not maintain a parallel Fleet-only route/loadout/profile system. This issue is the durable cutover checklist from the 0.8.68 planning notes.
Reference branch/head at issue creation:
work/v0.9.0-cutover@fb89fc0c6.Canonical tracker: #4175. Related: #4093, #3965, #4177, #4176.
Product truth
Fleet is where users configure their agent team, but Fleet should save and consume canonical
AgentProfilerecords rather than Fleet-only role/model/loadout structs.AgentProfile = role/persona + instructions + tool posture + provider/model route + thinking + inheritance rules.Fleet = named roster of AgentProfiles (WHO — resolves roles → profiles; not a task runner)(scout,implementer,reviewer,verifier, custom roles).Files to edit
crates/config/src/lib.rsFleetProfilecurrently hasslot,role,loadout,model, permissions, delegation, but no explicit provider/thinking route.crates/tui/src/fleet/profile.rsAgentProfilewrapper aroundFleetProfileplus TOML loader. Promote/enrich this into the canonical agent profile contract or move it to a non-Fleet module.crates/tui/src/fleet/roster.rscrates/tui/src/fleet/worker_runtime.rsresolve_fleet_routeand related helpers should call the same route/profile resolver as directagent(profile:)launches.crates/tui/src/tools/subagent/mod.rscrates/tui/src/tools/workflow.rscrates/tui/src/tui/views/fleet_setup.rs/fleet setupshould edit AgentProfiles: role, model provider, concrete model, thinking tier, tools/posture, and inheritance.crates/tui/locales/en.jsonand docsDelete/retire list
Delete only after migration and tests pass:
crates/tui/src/fleet/profile.rsafter moving their useful logic into the canonical AgentProfile module. The file may become a thin re-export during transition, but it should not remain a second profile system.loadout/model_class_hintframing from setup UI and docs. Keep compatibility parsing only as an internal migration shim if existing configs need it.crates/tui/src/fleet/manager.rs,ledger.rs,executor.rs, andtask_spec.rs.Remaining checklist
Make AgentProfile the canonical saved actor contract.
/fleetandagent(profile:).Extend profile schema and
/fleet setupto save provider/model/thinking.provider,model, andthinking/reasoning_effortto config/TOML loader./fleet setuplist models from all configured providers, not only the current provider.Reuse direct agent resolution.
resolve_agent_profile_runor equivalent shared resolver and emit the existingAgentWorkerSpec/WorkerRuntimeProfileshape.resolved_provider,resolved_model,route_source, and thinking.Update copy and docs.
Acceptance
agent(profile:)launches resolve through the same code path.