Commit graph

25 commits

Author SHA1 Message Date
d49c51c349 feat: single-billing edge path for MCP + open public signup
Some checks failed
test-and-deploy / test (push) Successful in 14s
test-and-deploy / deploy-138 (push) Failing after 15m9s
- Public signup no longer requires a caller bearer (POST /auth/signup)
- create_user remains admin-only (POST /auth/users)
- Optional VERAE_MCP_EDGE_URL bills global stamps via zap.verae.ai
- Clearer public auth errors and instructions for Grok/clients
2026-10-12 14:59:31 -04:00
369f9210bd fix(auth): clear public write errors and Grok client path
Some checks failed
test-and-deploy / test (push) Failing after 12m11s
test-and-deploy / deploy-138 (push) Has been cancelled
Public DEC-654 still requires a caller bearer; anonymous session now
returns that guidance as a tool error instead of silent valid:false.
Error text names JWT and API key, Grok bearer_token_file, and local
stdio. BearerFromRequest also accepts X-Api-Key / X-Verae-Key.
Document Grok stdio vs public URL; add scripts/sync-mcp-bearer.sh.
2026-10-12 14:09:22 -04:00
Cursor Agent
dc39095694
Add an ns1 test-and-deploy workflow for the Go MCP server.
All checks were successful
test-and-deploy / test (push) Successful in 13s
test-and-deploy / deploy-138 (push) Successful in 13s
scripts/deploy-138.sh tests with Go 1.26.9, swaps the live binary, and rolls back if port 8000 stops answering. Port 0 in the embedded NATS listener now picks an ephemeral port so the test can run while 4222 is already taken.
2026-10-11 05:52:17 +00:00
Cursor Agent
deb0e251de
Send global stamps as a verae-meta-git/1 history.
Optional metadata or restamp builds the same commit history as node-red. A call that omits both stays digest-only with restamp false. Local and shared stamps reject metadata.
2026-10-11 05:37:24 +00:00
Grok Bot
ec899f5e11 Public server: anonymous verify/hash_report never rate limited (DEC-660); stamp_batch tool charged per item with the caller's key (DEC-659); 402 balance message passed through (DEC-658) 2026-10-10 15:26:37 -04:00
Grok Bot
e24d466f2b Merge d-write-lockdown (DEC-655): live on mcp.verae.ai since 2026-10-10 13:08 ET (binary built from 10c8634) 2026-10-10 13:37:43 -04:00
George Lambert
10c8634a53 D write-only lockdown (DEC-654): public HTTP server needs the caller's own Verae key/OAuth bearer for stamp (any scope), signup, create_user, session; login refused; no host-login fallback for writes; anonymous verify/hash_report kept, rate limited 30/min per client (burst 15), 600/min overall 2026-10-10 13:06:57 -04:00
f021ee46b4 docs: L5/L7 PASS after laptop VeraeTime login refresh
Refreshed ~/.verae/auth.properties via verae-timestamp login; retested
ApplicationClient global hash_report and transaction_log_test (unique 1).
2026-09-29 12:33:19 -04:00
16609f5259 docs: full Go MCP cutover test report (2026-09-29)
15 cases: 13 pass, 2 fail (laptop VeraeTime auth only). Includes unit,
public MCP, 20x global idempotent stamp, ApplicationClient, tsnats,
site pages, and sibling hostnames.
2026-09-29 12:29:12 -04:00
a2495649ba fix: use stateful MCP sessions for public clients
Stateless mode omitted Mcp-Session-Id and broke initialize→tools/call
flows used by public mcp.verae.ai clients.
2026-09-29 12:19:02 -04:00
00f5d18364 fix: disable localhost Host protection behind Caddy
Public MCP requests arrive with Host mcp.verae.ai while the process binds
127.0.0.1; the go-sdk default rejected those with 403.
2026-09-29 12:18:06 -04:00
16eb5a6009 chore: shadow systemd unit and parity smoke script
Add deploy/verae-mcp-timestamping-go.service (PORT=8001, NATS :4223,
REQUIRE_BEARER=0). Add scripts/parity_smoke.sh for tools/list against
:8000 and :8001. Does not install on ns1.
2026-09-29 12:14:46 -04:00
30b5df6757 docs: cutover checklist and tsnats usage
Add docs/cutover.md (shadow :8001, embedded NATS :4223, REQUIRE_BEARER
host-token default, cutover/rollback; no JetStream for job-complete).
Expand README Usage with env table and pkg/tsnats snippet; add
examples/tsnats-bulk.
2026-09-29 12:14:46 -04:00
e04fe6e2c4 feat: embedded NATS with VeraeTime handlers and stdio MCP
Start in-process nats-server on VERAE_NATS_LISTEN (default 127.0.0.1:4223;
empty disables). Queue-subscribe verae.ts.request|verify|hash.report with
ledger/veraetime routing and authctx.Resolve from authorization/access_token.
Publish verae.ts.completed on core NATS only (no JetStream). Wire embed into
main alongside Streamable HTTP; stdio MCP via go-sdk StdioTransport.
2026-09-29 12:11:47 -04:00
d379931bd1 feat: MCP Streamable HTTP server with full tool set
Wire go-sdk Streamable HTTP at /mcp with stamp, verify, hash_report,
signup, login, session, create_user. Route global/CID to VeraeTime and
local|shared to FileLedger; resolve Authorization bearer via authctx.
Flags/env for transport, host, port, require-bearer, URLs, ledger path.
2026-09-29 12:07:44 -04:00
793746fcd0 feat: FileLedger for local and shared scopes
JSON file ledger with Stamp/Verify/HashReport, idempotent hash+org+scope,
mutex safety, mode 0600 / parent 0700.
2026-09-29 12:01:57 -04:00
348ccd0bf2 feat: VeraeTime client, auth.properties, and host-token keeper
HTTPS GlobalClient (Stamp/Verify/HashReport/Signup/Login/Session/CreateUser)
with Fake RoundTripper tests; auth.properties read/write; Keeper refresh ~60s
before expiry or VERAE_GLOBAL_TOKEN; authctx.Resolve for require-bearer vs host fallback.
2026-09-29 11:57:40 -04:00
0a2d3177c6 feat: pkg/tsnats digests-only NATS timestamp client 2026-09-29 11:52:35 -04:00
6c20d87131 docs: embedded NATS, bearer require flag, host-token keeper
Amend design/plan: in-process NATS calling VeraeTime; MCP bearer
passthrough when present; VERAE_MCP_REQUIRE_BEARER=0 keeps a server
host token when none supplied; =1 requires caller bearer.
2026-09-29 11:49:43 -04:00
e4432fc555 feat: module scaffold and digest normalize/guard
pkg/digest (not internal/) so Task 2 pkg/tsnats can import helpers.
2026-09-29 11:43:22 -04:00
43cc0a60ae chore: ignore worktrees, superpowers, bin 2026-09-29 11:42:03 -04:00
3e16839367 docs: implementation plan for Go MCP server and pkg/tsnats
Eight TDD tasks: digest module, tsnats client, VeraeTime, FileLedger,
MCP HTTP server, NATS bridge/stdio, cutover docs, shadow unit. Spec
already includes AI MCP vs bulk NATS split.
2026-09-29 11:41:55 -04:00
7b5ae5b9aa docs: add pkg/tsnats NATS client to Go MCP design
MCP remains the AI tool surface. Importable pkg/tsnats covers Stamp,
Verify, HashReport over core NATS plus SubscribeCompleted; MCP optional
upstream reuses the same package. No JetStream for job-complete.
2026-09-29 11:40:47 -04:00
b56545044f docs: clarify httptest wording in Go MCP design 2026-09-29 11:33:57 -04:00
baa21b7529 docs: design for Go MCP timestamping server
Sibling to the Python verae-mcp-timestamping-server. Full tool parity,
FileLedger, optional NATS (no JetStream for job-complete), official
go-sdk Streamable HTTP, shadow on :8001 then cutover checklist.
2026-09-29 11:33:50 -04:00