feat: add Pi agent support#71
Conversation
- Add :pi agent type to filter cycle, view badge ([Pi]), and capture detection - Add capture-based state detection for Pi (Working... indicator, spinner, prompt) - Add process tree detection for pi agent (word-boundary pi pattern) - Add handler support for pi agent (hook fallback) - Add tests for all new functionality
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d06f916c13
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| (case agent-type | ||
| :claude-code #"(?i)claude" | ||
| :codex #"(?i)codex" | ||
| :pi #"(?i)\\bpi\\b" |
There was a problem hiding this comment.
Fix Pi liveness regex word boundaries
For Pi sessions in tmux, this pattern never matches a normal pi command line because Clojure regex literals already pass backslashes through to java.util.regex.Pattern; \b here is interpreted as a literal backslash plus b, not a word boundary. As a result find-agent-in-tree reports live Pi panes as :not-found, so close-stale-sessions! can immediately mark newly recorded Pi sessions closed and closed Pi sessions cannot reactivate. Use real regex word boundaries in the literal.
Useful? React with 👍 / 👎.
What's Changed
Changes
Source
src/ceeker/tmux/pane.clj- Addpipattern toagent-patternsrc/ceeker/tmux/capture.clj- Adddetect-pi-statewith spinner/Working... detectionsrc/ceeker/hook/handler.clj- Addnormalize-pi-eventhandlersrc/ceeker/tui/filter.clj- Addpito agent filter cyclesrc/ceeker/tui/view.clj- Add [Pi] badge displayTests
test/ceeker/tmux/capture_test.clj- Pi state detection teststest/ceeker/hook/handler_test.clj- Pi handler testtest/ceeker/tui/filter_test.clj- Updated filter cycle expectationstest/ceeker/tui/app_test.clj- Updated filter cycle expectationsCI