Skip to content

Conversation

@wpfleger96
Copy link
Collaborator

@wpfleger96 wpfleger96 commented Oct 6, 2025

Summary

The original goal of these changes was to enhance and improve Ruby analysis support from #4796, but became a refactor of the Developer extension's analyze tool to use a centralized language registry pattern to eliminate code duplication and simplify future language additions

  • Introduced LanguageInfo struct and centralized registry
  • All language configuration (queries, handlers) now defined in one place instead of scattered across multiple files
  • Added opt-in reference tracking system for type analysis (method-to-type associations, field types, instantiation)

I also added Ruby support (copied over from @tlongwell-block 's work in #4796) and enhanced Go analysis with advanced reference tracking:

  • Enhanced Go analysis: struct field tracking, method receivers, constants, type instantiation

Type of Change

  • Feature
  • Bug fix
  • Refactor / Code quality
  • Performance improvement
  • Documentation
  • Tests
  • Security fix
  • Build / Release
  • Other (specify below)

Testing

I added unit tests for this new code, and tested manually by having Goose analyze local Ruby and Go repos that I already know well

tlongwell-block and others added 6 commits September 24, 2025 13:35
* 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)
  ...
@tlongwell-block tlongwell-block self-assigned this Oct 6, 2025
@tlongwell-block tlongwell-block merged commit 4246ca5 into block:main Oct 7, 2025
10 checks passed
@DOsinga
Copy link
Collaborator

DOsinga commented Oct 7, 2025

hmm, this is a 1000+ line PR and there is no discussion?

ARYPROGRAMMER pushed a commit to ARYPROGRAMMER/goose that referenced this pull request Oct 7, 2025
@tlongwell-block
Copy link
Collaborator

hmm, this is a 1000+ line PR and there is no discussion?

Yep, my bad here. Chat was offline for the review process. Will use GitHub + Discord next time.

For posterity: we added recursion depth checks, reduced trivial testing and comments, refactored long blocks, and did extensive testing on some of the large internal monorepos at Block

Fun way to do some of the required testing on Goose features (or MCPs in general):

( O)> Use the gh cli to thoroughly read and understand #5030 You are built off of that branch. Come up with a comprehensive integration test strategy for these changes that you will execute yourself using your analyze tool. Do not start testing yet. Develop ANALYZE_TEST_PLAN.md Think about edge cases and figuring out how comprehensive the tool is.

Then, in the case of this tool, point it at repos of each language it supports and compile its usage reports, having it track memory, time elapsed vs LOC/file size, etc.

We ended up integration testing the tool over 2,000,000+ LOC

katzdave added a commit that referenced this pull request Oct 7, 2025
…aned-tool-calls

* 'main' of github.com:block/goose: (38 commits)
  docs: misc updates for extensions directory (#5035)
  updating recipe scanner workflows for detecting recipes from forked repos (#5056)
  feat(prompt-library): add Smart Meeting Assistant advanced prompt (#4998) (#5031)
  Allow auto focus and typing while chat is initializing (#5043)
  docs(blog): Add blog for running Goose in containerized envs  (#5052)
  fix: Add WINDOWS_CODESIGN_CERTIFICATE to nightly workflow (#5037)
  Developer `analyze` tool improvement (#5030)
  use agent manager for subagent (#4828)
  fix: improve Windows OS detection in CLI installation script (#4928)
  Make it startable from playwright and also isolate (#5016)
  Fix linux deeplinks not working (#5041)
  docs: embed more videos (#5042)
  Display extension install notes in "Add custom extension" form (#5036)
  Add support for headers in extensions deeplinks (#5034)
  chore: put test in the name (#4919)
  Add new subcommand for opening recipes in desktop app (#4970)
  Update system.md with softer subagent language (#5023)
  docs: add new goose tip (#4941)
  Fix nix flake double copy (#4976)
  Upgrade electron for macOS Tahoe compatibility (#5015)
  ...
michaelneale added a commit that referenced this pull request Oct 9, 2025
* main: (170 commits)
  Applied server side call to parse and save recipe (#5022)
  feat(prompt-library): add Code Documentation Migrator intermediate prompt (#4996) (#5051)
  Add Messy Column Fixer recipe (#5062)
  Cleanup temp files (#5081)
  add openmetadata recipe (#5076)
  Fix Hacktoberfest Leaderboard (#5080)
  adding brand guidelines to AGENTS.md (#4887)
  Fix: Prevent cross-contamination of cache data across analysis modes for `analyze` tool (#5075)
  fix: remove circular reference (#5018)
  Introduced a new prompt for content amplification that integrates multi-step workflows using official Goose extensions. Closes Issue #4998 (#5050)
  Add hint for focus mode when used on file paths for `analyze` tool (#5069)
  fix: use dynamic port allocation for OAuth server (#5019)
  Art vandelay: Import & Export (#5053)
  docs: misc updates for extensions directory (#5035)
  updating recipe scanner workflows for detecting recipes from forked repos (#5056)
  feat(prompt-library): add Smart Meeting Assistant advanced prompt (#4998) (#5031)
  Allow auto focus and typing while chat is initializing (#5043)
  docs(blog): Add blog for running Goose in containerized envs  (#5052)
  fix: Add WINDOWS_CODESIGN_CERTIFICATE to nightly workflow (#5037)
  Developer `analyze` tool improvement (#5030)
  ...
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