refactor: unify Chrome CDP profile path across all skills

All skills now share a single Chrome profile at:
- macOS: ~/Library/Application Support/baoyu-skills/chrome-profile
- Linux: $XDG_DATA_HOME/baoyu-skills/chrome-profile
- Env override: BAOYU_CHROME_PROFILE_DIR

Fixes baoyu-post-to-weibo incorrectly reusing x-browser-profile.
Legacy per-skill env vars retained as fallback.
This commit is contained in:
Jim Liu 宝玉
2026-03-06 16:03:01 -06:00
parent c60eb85629
commit 6e533f938f
7 changed files with 33 additions and 21 deletions
+6 -2
View File
@@ -61,8 +61,12 @@ export function findChromeExecutable(): string | undefined {
}
export function getDefaultProfileDir(): string {
const base = process.env.XDG_DATA_HOME || path.join(os.homedir(), '.local', 'share');
return path.join(base, 'wechat-browser-profile');
const override = process.env.BAOYU_CHROME_PROFILE_DIR?.trim();
if (override) return path.resolve(override);
const base = process.platform === 'darwin'
? path.join(os.homedir(), 'Library', 'Application Support')
: process.env.XDG_DATA_HOME || path.join(os.homedir(), '.local', 'share');
return path.join(base, 'baoyu-skills', 'chrome-profile');
}
async function fetchJson<T = unknown>(url: string): Promise<T> {
@@ -183,11 +183,14 @@ function getWslWindowsHome(): string | null {
}
function getDefaultProfileDir(): string {
const override = process.env.WECHAT_BROWSER_PROFILE_DIR?.trim();
const override = process.env.BAOYU_CHROME_PROFILE_DIR?.trim() || process.env.WECHAT_BROWSER_PROFILE_DIR?.trim();
if (override) return path.resolve(override);
const home = getWslWindowsHome() ?? os.homedir();
const base = process.env.XDG_DATA_HOME || path.join(home, '.local', 'share');
return path.join(base, 'wechat-browser-profile');
const wslHome = getWslWindowsHome();
if (wslHome) return path.join(wslHome, '.local', 'share', 'baoyu-skills', 'chrome-profile');
const base = process.platform === 'darwin'
? path.join(os.homedir(), 'Library', 'Application Support')
: process.env.XDG_DATA_HOME || path.join(os.homedir(), '.local', 'share');
return path.join(base, 'baoyu-skills', 'chrome-profile');
}
async function fetchJson<T = unknown>(url: string): Promise<T> {