feat(claude-tasks): add CLAUDE_CODE_TASK_LIST_ID env var support
- Export session-storage from claude-tasks/index.ts
- Add CLAUDE_CODE_TASK_LIST_ID fallback support in storage.ts
- Add comprehensive tests for CLAUDE_CODE_TASK_LIST_ID handling
- Prefer ULTRAWORK_TASK_LIST_ID, fall back to CLAUDE_CODE_TASK_LIST_ID
- Both env vars are properly sanitized for path safety
🤖 Generated with assistance of OhMyOpenCode
This commit is contained in:
parent
ee72c45552
commit
6717349e5b
@ -1,2 +1,3 @@
|
|||||||
export * from "./types"
|
export * from "./types"
|
||||||
export * from "./storage"
|
export * from "./storage"
|
||||||
|
export * from "./session-storage"
|
||||||
|
|||||||
@ -20,6 +20,7 @@ const TEST_DIR_ABS = join(process.cwd(), TEST_DIR)
|
|||||||
|
|
||||||
describe("getTaskDir", () => {
|
describe("getTaskDir", () => {
|
||||||
const originalTaskListId = process.env.ULTRAWORK_TASK_LIST_ID
|
const originalTaskListId = process.env.ULTRAWORK_TASK_LIST_ID
|
||||||
|
const originalClaudeTaskListId = process.env.CLAUDE_CODE_TASK_LIST_ID
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
if (originalTaskListId === undefined) {
|
if (originalTaskListId === undefined) {
|
||||||
@ -27,6 +28,12 @@ describe("getTaskDir", () => {
|
|||||||
} else {
|
} else {
|
||||||
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (originalClaudeTaskListId === undefined) {
|
||||||
|
delete process.env.CLAUDE_CODE_TASK_LIST_ID
|
||||||
|
} else {
|
||||||
|
process.env.CLAUDE_CODE_TASK_LIST_ID = originalClaudeTaskListId
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
@ -35,6 +42,12 @@ describe("getTaskDir", () => {
|
|||||||
} else {
|
} else {
|
||||||
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (originalClaudeTaskListId === undefined) {
|
||||||
|
delete process.env.CLAUDE_CODE_TASK_LIST_ID
|
||||||
|
} else {
|
||||||
|
process.env.CLAUDE_CODE_TASK_LIST_ID = originalClaudeTaskListId
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
test("returns global config path for default config", () => {
|
test("returns global config path for default config", () => {
|
||||||
@ -62,6 +75,19 @@ describe("getTaskDir", () => {
|
|||||||
expect(result).toBe(join(configDir, "tasks", "custom-list-id"))
|
expect(result).toBe(join(configDir, "tasks", "custom-list-id"))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("respects CLAUDE_CODE_TASK_LIST_ID env var when ULTRAWORK_TASK_LIST_ID not set", () => {
|
||||||
|
//#given
|
||||||
|
delete process.env.ULTRAWORK_TASK_LIST_ID
|
||||||
|
process.env.CLAUDE_CODE_TASK_LIST_ID = "claude list/id"
|
||||||
|
const configDir = getOpenCodeConfigDir({ binary: "opencode" })
|
||||||
|
|
||||||
|
//#when
|
||||||
|
const result = getTaskDir()
|
||||||
|
|
||||||
|
//#then
|
||||||
|
expect(result).toBe(join(configDir, "tasks", "claude-list-id"))
|
||||||
|
})
|
||||||
|
|
||||||
test("falls back to sanitized cwd basename when env var not set", () => {
|
test("falls back to sanitized cwd basename when env var not set", () => {
|
||||||
//#given
|
//#given
|
||||||
delete process.env.ULTRAWORK_TASK_LIST_ID
|
delete process.env.ULTRAWORK_TASK_LIST_ID
|
||||||
@ -114,6 +140,7 @@ describe("getTaskDir", () => {
|
|||||||
|
|
||||||
describe("resolveTaskListId", () => {
|
describe("resolveTaskListId", () => {
|
||||||
const originalTaskListId = process.env.ULTRAWORK_TASK_LIST_ID
|
const originalTaskListId = process.env.ULTRAWORK_TASK_LIST_ID
|
||||||
|
const originalClaudeTaskListId = process.env.CLAUDE_CODE_TASK_LIST_ID
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
if (originalTaskListId === undefined) {
|
if (originalTaskListId === undefined) {
|
||||||
@ -121,6 +148,12 @@ describe("resolveTaskListId", () => {
|
|||||||
} else {
|
} else {
|
||||||
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (originalClaudeTaskListId === undefined) {
|
||||||
|
delete process.env.CLAUDE_CODE_TASK_LIST_ID
|
||||||
|
} else {
|
||||||
|
process.env.CLAUDE_CODE_TASK_LIST_ID = originalClaudeTaskListId
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
@ -129,6 +162,12 @@ describe("resolveTaskListId", () => {
|
|||||||
} else {
|
} else {
|
||||||
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
process.env.ULTRAWORK_TASK_LIST_ID = originalTaskListId
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (originalClaudeTaskListId === undefined) {
|
||||||
|
delete process.env.CLAUDE_CODE_TASK_LIST_ID
|
||||||
|
} else {
|
||||||
|
process.env.CLAUDE_CODE_TASK_LIST_ID = originalClaudeTaskListId
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
test("returns env var when set", () => {
|
test("returns env var when set", () => {
|
||||||
@ -142,6 +181,30 @@ describe("resolveTaskListId", () => {
|
|||||||
expect(result).toBe("custom-list")
|
expect(result).toBe("custom-list")
|
||||||
})
|
})
|
||||||
|
|
||||||
|
test("returns CLAUDE_CODE_TASK_LIST_ID when ULTRAWORK_TASK_LIST_ID not set", () => {
|
||||||
|
//#given
|
||||||
|
delete process.env.ULTRAWORK_TASK_LIST_ID
|
||||||
|
process.env.CLAUDE_CODE_TASK_LIST_ID = "claude-list"
|
||||||
|
|
||||||
|
//#when
|
||||||
|
const result = resolveTaskListId()
|
||||||
|
|
||||||
|
//#then
|
||||||
|
expect(result).toBe("claude-list")
|
||||||
|
})
|
||||||
|
|
||||||
|
test("sanitizes CLAUDE_CODE_TASK_LIST_ID special characters", () => {
|
||||||
|
//#given
|
||||||
|
delete process.env.ULTRAWORK_TASK_LIST_ID
|
||||||
|
process.env.CLAUDE_CODE_TASK_LIST_ID = "claude list/id"
|
||||||
|
|
||||||
|
//#when
|
||||||
|
const result = resolveTaskListId()
|
||||||
|
|
||||||
|
//#then
|
||||||
|
expect(result).toBe("claude-list-id")
|
||||||
|
})
|
||||||
|
|
||||||
test("sanitizes special characters", () => {
|
test("sanitizes special characters", () => {
|
||||||
//#given
|
//#given
|
||||||
process.env.ULTRAWORK_TASK_LIST_ID = "custom list/id"
|
process.env.ULTRAWORK_TASK_LIST_ID = "custom list/id"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user