Skip to content

refactor: decouple stored session deletion from ChatRecordingService (#22920)#27039

Merged
scidomino merged 8 commits into
google-gemini:mainfrom
yuvrajangadsingh:fix/22920-extract-session-deletion
May 20, 2026
Merged

refactor: decouple stored session deletion from ChatRecordingService (#22920)#27039
scidomino merged 8 commits into
google-gemini:mainfrom
yuvrajangadsingh:fix/22920-extract-session-deletion

Conversation

@yuvrajangadsingh
Copy link
Copy Markdown
Contributor

Summary

Decouples stored-session deletion from ChatRecordingService so the CLI's one-shot delete utility doesn't need to construct a recording service with Config.

Fixes #22920.

Details

ChatRecordingService is built to live inside the agent loop. Its constructor expects an AgentLoopContext, and recording methods rely on context.promptId, registries, and the live session id.

But session deletion only touches config.storage.getProjectTempDir(). The CLI delete utility at packages/cli/src/utils/sessions.ts:99 was calling new ChatRecordingService(config) (where config: Config) and then deleteSession, which compiles only because Config implements AgentLoopContext as a deprecated backwards-compat surface. The recording test file similarly relied on a mockConfig.config = mockConfig recursive hack to make the constructor accept a Config mock.

This PR:

  • Extracts deletion into deleteStoredSession(config, sessionIdOrBasename) in packages/core/src/utils/sessionOperations.ts, along with three helpers moved from the class: deriveSessionShortId, getMatchingSessionFiles, deleteSessionFileAndArtifacts. Behavior is preserved verbatim.
  • Reduces ChatRecordingService.deleteSession() to a thin wrapper that delegates to the free function. This preserves the existing instance-method consumer in useSessionBrowser (which holds a properly-constructed instance via getGeminiClient().getChatRecordingService()) and the recording test suite.
  • Updates packages/cli/src/utils/sessions.ts to call deleteStoredSession(config, file) directly. No ChatRecordingService construction with Config. No reliance on the deprecated AgentLoopContext-compat path.
  • Updates packages/cli/src/utils/sessions.test.ts to mock the free function instead of ChatRecordingService.

How to Validate

Local commands:

# Type check both packages
cd packages/core && npx tsc --noEmit
cd packages/cli && npx tsc --noEmit

# Unit tests covering the changed paths
cd packages/core && npx vitest run src/services/chatRecordingService.test.ts src/utils/sessionOperations.test.ts
cd packages/cli && npx vitest run src/utils/sessions.test.ts src/ui/hooks/useSessionBrowser.test.ts

Results on this branch:

  • Type-check: clean on both packages
  • Tests: chatRecordingService.test.ts 41/41, sessionOperations.test.ts 7/7, sessions.test.ts 17/17, useSessionBrowser.test.ts 9/9
  • Lint: clean on changed files

Manual smoke test:

  1. Build: npm run build
  2. Run gemini sessions --list-sessions to populate
  3. Run gemini sessions --delete-session <id> and verify the session file and artifacts are deleted

Pre-Merge Checklist

  • Updated relevant documentation and README (no public docs reference the removed helpers)
  • Added/updated tests
  • Noted breaking changes (none, instance method preserved as wrapper)
  • Validated on required platforms/methods:
    • MacOS
      • npm run

Session deletion only needs `config.storage.getProjectTempDir()`, but the
CLI delete utility was constructing a `ChatRecordingService` with `Config`
to call `deleteSession`. ChatRecordingService's constructor expects an
`AgentLoopContext`, and the call only worked because `Config` implements
`AgentLoopContext` as a deprecated backwards-compat surface.

This extracts deletion into `deleteStoredSession(config, sessionIdOrBasename)`
in `utils/sessionOperations.ts` along with three helpers
(`deriveSessionShortId`, `getMatchingSessionFiles`, `deleteSessionFileAndArtifacts`).
`ChatRecordingService.deleteSession()` becomes a thin wrapper that delegates
to the free function, preserving the existing instance-method consumer in
`useSessionBrowser` and the test suite.

The CLI delete flow in `packages/cli/src/utils/sessions.ts` now calls the
free function directly, removing reliance on Config-as-AgentLoopContext.

Refs: google-gemini#22920
@yuvrajangadsingh yuvrajangadsingh requested a review from a team as a code owner May 14, 2026 11:01
@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 refactors the session deletion mechanism to improve architectural decoupling. By moving the core deletion logic out of the ChatRecordingService class and into a standalone utility function, the CLI can now perform session cleanup operations without the overhead of constructing a full agent service. This change simplifies dependencies for CLI utilities while maintaining backward compatibility for existing consumers of the service.

Highlights

  • Decoupling Session Deletion: Extracted session deletion logic from ChatRecordingService into a standalone function, deleteStoredSession, to allow usage without requiring an AgentLoopContext.
  • Refactored CLI Utility: Updated the CLI's one-shot delete utility to call the new deleteStoredSession function directly, removing the need to instantiate ChatRecordingService with a full Config object.
  • Test Suite Migration: Updated test suites to mock the new standalone function instead of the service class, ensuring cleaner and more focused unit tests.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the 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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. 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.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors session deletion logic by moving it from ChatRecordingService to a centralized utility, deleteStoredSession, in sessionOperations.ts, enabling session deletion without an AgentLoopContext. The CLI and its tests were updated to use this new utility. A review comment highlights that the fallback mechanism for recovering session IDs using JSON.parse on entire files will fail for JSONL formats and suggests using a streaming or line-by-line approach for better performance and compatibility.


if (!fullSessionId) {
try {
const fileContent = await fs.readFile(filePath, 'utf8');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The fallback mechanism using fs.readFile and JSON.parse on the entire file content will fail for current session files which are in JSONL format (multiple JSON objects separated by newlines). While this was likely intended for legacy single-object JSON files, it may lead to unnecessary memory consumption and silent failures if a large JSONL file's first line cannot be parsed. Ensure that asynchronous file system operations (e.g., fs.promises.readFile) are used to avoid blocking the event loop. Consider using a streaming approach or a line-by-line reader if a full file scan is necessary to recover the session ID.

References
  1. Use asynchronous file system operations (e.g., fs.promises.readFile) instead of synchronous ones (e.g., fs.readFileSync) to avoid blocking the event loop.

Copy link
Copy Markdown
Contributor Author

@yuvrajangadsingh yuvrajangadsingh May 14, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for flagging this. The fallback path here is preserved verbatim from ChatRecordingService.deleteSessionAndArtifacts, which has lived with this behavior since cf8e2e8. This PR is a pure relocation (zero behavior change) so I kept the legacy fallback intact to avoid scope creep.

A few clarifying notes on the existing semantics:

  • The fallback only runs when the first-line parse fails, which is unusual for current JSONL session files (the first 4096 bytes normally cover a complete first JSON record).
  • The fs.readFile call is already async via fs/promises, not blocking. The fs import in this file resolves to node:fs/promises (see the top of the file), not the sync API.
  • The fallback exists to recover the session id from legacy pretty-printed single-object JSON files written before the JSONL switch. For current files this branch is effectively unused.

I agree a streaming fallback (e.g. readline.createInterface) would be better if we want to harden this path, but I'd prefer to land that separately so this PR stays behavior-preserving and easy to verify as a pure move.

@gemini-cli gemini-cli Bot added priority/p2 Important but can be addressed in a future release. area/core Issues related to User Interface, OS Support, Core Functionality area/agent Issues related to Core Agent, Tools, Memory, Sub-Agents, Hooks, Agent Quality help wanted We will accept PRs from all issues marked as "help wanted". Thanks for your support! labels May 14, 2026
@yuvrajangadsingh
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors session deletion logic by extracting it from ChatRecordingService into a standalone utility, deleteStoredSession, located in sessionOperations.ts. This change allows the CLI to perform session deletions using only a Config object. The ChatRecordingService and CLI utilities have been updated to delegate to this new function, and the test suite has been adjusted to reflect the updated API. Feedback suggests improving code consistency by using shared type-checking helpers and hardening the directory check for the chat storage path to prevent potential runtime errors.

Comment thread packages/core/src/utils/sessionOperations.ts
Comment thread packages/core/src/utils/sessionOperations.ts Outdated
Addresses two review comments on PR google-gemini#27039:

1. Extract `hasProperty`, `isStringProperty`, and `isObjectProperty` from
   `chatRecordingService.ts` into a shared `utils/typeUtils.ts`. Reuse them
   in `sessionOperations.ts` for `isSessionIdRecord` so the new code matches
   the existing repo style instead of inlining the property checks.

2. In `deleteStoredSession`, replace the existence check on `chatsDir` with
   an explicit `isDirectory()` guard. If the chats path resolves to a file
   instead of a directory, the function now returns silently rather than
   letting the subsequent `readdir` throw.
@yuvrajangadsingh
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors session deletion logic by moving it from the ChatRecordingService to a new standalone utility, deleteStoredSession, in sessionOperations.ts. This allows the CLI to delete sessions using only a configuration object. Common type guards were also extracted into a new typeUtils.ts file. Review feedback identified a potential path traversal vulnerability due to missing input validation in the deletion utility and suggested handling ENOENT errors to reduce log noise during concurrent deletions.

Comment thread packages/core/src/utils/sessionOperations.ts
Comment thread packages/core/src/utils/sessionOperations.ts Outdated
Two narrow fixes for the third Gemini Code Assist pass on PR google-gemini#27039:

1. `deleteSessionArtifactsAsync` now skips the top-level session-dir
   deletion when `safeSessionId` matches a reserved directory name
   (`chats`, `logs`, `tool-outputs`). A crafted JSONL session file whose
   first record carried `sessionId: "chats"` would otherwise resolve to
   `tempDir/chats` and be removed recursively. Guard is scoped to the
   one deletion path that uses the session id as a raw directory name;
   the log file and tool-output paths are already namespaced with the
   `session-` prefix so they're not affected.

2. `deleteSessionFileAndArtifacts` no longer logs `ENOENT` as an error
   in the outer catch. The most likely cause of a missing file at this
   point is a concurrent delete between `getMatchingSessionFiles`
   returning the name and our `fs.open` call; treating that as normal
   keeps the debug log clean during legitimate races.
@yuvrajangadsingh
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors session deletion logic by moving it from ChatRecordingService to a standalone deleteStoredSession utility in sessionOperations.ts, enabling deletion without an AgentLoopContext. It also introduces a shared typeUtils.ts for type guards and implements a security check to protect reserved top-level directories from accidental deletion. Feedback suggests further hardening the session ID validation by explicitly checking for path separators to prevent potential path traversal vulnerabilities.

Comment thread packages/core/src/utils/sessionOperations.ts Outdated
On macOS/Windows case-insensitive filesystems, `safeSessionId = "Chats"`
would resolve to `tempDir/chats` on disk and still hit the reserved
directory even though it wouldn't match the `{chats, logs, tool-outputs}`
set. Normalize via `.toLowerCase()` before the lookup so the guard
covers casing variants too.
`sanitizeFilenamePart` already strips every non-`[a-zA-Z0-9_-]` character,
so `safeSessionId` should never contain path separators. This adds an
explicit check at the deletion boundary so the security contract is
local to the function rather than depending on the sanitizer's behavior.
If a future sanitizer change relaxes the regex, the deletion path stays
safe.
@yuvrajangadsingh
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the session deletion logic by moving core functionality from ChatRecordingService into a standalone utility, deleteStoredSession, within sessionOperations.ts. This change allows the CLI to delete sessions using only a Config object without needing to instantiate a full ChatRecordingService. Additionally, the PR introduces a new typeUtils.ts for shared type guards and implements security enhancements in deleteSessionArtifactsAsync to prevent the accidental deletion of reserved system directories. I have no feedback to provide.

Comment thread packages/core/src/utils/typeUtils.ts Outdated
@@ -0,0 +1,40 @@
/**
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is way too generic for such a small change. use zod for type safety if you have to.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call. I dropped the generic typeUtils.ts module entirely. Reverted chatRecordingService.ts to use the inline hasProperty/isStringProperty/isObjectProperty helpers it had before extraction, and inlined the single one-field check in sessionOperations.ts (isSessionIdRecord). Kept it as a plain runtime check since the only accepted shape is { sessionId: string } and pulling zod in just for that felt like more than what the PR is doing.

Pushed in 47c6c59. Type check + tests pass.

Per @scidomino's review: the shared typeUtils.ts module was too generic
for this PR's scope. Reverting to the original pattern where each consumer
defines its own predicates inline.

- chatRecordingService.ts: restore the inline hasProperty/isStringProperty/
  isObjectProperty helpers it had before the extraction.
- sessionOperations.ts: inline the one-field check in isSessionIdRecord
  directly, drop the typeUtils dependency.
- typeUtils.ts: deleted.
…jangadsingh/gemini-cli into fix/22920-extract-session-deletion
@yuvrajangadsingh
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request refactors the session deletion logic by moving it from the ChatRecordingService class to a standalone utility function, deleteStoredSession, within sessionOperations.ts. This change allows for session deletion without the need to instantiate a full service context, which is now leveraged by the CLI. The update also introduces security improvements, such as preventing the deletion of reserved directories (e.g., 'chats', 'logs', 'tool-outputs') and ensuring session IDs do not contain path separators. Furthermore, the logic now gracefully handles concurrent deletion races by ignoring ENOENT errors during artifact cleanup. I have no feedback to provide as there were no review comments to assess.

@scidomino scidomino enabled auto-merge May 20, 2026 17:01
@scidomino scidomino added this pull request to the merge queue May 20, 2026
Merged via the queue into google-gemini:main with commit 26f8c0f May 20, 2026
27 checks passed
HIHACK1911 added a commit to HIHACK1911/gemini-cli that referenced this pull request May 22, 2026
… does not negatively impact users. (#1)

* fix(core): reduce default API timeout to 60s and enable retries for undici timeouts (google-gemini#26191)

* fix(core): distinguish fallback chains and fix maxAttempts for auto vs explicit model selection (google-gemini#26163)

* fix(cli): handle InvalidStream event gracefully without throwing (google-gemini#26218)

* ci(github-actions): switch to github app token and fix bot self-trigger (google-gemini#26223)

* Respect logPrompts flag for logging sensitive fields (google-gemini#26153)

Co-authored-by: David Pierce <davidapierce@google.com>
Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com>

* fix: correct API key validation logic in handleApiKeySubmit (google-gemini#25453)

Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com>

* fix(agent): prevent exit_plan_mode from being called via shell (google-gemini#26230)

* # Fix: Inconsistent Case-Sensitivity in GrepTool (google-gemini#26235)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>

* docs(core): add automated gemma setup guide (google-gemini#26233)

Co-authored-by: Samee Zahid <sameez@google.com>

* Allow non-https proxy urls to support container environments (google-gemini#26234)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(bot): productivity and backlog optimizations (google-gemini#26236)

* refactor(acp): delegate prompt turn processing logic to GeminiClient (google-gemini#26222)

* fix(cli): refine platform-specific undo/redo and smart bubbling for WSL (google-gemini#26202)

* fix: suppress duplicate extension warnings during startup (google-gemini#26208)

* fix(cli): use byte length instead of string length for readStdin size limits (google-gemini#26224)

* fix(ui): made shell tool header wrap on Ctrl+O (google-gemini#26229)

* Changelog for v0.41.0-preview.0 (google-gemini#26244)

Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>

* Skip binary CLI relaunch (google-gemini#26261)

* fix(cli): do not override GOOGLE_CLOUD_PROJECT in Cloud Shell when using Vertex AI (google-gemini#24455)

Co-authored-by: David Pierce <davidapierce@google.com>

* docs(cli): add skill discovery troubleshooting checklist to tutorial (google-gemini#26018)

* docs(policy-engine): link to tools reference for tool names and args (google-gemini#22081)

Co-authored-by: Aashir Javed <Aaxhirrr@users.noreply.github.com>
Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>

* Fix posting invalid response to a comment (google-gemini#26266)

* fix(cli): prevent informational logs from polluting json output (google-gemini#26264)

* feat(ui): added microphone and updated placeholder for voice mode (google-gemini#26270)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat(cli): Add 'list' subcommand to '/commands' (google-gemini#22324)

Co-authored-by: Coco Sheng <cocosheng@google.com>
Co-authored-by: Spencer <spencertang@google.com>

* fix(core): ensure tool output cleanup on session deletion for legacy files (google-gemini#26263)

* Docs: Update Agent Skills documentation  (google-gemini#22388)

Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Changelog for v0.40.0 (google-gemini#26245)

Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>

* test(acp): add missing coverage for extensions command error paths (google-gemini#25313)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix: report AgentExecutionBlocked in non-interactive programmatic modes (google-gemini#26262)

* feat(extensions): add 'delete' as an alias for /extensions uninstall (google-gemini#25660)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): silently skip GEMINI.md paths that are directories (EISDIR) (google-gemini#25662)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(ci): checkout PR branch instead of main in bot workflow (google-gemini#26289)

* fix(cli): use resolved sandbox state for auto-update check (google-gemini#26285)

* # Metrics Integrity & Standardized Reporting (BT-01) (google-gemini#26240)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: Christian Gunderman <gundermanc@google.com>

* Add Star History section to README (google-gemini#26290)

* Add Star History section to README (google-gemini#26308)

* Remove Star History section from README (google-gemini#26309)

* test(evals): add behavioral eval for file creation and write_file tool selection (google-gemini#26292)

* feat(config): enable Gemma 4 models by default via Gemini API (google-gemini#26307)

* fix(cli): insert voice transcription at cursor position instead of ap… (google-gemini#26287)

Co-authored-by: Zheyuan <zlin252@emory.edu>

* fix(ui): fix issue with box edges (google-gemini#26148)

* fix(cli): respect .env override for GOOGLE_CLOUD_PROJECT (google-gemini#26288)

* fix(ci): robust version checking in release verification (google-gemini#26337)

* fix(cli): enable daemon relaunch in binary and bundle keytar (google-gemini#26333)

* fix(core): discourage unprompted git add . in prompt snippets (google-gemini#26220)

* feat(ui): added wave animation for voice mode (google-gemini#26284)

* fix(cli): prevent Escape from clearing input buffer (google-gemini#17083) (google-gemini#26339)

* fix(cli): undeprecate --prompt and correct positional query docs (google-gemini#26329)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* Metrics updates (google-gemini#26348)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>

* fix(core): remove "System: Please continue." injection on InvalidStream events (google-gemini#26340)

* docs(policy-engine): add tool argument keys reference and shell policy cross-links (google-gemini#25292)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(cli): resolve Ghostty/raw-mode False Cancellation in oauth flow (google-gemini#25026)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): reset session-scoped state on resumption (google-gemini#26342)

* Fix bulk of remaining issues with generalist profile (google-gemini#26073)

* fix(core): make subagents aware of active approval modes (google-gemini#23608)

* fix(acp): resolve agent mode disconnect and improve mode awareness (google-gemini#26332)

* docs(sdk): add JSDoc to exported interfaces in packages/sdk/src/types.ts (google-gemini#26441)

* perf: skip redundant GEMINI.md loading in partialConfig (google-gemini#26443)

* feat(core): reinforce Inquiry constraints to prevent unauthorized changes (google-gemini#26310)

* Enhance React guidelines (google-gemini#22667)

Co-authored-by: Jacob Richman <jacob314@gmail.com>

* revert: fix(ci): robust version checking in release verification (google-gemini#26337) (google-gemini#26450)

* refactor(UI): created constants file for ThemeDialog (google-gemini#26446)

* docs: fix GitHub capitalization in releases guide (google-gemini#26379)

* fix(cli): ensure branch indicator updates in sub-directories and worktrees (google-gemini#26330)

* feat: add minimal V8 heap snapshot utility for memory diagnostics (google-gemini#26440)

* fix(hooks): preserve non-text parts in fromHookLLMRequest (google-gemini#26275)

* fix(cli): allow early stdout when config is undefined (google-gemini#26453)

* fix(cli)google-gemini#21297: clear skills consent dialog before reload (google-gemini#26431)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(cli): render LaTeX-style output as Unicode in the TUI (google-gemini#25802)

Co-authored-by: cynthialong0-0 <82900738+cynthialong0-0@users.noreply.github.com>

* fix(core): use close event instead of exit in child_process fallback (google-gemini#25695)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* feat(voice): add privacy and compliance UX warning for Gemini Live backend (google-gemini#26454)

* feat(memory): add Auto Memory inbox flow with canonical-patch contract (google-gemini#26338)

* test(cleanup): fix temporary directory leaks in test suites (google-gemini#26217)

* feat: add ignoreLocalEnv setting and --ignore-env flag (google-gemini#2493) (google-gemini#26445)

* docs(sdk): add JSDoc to all exported interfaces and types (google-gemini#26277)

* feat(cli): improve /agents refresh logging (google-gemini#26442)

* Fix: make Dockerfile self-contained with multi-stage build (google-gemini#24277)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): filter unsupported multimodal types from tool responses (google-gemini#26352)

* fix(core): properly format markdown in AskUser tool by unescaping newlines (google-gemini#26349)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat(bot): add actions spend metric script (google-gemini#26463)

* feat(cli): add /bug-memory command and auto-capture heap snapshot in /bug (google-gemini#25639)

* fix(cli): make SkillInboxDialog fit and scroll in alternate buffer (google-gemini#26455)

* Robust Scale-Safe Lifecycle Consolidation (google-gemini#26355)

Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: Christian Gunderman <gundermanc@google.com>

* fix(ci): respect exempt labels when closing stale items (google-gemini#26475)

* fix(cli): use os.homedir() for home directory warning check (google-gemini#25890)

* fix(a2a-server): resolve tool approval race condition and improve status reporting (google-gemini#26479)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(cli): prevent settings dialog border clipping using maxHeight (google-gemini#26507)

* feat: allow queuing messages during compression (google-gemini#24071) (google-gemini#26506)

* fix(core): retry on ERR_STREAM_PREMATURE_CLOSE errors (google-gemini#26519)

* fix(core): Minor fixes for generalist profile. (google-gemini#26357)

* feat(core): steer model to use edit tool for surgical edits, fix a typo (google-gemini#26480)

* docs: clarify Auto Memory proposes memory updates and skills (google-gemini#26527)

* fix(core): reject numeric project IDs in GOOGLE_CLOUD_PROJECT (google-gemini#24695) (google-gemini#26532)

* fix(core): remove unsafe type assertion suppressions in error utils (google-gemini#19881)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): allow redirection in YOLO and AUTO_EDIT modes without sandboxing (google-gemini#26542)

* ci(release): build and attach unsigned macOS binaries to releases (google-gemini#26462)

* fix(core): Fix chat corruption bug in context manager. (google-gemini#26534)

* fix(cli): provide JSON output for AgentExecutionStopped in non-interactive mode (google-gemini#26504)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* feat(evals): add shell command safety evals (google-gemini#26528)

* fix(core): handle invalid custom plans directory gracefully (google-gemini#26560)

* fix(acp): move tool explanation from thought stream to tool call content (google-gemini#26554)

* fix(a2a-server): Resolve race condition in tool completion waiting (google-gemini#26568)

* fix(cli): randomize sandbox container names (google-gemini#26014)

* fix(core): Fix hysteresis in async context management pipelines. (google-gemini#26452)

* Tighten private Auto Memory patch allowlist (google-gemini#26535)

* fix(cli): hide read-only settings scopes (google-gemini#26249)

* fix(ci): preserve executable bit for mac binaries (google-gemini#26600)

* fix(cli): improve mcp list UX in untrusted folders (google-gemini#26457)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(core): prevent silent hang during OAuth auth on headless Linux (google-gemini#26571)

Co-authored-by: Jack Wotherspoon <jackwoth@google.com>

* Changelog for v0.42.0-preview.0 (google-gemini#26537)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* ci: fix Argument list too long in triage workflows (google-gemini#26603)

* refactor(cli): migrate core tools to native ToolDisplay property and fix UI rendering (google-gemini#25186)

* don't wrap args unnecessarily (google-gemini#26599)

* fix(core): preserve system PATH in Git environment to fix ENOENT (google-gemini#25034) (google-gemini#26587)

* fix(routing): fix resolveClassifierModel argument mismatch in ApprovalModeStrategy (google-gemini#26658)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* docs: add vi mode shortcuts and clarify MCP/custom sandbox setup (google-gemini#23853)

Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>

* fix(ux): fixed issue with transcribed text not showing after releasing space (google-gemini#26609)

* ci: fix json parsing in scheduled triage workflow (google-gemini#26656)

* fix(cli): hide /memory add subcommand when memoryV2 is enabled (google-gemini#26605)

* fix: prevent false command conflicts when launching from home directory (google-gemini#23069)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): cache model routing decision in LocalAgentExecutor (google-gemini#26548)

* Changelog for v0.42.0-preview.2 (google-gemini#26597)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>
Co-authored-by: Sam Roberts <158088236+g-samroberts@users.noreply.github.com>

* skip broken test (google-gemini#26705)

* feat: export session to file and import via flag (google-gemini#26514)

* Feat: Add Machine Hostname to CLI interface (google-gemini#25637)

Signed-off-by: M-DEV-1 <mahadevankizhakkedathu@gmail.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* docs(extensions): refactor releasing guide and add update mechanisms (google-gemini#26595)

* fix(ci): fix maintainer identification in lifecycle manager (google-gemini#26706)

* fix(ui): added quotes around session id in resume tip (google-gemini#26669)

* Changelog for v0.41.0 (google-gemini#26670)

Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>

* refactor(core): agent session protocol changes (google-gemini#26661)

* fix(context): implement loose boundary policy for gc backstop. (google-gemini#26594)

* fix(core): throw explicit error on dropped tool responses (google-gemini#26668)

* fix: resolve "function response turn must come immediately after function call" error (google-gemini#26691)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): resolve parallel tool call streaming ID collision (google-gemini#26646)

* feat(core): add LocalSubagentProtocol behind AgentProtocol (google-gemini#25302)

* fix(cli): remove noisy theme registration logs from terminal (google-gemini#25858)

Co-authored-by: Jack Wotherspoon <jackwoth@google.com>

* ci: implement codebase-aware effort level triage (google-gemini#26666)

* feat(acp/core): prefix tool call IDs with tool names to support tool rendering in ACP compliant IDEs. (google-gemini#26676)

* fix(mcp): treat GET 404 as 405 in StreamableHTTPClientTransport (google-gemini#24847)

Co-authored-by: Coco Sheng <cocosheng@google.com>
Co-authored-by: Spencer <spencertang@google.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* feat(core): add RemoteSubagentProtocol behind AgentProtocol (google-gemini#25303)

* feat(context): Improvements to the snapshotter. (google-gemini#26655)

* fix(context): Change snapshotter model config. (google-gemini#26745)

* fix(cli): allow installing extensions from ssh repo (google-gemini#26274)

Signed-off-by: Daniel Finimundi <danielrf@motorola.com>
Co-authored-by: Dev Randalpura <devrandalpura@google.com>

* fix(cli): prevent duplicate SessionStart systemMessage render (google-gemini#25827)

Co-authored-by: Jacob Richman <jacob314@gmail.com>

* fix(cli/acp): prevent infinite thought loop in ACP mode by disablig nextSpeakerCheck (google-gemini#26874)

* fix(cli): use static tool name in confirmation prompt to avoid parsing errors (google-gemini#26866)

* fix(routing): Refactor tool turn handling for the conversation history in NumericalClassifierStrategy to prevent 400 Bad Request (google-gemini#26761)

* fix(core): handle malformed projects.json in ProjectRegistry (google-gemini#26885)

* fix(ui): added a gutter width to the input prompt width calculation (google-gemini#26882)

* fix: prevent EISDIR crash when customIgnoreFilePaths contains directories (google-gemini#19868) (google-gemini#19898)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* revert 6b9b778 (google-gemini#26893)

* Fix/vscode run current file ts (google-gemini#22894)

Co-authored-by: Spencer <spencertang@google.com>

* Allow Enter to select session while in search mode in /resume (google-gemini#21523)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(core): ignore .pak and .rpa game archive formats by default (google-gemini#26884)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(cli): enable adk non-interactive session (google-gemini#26895)

* fix(cli): restore resume for legacy sessions (google-gemini#26577)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix: respect explicit model selection after Flash quota exhaustion (google-gemini#26759) (google-gemini#26872)

* feat(context): Introduce adaptive token calculator to more accurately calculate content sizes. (google-gemini#26888)

* chore: update checkout action configuration in workflows (google-gemini#26897)

* fix (telemetry): inject quota_project_id to prevent fallback to default oauth client (google-gemini#26698)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* Exclude extension context from skill extraction agent (google-gemini#26879)

* Enable NumericalRouter when using dynamic model configs (google-gemini#26929)

* ci: actively triage missing priority labels and intelligently clean up conflicting labels (google-gemini#26865)

* refactor(core): introduce SubagentState enum for progress (google-gemini#26934)

* fix(ci): replace brittle --no-tag with explicit staging-tmp tag (google-gemini#26940)

* Incremental refactor repo agent towards skills-based composition (google-gemini#26717)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(ui): fixed line wrap padding for selection lists (google-gemini#26944)

* fix(core): update read_file schema for v1 compatibility (google-gemini#22183) (google-gemini#26922)

* fix(ci): configure git remote with token for authentication (google-gemini#26949)

* chore(release): bump version to 0.44.0-nightly.20260512.g022e8baef (google-gemini#26957)

* Changelog for v0.42.0 (google-gemini#26958)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* Refactor: Eliminate `no-unsafe-return` suppressions via strict type validation (google-gemini#20668)

Signed-off-by: M-DEV-1 <mahadevankizhakkedathu@gmail.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* Changelog for v0.43.0-preview.0 (google-gemini#26959)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* feat(core): change agent registration to first-wins and prioritize project (google-gemini#26953)

* feat(cli): merge Auto modes into a single Auto mode (google-gemini#26714)

* fix(core): preserve OAuth refresh tokens during rotation and retrieval (google-gemini#26924)

* fix(cli): allow keychain auth for --list-sessions and non-interactive mode (google-gemini#26921)

* fix(core): handle EISDIR on virtual drives in memory discovery (google-gemini#26985)

* fix(cli): auto-approve shell redirections in AUTO_EDIT mode (google-gemini#27003)

* ci: suppress bot comments during standard triage maintenance (google-gemini#27006)

* fix(core): isolate subagent thread context (google-gemini#26449)

* fix(core): refresh MCP OAuth token usage after re-auth (google-gemini#26312)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(ui): clamped table column widths (google-gemini#26991)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* chore: add execution permission to scripts/review.sh (google-gemini#27009)

* fix(core): made context files append instead of replace (google-gemini#26950)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix: add system PATH fallback for ripgrep resolution (google-gemini#26777) (google-gemini#26868)

* chore: clean up launched memory features (google-gemini#26941)

Co-authored-by: Jenna Inouye <jinouye@google.com>

* fix(core): throttle shell text output and bound live UI buffer (google-gemini#26955)

* fix(cli): don't crash when an @-mention captures a non-path blob (google-gemini#25980)

* fix(core): ensure stable fallback for restricted preview models (google-gemini#26999)

* feat(core): expose RAG snippets to local log file for debugging (google-gemini#27016)

* fix(acp/auth): prevent conflicting credentials on enterprise gateways and support optional API keys natively (google-gemini#27021)

* fix(core): respect NO_PROXY for network-based MCP servers (google-gemini#27012)

* fix(cli): resolve permission denied in sandbox on NixOS and other distros (google-gemini#27004)

* fix(ui): preserve new line at the end of edit window (google-gemini#27057)

* fix(core): ensure Vertex AI sets hasAccessToPreviewModels and remove aggressive 404 fallback revocation (google-gemini#27067)

* fix(core): ensure stable admin settings comparison across IPC to prevent restart loop (google-gemini#27066)

* fix(deps): update vulnerable dependencies (google-gemini#27062)

* fix(core): resolve EISDIR errors during file processing (google-gemini#21527) (google-gemini#27041)

* docs(extensions): clarify env var sanitization policy for MCP and ext… (google-gemini#22854)

Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
Co-authored-by: Jenna Inouye <jinouye@google.com>

* fix(ui): add ENAMETOOLONG and ENOTDIR to exceptions for file parsing errors (google-gemini#27069)

* fix(cli): explicitly clear entrypoint when spawning sandbox container (google-gemini#27059)

* docs: update sandbox image command (google-gemini#26774)

* fix(core): externalize https-proxy-agent to fix proxy support (google-gemini#26361)

* security: update dependencies to fix critical and high vulnerabilities (google-gemini#27077)

* Fix/web fetch ctrl c abort (google-gemini#24320)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>

* fix(core): add aliases and thinking config for gemini-3.1 models (google-gemini#27007)

* fix(core): use hasAccessToPreview for auto model resolution and fix disappearing models (google-gemini#27112)

* feat(core): add adk.agentSessionSubagentEnabled flag (google-gemini#26947)

* fix(core): enforce compile-time exhaustiveness in content-utils (google-gemini#27207)

* feat(skills): add agent-tui and tui-tester skills (google-gemini#27121)

* fix(context): Fix snapshot recovery across sessions. (google-gemini#26939)

* fix(core): add unit tests for stableStringify (google-gemini#27212)

* fix(core): prefer pwsh.exe over Windows PowerShell 5.1 (google-gemini#25859) (google-gemini#25900)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* feat(core): add LocalSessionInvocation (google-gemini#26665)

* refactor: decouple auto model description and configuration from releaseChannel (google-gemini#27227)

Co-authored-by: David Pierce <davidapierce@google.com>

* fix(core): prevent isBinary false-positive on Windows PTY streams (google-gemini#26565)

* fix(cli): Prevent unmapped keys in Vim Normal mode from inserting text into prompt Input. (google-gemini#25139)

Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>

* fix(a2a-server): Implement default policy loading for parity with CLI (google-gemini#27073)

* feat(core): add RemoteSessionInvocation (google-gemini#26937)

* fix: allow configured MCP servers in non-interactive mode (google-gemini#27215)

* fix(core): add exception handling to migrateFromFileStorage (google-gemini#27229)

* fix(cli): bundle ink worker-entry.js (google-gemini#27249)

* feat(core): wire AgentSession invocations into agent-tool (google-gemini#26948)

* fix(core): prevent path traversal in custome command file injection (google-gemini#27234)

* fix(core): respect NO_PROXY in global fetch dispatcher (google-gemini#27216)

* fix(core): correctly handle nullable array types in MCP tools (google-gemini#27228)

* Proposal: deterministic encoding for child-process I/O (google-gemini#27247)

* fix(cli): preserve proxy-agent named exports in ESM bundle (google-gemini#27145)

* feat(cli): add Sublime Text and Emacs Client editors, improve error messages and documentation (google-gemini#21090)

Co-authored-by: Ananth Kini <ananthkini1@gmail.com>

* Changelog for v0.43.0-preview.1 (google-gemini#27297)

Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>

* fix(devtools): bundle devtools package to avoid resolution errors (google-gemini#27250)

* fix(cli): integrate PolicyEngine into ACP session to prevent deadlocks (google-gemini#23507) (google-gemini#27252)

* fix: robust ripgrep path resolution and 1p hermetic execution support (google-gemini#27253)

* refactor: decouple stored session deletion from ChatRecordingService (google-gemini#22920) (google-gemini#27039)

* fix(core): improve Alpine shell compatibility (google-gemini#26770)

* fix(core): generalize MCP compliance fix for tool results (google-gemini#27045)

* fix(scripts): scrub CI env vars in dev to keep interactive mode (google-gemini#27159)

* fix(core): Added date field for the GCal MCP (google-gemini#27251)

* fix(core): centralize path validation to prevent crashes from malformed prompts (google-gemini#27211)

* fix(core): prevent SIGHUP kills in PTY environments (WSL2/Kitty/Alacritty) (google-gemini#27267)

* fix(core): dynamic fallback routing for exhausted quota models (google-gemini#27315)

* Auto detect pnpm global installation path for macOS and Windows (google-gemini#22748)

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: Coco Sheng <cocosheng@google.com>

* fix(windows): resolve interactive shell arrow-key navigation on Windows (google-gemini#23505)

* ci: robust stale issue lifecycle and consolidated triage labels (google-gemini#27015)

* fix(context): Ensure last message is processed. (google-gemini#27232)

* chore/release: bump version to 0.44.0-nightly.20260521.g57c42a5c4 (google-gemini#27324)

* fix(ui): added volta to auto update check (google-gemini#27353)

* perf: optimize issue triage and lifecycle management (google-gemini#27346)

---------

Signed-off-by: M-DEV-1 <mahadevankizhakkedathu@gmail.com>
Signed-off-by: Daniel Finimundi <danielrf@motorola.com>
Co-authored-by: Adib234 <30782825+Adib234@users.noreply.github.com>
Co-authored-by: Adam Weidman <65992621+adamfweidman@users.noreply.github.com>
Co-authored-by: Christian Gunderman <gundermanc@google.com>
Co-authored-by: lp-peg <35035802+lp-peg@users.noreply.github.com>
Co-authored-by: David Pierce <davidapierce@google.com>
Co-authored-by: Gal Zahavi <38544478+galz10@users.noreply.github.com>
Co-authored-by: Martin <martin.hsu.test@gmail.com>
Co-authored-by: Abhijit Balaji <abhijitbalaji@google.com>
Co-authored-by: gemini-cli[bot] <218312386+gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: gemini-cli[bot] <gemini-cli[bot]@users.noreply.github.com>
Co-authored-by: Samee Zahid <sameescouser24@gmail.com>
Co-authored-by: Samee Zahid <sameez@google.com>
Co-authored-by: Stephen Eckels <stevemk14ebr@gmail.com>
Co-authored-by: Tommaso Sciortino <sciortino@gmail.com>
Co-authored-by: Sri Pasumarthi <111310667+sripasg@users.noreply.github.com>
Co-authored-by: Coco Sheng <cocosheng@google.com>
Co-authored-by: Dev Randalpura <devrandalpura@google.com>
Co-authored-by: gemini-cli-robot <gemini-cli-robot@google.com>
Co-authored-by: g-samroberts <158088236+g-samroberts@users.noreply.github.com>
Co-authored-by: ruomeng <ruomeng@google.com>
Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
Co-authored-by: Paolo Menichetti <74872147+pmenic@users.noreply.github.com>
Co-authored-by: Aashir Javed <150792417+Aaxhirrr@users.noreply.github.com>
Co-authored-by: Aashir Javed <Aaxhirrr@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: JunYoung Ka <82663161+Jwhyee@users.noreply.github.com>
Co-authored-by: Spencer <spencertang@google.com>
Co-authored-by: Jenna Inouye <jinouye@google.com>
Co-authored-by: Sahil Kirad <167863755+sahilkirad@users.noreply.github.com>
Co-authored-by: Bryan Morgan <bryanmorgan@google.com>
Co-authored-by: AK <akhilbussiness@gmail.com>
Co-authored-by: Zheyuan Lin <137805563+Zheyuan-Lin@users.noreply.github.com>
Co-authored-by: Zheyuan <zlin252@emory.edu>
Co-authored-by: Sandy Tao <sandytao520@icloud.com>
Co-authored-by: Harsh Pujari <42710594+harshpujari@users.noreply.github.com>
Co-authored-by: Aarchi Kumari <aarchikumari07052@gmail.com>
Co-authored-by: joshualitt <joshualitt@google.com>
Co-authored-by: Pyush Sinha <pyushsinha20@gmail.com>
Co-authored-by: Jacob Richman <jacob314@gmail.com>
Co-authored-by: Sense_wang <167664334+haosenwang1018@users.noreply.github.com>
Co-authored-by: Manav Sharma <123449950+manavmax@users.noreply.github.com>
Co-authored-by: Aryan Singh <146713101+dimssu@users.noreply.github.com>
Co-authored-by: cynthialong0-0 <82900738+cynthialong0-0@users.noreply.github.com>
Co-authored-by: Aryan Kumar <154001177+tusaryan@users.noreply.github.com>
Co-authored-by: ANDI FAUZAN HEDIANTORO <144610468+fauzan171@users.noreply.github.com>
Co-authored-by: Horizon_Architect_07 <famousrajbhatt@gmail.com>
Co-authored-by: Aishanee Shah <aishaneeshah@google.com>
Co-authored-by: Anjaligarhwal <anjaligarhwal1610@gmail.com>
Co-authored-by: Tirth Naik <naik.ti@northeastern.edu>
Co-authored-by: Keith Schaab <keith.schaab@gmail.com>
Co-authored-by: Himanshu Kumar <77563702+himanshu748@users.noreply.github.com>
Co-authored-by: Kartik <85060731+Kkartik14@users.noreply.github.com>
Co-authored-by: Christian Van <113378434+cvan20191@users.noreply.github.com>
Co-authored-by: Rhys Sullivan <39114868+RhysSullivan@users.noreply.github.com>
Co-authored-by: gemini-cli-robot <224641728+gemini-cli-robot@users.noreply.github.com>
Co-authored-by: Michael Bleigh <mbleigh@mbleigh.com>
Co-authored-by: Daniel Weis <danielweis@users.noreply.github.com>
Co-authored-by: Christopher Thomas <cobekgn@gmail.com>
Co-authored-by: Br1an <932039080@qq.com>
Co-authored-by: mahadevan <135952571+M-DEV-1@users.noreply.github.com>
Co-authored-by: JAYADITYA <96861162+JayadityaGit@users.noreply.github.com>
Co-authored-by: krishdef7 <157892833+krishdef7@users.noreply.github.com>
Co-authored-by: Daniel Finimundi <daniel@finimundi.com>
Co-authored-by: Suhaan Raqeeb Khavas <suhaanrk73@gmail.com>
Co-authored-by: Neil Nair <65729206+Neil-N4@users.noreply.github.com>
Co-authored-by: Franco Pieri <geo22therm@gmail.com>
Co-authored-by: Eswar809 <deevieswar44@gmail.com>
Co-authored-by: Kuroda Kayn <kurodakayn@outlook.com>
Co-authored-by: Yulong Wu <50110323+TNTCompany@users.noreply.github.com>
Co-authored-by: kevinjwang1 <kevinjwang@google.com>
Co-authored-by: EMERSON BUSSON <93008583+emersonbusson@users.noreply.github.com>
Co-authored-by: ifitisit <90478348+ifitisit@users.noreply.github.com>
Co-authored-by: PROTHAM <155388736+ProthamD@users.noreply.github.com>
Co-authored-by: 7. Sun <jhao.sun@gmail.com>
Co-authored-by: sotokisehiro <101786086+sotokisehiro@users.noreply.github.com>
Co-authored-by: Anish Sabharwal <anishs1207@gmail.com>
Co-authored-by: kaluchi <kaluchi@gmail.com>
Co-authored-by: Rajesh patel <145205731+Rajeshpatel07@users.noreply.github.com>
Co-authored-by: Ramón Medrano Llamas <45878745+rmedranollamas@users.noreply.github.com>
Co-authored-by: Om Patel <ompatel.aiml@gmail.com>
Co-authored-by: ashishch432 <55024632+ashishch432@users.noreply.github.com>
Co-authored-by: Andrea Alberti <a.alberti82@gmail.com>
Co-authored-by: Ananth Kini <ananthkini1@gmail.com>
Co-authored-by: Yuvraj Angad Singh <36276913+yuvrajangadsingh@users.noreply.github.com>
Co-authored-by: Debasish <90102437+dibyx@users.noreply.github.com>
Co-authored-by: Hashaam Zahid <68606886+Hashaam101@users.noreply.github.com>
Co-authored-by: tison <wander4096@gmail.com>
Co-authored-by: adithya32 <163162210+KumarADITHYA123@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/agent Issues related to Core Agent, Tools, Memory, Sub-Agents, Hooks, Agent Quality area/core Issues related to User Interface, OS Support, Core Functionality help wanted We will accept PRs from all issues marked as "help wanted". Thanks for your support! priority/p2 Important but can be addressed in a future release.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AgentLoopContext is incompatible with Config type

2 participants