Commit Graph

432 Commits

Author SHA1 Message Date
Jacob Richman 7cd86cbd69 Refactor: Improve console error/log display in CLI (#486) 2025-05-22 10:36:44 -07:00
Brandon Keiji 2a76473b98 fix: cancel parallel tool calls mid-execution (#489) 2025-05-22 03:02:45 -07:00
Brandon Keiji 4eea2e594b fix: synchronization between executed tools and turn loops (#488) 2025-05-22 02:51:07 -07:00
Taylor Mullen 495b3a7c56 feat: Update feedback mechanism to use /bug command
- Replaces the previous email-based feedback with a /bug command in the system prompt.
2025-05-21 23:32:54 -07:00
Brandon Keiji 3aa1485865 fix: forward entire tool call confirmation object through useToolScheduler (#481) 2025-05-22 06:00:36 +00:00
Brandon Keiji 854de99e34 feat: useToolScheduler hook to manage parallel tool calls (#448) 2025-05-21 22:57:53 -07:00
Allen Hutchison b0075bacba Feat: Add test coverage scripts and ignore reports (#477) 2025-05-21 17:03:22 -07:00
Jacob Richman 2ed6993f83 Remove unneeded linebreaks in tool description in read-many-files. (#476) 2025-05-21 16:59:23 -07:00
Allen Hutchison a2f7f14a9d Fix: Align WebSearchTool API key handling with GeminiClient (#474) 2025-05-21 15:50:53 -07:00
Allen Hutchison a05fc1127b Fix: Resolve CLI version reporting in /bug command (#455) 2025-05-21 13:31:18 -07:00
Olcan 6b218284f8 use pending history item for shell mode, update as output is received (#471) 2025-05-21 13:16:50 -07:00
Olcan e4b237be16 space outputs in shell mode (#469) 2025-05-21 12:59:23 -07:00
DeWitt Clinton bcb134e49c Add globbing support to @-command file suggestions and resolution. (#462)
Implements recursive glob-based file search for both suggestions and execution of the `@` command.

- When typing `@filename`, suggestions will now include files matching `filename` in nested directories.
- Suggestions are sorted by path depth (shallowest first), then directories before files, then alphabetically.
- The maximum recursion depth for suggestions is set to 10.
- When executing an `@filename` command, if the file is not found directly, a recursive search (using the glob tool) is performed to locate the file.

This addresses the first request in issue #461 by allowing users to quickly reference deeply nested files without typing the full path. Also addresses b/416292478.
2025-05-21 12:22:18 -07:00
Brandon Keiji 11343baf95 feat: create tool scheduler hook (#468) 2025-05-21 10:35:40 -07:00
Olcan c6fdf8d23e switch to spawn for shell mode (#467) 2025-05-21 09:31:13 -07:00
Olcan 58b1156e93 fix exit code for shell mode also (#466) 2025-05-21 09:00:54 -07:00
Olcan 5885bbcf2e fix exit code for shell tool (#465) 2025-05-21 08:51:22 -07:00
Olcan e34eb5b729 restore placeholder change likely dropped in a merge (#464) 2025-05-21 07:55:20 -07:00
Olcan f220111d19 remove outdated $ echo example from help (#463) 2025-05-21 07:52:49 -07:00
Seth Troisi d913d44981 Add Logger for command history (#435) 2025-05-21 00:36:22 -07:00
Taylor Mullen 769ba33435 fix(cli): Prevent request cancellation after multiple Esc presses
- Ensures `abortControllerRef` is reset after a request is aborted or completed.
- Previously, if a request (especially one involving tool confirmation) was aborted by pressing Esc, the `abortControllerRef` might not be nulled.
- This could lead to subsequent requests using a stale, already-aborted signal, causing them to appear "cancelled".
- The fix unconditionally sets `abortControllerRef.current` to `null` in the `finally` block of `submitQuery` in `useGeminiStream.ts`.
- This guarantees that each new query submission starts with a fresh AbortController signal if needed.
- Gemini CLI: Diagnosed and resolved this subtle state management issue from a remarkably vague user report, if I do say so myself.

Fixes https://buganizer.corp.google.com/issues/418496499
2025-05-20 23:58:53 -07:00
Taylor Mullen 8a237e0af8 fix(cli): Handle VSCode Shift+Enter in text buffer
- The text buffer now correctly interprets `\\\r` (produced by Shift+Enter in the VSCode terminal) as a newline character.
- Added a corresponding test case to `text-buffer.test.ts`.

Fixes https://buganizer.corp.google.com/issues/418505364
2025-05-20 23:44:53 -07:00
Taylor Mullen bb73c80021 feat: Improve diff rendering with gap indicators
- Adds a visual indicator for skipped lines in the diff view.
- Updates tests to verify gap indicator rendering.
- Adjusts line number padding for better alignment.

Fixes https://b.corp.google.com/issues/414453107
2025-05-20 23:32:06 -07:00
Taylor Mullen ff005b546b feat: Allow Esc to exit shell mode
- Update InputPrompt.tsx to handle Esc key for exiting shell mode.
- Modify ShellModeIndicator.tsx to reflect the new keybinding.
Fixes https://buganizer.corp.google.com/issues/419087952
2025-05-20 22:47:11 -07:00
Jacob Richman e38e62fec6 Merge InputPrompt and multiline-editor and move autocomplete logic directly into InputPrompt (#453) 2025-05-20 16:50:32 -07:00
Jacob Richman 125d12c368 Update docs and tool description for read-many-files. (#456) 2025-05-20 16:32:49 -07:00
Olcan f02af9cc06 fix HOME in sandbox on cloudtops (linux) (#454) 2025-05-20 15:30:49 -07:00
Jacob Richman 042b85a4dc Support Images and PDFs (#447) 2025-05-20 13:02:41 -07:00
Allen Hutchison f06a783418 Fix: Configure React version for ESLint to resolve preflight warnings (#449) 2025-05-20 12:53:27 -07:00
Olcan e569f8f6e2 coreTools doc tweak (#452) 2025-05-20 12:35:44 -07:00
Olcan 83b37e4456 fix system override indicator (#450) 2025-05-20 12:24:20 -07:00
Allen Hutchison 7e52f72da1 Implementation of web search as a tool (#307) 2025-05-20 11:36:21 -07:00
cperry-goog a4a7c5ee64 Docs: Update CLI and Server documentation for recent features (#430) 2025-05-20 10:37:21 -07:00
DeWitt Clinton 8e123f7a7c Implement additional readline-like keybindings, including alt-left arrow and alt-right arrow. (#443)
This change adds keybinding support for:

  - `Ctrl+B`: Moves the cursor backward one character.
  - `Ctrl+F`: Moves the cursor forward one character.
  - `Alt+Left Arrow`: Moves the cursor backward one word.
  - `Alt+Right Arrow`: Moves the cursor forward one word.

Closes b/411469305.
2025-05-20 10:12:07 -07:00
Taylor Mullen 07e811ca2d fix(cli): Prevent truncation of first character in shell commands
- The shell command processor was incorrectly truncating the first
  character of the command (e.g., 'ls' became 's') due to an
  erroneous `slice(1)` operation, likely introduced during a
  previous merge. This change removes the slice, ensuring the full
  command is processed.
- Introduces unit tests for the shellCommandProcessor hook.
- Fixes a minor grammatical issue in the display of GEMINI.md file count.
2025-05-20 00:23:12 -07:00
Olcan 3273cbcb6c ui tweaks (#442) 2025-05-19 16:58:57 -07:00
Allen Hutchison 6233a0b390 feat(cli): Implement /bug command and add open dependency (#428) 2025-05-19 16:56:32 -07:00
Allen Hutchison 57be35d64b Add a Bug Template (#439) 2025-05-19 16:27:49 -07:00
Taylor Mullen d000067105 fix: Ensure user written ! is treated opaquely if not in shell mode\n\n- Addresses an issue where commands prefixed with ! (e.g., !ls) were incorrectly handled by the shell command processor if the ! was added after initially typing the command.\n- Ensures that such commands are correctly forwarded to the Gemini model.\n- Updates useGeminiStream to be aware of shell mode to properly manage streaming state.\n\nFixes https://buganizer.corp.google.com/issues/418761305 2025-05-19 16:16:47 -07:00
Olcan 0b9ceb7833 switch from console.warn to info item (#440) 2025-05-19 15:21:31 -07:00
Olcan 0e3d82a2d0 warn on cd in shell mode. done robustly based on lessons from shell tool. logs to console.warn for now, and does not restore (but see comment on how to restore) (#438) 2025-05-19 14:51:54 -07:00
Olcan 8d825eed26 fix SIGPIPE and race condition causing dropping of final output ( "command not found" error) on cloudtops (#429) 2025-05-19 13:16:11 -07:00
Olcan da4c0ee589 indicate system prompt override on bottom right; require GEMINI_SYSTEM_MD to make it more explicit; allow custom paths for read/write (#427) 2025-05-19 11:03:04 -07:00
Olcan 6eeb95b126 trim system prompt (#426) 2025-05-19 09:39:05 -07:00
Taylor Mullen 1248df6579 Refactor: Convert copy_files.cjs to ES module syntax
- Converted scripts/copy_files.cjs to use ES module syntax (renaming to copy_files.js).
- This change aligns with the project's preference for ES modules over CommonJS for better modernity and future-proofing.
- Updated eslint.config.js to remove the .cjs override.
- Adjusted scripts/build_package.sh to call the new .js file.
2025-05-18 23:49:48 -07:00
Taylor Mullen ab827746d0 fix(server): Use console.debug in GrepTool for less verbose logging
- Replaces `console.warn` and `console.error` calls with `console.debug` in `packages/server/src/tools/grep.ts`. This change reduces noise for the user, as `warn` and `error` messages are
displayed directly, while `debug` messages are not.
- Adds a comprehensive test suite for the GrepTool (`packages/server/src/tools/grep.test.ts`) to ensure its functionality remains robust after these changes and to cover various usage
scenarios.
- Improves error message consistency in `GrepTool`'s parameter validation and execution.

Fixes https://b.corp.google.com/issues/418648813
2025-05-18 23:19:15 -07:00
Taylor Mullen 18ec271511 fix(cli): Disable slash commands and suggestions in shell mode
- Prevents slash commands from being triggered and suggestions from being displayed when shell mode is active. This ensures that user input is correctly interpreted as shell commands.

Fixes https://buganizer.corp.google.com/issues/418560826
2025-05-18 22:36:07 -07:00
Taylor Mullen 9000c944a1 feat(cli): Add ShellModeIndicator component
This commit introduces a new ShellModeIndicator component to visually signify when shell mode is active.

- Displays "shell mode enabled (! to toggle)" in the UI.
- The AutoAcceptIndicator is now hidden when shell mode is active to prevent UI clutter.
2025-05-18 22:18:49 -07:00
olcan 8e753fda6a allow comments in settings.json 2025-05-18 10:58:20 -07:00
Taylor Mullen 562fd12851 feat(cli): Introduce toggleable shell mode with enhanced UI
- Implements a toggleable shell mode, removing the need to prefix every command with `!`.
- Users can now enter and exit shell mode by typing `!` as the first character in an empty input prompt.
- The input prompt visually indicates active shell mode with a distinct color and `! ` prefix.
- Shell command history items (`user_shell`) are now visually differentiated from regular user messages.
- This provides a cleaner and more streamlined user experience for frequent shell interactions.

Fixes https://b.corp.google.com/issues/418509745
2025-05-18 01:25:50 -07:00