diff --git a/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/TEST-REPORT.md b/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/TEST-REPORT.md index ddf46ef..74d521b 100644 --- a/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/TEST-REPORT.md +++ b/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/TEST-REPORT.md @@ -12,11 +12,11 @@ | Metric | Value | | --- | --- | | Cases run | **15** | -| Passed | **13** | -| Failed | **2** | +| Passed | **15** (after L5/L7 retest) | +| Failed | **0** | | Go MCP live path | **Healthy** (`127.0.0.1:8000`, embedded NATS `127.0.0.1:4229`) | -Both failures are **laptop-side VeraeTime auth** (`~/.verae/auth.properties` token expired / missing), not Go MCP regressions. Equivalent global idempotency was proven through the live Go MCP path (L3, L12). +Initial run had 2 laptop-auth failures (expired `~/.verae/auth.properties`). After `verae-timestamp login` (expires_at → 2026-09-30T07:32:28-09:00), **L5 and L7 retested PASS**. ## Deploy snapshot @@ -43,9 +43,9 @@ Both failures are **laptop-side VeraeTime auth** (`~/.verae/auth.properties` tok | L2 | MCP global stamp (unique digest) | **PASS** | host-token fallback | | L3 | MCP 20× same digest global stamp | **PASS** | unique=1, same=True, ~3.92s, CID `QmXgqQn8…` | | L4 | Python `ApplicationClient` via MCP | **PASS** | local stamp, verify, hash_report | -| L5 | `ApplicationClient` direct VeraeTime | **FAIL** | HTTP 401 — laptop token missing/expired | +| L5 | `ApplicationClient` direct VeraeTime | **PASS** (retest) | After `verae-timestamp login`; hash_report global ≥1 receipt | | L6 | CLI `verae-timestamp hash` | **PASS** | 64-hex digest | -| L7 | `transaction_log_test.py` (laptop → API) | **FAIL** | 20× HTTP 401 token expired; unique 0 / same False | +| L7 | `transaction_log_test.py` (laptop → API) | **PASS** (retest) | unique 1 / same True; `debug-trace/2026-09-29T163256Z-verae-debug-test/` | | L8 | `mcp.veraetime.net` tools/list | **PASS** | same Go process | | L9 | `mcp.georgelambert.org` MCP | **PASS** | after Caddy upstream fix; session OK | | L10 | `pkg/tsnats` → embedded NATS `:4229` | **PASS** | local stamp via SSH tunnel | @@ -79,11 +79,16 @@ Client 47 passed; server 34 passed. Confirms Application Client and Python Globa Local stamp → verify → hash_report through `https://mcp.verae.ai/mcp` succeeded. -### L5 / L7 — Laptop direct VeraeTime (expected fail) +### L5 / L7 — Laptop direct VeraeTime -These call `api.veraetime.net` with the **developer laptop** auth file, which returned **401 Unauthorized: token has expired** (L7) / auth required (L5). They do not exercise the ns1 Go process. +**Initial fail:** expired laptop JWT (`expires_at=2026-09-29T06:20:17-09:00`). -**Coverage substitute:** L3 + L12 prove the same digest idempotency and host-token path via Go MCP. +**Fix:** `uv run verae-timestamp login` → new `expires_at=2026-09-30T07:32:28-09:00`, then `check-auth` OK. + +**Retest:** +- L5: `ApplicationClient.hash_report(DIGEST, want_scope="global")` → receipts ≥ 1 → **PASS** +- L7: `uv run python scripts/transaction_log_test.py` → unique 1, same True → **PASS** + Output: `debug-trace/2026-09-29T163256Z-verae-debug-test/` ### L6 — CLI hash @@ -108,10 +113,10 @@ From ns1 to `127.0.0.1:8000` with `Host: mcp.verae.ai`, 5× global stamp of Vera ## Failures — root cause and remediation -| ID | Root cause | Remediation | -| --- | --- | --- | -| L5 | No valid laptop `~/.verae/auth.properties` / `VERAE_GLOBAL_TOKEN` for direct API | Run `login` / refresh token on the laptop; not a Go cutover blocker | -| L7 | Same expired laptop token (20× 401 in debug-trace JSON) | Refresh token, or run GlobalClient test on ns1 as `verae-mcp`; L3/L12 already cover MCP-mediated idempotency | +| ID | Root cause | Remediation | Status | +| --- | --- | --- | --- | +| L5 | Expired laptop JWT | `verae-timestamp login` then retest | **Fixed** | +| L7 | Same expired laptop JWT (20× 401) | Same login; retest wrote new debug-trace | **Fixed** | ## Artifacts diff --git a/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/results.csv b/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/results.csv index 0122957..c101c27 100644 --- a/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/results.csv +++ b/docs/test-reports/2026-09-29T162528Z-go-mcp-cutover/results.csv @@ -5,11 +5,11 @@ L1|public-mcp-suite|PASS L2|mcp-global-stamp|PASS L3|mcp-20x-global-stamp|PASS L4|python-application-client-mcp|PASS -L5|appclient-direct-veraetime|FAIL| raise _http_error(status, detail, what="hash report") verae_mcp_timestamping_client.veraetime_transport.AuthError: hash report HTTP 401: auth required — call login or set VERAE_GLOBAL_TOKEN / ~/ L6|cli-hash|PASS -L7|transaction_log_test|FAIL|wrote /Users/marchon/research/modelcontextprotocol/verae-mcp-timestamping-server/debug-trace/2026-09-29T162648Z-verae-debug-test/transaction-log-test.html source Verae-Debug-Test digest 469e615923b69c6b7291d8333699b5ad678b88d1afdc8d412c45a6d244fee0ec unique 0 same False L8|mcp-veraetime-net|PASS L10|tsnats-embedded|PASS L11|static-site-pages|PASS L12|ns1-mcp-5x-global-idempotent|PASS L9|mcp-georgelambert-org|PASS|fixed Caddy upstream 10.1.10.128→127.0.0.1 during report run +L5|appclient-direct-veraetime|PASS|retest after verae-timestamp login +L7|transaction_log_test|PASS|retest after login; debug-trace/2026-09-29T163256Z-verae-debug-test