fix: resolve 3 bugs (#3366, #3272, #3222)

- shell-env: detect Git Bash via MSYSTEM env var when SHELL is unset (#3366)
  On some Git Bash installations SHELL is not set but MSYSTEM (MINGW64/MSYS)
  is always present. Check MSYSTEM before PSModulePath to avoid emitting
  PowerShell syntax in bash shells.

- session-state: resolve legacy agent names in resolveRegisteredAgentName (#3272)
  Historical sessions stored agent names like 'Sisyphus (Ultraworker)' which
  don't match the current registered format. Fall back to getAgentConfigKey
  for legacy/parenthesized name resolution before returning the raw name.

- config-migration: skip backup when file content is unchanged (#3222)
  Compare serialized config with existing file content before creating a
  timestamped .bak file. Only create backup when the on-disk content
  actually differs from the migrated content.
This commit is contained in:
YeonGyu-Kim
2026-04-15 10:43:44 +09:00
parent 54a94d4169
commit 0dab3116b7
7 changed files with 172 additions and 13 deletions
+7
View File
@@ -21,6 +21,13 @@ export function detectShellType(): ShellType {
return "unix"
}
// Git Bash on Windows sets MSYSTEM (e.g. "MINGW64", "MINGW32", "MSYS")
// even when SHELL is not set. Detect this before PSModulePath which is
// always present on Windows regardless of the active shell.
if (process.env.MSYSTEM) {
return "unix"
}
if (process.env.PSModulePath) {
return "powershell"
}