saveFolderModelState function
Saves the model/provider triple for the folder cwd lives in.
Never throws on storage failure: a broken sessions root must not kill a model switch (the global config persistence reports on its own).
Implementation
Future<void> saveFolderModelState(
ExecutionEnv env, {
required String sessionsRoot,
required String cwd,
required String providerKind,
required String modelId,
required String? baseUrl,
}) async {
try {
final dir = '$sessionsRoot/${encodeSessionCwd(cwd)}';
await env.createDir(dir, recursive: true);
final write = await env.writeFile(
'$dir/model-state.json',
jsonEncode({
'providerKind': providerKind,
'modelId': modelId,
'baseUrl': ?baseUrl,
}),
);
write.getOrThrow();
} on Object {
// Best-effort: the switch itself already succeeded.
}
}