Repository navigation
feat(parser): capture Pi thinking level as reasoning effort - #2503
Merged
Merged
Conversation
roborev: Combined Review (
|
mariusvniekerk
force-pushed
the
feat/pi-effort
branch
from
October 29, 2026 15:56
5cee289 to
813cf2f
Compare
roborev: Combined Review (
|
mariusvniekerk
force-pushed
the
feat/pi-effort
branch
from
October 29, 2026 16:00
813cf2f to
cc4e446
Compare
roborev: Combined Review (
|
mariusvniekerk
force-pushed
the
feat/pi-effort
branch
from
October 30, 2026 20:06
cc4e446 to
5a12805
Compare
roborev: Combined Review (
|
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.
Sessions from the Pi agent now show their reasoning effort in AgentsView, the same way Claude and Codex sessions do. Before this, the effort column was always empty for Pi, so the model label in the UI never included the thinking level and effort-based filtering had nothing to match.
What changed
The Pi parser now fills
reasoning_efforton assistant messages from two sources:message.thinkingLevelon the message itself. Pi has written this since v0.99.0.thinking_level_changeentry, when a message has no inline value. Pi has written these entries since its first releases, so older sessions get an effort value too. Sessions with neither source stay empty.The inline value wins when both exist. Values are stored exactly as Pi wrote them. Pi types the field as a plain string, so a new level name needs no AgentsView change.
offis stored asoff. A nullthinkingLevel(oh-my-pi can write one) is ignored.Parser data version 151 reparses the Pi family (Pi, OMP, OMO, Prime Agent, StepCode) in place, so existing archives pick up the new field without a full resync. They share one parser, so they are all in scope. The column already exists in SQLite, the mirrors, the wire format, and the frontend, so there is no schema or UI change.
docs/internal/session-format-sources.mdrecords the source fields and when upstream added them.Where to look
internal/parser/pi.go:currentEfforttracking in the entry loop andapplyPiReasoningEffort.internal/db/data_version_scope.go: the version 151 scope.internal/parser/pi_test.go:TestPiParserReasoningEffort.Limits
configuredselector (such asauto) is not captured. Only the resolved level is.