mirror of
https://github.com/PR0M3TH3AN/TORCH.git
synced 2026-10-27 07:51:52 +00:00
Fix: Correctly detect agent platform for locks
- Updated `src/utils.mjs` to detect 'claude' platform via `CLAUDE_API_KEY`, `ANTHROPIC_API_KEY`, or `CLAUDE_SESSION_ID`. - Updated `scripts/agent/scheduler-utils.mjs` `getSafeEnv` to preserve `JULES_`, `CODEX_`, `CLAUDE_`, `ANTHROPIC_`, and `GOOSE_` environment variables when spawning child processes. - Updated `scripts/agent/run-scheduler-cycle.mjs` to use `detectPlatform()` as a fallback for `AGENT_PLATFORM` instead of hardcoding `'codex'`, ensuring the correct platform is used for lock creation. - Added unit tests for `detectPlatform` in `test/utils.test.mjs`. This resolves the issue where lock cards displayed "Unknown" or incorrect platforms. Co-authored-by: PR0M3TH3AN <[email protected]>
This commit is contained in:
1 parent
a5c8912487
commit
ae2e382bfd
4 files changed
+69
-3
No files matched your search
+59
-1
@@ -2,7 +2,7 @@ import { describe, it, after } from 'node:test';
|
||||
import assert from 'node:assert';
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { getIsoWeekStr, todayDateStr, nowUnix, ensureDir } from '../src/utils.mjs';
|
||||
import { getIsoWeekStr, todayDateStr, nowUnix, ensureDir, detectPlatform } from '../src/utils.mjs';
|
||||
|
||||
describe('Date Utilities', () => {
|
||||
describe('todayDateStr', () => {
|
||||
@@ -59,6 +59,64 @@ describe('Date Utilities', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('Platform Utilities', () => {
|
||||
describe('detectPlatform', () => {
|
||||
const originalEnv = { ...process.env };
|
||||
|
||||
// Helper to clear relevant env vars
|
||||
const clearEnv = () => {
|
||||
delete process.env.JULES_SESSION_ID;
|
||||
delete process.env.JULES_API_KEY;
|
||||
delete process.env.CODEX_SESSION_ID;
|
||||
delete process.env.CODEX_API_KEY;
|
||||
delete process.env.GOOSE_SESSION_ID;
|
||||
delete process.env.GOOSE_API_KEY;
|
||||
delete process.env.CLAUDE_SESSION_ID;
|
||||
delete process.env.CLAUDE_API_KEY;
|
||||
delete process.env.ANTHROPIC_API_KEY;
|
||||
};
|
||||
|
||||
after(() => {
|
||||
process.env = originalEnv;
|
||||
});
|
||||
|
||||
it('detects jules', () => {
|
||||
clearEnv();
|
||||
process.env.JULES_SESSION_ID = 'test';
|
||||
assert.strictEqual(detectPlatform(), 'jules');
|
||||
});
|
||||
|
||||
it('detects codex', () => {
|
||||
clearEnv();
|
||||
process.env.CODEX_API_KEY = 'test';
|
||||
assert.strictEqual(detectPlatform(), 'codex');
|
||||
});
|
||||
|
||||
it('detects goose', () => {
|
||||
clearEnv();
|
||||
process.env.GOOSE_SESSION_ID = 'test';
|
||||
assert.strictEqual(detectPlatform(), 'goose');
|
||||
});
|
||||
|
||||
it('detects claude via CLAUDE_API_KEY', () => {
|
||||
clearEnv();
|
||||
process.env.CLAUDE_API_KEY = 'test';
|
||||
assert.strictEqual(detectPlatform(), 'claude');
|
||||
});
|
||||
|
||||
it('detects claude via ANTHROPIC_API_KEY', () => {
|
||||
clearEnv();
|
||||
process.env.ANTHROPIC_API_KEY = 'test';
|
||||
assert.strictEqual(detectPlatform(), 'claude');
|
||||
});
|
||||
|
||||
it('returns null if no platform detected', () => {
|
||||
clearEnv();
|
||||
assert.strictEqual(detectPlatform(), null);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('File Utilities', () => {
|
||||
describe('ensureDir', () => {
|
||||
const tempBase = fs.mkdtempSync(path.join(process.cwd(), 'test-utils-'));
|
||||
|
||||
Reference in new issue
Block a user