Use media-normalized context for output token capping - #11497
Use media-normalized context for output token capping#11497Bortlesboat wants to merge 6 commits into
Conversation
|
|
||
| const tokens = input.tokens ?? KiloSessionOverflow.measure({ messages: input.messages, tools: input.tools }).raw | ||
| const tokens = | ||
| input.contextTokens ?? KiloSessionOverflow.measure({ messages: input.messages, tools: input.tools }).normalized |
There was a problem hiding this comment.
WARNING: normalized removes almost all image context cost from the output-cap calculation
KiloSessionOverflow.measure() turns every file/image payload into the fixed [encoded media] marker before producing normalized, so this cap now treats even several large images as nearly free context. On smaller multimodal windows that can leave maxOutputTokens effectively uncapped even though the provider still has to spend real prompt tokens on the images, which turns a preventable cap adjustment into a provider-side context overflow. A media-aware estimate, or at least a non-trivial per-image reserve here, would keep the cap from over-allocating.
Reply with @kilocode-bot fix it to have Kilo Code address this issue.
Code Review SummaryStatus: No Issues Found | Recommendation: Merge The previously flagged WARNING ( Files Reviewed (3 files)
Previous Review Summaries (2 snapshots, latest commit 2f3b28f)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit 2f3b28f)Status: 1 Issue Found | Recommendation: Address before merge Overview
Fix these issues in Kilo Cloud Issue Details (click to expand)WARNING
Files Reviewed (3 files)
Previous review (commit 3a1a722)Status: 1 Issue Found | Recommendation: Address before merge Overview
Fix these issues in Kilo Cloud Issue Details (click to expand)WARNING
Files Reviewed (4 files)
Reviewed by claude-sonnet-5-20260630 · Input: 38 · Output: 9.3K · Cached: 1.3M Review guidance: REVIEW.md from base branch |
|
Updated in Verification:
Note: local push hook required Bun |
…d-output-cap # Conflicts: # packages/opencode/src/kilocode/session/llm.ts # packages/opencode/src/session/llm.ts # packages/opencode/test/kilocode/session-overflow.test.ts
|
superseded by #11891 |
Summary
maxOutputTokens, so base64 image transport size no longer consumes the output allowance.KiloSessionOverflow.measure().rawfor payload-size recovery paths.Fixes #11432
Tests
bun test ./test/kilocode/session-overflow.test.tsbun run typecheckfrompackages/opencodebun run script/check-opencode-annotations.tsbun x prettier --check .changeset/fix-media-output-cap.md packages/opencode/src/kilocode/session/llm.ts packages/opencode/src/session/llm.ts packages/opencode/test/kilocode/session-overflow.test.tsgit diff --checkNote: root
bun typecheckreachespackages/kilo-jetbrainsand fails locally because Gradle requires JVM 17 while this machine is configured with JVM 8.