feat(agents): role orchestrateur du contexte global expose et configurable par agent — isOrchestrator distinct des permissions MCP, DTO update_project_orchestrator (terminologie wire legacy conservee), refus idea_context_update explicite avec writer effectif + orientation idea_context_propose, surface AgentsPanel + adaptateurs frontend — #276 (QA verte: cargo fmt/check, tests cibles application/app-tauri/infrastructure/backend, npm typecheck, 69/69 tests frontend agents/adapters)
This commit is contained in:
@ -408,9 +408,10 @@ impl CreateAgentFromTemplate {
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?
|
||||
.with_contactable(template.default_contactable);
|
||||
|
||||
let orchestrator = manifest.orchestrator;
|
||||
let mut entries = manifest.entries;
|
||||
entries.push(ManifestEntry::from_agent(&agent));
|
||||
let manifest = AgentManifest::new(manifest.version, entries)
|
||||
let manifest = AgentManifest::with_orchestrator(manifest.version, entries, orchestrator)
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?;
|
||||
self.contexts
|
||||
.save_manifest(&input.project, &manifest)
|
||||
@ -624,8 +625,12 @@ impl SyncAgentWithTemplate {
|
||||
manifest.entries[idx].synced_template_version = Some(template.version);
|
||||
|
||||
// Persist the manifest (revalidated) and overwrite the agent context.
|
||||
let manifest = AgentManifest::new(manifest.version, manifest.entries)
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?;
|
||||
let manifest = AgentManifest::with_orchestrator(
|
||||
manifest.version,
|
||||
manifest.entries,
|
||||
manifest.orchestrator,
|
||||
)
|
||||
.map_err(|e| AppError::Invalid(e.to_string()))?;
|
||||
self.contexts
|
||||
.save_manifest(&input.project, &manifest)
|
||||
.await?;
|
||||
|
||||
Reference in New Issue
Block a user