Files
oh-my-opencode/src/hooks/non-interactive-env/detector.ts
T
YeonGyu-Kim 1a6ba86b33 Prevent premature exit in non-interactive mode when tasks pending (#216) (#217)
Detects non-interactive environments (CI, opencode run) and prevents session idle when:
- Background tasks are still running
- Incomplete todos remain in the queue

Changes:
- Add isNonInteractive() detector for CI/headless environment detection
- Export detector from non-interactive-env hook module
- Enhance todo-continuation-enforcer to inject prompts BEFORE session.idle
- Pass BackgroundManager to todo-continuation-enforcer for task status checks

This fix prevents `opencode run` from exiting prematurely when work is pending.

🤖 Generated with assistance of OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode)
2025-12-25 15:27:34 +09:00

20 lines
382 B
TypeScript

export function isNonInteractive(): boolean {
if (process.env.CI === "true" || process.env.CI === "1") {
return true
}
if (process.env.OPENCODE_RUN === "true" || process.env.OPENCODE_NON_INTERACTIVE === "true") {
return true
}
if (process.env.GITHUB_ACTIONS === "true") {
return true
}
if (!process.stdout.isTTY) {
return true
}
return false
}