fix(patch): cherry-pick 3332703 to release/v0.12.0-preview.5-pr-12317 to patch version v0.12.0-preview.5 and create version 0.12.0-preview.6#12334
Conversation
Summary of ChangesHello @gemini-cli-robot, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request streamlines the chat history compression configuration by replacing a nested object structure with a direct numerical setting. This change simplifies how users define the compression threshold and adjusts the default value to trigger compression earlier, aiming to improve performance or context management. The update involves refactoring across documentation, CLI configuration, and core service logic to align with the new setting. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
Size Change: +81 B (0%) Total Size: 20.2 MB ℹ️ View Unchanged
|
There was a problem hiding this comment.
Code Review
This pull request refactors the chat history compression setting, changing it from a nested object chatCompression: { contextPercentageThreshold: ... } to a simpler top-level numeric property compressionThreshold. The changes are applied consistently across documentation, configuration schemas, core logic, and tests. The default threshold for compression has also been changed from 0.7 to 0.2. My main feedback is regarding the lack of validation for the new compressionThreshold setting, which could lead to unexpected behavior if misconfigured by the user.
| const threshold = | ||
| config.getChatCompression()?.contextPercentageThreshold ?? | ||
| DEFAULT_COMPRESSION_TOKEN_THRESHOLD; | ||
| config.getCompressionThreshold() ?? DEFAULT_COMPRESSION_TOKEN_THRESHOLD; |
There was a problem hiding this comment.
The compressionThreshold is documented to be a value between 0 and 1. However, there is no validation to enforce this range. A user could provide an invalid value (e.g., > 1 or < 0) in their settings, leading to unexpected behavior without any feedback. For example, a value greater than 1 would likely prevent automatic compression from ever triggering, while a negative value could cause it to trigger on every turn.
This is a regression, as a test for warning on invalid values was removed for the old chatCompression setting but not replaced for the new compressionThreshold. It's recommended to add validation for this value. If it's outside the valid range, you could log a warning and fall back to the default value.
let threshold =
config.getCompressionThreshold() ?? DEFAULT_COMPRESSION_TOKEN_THRESHOLD;
if (threshold < 0 || threshold > 1) {
// TODO: Consider using a more formal logging mechanism if available.
console.warn(
`Invalid compressionThreshold value: ${threshold}. It must be between 0 and 1. Using default value ${DEFAULT_COMPRESSION_TOKEN_THRESHOLD}.`,
);
threshold = DEFAULT_COMPRESSION_TOKEN_THRESHOLD;
}
mattKorwel
left a comment
There was a problem hiding this comment.
Looks good to me but @scidomino or @abhipatel12 please confirm.
fe44afe
into
release/v0.12.0-preview.5-pr-12317
This PR automatically cherry-picks commit 3332703 to patch version v0.12.0-preview.5 in the preview release to create version 0.12.0-preview.6.