sync: v3.2.0 pre-release audit — namespace fix, config types, docs update
Some checks failed
Release / Test before release (push) Has been cancelled
Release / Publish to PyPI (push) Has been cancelled
Release / Publish to Docker Hub (push) Has been cancelled
Release / Create GitHub Release (push) Has been cancelled

- fix(seo): REST API namespace seo-api-bridge/v1 → airano-mcp-seo-bridge/v1
- fix(config): add transport type field (streamableHttp/http) to config snippets
- feat(dashboard): support section for OAuth users, connect page guidance
- docs: hosted option, test count 481, WP plugin link, OAuth env vars, per-user endpoints

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
airano
2026-03-11 04:23:45 +03:30
parent c0d55f9061
commit f6dbbeaab0
12 changed files with 164 additions and 36 deletions

View File

@@ -60,16 +60,18 @@ class TestClaudeFormat:
assert server_name in config["mcpServers"]
server = config["mcpServers"][server_name]
assert server["url"] == EXPECTED_ENDPOINT
assert server["type"] == "streamableHttp"
assert f"Bearer {API_KEY}" in server["headers"]["Authorization"]
@pytest.mark.unit
def test_claude_code_format(self):
"""Claude Code config should use the same mcpServers format."""
"""Claude Code config should use the same mcpServers format with http type."""
snippet = generate_config(BASE_URL, USER_ID, ALIAS, API_KEY, "claude_code")
config = json.loads(snippet)
assert "mcpServers" in config
server_name = f"mcphub-{ALIAS}"
assert server_name in config["mcpServers"]
assert config["mcpServers"][server_name]["type"] == "http"
# ── Cursor / VS Code Format ─────────────────────────────────
@@ -80,7 +82,7 @@ class TestCursorVSCodeFormat:
@pytest.mark.unit
def test_cursor_format(self):
"""Cursor config should be valid JSON with mcp.servers."""
"""Cursor config should be valid JSON with mcp.servers and http type."""
snippet = generate_config(BASE_URL, USER_ID, ALIAS, API_KEY, "cursor")
config = json.loads(snippet)
assert "mcp" in config
@@ -89,15 +91,18 @@ class TestCursorVSCodeFormat:
assert server_name in config["mcp"]["servers"]
server = config["mcp"]["servers"][server_name]
assert server["url"] == EXPECTED_ENDPOINT
assert server["type"] == "http"
assert f"Bearer {API_KEY}" in server["headers"]["Authorization"]
@pytest.mark.unit
def test_vscode_format(self):
"""VS Code config should use the same mcp.servers format as Cursor."""
"""VS Code config should use mcp.servers format with http type."""
snippet = generate_config(BASE_URL, USER_ID, ALIAS, API_KEY, "vscode")
config = json.loads(snippet)
assert "mcp" in config
assert "servers" in config["mcp"]
server_name = f"mcphub-{ALIAS}"
assert config["mcp"]["servers"][server_name]["type"] == "http"
# ── ChatGPT Format ───────────────────────────────────────────