saveFolderModelState function

Future<void> saveFolderModelState(
  1. ExecutionEnv env, {
  2. required String sessionsRoot,
  3. required String cwd,
  4. required String providerKind,
  5. required String modelId,
  6. required String? baseUrl,
})

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.
  }
}