chore: remove redundant linters, fix coverage output, update roadmap - #3716
Merged
Conversation
Dependency ReviewThe following issues were found:
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates developer tooling and dependency metadata across the Python and Node.js parts of the repo, plus marks a number of roadmap items as completed.
Changes:
- Update Python dev dependencies (e.g., bump Black; remove
importchecker/unimport; addmcp-cli/tornado) and align lint targets accordingly. - Update the Node.js lockfile with newer transitive dependencies (including the Vite/Vitest ecosystem changes).
- Update documentation roadmap status entries and adjust an internal PR review skill template.
Reviewed changes
Copilot reviewed 6 out of 9 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Updates Python dev dependency set (adds mcp-cli/tornado, removes importchecker/unimport, bumps Black) and related fawltydeps ignore list. |
mcp-servers/python/qr_code_server/pyproject.toml |
Bumps Black version for the QR code server dev extras. |
Makefile |
Removes importchecker/unimport targets and drops them from lint target lists; tweaks pytest report flags for coverage targets. |
.github/workflows/lint.yml |
Removes unimport from the Python lint matrix. |
package-lock.json |
Large dependency lock update; also changes top-level lock name. |
docs/docs/architecture/roadmap.md |
Marks many roadmap items as completed (⏳ → ✅). |
.claude/skills/pr-review/SKILL.md |
Updates the “Recommendation” section format in the PR review skill template. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
jonpspri
force-pushed
the
jps-housekeeping-03-17
branch
4 times, most recently
from
March 26, 2026 21:45
097983b to
3e64fa2
Compare
jonpspri
force-pushed
the
jps-housekeeping-03-17
branch
from
March 26, 2026 21:50
3e64fa2 to
74c3971
Compare
…update roadmap - Remove importchecker and unimport from Makefile, pyproject.toml, and CI workflow (redundant with ruff/flake8 F401 rule) - Change `make coverage` pytest flag from -rA to -rfE to suppress log capture noise from passing tests - Mark 33 closed issues in roadmap.md (⏳ → ✅) - Fix pr-review skill to select exactly one recommendation - Align e2e test JWT secret default with docker-compose.yml - Add --admin flag to register_fast_test JWT token generation - Update lock files Closes #1290 Signed-off-by: Jonathan Springer <jps@s390x.com>
jonpspri
force-pushed
the
jps-housekeeping-03-17
branch
from
March 26, 2026 21:55
74c3971 to
b4505f1
Compare
brian-hussey
pushed a commit
that referenced
this pull request
Mar 27, 2026
…update roadmap (#3716) - Remove importchecker and unimport from Makefile, pyproject.toml, and CI workflow (redundant with ruff/flake8 F401 rule) - Change `make coverage` pytest flag from -rA to -rfE to suppress log capture noise from passing tests - Mark 33 closed issues in roadmap.md (⏳ → ✅) - Fix pr-review skill to select exactly one recommendation - Align e2e test JWT secret default with docker-compose.yml - Add --admin flag to register_fast_test JWT token generation - Update lock files Closes #1290 Signed-off-by: Jonathan Springer <jps@s390x.com>
crivetimihai
added a commit
that referenced
this pull request
Mar 27, 2026
.env.example still used the old short `my-test-key` while docker-compose.yml and the E2E test helpers were updated to `my-test-key-but-now-longer-than-32-bytes` in #3716. Users who copied .env.example to .env got a secret mismatch that caused `make test-mcp-cli` to hang. See #3889 for the remaining files that need the same update. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
4 tasks
madhu-mohan-jaishankar
pushed a commit
that referenced
this pull request
Mar 27, 2026
…update roadmap (#3716) - Remove importchecker and unimport from Makefile, pyproject.toml, and CI workflow (redundant with ruff/flake8 F401 rule) - Change `make coverage` pytest flag from -rA to -rfE to suppress log capture noise from passing tests - Mark 33 closed issues in roadmap.md (⏳ → ✅) - Fix pr-review skill to select exactly one recommendation - Align e2e test JWT secret default with docker-compose.yml - Add --admin flag to register_fast_test JWT token generation - Update lock files Closes #1290 Signed-off-by: Jonathan Springer <jps@s390x.com>
crivetimihai
added a commit
that referenced
this pull request
Mar 27, 2026
PR #3716 updated docker-compose.yml and mcp_test_helpers.py to use `my-test-key-but-now-longer-than-32-bytes` (meeting the 32-byte minimum for HS256 per RFC 7518 §3.2) but missed ~70 other files that still hardcoded the old `my-test-key`. This caused test failures (make test-mcp-cli hangs, load tests fail auth) when .env is derived from .env.example. Updated: - All docker-compose variant files (debug, embedded, performance, verbose) - All E2E and load test defaults - All scripts and smoketests - Helm chart values, schema, and docs - Makefile targets - All documentation examples - Added long key to validate_env.py weak_jwt list Not changed (intentionally): - mcpgateway/config.py:286 — Python config default (source of truth for standalone `make dev`) - mcpgateway/config.py:888 — already lists both keys in weak_secrets - mcpgateway/config.py:1088, main.py:1955,2040 — guards checking for the default value - tests/unit/test_main_helpers_extra.py:55 — test that mocks the default Closes #3889 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
crivetimihai
added a commit
that referenced
this pull request
Mar 27, 2026
.env.example still used the old short `my-test-key` while docker-compose.yml and the E2E test helpers were updated to `my-test-key-but-now-longer-than-32-bytes` in #3716. Users who copied .env.example to .env got a secret mismatch that caused `make test-mcp-cli` to hang. See #3889 for the remaining files that need the same update. Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
crivetimihai
added a commit
that referenced
this pull request
Mar 27, 2026
PR #3716 updated docker-compose.yml and mcp_test_helpers.py to use `my-test-key-but-now-longer-than-32-bytes` (meeting the 32-byte minimum for HS256 per RFC 7518 §3.2) but missed ~70 other files that still hardcoded the old `my-test-key`. This caused test failures (make test-mcp-cli hangs, load tests fail auth) when .env is derived from .env.example. Updated: - All docker-compose variant files (debug, embedded, performance, verbose) - All E2E and load test defaults - All scripts and smoketests - Helm chart values, schema, and docs - Makefile targets - All documentation examples - Added long key to validate_env.py weak_jwt list Not changed (intentionally): - mcpgateway/config.py:286 — Python config default (source of truth for standalone `make dev`) - mcpgateway/config.py:888 — already lists both keys in weak_secrets - mcpgateway/config.py:1088, main.py:1955,2040 — guards checking for the default value - tests/unit/test_main_helpers_extra.py:55 — test that mocks the default Closes #3889 Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
brian-hussey
pushed a commit
that referenced
this pull request
Mar 27, 2026
* fix(validation): remove single pipe from forbidden description patterns
Remove single pipe character ("|") from the default
TOOL_DESCRIPTION_FORBIDDEN_PATTERNS list. The pipe is a valid character in
LogQL (|=, |~), PromQL, regex patterns, and Markdown tables. The dangerous
shell OR operator "||" remains blocked.
Also aligns ToolUpdate.validate_description with ToolCreate by using the
configurable settings.tool_description_forbidden_patterns instead of a
hardcoded list, ensuring consistent behavior when the pattern list is
customized via environment variables.
Closes #3811
Signed-off-by: NAYANA.R <nayana.r7813@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(env): align .env.example JWT secret with docker-compose default
.env.example still used the old short `my-test-key` while
docker-compose.yml and the E2E test helpers were updated to
`my-test-key-but-now-longer-than-32-bytes` in #3716. Users who
copied .env.example to .env got a secret mismatch that caused
`make test-mcp-cli` to hang.
See #3889 for the remaining files that need the same update.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: apply linter and formatter fixes
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(env): align all JWT secret defaults with docker-compose (#3889)
PR #3716 updated docker-compose.yml and mcp_test_helpers.py to use
`my-test-key-but-now-longer-than-32-bytes` (meeting the 32-byte minimum
for HS256 per RFC 7518 §3.2) but missed ~70 other files that still
hardcoded the old `my-test-key`.
This caused test failures (make test-mcp-cli hangs, load tests fail auth)
when .env is derived from .env.example.
Updated:
- All docker-compose variant files (debug, embedded, performance, verbose)
- All E2E and load test defaults
- All scripts and smoketests
- Helm chart values, schema, and docs
- Makefile targets
- All documentation examples
- Added long key to validate_env.py weak_jwt list
Not changed (intentionally):
- mcpgateway/config.py:286 — Python config default (source of truth for
standalone `make dev`)
- mcpgateway/config.py:888 — already lists both keys in weak_secrets
- mcpgateway/config.py:1088, main.py:1955,2040 — guards checking for
the default value
- tests/unit/test_main_helpers_extra.py:55 — test that mocks the default
Closes #3889
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(security): detect both JWT default secrets in guard paths
The secure_secrets flag and critical-issues check only matched the
short `my-test-key` default. Users running with the docker-compose
default `my-test-key-but-now-longer-than-32-bytes` would bypass the
security warning and the `secure_secrets: false` status flag.
- config.py get_security_status(): `!=` → `not in (short, long)`
- main.py validate_security_configuration(): same
- main.py security recommendations log: same
- validate_env.py already had both (updated in prior commit)
- config.py:888 weak_secrets already had both
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: update .secrets.baseline line numbers after reformatting
Pre-commit detect-secrets hook requires line numbers to match. The
linter/formatter commit shifted lines in db_util.py. All entries
remain is_secret=false (confirmed false positives).
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: allowlist test JWT secrets for detect-secrets hook
The longer JWT default triggers IBM detect-secrets "Secret Keyword"
detection on 7 lines that are all test/dev defaults. Added
`pragma: allowlist secret` inline comments.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: update .secrets.baseline after allowlist pragmas
Pre-commit detect-secrets hook removed entries that are now
covered by inline `pragma: allowlist secret` comments, and
adjusted line numbers.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* baseline
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
---------
Signed-off-by: NAYANA.R <nayana.r7813@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
msureshkumar88
pushed a commit
that referenced
this pull request
May 13, 2026
…update roadmap (#3716) - Remove importchecker and unimport from Makefile, pyproject.toml, and CI workflow (redundant with ruff/flake8 F401 rule) - Change `make coverage` pytest flag from -rA to -rfE to suppress log capture noise from passing tests - Mark 33 closed issues in roadmap.md (⏳ → ✅) - Fix pr-review skill to select exactly one recommendation - Align e2e test JWT secret default with docker-compose.yml - Add --admin flag to register_fast_test JWT token generation - Update lock files Closes #1290 Signed-off-by: Jonathan Springer <jps@s390x.com>
msureshkumar88
pushed a commit
that referenced
this pull request
May 13, 2026
* fix(validation): remove single pipe from forbidden description patterns
Remove single pipe character ("|") from the default
TOOL_DESCRIPTION_FORBIDDEN_PATTERNS list. The pipe is a valid character in
LogQL (|=, |~), PromQL, regex patterns, and Markdown tables. The dangerous
shell OR operator "||" remains blocked.
Also aligns ToolUpdate.validate_description with ToolCreate by using the
configurable settings.tool_description_forbidden_patterns instead of a
hardcoded list, ensuring consistent behavior when the pattern list is
customized via environment variables.
Closes #3811
Signed-off-by: NAYANA.R <nayana.r7813@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(env): align .env.example JWT secret with docker-compose default
.env.example still used the old short `my-test-key` while
docker-compose.yml and the E2E test helpers were updated to
`my-test-key-but-now-longer-than-32-bytes` in #3716. Users who
copied .env.example to .env got a secret mismatch that caused
`make test-mcp-cli` to hang.
See #3889 for the remaining files that need the same update.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: apply linter and formatter fixes
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(env): align all JWT secret defaults with docker-compose (#3889)
PR #3716 updated docker-compose.yml and mcp_test_helpers.py to use
`my-test-key-but-now-longer-than-32-bytes` (meeting the 32-byte minimum
for HS256 per RFC 7518 §3.2) but missed ~70 other files that still
hardcoded the old `my-test-key`.
This caused test failures (make test-mcp-cli hangs, load tests fail auth)
when .env is derived from .env.example.
Updated:
- All docker-compose variant files (debug, embedded, performance, verbose)
- All E2E and load test defaults
- All scripts and smoketests
- Helm chart values, schema, and docs
- Makefile targets
- All documentation examples
- Added long key to validate_env.py weak_jwt list
Not changed (intentionally):
- mcpgateway/config.py:286 — Python config default (source of truth for
standalone `make dev`)
- mcpgateway/config.py:888 — already lists both keys in weak_secrets
- mcpgateway/config.py:1088, main.py:1955,2040 — guards checking for
the default value
- tests/unit/test_main_helpers_extra.py:55 — test that mocks the default
Closes #3889
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(security): detect both JWT default secrets in guard paths
The secure_secrets flag and critical-issues check only matched the
short `my-test-key` default. Users running with the docker-compose
default `my-test-key-but-now-longer-than-32-bytes` would bypass the
security warning and the `secure_secrets: false` status flag.
- config.py get_security_status(): `!=` → `not in (short, long)`
- main.py validate_security_configuration(): same
- main.py security recommendations log: same
- validate_env.py already had both (updated in prior commit)
- config.py:888 weak_secrets already had both
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: update .secrets.baseline line numbers after reformatting
Pre-commit detect-secrets hook requires line numbers to match. The
linter/formatter commit shifted lines in db_util.py. All entries
remain is_secret=false (confirmed false positives).
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: allowlist test JWT secrets for detect-secrets hook
The longer JWT default triggers IBM detect-secrets "Secret Keyword"
detection on 7 lines that are all test/dev defaults. Added
`pragma: allowlist secret` inline comments.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: update .secrets.baseline after allowlist pragmas
Pre-commit detect-secrets hook removed entries that are now
covered by inline `pragma: allowlist secret` comments, and
adjusted line numbers.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* baseline
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
---------
Signed-off-by: NAYANA.R <nayana.r7813@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
kamath-a
pushed a commit
to kamath-a/mcp-context-forge
that referenced
this pull request
Jun 26, 2026
…update roadmap (IBM#3716) - Remove importchecker and unimport from Makefile, pyproject.toml, and CI workflow (redundant with ruff/flake8 F401 rule) - Change `make coverage` pytest flag from -rA to -rfE to suppress log capture noise from passing tests - Mark 33 closed issues in roadmap.md (⏳ → ✅) - Fix pr-review skill to select exactly one recommendation - Align e2e test JWT secret default with docker-compose.yml - Add --admin flag to register_fast_test JWT token generation - Update lock files Closes IBM#1290 Signed-off-by: Jonathan Springer <jps@s390x.com>
kamath-a
pushed a commit
to kamath-a/mcp-context-forge
that referenced
this pull request
Jun 26, 2026
* fix(validation): remove single pipe from forbidden description patterns
Remove single pipe character ("|") from the default
TOOL_DESCRIPTION_FORBIDDEN_PATTERNS list. The pipe is a valid character in
LogQL (|=, |~), PromQL, regex patterns, and Markdown tables. The dangerous
shell OR operator "||" remains blocked.
Also aligns ToolUpdate.validate_description with ToolCreate by using the
configurable settings.tool_description_forbidden_patterns instead of a
hardcoded list, ensuring consistent behavior when the pattern list is
customized via environment variables.
Closes IBM#3811
Signed-off-by: NAYANA.R <nayana.r7813@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(env): align .env.example JWT secret with docker-compose default
.env.example still used the old short `my-test-key` while
docker-compose.yml and the E2E test helpers were updated to
`my-test-key-but-now-longer-than-32-bytes` in IBM#3716. Users who
copied .env.example to .env got a secret mismatch that caused
`make test-mcp-cli` to hang.
See IBM#3889 for the remaining files that need the same update.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: apply linter and formatter fixes
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(env): align all JWT secret defaults with docker-compose (IBM#3889)
PR IBM#3716 updated docker-compose.yml and mcp_test_helpers.py to use
`my-test-key-but-now-longer-than-32-bytes` (meeting the 32-byte minimum
for HS256 per RFC 7518 §3.2) but missed ~70 other files that still
hardcoded the old `my-test-key`.
This caused test failures (make test-mcp-cli hangs, load tests fail auth)
when .env is derived from .env.example.
Updated:
- All docker-compose variant files (debug, embedded, performance, verbose)
- All E2E and load test defaults
- All scripts and smoketests
- Helm chart values, schema, and docs
- Makefile targets
- All documentation examples
- Added long key to validate_env.py weak_jwt list
Not changed (intentionally):
- mcpgateway/config.py:286 — Python config default (source of truth for
standalone `make dev`)
- mcpgateway/config.py:888 — already lists both keys in weak_secrets
- mcpgateway/config.py:1088, main.py:1955,2040 — guards checking for
the default value
- tests/unit/test_main_helpers_extra.py:55 — test that mocks the default
Closes IBM#3889
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* fix(security): detect both JWT default secrets in guard paths
The secure_secrets flag and critical-issues check only matched the
short `my-test-key` default. Users running with the docker-compose
default `my-test-key-but-now-longer-than-32-bytes` would bypass the
security warning and the `secure_secrets: false` status flag.
- config.py get_security_status(): `!=` → `not in (short, long)`
- main.py validate_security_configuration(): same
- main.py security recommendations log: same
- validate_env.py already had both (updated in prior commit)
- config.py:888 weak_secrets already had both
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: update .secrets.baseline line numbers after reformatting
Pre-commit detect-secrets hook requires line numbers to match. The
linter/formatter commit shifted lines in db_util.py. All entries
remain is_secret=false (confirmed false positives).
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: allowlist test JWT secrets for detect-secrets hook
The longer JWT default triggers IBM detect-secrets "Secret Keyword"
detection on 7 lines that are all test/dev defaults. Added
`pragma: allowlist secret` inline comments.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* chore: update .secrets.baseline after allowlist pragmas
Pre-commit detect-secrets hook removed entries that are now
covered by inline `pragma: allowlist secret` comments, and
adjusted line numbers.
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
* baseline
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
---------
Signed-off-by: NAYANA.R <nayana.r7813@gmail.com>
Signed-off-by: Mihai Criveti <crivetimihai@gmail.com>
Co-authored-by: Mihai Criveti <crivetimihai@gmail.com>
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.
Summary
importcheckerandunimportfrom Makefile, pyproject.toml, and CI lint workflow — redundant with ruff/flake8 F401 rulemake coveragepytest flag from-rAto-rfEto suppress log capture noise from passing testsdocs/docs/architecture/roadmap.md(⏳ → ✅)--adminflag toregister_fast_testJWT token generationCloses #1290
Test plan
make lintpasses without importchecker/unimport referencesmake coverageno longer dumps captured logs for passing tests