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)
- Detect and warn about interactive commands (vim, nano, less, etc.)
- Filter out descriptive entries with parentheses from pattern matching
🤖 GENERATED WITH ASSISTANCE OF OhMyOpenCode (https://github.com/code-yeongyu/oh-my-opencode)
- Add npm_config_yes, PIP_NO_INPUT, YARN_ENABLE_IMMUTABLE_INSTALLS env vars
- Add SHELL_COMMAND_PATTERNS documentation for common command patterns
- Document good/bad patterns for npm, apt, pip, git, system commands
- List banned commands that will always hang (editors, pagers, REPLs)
- Include workarounds for scripts requiring input (yes pipe, heredoc)
- GIT_EDITOR, EDITOR, VISUAL, GIT_SEQUENCE_EDITOR set to 'true' to block editor invocations during git operations like rebase
- GIT_PAGER, PAGER set to 'cat' to disable pagination
- Fixes issue where git rebase --continue was still opening nvim despite existing non-interactive env vars
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
- Replace regex-based command blocking with environment configuration
- Add cross-platform null device support (NUL for Windows, /dev/null for Unix)
- Wrap all bash commands with non-interactive environment variables
- Only block TUI programs that require full PTY
- Update schema, README docs, and all imports/exports
🤖 GENERATED WITH ASSISTANCE OF [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)