merge feature/ticket96-effective-permissions-assistants-ticket dans develop
This commit is contained in:
@ -214,6 +214,7 @@ impl TicketAssistantEnvironmentPreparer {
|
||||
cwd: &ProjectPath,
|
||||
requester: &str,
|
||||
env: &mut Vec<(String, String)>,
|
||||
eff: Option<&EffectivePermissions>,
|
||||
) -> Result<(), RuntimeError> {
|
||||
let Some(mcp) = &profile.mcp else {
|
||||
return Ok(());
|
||||
@ -244,14 +245,8 @@ impl TicketAssistantEnvironmentPreparer {
|
||||
if profile.structured_adapter != Some(StructuredAdapter::OpenCode) {
|
||||
return Ok(());
|
||||
}
|
||||
// No `PermissionStore` is wired for ticket-assistant sessions (no
|
||||
// per-agent policy exists in this path, for any CLI) — `eff` is
|
||||
// always `None` here, which per `opencode_permission_block`'s
|
||||
// contract omits the `permission` key entirely and preserves
|
||||
// OpenCode's native prompting, matching Claude/Codex's behaviour
|
||||
// on this same path.
|
||||
let body = if let Some(opencode) = profile.opencode.as_ref() {
|
||||
opencode_config_json(opencode, project.root.as_str(), runtime.as_ref(), None)
|
||||
opencode_config_json(opencode, project.root.as_str(), runtime.as_ref(), eff)
|
||||
.to_string()
|
||||
} else if let Some(provider) = profile.opencode_provider.as_ref() {
|
||||
let api_key = self.resolve_opencode_provider_api_key(provider).await?;
|
||||
@ -260,7 +255,7 @@ impl TicketAssistantEnvironmentPreparer {
|
||||
&api_key,
|
||||
project.root.as_str(),
|
||||
runtime.as_ref(),
|
||||
None,
|
||||
eff,
|
||||
)
|
||||
.to_string()
|
||||
} else {
|
||||
@ -304,6 +299,7 @@ impl StructuredSessionEnvironmentPreparer for TicketAssistantEnvironmentPreparer
|
||||
profile: &AgentProfile,
|
||||
prepared: &PreparedContext,
|
||||
requester: &str,
|
||||
permissions: Option<&EffectivePermissions>,
|
||||
) -> Result<StructuredSessionEnvironment, RuntimeError> {
|
||||
let run_dir = self.run_dir(project, issue_ref)?;
|
||||
self.create_dir(run_dir.as_str()).await?;
|
||||
@ -313,8 +309,15 @@ impl StructuredSessionEnvironmentPreparer for TicketAssistantEnvironmentPreparer
|
||||
let mut env = spec.env;
|
||||
self.materialise_context(spec.context_plan, &spec.cwd, prepared, &mut env)
|
||||
.await?;
|
||||
self.materialise_mcp(project, profile, &spec.cwd, requester, &mut env)
|
||||
.await?;
|
||||
self.materialise_mcp(
|
||||
project,
|
||||
profile,
|
||||
&spec.cwd,
|
||||
requester,
|
||||
&mut env,
|
||||
permissions,
|
||||
)
|
||||
.await?;
|
||||
Ok(StructuredSessionEnvironment {
|
||||
cwd: spec.cwd,
|
||||
env,
|
||||
|
||||
Reference in New Issue
Block a user