Three new exported helpers in browse/src/config.ts:
- resolveGstackHome(): honors GSTACK_HOME env, falls back to os.homedir()/.gstack
Matches the existing convention in browse/src/telemetry.ts:26 and
browse/src/domain-skills.ts:66.
- resolveChromiumProfile(explicit?): explicit arg wins -> CHROMIUM_PROFILE env
-> resolveGstackHome()/chromium-profile. Lets gbrowser pass per-workspace
profile paths through ServerConfig instead of relying on ambient env state.
- cleanSingletonLocks(dir): removes SingletonLock/Socket/Cookie via safeUnlinkQuiet.
Defensive guard refuses to operate unless dir basename is 'chromium-profile'
OR matches explicit CHROMIUM_PROFILE env value, preventing accidental
deletion in unrelated directories.
Extends browse/test/config.test.ts with 12 tests covering env precedence,
guard behavior, ENOENT swallowing, and CHROMIUM_PROFILE override.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>