chore: switch external model harness from Kilo to pi - #18
Open
kulvirgit wants to merge 1 commit into
Open
Conversation
kulvirgit
force-pushed
the
chore/swap-kilo-to-pi
branch
from
July 21, 2026 19:36
6074afa to
647f259
Compare
kulvirgit
marked this pull request as ready for review
July 21, 2026 21:18
Code Review SummaryStatus: 1 Suggestion Found | Recommendation: Merge (non-blocking) Overview
Issue Details (click to expand)SUGGESTION
Review Notes
Files Reviewed (13 files)
Reviewed by glm-5.2 · Input: 69.4K · Output: 23.9K · Cached: 764.6K |
kulvirgit
force-pushed
the
chore/swap-kilo-to-pi
branch
from
July 24, 2026 21:40
647f259 to
ab3af1e
Compare
Also fix how the panel tracks a running pi model, drop CodeRabbit, and stop
gating non-OpenRouter pi models on an OpenRouter key.
**Tracking.** `pi` buffers ALL output until the process exits — verified for
`--mode text`, `--mode json` and `--mode rpc`, and the session file is not
created until completion either, so there is no incremental channel to watch.
The polling protocol treated output-file growth as the health signal and
declared a model "stuck" after 10 minutes of no growth. Since the file sits at
0 bytes for the entire run, that rule fires on healthy reviews: a genuine 40+
minute review is indistinguishable from a hung one and gets abandoned.
Track the process instead:
- Launch each model in a subshell that records a pid file and, on completion,
an exit sentinel (`{model}.exit`).
- Poll `kill -0 $(cat {model}.pid)` for liveness. ALIVE means working,
regardless of output size.
- Treat a model as failed only when the process is GONE **and** the sentinel is
non-zero or the output is empty. GONE + exit 0 + non-empty output is a
success awaiting its SendMessage.
- Call out explicitly that file size must not be used as a health signal, so
the heuristic does not get reintroduced.
Verified with a real pi run: ALIVE at 0 bytes for 32s+, then GONE with exit=0
and non-empty output, correctly classified as success. This also caught a real
failure — a review that died silently and produced nothing was previously
indistinguishable from one still working.
**Preflight.** The check required `OPENROUTER_API_KEY` for every command
starting with `pi `, but a model configured as `pi --provider altimate-azure`
does not use OpenRouter at all. A missing OpenRouter key would therefore skip a
perfectly working model and then abort on quorum, while never validating the
credential that model actually needs. The required credential is now derived
from each model's own `--provider`.
**CodeRabbit removed.** Its invocation used `coderabbit review --plain`, and the
CLI has since removed `--plain` (plain text is the default). Combined with the
"if it fails, continue without it" fallback, CodeRabbit was silently skipped on
every run. Rather than carry a supplementary reviewer that quietly does nothing,
drop it: availability check, invocation, collection/reporting lines, comparison
table column, attribution footer, the skill-reference section, and the plugin
keywords.
kulvirgit
force-pushed
the
chore/swap-kilo-to-pi
branch
from
July 24, 2026 22:13
ab3af1e to
b442e03
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Switches the consensus panel's external-model harness from Kilo (
kilo run) to the pi coding agent across the whole plugin.kilo run -m openrouter/<id> --autopi --provider openrouter --model <id> -pconsensus.config.json,consensus.codex.config.json): every OpenRouter model command → pi form.resume_flagstays-c(pi's--continue). Nativecodex/agy/qwenentries unchanged; they already run through the command templates' native branches.consensus-setup.md,code-review.md,review.md,plan-review.md+ reference copies): CLI detection, provider prompts, harness tables, preflight, and the default CLI branch now referencepi(command -v pi). pi commands run via the existing default ("Otherwise") branch — no new branch logic needed.openai/gpt-5.4-codex→openai/gpt-5.3-codex,x-ai/grok-4.20-beta→x-ai/grok-4.3,xiaomi/mimo-v2-pro→xiaomi/mimo-v2.5-pro(display names aligned).1.8.0.Why
The Kilo
--autoagentic run was hanging indefinitely on heavy code-review prompts (trivial prompts returned fine); pi runs the same reviews cleanly. pi also natively supports OpenRouter and custom providers (Azure OpenAI via a~/.pi/agent/extensions/provider extension).Verification
pi --list-models(openrouter). 8 valid as-is; the 3 above were invalid and remapped.pi --provider openrouter --model openai/gpt-5.3-codex -phello probe returned OK.kiloreferences remain anywhere in the repo.🤖 Generated with Claude Code
https://claude.ai/code/session_01JaLH3xYUKVDipzLQC76Kis