Commit Graph

5297 Commits

Author SHA1 Message Date
Jarrod Whelan
8db8899158 fix(cli): strengthen identity management and resolve key collisions / key duplication issues
- Improve history ID generation logic to be strictly increasing, preventing "Transition Race" collisions between pending and finalized items.
- Strengthen ID tracking to correctly handle session resumes by ensuring new IDs always start after the highest existing entry.
- Assign unique negative IDs and negatively indexed keys (`pending-${i}`) to pending history items in `MainContent`.
- Add a global `callIdCounter` to `acpClient` to safeguard against sub-millisecond tool call collisions.
- Harden `DenseToolMessage` rendering with stable string keys for conditional UI components.
- Update unit tests to verify strictly increasing ID generation and align with negatively indexed pending IDs.
2026-03-14 02:40:50 -07:00
Jarrod Whelan
236fb0290d fix(cli,core): resolve build issues with structured tool result display
- Added `isStructuredToolResult` type guard to safely check for `summary` properties on tool results in `ToolResultDisplay`.
- Resolved `data.slice is not a function` errors in UI tests caused by structured tool results falling back to `AnsiOutput` parsing.
- Updated `DiffRenderer` assertions to include `disableColor: false`.
- Updated `ReadManyFilesTool` tests to assert against the new `ReadManyFilesResult` object structure instead of flat strings.
- Removed unsafe type assertions (`any`) in `ToolGroupMessage.compact.test.tsx` and `ToolGroupMessage.tsx` where possible.
- docs: sync settings and configuration with latest schema
- wrap waitUntilReady in `act` to resolve spinner warnings
2026-03-14 02:40:50 -07:00
Jarrod Whelan
3dced3c521 Tool Content Fixes/Changes
fix(core): use full file content for accurate diff stats in edit tool

 - Ensures the edit tool uses fully calculated new file content (instead of just the replacement snippet) when generating diff stats. This prevents the bug where 'mass deletion' were inaccurately reports in the UI.
 - The fix calculates the 'AI-recommended' full file state when user modifications are present. This allows getDiffStat to receive three full-file strings, maintaining accurate telemetry for AI vs. user contributions while fixing the visual bug.

feat(ui): structured compact payloads for list and grep tool output

 - leverages structured object return types (ReadManyFilesResult, ListDirectoryResult, GrepResult) to enable rich, expandable compact output in the CLI.
 - Updates the underlying core tools (read_many_files, ls, grep) to return these objects and wires up the UI in DenseToolMessage to parse and render them as expandable lists.
2026-03-14 02:38:45 -07:00
Jarrod Whelan
9588effa29 Output Layout, Borders and Spacing
- fix(ui): update ToolGroupMessage to support stitched borders and dynamic margins
- fix(ui): implement border stitching in history pushing to eliminate gaps
- test(ui): update snapshots and test assertions for new layout
- style(ui): wrap dense tool payloads with vertical margins
    - Adds margins above and below dense payload content to allow compact output to consume a single line until expanded.
- fix(ui): unify spacing logic and border handling for tool groups
    - Corrects transitions between compact and standard tools to not add redundant empty lines and ensures history stitching respects boundaries.
- fix(ui): ensure top border is rendered within completed history for standard tool output when following compact tool output
    - Addresses an issue where non-compact tools pushed to history at the end of a batch (via onComplete) were missing their top border and proper margin if they followed compact tools already pushed to history.
    - The fix updates the onComplete callback in useGeminiStream.ts to be transition-aware. It now explicitly detects when a final push starts with a non-compact tool following a compact tool from the same batch, forcing borderTop: true in that case.
    - Previously, the logic relied solely on isFirstToolInGroupRef, which would be false if any earlier tools in the batch had already been pushed, causing the final non-compact tools to incorrectly inherit a borderless state from the preceding compact tools.

----------------------
Note: ToolGroupMessage.tsx and ToolGroupMessage.compact.test.tsx contain 'any' usage/unsafe assertions to be addressed before PR.
2026-03-14 02:32:21 -07:00
Jarrod Whelan
afa3c13745 Scaffolding and Foundation Changes
- feat(cli): add compactToolOutput ui setting
- feat(cli): add DenseToolMessage component and supporting rendering logic
- feat(cli): implement compact tool output rendering logic in ToolGroupMessage
- feat(core): add tool display name constants and update tool constructors
- feat(cli): update compact output allowlist to use DISPLAY_NAME constants
- test(cli): add compact tool output rendering and spacing tests

-----
Note: Unsafe assignments/assertions/'any' usage still exist in ToolGroupMessage.tsx and DenseToolMessage.tsx and need to be addressed before PR.
Note: Tests contain 'any' casts for mocks that need to be addressed before PR.
2026-03-14 02:20:45 -07:00
Abhijit Balaji
9f7691fd88 feat(prompts): implement Topic-Action-Summary model for verbosity reduction (#21503) 2026-03-14 05:10:30 +00:00
Sandy Tao
3682842a5d fix(core): deduplicate project memory when JIT context is enabled (#22234) 2026-03-14 04:34:53 +00:00
Christian Gunderman
64c50d32ac Fix issue where config was undefined. (#22397) 2026-03-14 01:36:25 +00:00
anj-s
604d4ded8d fix(core): use session-specific temp directory for task tracker (#22382) 2026-03-13 23:35:26 +00:00
Gal Zahavi
f75bdba568 fix(mcp): handle equivalent root resource URLs in OAuth validation (#20231) 2026-03-13 23:32:40 +00:00
Sehoon Shon
8d68ece8d6 Revert "fix(cli): validate --model argument at startup" (#22378) 2026-03-13 23:17:29 +00:00
Gal Zahavi
b49fc8122d feat(security): add disableAlwaysAllow setting to disable auto-approvals (#21941) 2026-03-13 23:02:09 +00:00
anj-s
b0d151bd65 feat(tracker): add tracker policy (#22379) 2026-03-13 22:19:04 +00:00
Christian Gunderman
fe8d93c75a Promote stable tests. (#22253) 2026-03-13 21:32:00 +00:00
Tommaso Sciortino
24933a90d0 fix(cli): support CJK input and full Unicode scalar values in terminal protocols (#22353) 2026-03-13 21:24:26 +00:00
Gal Zahavi
fa024133e6 feat(core): integrate SandboxManager to sandbox all process-spawning tools (#22231) 2026-03-13 21:11:51 +00:00
christine betts
24adacdbc2 Move keychain fallback to keychain service (#22332) 2026-03-13 20:57:08 +00:00
gemini-cli-robot
aa23da67af chore/release: bump version to 0.35.0-nightly.20260313.bb060d7a9 (#22251) 2026-03-13 20:33:16 +00:00
cynthialong0-0
bfbd3c40a7 feat(agent): add allowed domain restrictions for browser agent (#21775) 2026-03-13 19:41:40 +00:00
anj-s
dd8d4c98b3 feat(tracker): return TodoList display for tracker tools (#22060) 2026-03-13 18:18:33 +00:00
Gaurav
d368997ca3 test: add Object.create context regression test and tool confirmation integration test (#22356) 2026-03-13 17:49:33 +00:00
Abhi
bbd80c9393 docs: overhaul subagents documentation and add /agents command (#22345) 2026-03-13 17:26:13 +00:00
Abhi
3b601b3d90 refactor(ui): extract SessionBrowser static ui components (#22348) 2026-03-13 17:25:13 +00:00
Adam Weidman
b4bcd1a015 docs(core): add authentication guide for remote subagents (#22178) 2026-03-13 16:48:21 +00:00
Alexander Farber
aa000d7d30 fix(core): show descriptive error messages when saving settings fails (#18095)
Co-authored-by: Dev Randalpura <devrandalpura@google.com>
2026-03-13 16:19:56 +00:00
Tommaso Sciortino
2a7e602356 refactor(cli): consolidate getErrorMessage utility to core (#22190) 2026-03-13 15:40:29 +00:00
matt korwel
8d0b2d7f1b feat(skills): improve async-pr-review workflow and logging (#21790) 2026-03-13 15:18:07 +00:00
Ankit
c156bac5f7 fix(settings): prevent j/k navigation keys from intercepting edit buffer input (#21865) 2026-03-13 14:55:36 +00:00
Adib234
263b8cd3b3 fix(plan): Fix AskUser evals (#22074) 2026-03-13 13:30:19 +00:00
Abhi
2d05396dd2 refactor(ui): extract pure session browser utilities (#22256) 2026-03-13 06:22:52 +00:00
Sandy Tao
7b4a822b0e feat(core): instrument file system tools for JIT context discovery (#22082) 2026-03-13 03:44:42 +00:00
Bryan Morgan
d44615ac2f feat(core): increase sub-agent turn and time limits (#22196) 2026-03-13 02:39:49 +00:00
joshualitt
de656f01d7 feat(core): Fully migrate packages/core to AgentLoopContext. (#22115) 2026-03-13 01:56:31 +00:00
Abhi
1d2585dba6 fix(core): explicitly pass messageBus to policy engine for MCP tool saves (#22255) 2026-03-13 01:31:13 +00:00
Christian Gunderman
97bc3f28c5 build(ci): fix false positive evals trigger on merge commits (#22237) 2026-03-13 00:38:54 +00:00
gemini-cli-robot
3038fdce2e Changelog for v0.33.1 (#22235)
Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>
2026-03-13 00:12:06 +00:00
ruomeng
bb060d7a98 docs(plan): document hooks with plan mode (#22197) 2026-03-12 23:35:56 +00:00
Qiaochu Hu
9a73aa4072 docs: clarify that tools.core is an allowlist for ALL built-in tools (#18813)
Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>
Co-authored-by: hobostay <hobostay@users.noreply.github.com>
2026-03-12 22:40:05 +00:00
Yuna Seol
d7d53981f3 feat(core): add trajectoryId to ConversationOffered telemetry (#22214)
Co-authored-by: Yuna Seol <yunaseol@google.com>
2026-03-12 22:12:08 +00:00
krishdef7
19e0b1ff7d fix(cli): escape @ symbols on paste to prevent unintended file expansion (#21239) 2026-03-12 22:05:12 +00:00
Alisa
4d393f9dca feat(a2a): enable native gRPC support and protocol routing (#21403)
Co-authored-by: Adam Weidman <adamfweidman@google.com>
2026-03-12 21:36:50 +00:00
Douglas Reid
5abc170b08 docs(local model routing): add docs on how to use Gemma for local model routing (#21365)
Co-authored-by: Douglas Reid <21148125+douglas-reid@users.noreply.github.com>
Co-authored-by: Allen Hutchison <adh@google.com>
Co-authored-by: matt korwel <matt.korwel@gmail.com>
2026-03-12 21:36:32 +00:00
Sandy Tao
ceb4c5f6a7 fix: remove unused img.png from project root (#22222) 2026-03-12 21:28:57 +00:00
Sehoon Shon
b6beab9480 perf(cli): enable code splitting and deferred UI loading (#22117) 2026-03-12 20:37:03 +00:00
gemini-cli-robot
c2691f44b6 Changelog for v0.34.0-preview.1 (#22194)
Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>
2026-03-12 20:30:45 +00:00
Aishanee Shah
663d9c0537 feat(core): implement Stage 1 improvements for webfetch tool (#21313) 2026-03-12 20:13:00 +00:00
Gaurav
4863816b81 fix(browser): fix duplicate function declaration error in browser agent (#22207) 2026-03-12 19:58:09 +00:00
Adarsh Pandey
829c532703 fix(core/ide): add Antigravity CLI fallbacks (#22030) 2026-03-12 19:28:36 +00:00
Adam Weidman
c68303c553 fix(core): add proxy routing support for remote A2A subagents (#22199) 2026-03-12 19:25:51 +00:00
Abhi
7242d71c01 fix(core): prevent duplicate tool schemas for instantiated tools (#22204) 2026-03-12 19:09:23 +00:00