chore: merge origin/main into main

This commit is contained in:
Peter Steinberger
2026-02-22 13:42:52 +00:00
304 changed files with 17041 additions and 5502 deletions

View File

@@ -8,6 +8,7 @@ import { hasNonzeroUsage } from "../../agents/usage.js";
import {
resolveAgentIdFromSessionKey,
resolveSessionFilePath,
resolveSessionFilePathOptions,
resolveSessionTranscriptPath,
type SessionEntry,
updateSessionStore,
@@ -324,7 +325,11 @@ export async function runReplyAgent(params: {
defaultRuntime.error(buildLogMessage(nextSessionId));
if (cleanupTranscripts && prevSessionId) {
const transcriptCandidates = new Set<string>();
const resolved = resolveSessionFilePath(prevSessionId, prevEntry, { agentId });
const resolved = resolveSessionFilePath(
prevSessionId,
prevEntry,
resolveSessionFilePathOptions({ agentId, storePath }),
);
if (resolved) {
transcriptCandidates.add(resolved);
}

View File

@@ -6,6 +6,7 @@ import { SessionManager } from "@mariozechner/pi-coding-agent";
import {
resolveDefaultSessionStorePath,
resolveSessionFilePath,
resolveSessionFilePathOptions,
} from "../../config/sessions/paths.js";
import { loadSessionStore } from "../../config/sessions/store.js";
import type { SessionEntry } from "../../config/sessions/types.js";
@@ -126,10 +127,11 @@ export async function buildExportSessionReply(params: HandleCommandsParams): Pro
let sessionFile: string;
try {
sessionFile = resolveSessionFilePath(entry.sessionId, entry, {
agentId: params.agentId,
sessionsDir: path.dirname(storePath),
});
sessionFile = resolveSessionFilePath(
entry.sessionId,
entry,
resolveSessionFilePathOptions({ agentId: params.agentId, storePath }),
);
} catch (err) {
return {
text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}`,

View File

@@ -102,6 +102,31 @@ export async function applyInlineDirectiveOverrides(params: {
let { directives } = params;
let { provider, model } = params;
let { contextTokens } = params;
const directiveModelState = {
allowedModelKeys: modelState.allowedModelKeys,
allowedModelCatalog: modelState.allowedModelCatalog,
resetModelOverride: modelState.resetModelOverride,
};
const createDirectiveHandlingBase = () => ({
cfg,
directives,
sessionEntry,
sessionStore,
sessionKey,
storePath,
elevatedEnabled,
elevatedAllowed,
elevatedFailures,
messageProviderKey,
defaultProvider,
defaultModel,
aliasIndex,
...directiveModelState,
provider,
model,
initialModelLabel,
formatModelSwitchEvent,
});
let directiveAck: ReplyPayload | undefined;
@@ -135,26 +160,7 @@ export async function applyInlineDirectiveOverrides(params: {
});
const currentThinkLevel = resolvedDefaultThinkLevel;
const directiveReply = await handleDirectiveOnly({
cfg,
directives,
sessionEntry,
sessionStore,
sessionKey,
storePath,
elevatedEnabled,
elevatedAllowed,
elevatedFailures,
messageProviderKey,
defaultProvider,
defaultModel,
aliasIndex,
allowedModelKeys: modelState.allowedModelKeys,
allowedModelCatalog: modelState.allowedModelCatalog,
resetModelOverride: modelState.resetModelOverride,
provider,
model,
initialModelLabel,
formatModelSwitchEvent,
...createDirectiveHandlingBase(),
currentThinkLevel,
currentVerboseLevel,
currentReasoningLevel,
@@ -222,9 +228,7 @@ export async function applyInlineDirectiveOverrides(params: {
defaultProvider,
defaultModel,
aliasIndex,
allowedModelKeys: modelState.allowedModelKeys,
allowedModelCatalog: modelState.allowedModelCatalog,
resetModelOverride: modelState.resetModelOverride,
...directiveModelState,
provider,
model,
initialModelLabel,
@@ -232,9 +236,7 @@ export async function applyInlineDirectiveOverrides(params: {
agentCfg,
modelState: {
resolveDefaultThinkingLevel: modelState.resolveDefaultThinkingLevel,
allowedModelKeys: modelState.allowedModelKeys,
allowedModelCatalog: modelState.allowedModelCatalog,
resetModelOverride: modelState.resetModelOverride,
...directiveModelState,
},
});
directiveAck = fastLane.directiveAck;