Skip to content

Commit f7f0e51

Browse files
committed
docs: validate bug reports against v1.0.0-beta-1 and reorganize
- validate all 10 upstream bug reports against contextforge v1.0.0-beta-1 - rename bug report files with contextforge-xxx prefix for clarity - add 4 new bug reports (007-010) discovered during validation - update contextforge-002 status to partially fixed (empty string still accepted) - update contextforge-006 test to expect 422 (fastapi standard behavior) - add compatibility section to readme noting v1.0.0-beta-1 support - remove redundant documentation files - update all file references in tests and readme
1 parent e28356c commit f7f0e51

26 files changed

+988
-1776
lines changed

CLAUDE.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -249,12 +249,20 @@ Some integration tests are skipped due to confirmed bugs in the upstream Context
249249

250250
| Bug ID | Summary | Skipped Tests |
251251
|--------|---------|---------------|
252-
| CONTEXTFORGE-001 | Toggle endpoints return stale state | 1 test |
253-
| CONTEXTFORGE-002 | API accepts empty template field | 1 test |
252+
| CONTEXTFORGE-001 | Toggle endpoints return stale state | 4 tests |
253+
| CONTEXTFORGE-002 | API accepts empty template string | 1 test |
254254
| CONTEXTFORGE-003 | Toggle returns 400 instead of 404 | 1 test |
255255
| CONTEXTFORGE-004 | Teams endpoints reject valid auth | 12 tests |
256256
| CONTEXTFORGE-005 | Teams slug field ignored | 2 tests |
257-
| CONTEXTFORGE-006 | Teams returns 422 vs 400 | 1 test |
257+
| CONTEXTFORGE-007 | Gateway tags not persisted | 2 tests |
258+
| CONTEXTFORGE-008 | Agent bearer auth requires auth_token | 1 test |
259+
| CONTEXTFORGE-009 | Tag filtering returns empty results | 5 tests |
260+
| CONTEXTFORGE-010 | Team ID filter returns 403 | 1 test |
261+
262+
**Resolved Issues (tests re-enabled):**
263+
| Bug ID | Summary | Resolution |
264+
|--------|---------|------------|
265+
| CONTEXTFORGE-006 | 422 for validation errors | By design (FastAPI standard)
258266

259267
To re-enable a skipped test once the upstream bug is fixed:
260268
1. Verify the bug is fixed in the ContextForge version you're testing against

README.md

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ A Go SDK for the [IBM ContextForge MCP Gateway](https://github.com/IBM/mcp-conte
88
## Table of Contents
99

1010
- [Overview](#overview)
11+
- [Compatibility](#compatibility)
1112
- [Installation](#installation)
1213
- [Quick Start](#quick-start)
1314
- [Usage Guide](#usage-guide)
@@ -72,6 +73,10 @@ The SDK provides full management of A2A agents including creation, configuration
7273

7374
For more information about the A2A protocol, see the [official specification](https://a2a-protocol.org/latest/specification/) and [project website](https://a2aprotocol.ai/).
7475

76+
### Compatibility
77+
78+
This SDK is tested against **ContextForge v1.0.0-BETA-1** (PyPI: `mcpgateway==1.0.0b1`).
79+
7580
## Installation
7681

7782
```bash
@@ -1185,22 +1190,22 @@ This SDK follows the service-oriented architecture pattern established by [googl
11851190
The SDK integration tests have identified six bugs in ContextForge (confirmed in both v0.8.0 and v1.0.0-BETA-1). These bugs are in the upstream API, not the SDK implementation. Affected tests are skipped and will be re-enabled once upstream bugs are fixed.
11861191

11871192
**CONTEXTFORGE-001: Toggle Endpoints Return Stale State**
1188-
The `POST /prompts/{id}/toggle` and `POST /resources/{id}/toggle` endpoints return stale `isActive` state despite correctly updating the database. See [`docs/upstream-bugs/prompt-toggle.md`](docs/upstream-bugs/prompt-toggle.md).
1193+
The `POST /prompts/{id}/toggle` and `POST /resources/{id}/toggle` endpoints return stale `isActive` state despite correctly updating the database. See [`docs/upstream-bugs/contextforge-001-prompt-toggle.md`](docs/upstream-bugs/contextforge-001-prompt-toggle.md).
11891194

11901195
**CONTEXTFORGE-002: Prompts API Accepts Empty Template Field**
1191-
The `POST /prompts` endpoint accepts prompt creation without the `template` field, allowing semantically invalid prompts. See [`docs/upstream-bugs/prompt-validation-missing-template.md`](docs/upstream-bugs/prompt-validation-missing-template.md).
1196+
The `POST /prompts` endpoint accepts prompt creation without the `template` field, allowing semantically invalid prompts. See [`docs/upstream-bugs/contextforge-002-prompt-validation-missing-template.md`](docs/upstream-bugs/contextforge-002-prompt-validation-missing-template.md).
11921197

11931198
**CONTEXTFORGE-003: Prompts Toggle Returns 400 Instead of 404**
1194-
The `POST /prompts/{id}/toggle` endpoint returns HTTP 400 for non-existent prompts instead of 404. See [`docs/upstream-bugs/prompt-toggle-error-code.md`](docs/upstream-bugs/prompt-toggle-error-code.md).
1199+
The `POST /prompts/{id}/toggle` endpoint returns HTTP 400 for non-existent prompts instead of 404. See [`docs/upstream-bugs/contextforge-003-prompt-toggle-error-code.md`](docs/upstream-bugs/contextforge-003-prompt-toggle-error-code.md).
11951200

11961201
**CONTEXTFORGE-004: Teams Individual Resource Endpoints Reject Valid Authentication**
1197-
Individual team endpoints (`GET/PUT/DELETE /teams/{id}/*`) reject valid JWT tokens with 401 Unauthorized, despite list/create working correctly. See [`docs/upstream-bugs/teams-auth-individual-endpoints.md`](docs/upstream-bugs/teams-auth-individual-endpoints.md).
1202+
Individual team endpoints (`GET/PUT/DELETE /teams/{id}/*`) reject valid JWT tokens with 401 Unauthorized, despite list/create working correctly. See [`docs/upstream-bugs/contextforge-004-teams-auth-individual-endpoints.md`](docs/upstream-bugs/contextforge-004-teams-auth-individual-endpoints.md).
11981203

11991204
**CONTEXTFORGE-005: Teams API Ignores User-Provided Slug Field**
1200-
The `POST /teams` endpoint ignores the `slug` field and always auto-generates from team name. See [`docs/upstream-bugs/teams-slug-ignored.md`](docs/upstream-bugs/teams-slug-ignored.md).
1205+
The `POST /teams` endpoint ignores the `slug` field and always auto-generates from team name. See [`docs/upstream-bugs/contextforge-005-teams-slug-ignored.md`](docs/upstream-bugs/contextforge-005-teams-slug-ignored.md).
12011206

12021207
**CONTEXTFORGE-006: Teams API Returns 422 Instead of 400 for Validation Errors**
1203-
The `POST /teams` endpoint returns HTTP 422 (Unprocessable Entity) for validation errors instead of 400 (Bad Request). See [`docs/upstream-bugs/teams-validation-error-code.md`](docs/upstream-bugs/teams-validation-error-code.md).
1208+
The `POST /teams` endpoint returns HTTP 422 (Unprocessable Entity) for validation errors instead of 400 (Bad Request). See [`docs/upstream-bugs/contextforge-006-teams-validation-error-code.md`](docs/upstream-bugs/contextforge-006-teams-validation-error-code.md).
12041209

12051210
All bug reports include root cause analysis, proposed solutions, and workarounds.
12061211

contextforge/resources_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ func TestResourcesService_Delete(t *testing.T) {
312312
}
313313

314314
func TestResourcesService_Toggle(t *testing.T) {
315-
t.Skip("Skipping due to upstream ContextForge API bug - toggle returns stale isActive state. See docs/upstream-bugs/prompt-toggle.md")
315+
t.Skip("Skipping due to upstream ContextForge API bug - toggle returns stale isActive state. See docs/upstream-bugs/contextforge-001-prompt-toggle.md")
316316
client, mux, _, teardown := setup()
317317
defer teardown()
318318

contextforge/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -522,8 +522,8 @@ type Server struct {
522522

523523
// Association fields
524524
AssociatedTools []string `json:"associatedTools,omitempty"`
525-
AssociatedResources []int `json:"associatedResources,omitempty"`
526-
AssociatedPrompts []int `json:"associatedPrompts,omitempty"`
525+
AssociatedResources []string `json:"associatedResources,omitempty"`
526+
AssociatedPrompts []string `json:"associatedPrompts,omitempty"`
527527
AssociatedA2aAgents []string `json:"associatedA2aAgents,omitempty"`
528528

529529
// Organizational fields

0 commit comments

Comments
 (0)