Skip to content

Conversation

@salman1993
Copy link
Contributor

@salman1993 salman1993 commented Mar 6, 2025

Changes:

  • agent.reply(...) takes in an optional session config which stores id and working dir (1 session = 1 working dir = 1 agent)
  • store working_dir
  • resume from working dir in CLI and GUI
  • no longer use local storage for chat msgs

1. **URL Parameter Approach**:
   - When resuming a session, we now pass the session ID as a URL parameter to the new window
   - This ensures the session ID is correctly passed between windows

2. **Main Process Changes**:
   - Updated the `createChat` function to accept a `resumeSessionId` parameter
   - Modified the URL loading code to include the resumeSessionId parameter
   - Updated the IPC handler to pass the resumeSessionId parameter

3. **Preload Script Changes**:
   - Updated the `createChatWindow` function to accept and pass the resumeSessionId parameter

4. **SessionsView Changes**:
   - Modified the `handleResumeSession` function to directly pass the session ID to the new window
   - Removed the localStorage approach which was causing issues

5. **App.tsx Changes**:
   - Added an effect to check for the resumeSessionId parameter in the URL
   - If found, it fetches the session details and switches to the chat view with the resumed session

6. **ChatView Cleanup**:
   - Simplified the ChatView component by removing the complex state management
   - Removed the code that was causing the infinite loop
   - Kept only the essential code for displaying resumed sessions

This approach is much cleaner and more reliable because:
1. It uses the URL parameter system which is designed for passing data between windows
2. It avoids the localStorage approach which was causing issues
3. It directly fetches the session details in the new window
4. It eliminates the complex state management that was causing the infinite loop
@salman1993 salman1993 marked this pull request as ready for review March 6, 2025 21:17
Copy link
Collaborator

@michaelneale michaelneale left a comment

Choose a reason for hiding this comment

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

very cool! that looks like a heavy lift

@salman1993 salman1993 merged commit 32f20cd into main Mar 7, 2025
6 checks passed
@salman1993 salman1993 deleted the sm/sessions-workdir branch March 7, 2025 16:12
michaelneale added a commit that referenced this pull request Mar 9, 2025
* main:
  feat: parallel processing in approve mode (#1575)
  Feat: support auto-including dirs in binary/bench-work-dir (#1576)
  refactor models component (#1535)
  docs: Add running Goose in CI tutorial (#1426)
  chore: remove logging of oauth config, just log where we output (#1573)
  feat: implement a tool permission store (#1516)
  minor typo (#1569)
  fix: open new session in working dir when hotkey is pressed (#1570)
  feat: store working directory for sessions  (#1559)
  docs: extension timeout (#1567)
  fix: update openrouter referer website to point to github page site (#1566)
  feat(cli): add --debug flag to goose session / run (#1564)
cbruyndoncx pushed a commit to cbruyndoncx/goose that referenced this pull request Jul 20, 2025
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.

5 participants