Skip to content

Commit 55ef3ba

Browse files
authored
cleanup (#314)
Signed-off-by: Mihai Criveti <[email protected]>
1 parent 2e4f17a commit 55ef3ba

File tree

6 files changed

+162
-52
lines changed

6 files changed

+162
-52
lines changed

docs/docs/architecture/roadmap.md

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
## Release 0.1.0 - Initial Release
3030

3131
!!! success "Release 0.1.0 - Completed (100%)"
32-
**Due:** June 5, 2025 | **Status:** Closed
32+
**Due:** June 5, 2025 | **Status:** Closed
3333
Initial release with core functionality and basic deployment support.
3434

3535
???+ check "✨ Features (3)"
3636
- [**#27**](https://github.com/IBM/mcp-context-forge/issues/27) - Add /ready endpoint for readiness probe
37-
- [**#24**](https://github.com/IBM/mcp-context-forge/issues/24) - Publish Helm chart for Kubernetes deployment
37+
- [**#24**](https://github.com/IBM/mcp-context-forge/issues/24) - Publish Helm chart for Kubernetes deployment
3838
- [**#23**](https://github.com/IBM/mcp-context-forge/issues/23) - Add VS Code Devcontainer support for instant onboarding
3939

4040
???+ check "🐛 Bugs (3)"
@@ -51,7 +51,7 @@
5151
## Release 0.2.0 - Streamable HTTP, Infra-as-Code, Dark Mode
5252

5353
!!! success "Release 0.2.0 - Completed (100%)"
54-
**Due:** June 24, 2025 | **Status:** Closed
54+
**Due:** June 24, 2025 | **Status:** Closed
5555
Enhanced transport capabilities and improved user experience.
5656

5757
???+ check "✨ Features (3)"
@@ -73,7 +73,7 @@
7373
## Release 0.3.0 - Annotations and Multi-Server Tool Federations
7474

7575
!!! warning "Release 0.3.0 - Partially Complete (63%)"
76-
**Due:** July 8, 2025 | **Status:** Closed
76+
**Due:** July 8, 2025 | **Status:** Closed
7777
Focus on tool federation and server management improvements.
7878

7979
???+ warning "🐛 Open Bugs (2)"
@@ -113,7 +113,7 @@
113113
## Release 0.4.0 - Bugfixes, Resilience & Code Quality
114114

115115
!!! danger "Release 0.4.0 - Open (0%)"
116-
**Due:** July 22, 2025 | **Status:** Open
116+
**Due:** July 22, 2025 | **Status:** Open
117117
Focus on bugfixes, resilience (retry with exponential backoff), code quality and technical debt (test coverage, linting, security scans, GitHub Actions, Makefile, Helm improvements).
118118

119119
???+ danger "🐛 Open Bugs (2)"
@@ -155,7 +155,7 @@
155155
## Release 0.5.0 - Enterprise Operability, Auth, Configuration & Observability
156156

157157
!!! danger "Release 0.5.0 - Open (0%)"
158-
**Due:** August 5, 2025 | **Status:** Open
158+
**Due:** August 5, 2025 | **Status:** Open
159159
Enterprise-grade authentication, configuration management, and comprehensive observability.
160160

161161
???+ danger "✨ Open Features (10)"
@@ -178,7 +178,7 @@
178178
## Release 0.6.0 - Security, Scale & Smart Automation
179179

180180
!!! danger "Release 0.6.0 - Open (0%)"
181-
**Due:** August 19, 2025 | **Status:** Open
181+
**Due:** August 19, 2025 | **Status:** Open
182182
Advanced security features, scalability improvements, and intelligent automation capabilities.
183183

184184
???+ danger "✨ Open Features (11)"
@@ -200,7 +200,7 @@
200200
## Release 0.7.0 - Multitenancy and RBAC
201201

202202
!!! danger "Release 0.7.0 - Open (0%)"
203-
**Due:** September 2, 2025 | **Status:** Open
203+
**Due:** September 2, 2025 | **Status:** Open
204204
Multitenancy and RBAC (Private/Team/Global catalogs), Extended Connectivity, Core Observability & Starter Agents (OpenAI and A2A).
205205

206206
???+ danger "✨ Open Features (8)"
@@ -217,7 +217,7 @@
217217
## Release 0.8.0 - Enterprise Security & Policy Guardrails
218218

219219
!!! danger "Release 0.8.0 - Open (0%)"
220-
**Due:** September 16, 2025 | **Status:** Open
220+
**Due:** September 16, 2025 | **Status:** Open
221221
Comprehensive enterprise security features and policy enforcement mechanisms.
222222

223223
???+ danger "✨ Open Features (5)"
@@ -235,7 +235,7 @@
235235
## Release 0.9.0 - Interoperability, Marketplaces & Advanced Connectivity
236236

237237
!!! danger "Release 0.9.0 - Open (7%)"
238-
**Due:** September 30, 2025 | **Status:** Open
238+
**Due:** September 30, 2025 | **Status:** Open
239239
Enhanced interoperability, marketplace features, and advanced connectivity options.
240240

241241
???+ danger "✨ Open Features (11)"
@@ -265,7 +265,7 @@
265265
## Release 1.0.0 - General Availability & Release Candidate Hardening
266266

267267
!!! danger "Release 1.0.0 - Open (0%)"
268-
**Due:** October 14, 2025 | **Status:** Open
268+
**Due:** October 14, 2025 | **Status:** Open
269269
Stable and audited release for general availability.
270270

271271
???+ danger "📚 Open Documentation (1)"
@@ -276,7 +276,7 @@
276276
## Release 1.1.0 - Post-GA Testing, Bugfixing, Documentation, Performance and Scale
277277

278278
!!! danger "Release 1.1.0 - Open (0%)"
279-
**Due:** October 28, 2025 | **Status:** Open
279+
**Due:** October 28, 2025 | **Status:** Open
280280
Post-launch improvements and performance optimizations.
281281

282282
???+ danger "✨ Open Features (1)"
@@ -287,7 +287,7 @@
287287
## Release 1.2.0 - Catalog Enhancements, Ratings, Experience and UI
288288

289289
!!! danger "Release 1.2.0 - Open (0%)"
290-
**Due:** November 11, 2025 | **Status:** Open
290+
**Due:** November 11, 2025 | **Status:** Open
291291
Enhanced catalog features and improved user experience.
292292

293293
???+ danger "✨ Open Features (1)"
@@ -298,7 +298,7 @@
298298
## Release 1.3.0 - Catalog Improvements, A2A Improvements, MCP Standard Review and Sync, Technical Debt
299299

300300
!!! danger "Release 1.3.0 - Open (0%)"
301-
**Due:** November 25, 2025 | **Status:** Open
301+
**Due:** November 25, 2025 | **Status:** Open
302302
Catalog improvements, A2A enhancements, and technical debt resolution.
303303

304304
???+ danger "✨ Open Features (1)"
@@ -309,7 +309,7 @@
309309
## Release 1.4.0
310310

311311
!!! danger "Release 1.4.0 - Open (0%)"
312-
**Due:** December 9, 2025 | **Status:** Open
312+
**Due:** December 9, 2025 | **Status:** Open
313313
TBD
314314

315315
*No issues currently assigned to this release.*
@@ -319,7 +319,7 @@
319319
## Release 1.5.0
320320

321321
!!! danger "Release 1.5.0 - Open (0%)"
322-
**Due:** December 23, 2025 | **Status:** Open
322+
**Due:** December 23, 2025 | **Status:** Open
323323
TBD
324324

325325
*No issues currently assigned to this release.*
@@ -329,7 +329,7 @@
329329
## Release 1.6.0
330330

331331
!!! danger "Release 1.6.0 - Open (0%)"
332-
**Due:** January 6, 2026 | **Status:** Open
332+
**Due:** January 6, 2026 | **Status:** Open
333333
TBD
334334

335335
*No issues currently assigned to this release.*
@@ -346,7 +346,7 @@
346346
!!! tip "Contributing"
347347
Want to contribute to any of these features? Check out the individual GitHub issues for more details and discussion!
348348

349-
349+
350350
## Pending Issue Creation
351351

352352
### ⚙️ Lifecycle & Management
@@ -367,4 +367,3 @@
367367

368368
### 🔐 Secrets & Sensitive Data
369369
8. **Secure Secrets Management & Masking** - External secrets store integration (Vault)
370-

mcpgateway/static/admin.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,17 +1018,17 @@ async function viewGateway(gatewayId) {
10181018
<p class="flex items-center">
10191019
<div class="relative group inline-block">
10201020
<strong class="mr-2">Status:</strong>
1021-
1022-
<span class="px-2 inline-flex items-center text-xs leading-5 font-semibold rounded-full
1021+
1022+
<span class="px-2 inline-flex items-center text-xs leading-5 font-semibold rounded-full
10231023
${gateway.enabled ? (gateway.reachable ? "bg-green-100 text-green-800" : "bg-yellow-100 text-yellow-800") : "bg-red-100 text-red-800"}">
10241024
${gateway.enabled ? (gateway.reachable ? "Active" : "Offline") : "Inactive"}
1025-
${gateway.enabled ? (gateway.reachable ?
1025+
${gateway.enabled ? (gateway.reachable ?
10261026
`<svg class="ml-1 h-4 w-4 text-green-600" fill="currentColor" viewBox="0 0 20 20">
10271027
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm-1-4.586l5.293-5.293-1.414-1.414L9 11.586 7.121 9.707 5.707 11.121 9 14.414z" clip-rule="evenodd" />
1028-
</svg>` :
1028+
</svg>` :
10291029
`<svg class="ml-1 h-4 w-4 text-yellow-600" fill="currentColor" viewBox="0 0 20 20">
10301030
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm-1-10h2v4h-2V8zm0 6h2v2h-2v-2z" clip-rule="evenodd" />
1031-
</svg>`) :
1031+
</svg>`) :
10321032
`<svg class="ml-1 h-4 w-4 text-red-600" fill="currentColor" viewBox="0 0 20 20">
10331033
<path fill-rule="evenodd" d="M6.293 6.293a1 1 0 011.414 0L10 8.586l2.293-2.293a1 1 0 111.414 1.414L11.414 10l2.293 2.293a1 1 0 11-1.414 1.414L10 11.414l-2.293 2.293a1 1 0 11-1.414-1.414L8.586 10 6.293 7.707a1 1 0 010-1.414z" clip-rule="evenodd" />
10341034
</svg>`

tests/unit/mcpgateway/cache/test_resource_cache.py

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,41 @@
77
88
Unit tests for ResourceCache.
99
"""
10+
# Standard
1011
import asyncio
1112
import time
13+
14+
# Third-Party
1215
import pytest
1316

17+
# First-Party
1418
from mcpgateway.cache.resource_cache import ResourceCache
1519

20+
1621
@pytest.fixture
1722
def cache():
1823
"""Fixture for a ResourceCache with small TTL and size for testing."""
1924
return ResourceCache(max_size=3, ttl=1)
2025

26+
2127
def test_set_and_get(cache):
2228
"""Test setting and getting a cache value."""
2329
cache.set("foo", "bar")
2430
assert cache.get("foo") == "bar"
2531

32+
2633
def test_get_missing(cache):
2734
"""Test getting a missing key returns None."""
2835
assert cache.get("missing") is None
2936

37+
3038
def test_expiration(cache):
3139
"""Test that cache entry expires after TTL."""
3240
cache.set("foo", "bar")
3341
time.sleep(1.1)
3442
assert cache.get("foo") is None
3543

44+
3645
def test_lru_eviction(cache):
3746
"""Test LRU eviction when max_size is reached."""
3847
cache.set("a", 1)
@@ -47,12 +56,14 @@ def test_lru_eviction(cache):
4756
assert cache.get("c") == 3
4857
assert cache.get("d") == 4
4958

59+
5060
def test_delete(cache):
5161
"""Test deleting a cache entry."""
5262
cache.set("foo", "bar")
5363
cache.delete("foo")
5464
assert cache.get("foo") is None
5565

66+
5667
def test_clear(cache):
5768
"""Test clearing the cache."""
5869
cache.set("foo", "bar")
@@ -61,6 +72,7 @@ def test_clear(cache):
6172
assert cache.get("foo") is None
6273
assert cache.get("baz") is None
6374

75+
6476
@pytest.mark.asyncio
6577
async def test_initialize_and_shutdown_logs(monkeypatch):
6678
"""Test initialize and shutdown log and cleanup."""
@@ -71,6 +83,7 @@ async def test_initialize_and_shutdown_logs(monkeypatch):
7183
await cache.shutdown()
7284
assert cache.get("foo") is None
7385

86+
7487
@pytest.mark.asyncio
7588
async def test_cleanup_loop_removes_expired(monkeypatch):
7689
"""Test that the cleanup loop removes expired entries."""
@@ -85,7 +98,13 @@ async def test_cleanup_loop_removes_expired(monkeypatch):
8598
del cache._cache[key]
8699
assert cache.get("foo") is None
87100

101+
88102
class DummyLogger:
89-
def info(self, msg): pass
90-
def debug(self, msg): pass
91-
def error(self, msg): pass
103+
def info(self, msg):
104+
pass
105+
106+
def debug(self, msg):
107+
pass
108+
109+
def error(self, msg):
110+
pass

tests/unit/mcpgateway/services/test_tool_service.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@
1111
# Standard
1212
import asyncio
1313
from contextlib import asynccontextmanager
14-
from datetime import datetime, timezone
1514
import logging
16-
import re
1715
from unittest.mock import ANY, AsyncMock, call, MagicMock, Mock, patch
1816

1917
# Third-Party

0 commit comments

Comments
 (0)