Skip to content

Commit 3bc4da1

Browse files
mike-parkhillclaude
andcommitted
Address PR review feedback on A2A feature
- Fix AP2 schema fallback URLs in schema-fetcher.ts and schemas.ts to use schema.truvera.io instead of placeholder ap2-protocol.org URLs - Skip TruveraClient.request spy assertion for get_agent_card_details in integration test (tool reads in-memory list, never calls the API) - Add VS Code 1.99+ minimum version note to README (native type:http MCP format requires 1.99+) - Restore Docker support row to wallet-server README status table Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 14c9c8f commit 3bc4da1

5 files changed

Lines changed: 14 additions & 8 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ Restart Claude Desktop after saving.
9696

9797
### VS Code (GitHub Copilot)
9898

99+
> **Requires VS Code 1.99 or later** (released March 2025). The workspace config uses the native `type: "http"` MCP format which is not supported in older versions — tools will silently not appear. If you're on an older version, use the [Claude Desktop manual config](#option-b-manual-config) instead.
100+
99101
The workspace `.vscode/mcp.json` is already configured. Start the server, then:
100102

101103
1. Open Copilot Chat (`Ctrl+Shift+I` / `Cmd+Shift+I`)

apps/truvera-api/src/features/ap2/schema-fetcher.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ export async function initializeAP2Schemas(): Promise<{
8282
}> {
8383
// Placeholder URLs - AP2 has not published JSON-LD schemas yet
8484
// See: https://github.com/google-agentic-commerce/AP2
85-
const cartUrl = process.env.AP2_CART_MANDATE_SCHEMA_URL || "https://ap2-protocol.org/schemas/cart-mandate/v1";
86-
const intentUrl = process.env.AP2_INTENT_MANDATE_SCHEMA_URL || "https://ap2-protocol.org/schemas/intent-mandate/v1";
87-
const paymentUrl = process.env.AP2_PAYMENT_MANDATE_SCHEMA_URL || "https://ap2-protocol.org/schemas/payment-mandate/v1";
85+
const cartUrl = process.env.AP2_CART_MANDATE_SCHEMA_URL || "https://schema.truvera.io/CartMandateHumanPresent-V1-1772663227477.json";
86+
const intentUrl = process.env.AP2_INTENT_MANDATE_SCHEMA_URL || "https://schema.truvera.io/IntentMandateHumanNotPresent-V1-1772663293733.json";
87+
const paymentUrl = process.env.AP2_PAYMENT_MANDATE_SCHEMA_URL || "https://schema.truvera.io/PaymentMandate-V1-1772663322422.json";
8888

8989
console.error("[AP2] Initializing schemas...");
9090
console.error(` - Cart Mandate: ${cartUrl}`);

apps/truvera-api/src/features/ap2/schemas.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ export function getSchemaWithContext(schemaKey: keyof typeof components.schemas)
242242
const schema = components.schemas[schemaKey];
243243

244244
const schemaUrls = {
245-
cart: process.env.AP2_CART_MANDATE_SCHEMA_URL || "https://ap2-protocol.org/schemas/cart-mandate/v1",
246-
intent: process.env.AP2_INTENT_MANDATE_SCHEMA_URL || "https://ap2-protocol.org/schemas/intent-mandate/v1",
247-
payment: process.env.AP2_PAYMENT_MANDATE_SCHEMA_URL || "https://ap2-protocol.org/schemas/payment-mandate/v1",
245+
cart: process.env.AP2_CART_MANDATE_SCHEMA_URL || "https://schema.truvera.io/CartMandateHumanPresent-V1-1772663227477.json",
246+
intent: process.env.AP2_INTENT_MANDATE_SCHEMA_URL || "https://schema.truvera.io/IntentMandateHumanNotPresent-V1-1772663293733.json",
247+
payment: process.env.AP2_PAYMENT_MANDATE_SCHEMA_URL || "https://schema.truvera.io/PaymentMandate-V1-1772663322422.json",
248248
};
249249

250250
return {

apps/truvera-api/tests/integration/tools-integration.test.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,11 @@ describe('integration: every tool handler should call TruveraClient.request', ()
6868
// If the handler returned an error (isError true), it's likely because required fields couldn't be inferred; still count as exercised
6969
if ((result as any).isError) continue;
7070

71-
// Otherwise, ensure TruveraClient.request was called at least once
72-
expect(spy).toHaveBeenCalled();
71+
// get_agent_card_details reads from in-memory tool list only — no API call
72+
const NO_REQUEST_TOOLS = new Set(['get_agent_card_details']);
73+
if (!NO_REQUEST_TOOLS.has(tool.name)) {
74+
expect(spy).toHaveBeenCalled();
75+
}
7376

7477
// Basic sanity: the last call should have method & endpoint
7578
const lastCall = spy.mock.calls[spy.mock.calls.length - 1][0];

apps/wallet-server/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ A Model Context Protocol (MCP) server for interacting with the Truvera Wallet SD
2121
| DIDComm messaging | ✅ Implemented (`fetch_messages`, `send_message`) |
2222
| Agent Card (A2A identity) | ✅ Implemented (`get_agent_card_details`) |
2323
| SQLite persistence | ✅ Implemented (via `WALLET_DB_PATH`) |
24+
| Docker support | ✅ Included (`docker:build` / `docker:run` scripts + Dockerfile) |
2425
| Tests | ⏳ Minimal |
2526
| Production hardening | ⏳ Not yet |
2627

0 commit comments

Comments
 (0)