fix(skills): make app-bundle detection gate HOME-independent
The allowSystemApps gate (homeDir == systemHome) was effectively a no-op in production: systemHome came from os.UserHomeDir, which honors the $HOME env override just like homeDir, so the two were always equal and the gate never fired when $HOME was overridden. ResolveSystemHomeDir now prefers the OS user database (getpwuid on Unix), which is independent of $HOME, falling back to $HOME only when the user record cannot be resolved. Production behavior is unchanged (a real $HOME still matches); an isolated/overridden HOME now correctly skips machine-wide /Applications discovery for zcode/minimax. The app surface references the same shared resolver. This is the correct fix for the hermeticity concern (machine-wide state leaking into an isolated HOME): there is no cross-surface production inconsistency to port — script installers always operate on the real user HOME in practice, so they need no gate.
This commit is contained in:
1 parent
09fc5d993d
commit
c0da89e674
3 files changed
+69
-2
No files matched your search
@@ -127,7 +127,7 @@ var (
|
||||
skillSetupExecutable = os.Executable
|
||||
skillSetupGetwd = os.Getwd
|
||||
skillSetupUserHomeDir = os.UserHomeDir
|
||||
skillSetupSystemHomeDir = os.UserHomeDir
|
||||
skillSetupSystemHomeDir = upgrade.ResolveSystemHomeDir
|
||||
skillSetupRemoveAll = os.RemoveAll
|
||||
skillSetupBackupAndRemove = upgrade.BackupAndRemoveSkillDir
|
||||
skillSetupRestoreBackup = upgrade.RestoreSkillPath
|
||||
|
||||
Reference in new issue
Block a user