`gsd -p --model X "msg"` was silently overwriting defaultProvider/ defaultModel in settings.json. One-shot verification runs must use the model for that invocation only. Adds an AgentSessionConfig.persistModelChanges flag (default true so interactive behavior is unchanged), forwards it through createAgentSession, and sets it false in main.ts when !isInteractive and in src/cli.ts print mode. The gsd wrapper also skips validateConfiguredModel when --model is explicitly passed, so a CLI-provided model can't trigger a fallback repair that writes the wrong default back. Three settings.json write sinks audited: agent-session._applyModelChange (gated on flag), model-selector.ts (interactive only, unreachable in print), startup-model-validation (gated by !cliFlags.model in print). Regression: 8 source-assertion tests in agent-session-print-mode-persist.test.ts. |
||
|---|---|---|
| .. | ||
| scripts | ||
| src | ||
| package.json | ||
| tsconfig.json | ||