Closed
Conversation
Co-authored-by: jgravelle <3400540+jgravelle@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Configure release settings for repository
Add release workflow and CHANGELOG for v0.2.0
Feb 25, 2026
Copilot stopped work on behalf of
jgravelle due to an error
February 25, 2026 15:08
jgravelle
pushed a commit
that referenced
this pull request
Mar 3, 2026
…lity-and-security Harden IndexStore path handling and repo sanitization; add CLI arg parsing, docs, and tests
jgravelle
pushed a commit
that referenced
this pull request
Mar 10, 2026
Feedback #1: Rebase required "Large PRs need to be rebased onto current main before merging." How addressed: The fork's main was force-reset to match jgravelle/jcodemunch-mcp:main at 971ae14. The feat/dbt-sql-support branch (SQL language support) was cherry-picked cleanly onto upstream main as a separate branch. This branch (feat-provider-context-encrichment) is also based on 971ae14. --- Feedback #2: No opt-out path for context providers "discover_providers() runs on every index_folder call... no way to disable this." How addressed: - src/jcodemunch_mcp/tools/index_folder.py — Added context_providers: bool = True parameter to index_folder(). When False, or when JCODEMUNCH_CONTEXT_PROVIDERS=0 is set in the environment, provider discovery is skipped entirely — no YAML parsing, no doc block scanning, no overhead. Renamed the internal variable from context_providers to active_providers to avoid shadowing the new parameter. - CONTEXT_PROVIDERS.md — Added a new "Disabling Context Providers" subsection documenting both the env var and per-call parameter, including an MCP server config JSON example. - README.md — Added JCODEMUNCH_CONTEXT_PROVIDERS row to the environment variables table. - USER_GUIDE.md — Added bullet point for the env var in the Claude Desktop setup section. --- Feedback #3: detect() sets instance state as a side effect "If load() is called without detect(), it raises AttributeError." How addressed: - src/jcodemunch_mcp/parser/context/dbt.py — Initialized self._dbt_yml_path: Optional[Path] = None in __init__(). Added a guard at the top of load() that logs a warning and returns early if _dbt_yml_path is None. --- Feedback #4: File context lookup by stem could false-match "A file named schema.sql would match a dbt model named schema." How addressed: - src/jcodemunch_mcp/parser/context/dbt.py — Added _model_path_prefixes list, populated during load() with the relative paths of the project's configured model-paths directories. Added _is_in_model_path() method. get_file_context() now returns None immediately for files outside model directories, preventing false matches on files like scripts/schema.sql or schema.sql at the project root. - tests/test_dbt_provider.py — Added test_get_file_context_outside_model_path test verifying that files outside models/ don't match even when the stem matches a model name (schema.sql, my_model.sql, scripts/my_model.sql), while files inside models/ still match correctly. Updated test_get_file_context_by_stem to reflect the new path-scoped behavior. - CONTEXT_PROVIDERS.md — Added a "How It Matches Files" subsection to the dbt Provider docs explaining the stem + path scoping strategy with examples. Updated the Terraform example's get_file_context comment to recommend path validation before stem matching. --- Feedback #5: bash.exe.stackdump in .gitignore "Windows build artifact, not a project file." How addressed: - .gitignore — Removed the bash.exe.stackdump line. --- Feedback #6: SQL_SPEC empty dicts "Worth adding a pragma or docstring so future contributors don't try to fix it." How addressed: Already addressed in the separate feat/dbt-sql-support branch. The SQL_SPEC in languages.py has a multi-line comment explaining that the derekstride grammar has no named field accessors and pointing to _parse_sql_symbols() in extractor.py where the actual extraction logic lives. No change needed on this branch. --- Test results - 481 passed, 4 skipped, 0 failures (one new test added)
jgravelle
pushed a commit
that referenced
this pull request
Mar 10, 2026
Feedback #1: Rebase required "Large PRs need to be rebased onto current main before merging." How addressed: The fork's main was force-reset to match jgravelle/jcodemunch-mcp:main at 971ae14. The feat/dbt-sql-support branch (SQL language support) was cherry-picked cleanly onto upstream main as a separate branch. This branch (feat-provider-context-encrichment) is also based on 971ae14. --- Feedback #2: No opt-out path for context providers "discover_providers() runs on every index_folder call... no way to disable this." How addressed: - src/jcodemunch_mcp/tools/index_folder.py — Added context_providers: bool = True parameter to index_folder(). When False, or when JCODEMUNCH_CONTEXT_PROVIDERS=0 is set in the environment, provider discovery is skipped entirely — no YAML parsing, no doc block scanning, no overhead. Renamed the internal variable from context_providers to active_providers to avoid shadowing the new parameter. - CONTEXT_PROVIDERS.md — Added a new "Disabling Context Providers" subsection documenting both the env var and per-call parameter, including an MCP server config JSON example. - README.md — Added JCODEMUNCH_CONTEXT_PROVIDERS row to the environment variables table. - USER_GUIDE.md — Added bullet point for the env var in the Claude Desktop setup section. --- Feedback #3: detect() sets instance state as a side effect "If load() is called without detect(), it raises AttributeError." How addressed: - src/jcodemunch_mcp/parser/context/dbt.py — Initialized self._dbt_yml_path: Optional[Path] = None in __init__(). Added a guard at the top of load() that logs a warning and returns early if _dbt_yml_path is None. --- Feedback #4: File context lookup by stem could false-match "A file named schema.sql would match a dbt model named schema." How addressed: - src/jcodemunch_mcp/parser/context/dbt.py — Added _model_path_prefixes list, populated during load() with the relative paths of the project's configured model-paths directories. Added _is_in_model_path() method. get_file_context() now returns None immediately for files outside model directories, preventing false matches on files like scripts/schema.sql or schema.sql at the project root. - tests/test_dbt_provider.py — Added test_get_file_context_outside_model_path test verifying that files outside models/ don't match even when the stem matches a model name (schema.sql, my_model.sql, scripts/my_model.sql), while files inside models/ still match correctly. Updated test_get_file_context_by_stem to reflect the new path-scoped behavior. - CONTEXT_PROVIDERS.md — Added a "How It Matches Files" subsection to the dbt Provider docs explaining the stem + path scoping strategy with examples. Updated the Terraform example's get_file_context comment to recommend path validation before stem matching. --- Feedback #5: bash.exe.stackdump in .gitignore "Windows build artifact, not a project file." How addressed: - .gitignore — Removed the bash.exe.stackdump line. --- Feedback #6: SQL_SPEC empty dicts "Worth adding a pragma or docstring so future contributors don't try to fix it." How addressed: Already addressed in the separate feat/dbt-sql-support branch. The SQL_SPEC in languages.py has a multi-line comment explaining that the derekstride grammar has no named field accessors and pointing to _parse_sql_symbols() in extractor.py where the actual extraction logic lives. No change needed on this branch. --- Test results - 481 passed, 4 skipped, 0 failures (one new test added)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
.github/workflows/release.yml— automated release workflow triggered onv*.*.*tags with four jobs:sdist+wheelusingpython -m build(depends on test passing)pypiGitHub environment to be configured)CHANGELOG.md— documents all features in the initialv0.2.0release✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.