-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Persist dynamic extension config so we can resume recipe sessions w/ extensions #4331
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Persist dynamic extension config so we can resume recipe sessions w/ extensions #4331
Conversation
… duplicated code Also included a few changes picked up by my linter
…first session message
…tensions-on-resume * upstream/main: (60 commits) [cookbook recipe] Update Wording (block#4438) feat: show enabled extensions at top of extensions page (block#4423) test recipe (block#4436) Extensions loading indicator on desktop launch (block#4412) removing trailing slash (block#4433) [recipe cookbook] test recipe (block#4431) [recipe cookbook] switching to SHA (block#4429) [recipe cookbook] Update url build (block#4427) [Recipe Cookbook] test recipe flow (block#4426) [Recipe cookbook] Addressing GitHub api format issue (block#4424) feat: integrate tool call icons with status indicators and daisy chaining (block#4279) new recipe to lint-check my code (block#4416) removing a leftover syntax error (block#4415) Iand/updating recipe validation workflow (block#4413) Iand/updating recipe validation workflow (block#4410) Fix (Ollama provider): Unsupported operation: streaming not implemented (block#4303) change databricks default to claude sonnet 4 (block#4405) Iand/updating recipe validation workflow (block#4406) Add metrics for recipe metadata in scheduler, UI, and CLI (block#4399) Iand/updating recipe validation workflow (block#4403) ...
|
This pull request has been automatically marked as stale because it has not had recent activity for 23 days. What happens next?
Thank you for your contribution! 🚀 |
|
sorry for letting this slip. can you sync with main? |
|
@DOsinga sure np, for context I got tied up with a few other things and let this go stale to see how @tlongwell-block 's agent unification work would shake out to make sure I didn't muddy the waters there |
* main: (206 commits) Tiny: fix github casing (block#4903) remove anyOf from create_task tool (block#4897) chore(deps): bump tracing-subscriber from 0.3.19 to 0.3.20 (block#4442) fix optional recipe schema zod validation (block#4900) Added CMD+T keyboard shortcut that takes you to the Home tab (block#4541) feat(cli): add `path` & `limit` to `session list` command (block#4878) Allow better concurrent access (block#4896) fix: Windows prompt cursor positioning issue with ANSI escape sequences (block#4464) Fix: LiteLLM API key field not showing in UI configuration (block#4105) fix: path is duplicated on tool calls causing them to fail (block#4658) (block#4859) add new prompt to get all available tutorials (block#4802) Add filtering for agentVisible: false messages on streaming providers (block#4847) alexhancock/mcp-crate-cleanup (block#4885) docs: rename sub-recipe to subrecipe (block#4886) docs: new multi-model section with autopilot topic (block#4864) make agent manager singleton (block#4880) Cli web auth token (block#4456) fix(token_counter): fix panic with GitHub Copilot (block#4632) Revert "Internal MCP Crate Cleanup (block#4800)" (block#4883) remove 2 redundant comments and one that lies (block#4866) ...
* main: (30 commits) feat(nightly): build nightlies from main shas (block#4888) Add missing library for fedora/rhel/centos docs (block#4819) feat(process): Add GOVERNANCE and MAINTAINERS documents (block#4962) Pause test finder, have it run cargo fmt (block#4958) Disable the issue comment trigger on pr-comment-bundle (block#4961) fix(providers): update Claude Sonnet 4 model identifier (block#4884) fix redirect to extensions page after deeplink install and show toast with success message (block#4863) Remove wait-for-ready log (block#4956) docs: add a new goose tip (block#4940) Add PR template (block#4934) Using --resume with --name should still accept session IDs (block#4937) Fix auto scroll to bottom during chat (block#4923) Fix Typo, Add Description to Hacktoberfest Content Issue Template (block#4931) Don't set agent props twice (block#4872) fix: conversation fixer merges assistant text blocks and drops empty text messages (block#4898) Batch fetch remaining issues for documentation updates fix: session timestamps (block#4913) feat: lazy infinite scroller for session history view (block#4922) chore: properly identify when to try oauth (block#4918) Make token counter safer (block#4924) ...
jamadeo
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @wpfleger96 for the contribution! This will make resuming sessions behave much more predictably.
* main: docs: Change community page sections (block#4984) docs: remove temporary Hacktoberfest issue templates (block#4982) Create multi-channel researcher prompt (block#4947) docs: Add Community Content section to Community Page (block#4964) Allow empty API Key when registering custom provider (block#4977) Feat: Add prompt injection detection settings UI + update logging (block#4651) Make create_session work concurrently (block#4954) Lifei/create save recipe to file (block#4895)
* main: Removed unused libs (block#4932) Platform extensions sketch (block#4868) Add reply to the routes (block#4963) feat(cli): add GOOSE_DEBUG environment variable support (block#4825)
…-unification * 'main' of github.com:block/goose: feat: set custom models for lead/worker (#4598) feat: add grok-code-fast-1 support for xAI provider (#4472) Persist dynamic extension config so we can resume recipe sessions w/ extensions (#4331) fix: show PowerShell PATH instructions for Windows users (#4989) feat: add Smart Task Organizer recipe for Hacktoberfest (#4936) Fix extension headers (#5000) feat: add advanced software project generator initializer recipe (#4767) (#4949)
* main: (22 commits) fix: Issue #4540: `goose configure` -> Cursor Agent succeeds (#4942) feat: Add advanced data analysis pipeline recipe (#4990) (#5005) Create / edit recipe form unification and improvements (#4693) feat: add Code Review Mentor recipe with Developer and Memory extensions (#4992) (#5014) feat: set custom models for lead/worker (#4598) feat: add grok-code-fast-1 support for xAI provider (#4472) Persist dynamic extension config so we can resume recipe sessions w/ extensions (#4331) fix: show PowerShell PATH instructions for Windows users (#4989) feat: add Smart Task Organizer recipe for Hacktoberfest (#4936) Fix extension headers (#5000) feat: add advanced software project generator initializer recipe (#4767) (#4949) Removed unused libs (#4932) Platform extensions sketch (#4868) Add reply to the routes (#4963) feat(cli): add GOOSE_DEBUG environment variable support (#4825) docs: Change community page sections (#4984) docs: remove temporary Hacktoberfest issue templates (#4982) Create multi-channel researcher prompt (#4947) docs: Add Community Content section to Community Page (#4964) Allow empty API Key when registering custom provider (#4977) ...
* main: (130 commits) Add new subcommand for opening recipes in desktop app (block#4970) Update system.md with softer subagent language (block#5023) docs: add new goose tip (block#4941) Fix nix flake double copy (block#4976) Upgrade electron for macOS Tahoe compatibility (block#5015) fix: check server is ready so that we can decode the recipe deeplink (block#5021) fix: backwards compatible parsing recipe file (block#5020) chore: Used common function to list recipes in local machine (block#4974) fix: Issue block#4540: `goose configure` -> Cursor Agent succeeds (block#4942) feat: Add advanced data analysis pipeline recipe (block#4990) (block#5005) Create / edit recipe form unification and improvements (block#4693) feat: add Code Review Mentor recipe with Developer and Memory extensions (block#4992) (block#5014) feat: set custom models for lead/worker (block#4598) feat: add grok-code-fast-1 support for xAI provider (block#4472) Persist dynamic extension config so we can resume recipe sessions w/ extensions (block#4331) fix: show PowerShell PATH instructions for Windows users (block#4989) feat: add Smart Task Organizer recipe for Hacktoberfest (block#4936) Fix extension headers (block#5000) feat: add advanced software project generator initializer recipe (block#4767) (block#4949) Removed unused libs (block#4932) ...
…extensions (block#4331) Signed-off-by: Itz-Agasta <[email protected]>
This PR enables extension persistence across session resume by storing extension configurations in the
ExtensionDatafield ofSession. When users resume previous sessions with--resume, the previous session's dynamic extensions are now automatically reloaded.Before this change, if a user started an interactive session using a recipe then later resumed it, the original recipe session's extensions were NOT reloaded into the resumed session, creating an inconsistent experience. Extension state is captured and persisted throughout the session, whether extensions are defined via recipe,
--with-builtin,--with-extension,--with-remote-extension, or--with-streamable-http-extension.Implementation details:
ExtensionDatausing theExtensionStatetrait pattern with versioned keys for future compatibilitymanage_extensions()call to maintain consistencyExtensionConfigobjects are stored (not just names) to preserve exact session configuration including timeouts, environment variables, and other settingsAgent::save_extension_state()is made public and reused in session builder to eliminate code duplicationFixes #4295