- embed posts in a bounded worker pool while preserving index order,
with per-post error context and transient (429/5xx) retry backoff
- SummarizeStyle errors when the stream ends before a done chunk or the
model truncates at its context limit (done_reason length) instead of
returning a partial summary for a payable tool
- New() drops the unused ctx param and names its model params; callers
in main.go updated
- Add Server.Shutdown() method delegating to X402Server
- Wire main-server graceful shutdown with 15s bounded timeout
- Derive long-lived clients (bluesky, ollama) from backgroundCtx instead of
signal context to prevent poisoned sessions on SIGTERM during startup
- Remove empty errgroup goroutine that only logged on cancellation
- Bind readyz sidecar to configurable READYZ_ADDRESS (default 127.0.0.1)
instead of 0.0.0.0
- Validate port strings (ReadyzPort, MetricsPort, ListenPort) at config load
- Fix ready-check Ollama probe: use defer for body drain, guard nil resp
- internal/x402/x402.go: Added 120s timeout to nethttp.Config for payment middleware
(was defaulting to 30s, which was too short for Ollama embeddings)
- cmd/server/main.go: Created custom HTTP client with 120s timeout for Ollama client
- Both changes ensure slow tools (getStyleProfile, findSimilarUsers) complete without timeout
- PayAI facilitator supports both exact and upto schemes on Base Sepolia
- Workflow and start-test-server.sh: X402_FACILITATOR_URL -> https://facilitator.payai.network
- check-facilitator: handles payai.network as no-auth facilitator like Mogami
- Workflow: X402_FACILITATOR_URL -> https://v2.facilitator.mogami.tech/
- start-test-server.sh: same facilitator URL
- check-facilitator: auto-detects facilitator type, skips auth for Mogami
- This unblocks CI testing while CDP facilitator auth is investigated
- New cmd/check-facilitator/main.go uses internal/server auth package (same logic as server)
- CI workflow builds and runs binary instead of inline script
- Ensures auth logic matches server exactly, eliminates drift
- Prints supported networks/kinds from facilitator /supported endpoint
- x402: wrap payment middleware to log verify failures (decoded PAYMENT-REQUIRED with scheme/network/asset/amount/payTo per accept) and settlement errors
- x402: add verifyErrorCapture and decodePaymentRequiredHeader for structured error logging
- start-test-server.sh: build binary first (go build -o /tmp/mcpserver), run with output redirected to log file, wait 2s on shutdown for log flush
- workflow: Cleanup uses kill -TERM + sleep 2 to let server flush logs
- main.go: defer log.Close() to flush slog handlers on shutdown
- All tests pass, gofmt/go vet clean
- Add dependency-free in-process schema migrator (internal/store/migrate.go) that applies
sql/schema/*.sql in order, tracking versions in schema_migrations. Gated by MIGRATE_ON_START
and MIGRATIONS_DIR (default sql/schema).
- Fix migration ordering: 002 now creates the 'vector' extension before defining the
user_style_profiles table (previously the extension was only created later in 003).
- Bound concurrent background enrichment with a 4-slot semaphore so bursts of live
getStyleProfile calls cannot overwhelm Ollama.
- buildStyleProfile degrades gracefully when Ollama is down: stores a zero embedding and a
keyword-based fallback summary instead of failing the whole request.
- Add a /readyz side server (READYZ_PORT, default 9090) that checks DB connectivity and
Ollama availability.
Co-Authored-By: Claude (AI assistant) <noreply@anthropic.com>
- Nostr client (fiatjaf.com/nostr) fetching kind:1 notes from relays
- Twitter client using raw Twitter API v2 (no external X library), optional (no token = lazy error)
- getStyleProfile dispatches by platform; a profile is updated only when a request is
made and the cached profile is older than a week (served from cache otherwise)
- shared requestStyleProfile path used by both the tool and the prewarmer
- StartPrewarm discovers interesting authors (from a feed URI or seed list) and
pre-fetches at most one profile per minute; fresh profiles are never re-embedded