Skip to content

Conversation

bl-ue
Copy link
Contributor

@bl-ue bl-ue commented Aug 21, 2025

This PR is the second in a series of 9 PRs that implement automatic chat recording and resuming in both interactive and non-interactive modes, with command line flags for non-interactive resuming and session management, and an interactive session browser.

PR #4401 was the original monolithic PR, which implemented this feature from the ground up. It's too large to merge as-is, however, and so it was broken up into 9 smaller PRs, of which this PR is the second.

Please see #4401's description for the full context of this PR. The original monolithic PR's description contains a detailed analysis of the entire system, with an example of the recording JSON, 30+ linked issues, and a demo video.

@bl-ue bl-ue requested a review from a team as a code owner August 21, 2025 04:16
Copy link
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.

Summary of Changes

Hello @bl-ue, 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, the second in a series, integrates the chat recording functionality into the non-interactive mode of the CLI. It ensures that user messages, Gemini's responses, token usage, and detailed tool call information are captured and recorded, providing a comprehensive log of non-interactive sessions.

Highlights

  • Comprehensive Chat Recording: Implements the recording of user inputs, Gemini's textual responses, and detailed token usage metadata within non-interactive CLI sessions.
  • Enhanced Tool Call Logging: Captures the state of tool calls both before and after their execution, including success, error, and associated results or error messages.
  • Standardized Event Structure: Updates the core Finished event type to consistently include both the finish reason and usage metadata, improving data consistency across the application.
  • Robust Test Coverage: Adds extensive unit tests for the non-interactive CLI to validate the new chat recording and tool call logging features, ensuring reliability.
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 in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

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 issue comments and review comments.
Help /gemini help Displays a list of available commands.

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 .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 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

  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
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 integrates chat recording into the non-interactive CLI mode. The changes include adding the ChatRecordingService to record user messages, Gemini responses, tool calls, and token usage. The event structure for Finished events has been updated across the codebase to include usageMetadata, and tests have been added or updated to reflect these changes.

My review found a couple of issues: a duplicate module export and a potential bug related to a shallow copy being used where a deep copy was intended. Both are high-severity issues that should be addressed.

@bl-ue
Copy link
Contributor Author

bl-ue commented Aug 21, 2025

Hi @NTaylorMullen and @jacob314, this is PR tested and ready to merge.

@fantasy-cc
Copy link

Hi @bl-ue! Really excited about this chat recording implementation series.

I just commented on #3882 offering to help with testing - this feature addresses exactly what I was looking for.

Specific help I could offer:

🧪 Testing:

  • Cross-platform testing (I'm on macOS with Node.js v23.11.0)
  • Non-interactive mode edge cases and scripting scenarios
  • Large conversation handling and performance testing
  • Crash recovery and data integrity scenarios

📋 Code Review:

  • I see there's 1 failing check - happy to help investigate if needed
  • Could review the integration points and error handling
  • Test the session management CLI flags thoroughly

📖 Documentation:

  • Could help with user-facing documentation updates
  • Test and refine the command examples and workflows

Questions:

  1. Are there specific test scenarios you'd like me to focus on?
  2. Any particular edge cases or integration points that need extra validation?
  3. Would end-user documentation feedback be valuable?

This looks like a substantial and well-thought-out implementation! 🚀

@bl-ue bl-ue force-pushed the integrate-chat-recording-in-non-interactive-082025 branch from bf228df to def21c6 Compare August 29, 2025 15:51
@bl-ue bl-ue marked this pull request as ready for review August 29, 2025 16:17
@bl-ue bl-ue changed the title feat(sessions): Integrate chat recording into non-interactive mode feat(sessions): Integrate chat recording into GeminiChat Aug 29, 2025
@NTaylorMullen NTaylorMullen added this pull request to the merge queue Sep 3, 2025
Merged via the queue into google-gemini:main with commit b5dd6f9 Sep 3, 2025
18 checks passed
@bl-ue bl-ue deleted the integrate-chat-recording-in-non-interactive-082025 branch September 3, 2025 13:58
thacio added a commit to thacio/auditaria that referenced this pull request Sep 3, 2025
@bl-ue
Copy link
Contributor Author

bl-ue commented Sep 4, 2025

Next: #7662

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants