mcpd error-log view: 'mcpctl errors' #77

Merged
michal merged 1 commits from feat/mcpd-error-log into main 2026-06-16 22:31:56 +00:00
Owner

Adds an in-memory error/fatal ring buffer in mcpd (fed via pino multistream, stdout unchanged), GET /api/v1/logs/errors (RBAC: logs op), and a mcpctl errors command. Lets operators see why mcpd misbehaved (incl. fatal kinds like BACKEND_TOKEN_DEAD) without kubectl. 6 buffer tests; full suite 2223 passing. Needs a deploy to go live (mcpd + CLI).

🤖 Generated with Claude Code

Adds an in-memory error/fatal ring buffer in mcpd (fed via pino multistream, stdout unchanged), `GET /api/v1/logs/errors` (RBAC: logs op), and a `mcpctl errors` command. Lets operators see why mcpd misbehaved (incl. fatal kinds like BACKEND_TOKEN_DEAD) without kubectl. 6 buffer tests; full suite 2223 passing. **Needs a deploy to go live** (mcpd + CLI). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
michal added 1 commit 2026-06-16 22:25:58 +00:00
feat(errors): mcpd error-log ring buffer + 'mcpctl errors'
Some checks failed
CI/CD / lint (pull_request) Successful in 1m1s
CI/CD / typecheck (pull_request) Successful in 1m2s
CI/CD / test (pull_request) Successful in 1m21s
CI/CD / smoke (pull_request) Failing after 1m50s
CI/CD / build (pull_request) Successful in 5m12s
CI/CD / publish (pull_request) Has been skipped
25da5a3a22
Operators can now see recent mcpd error/fatal logs without kubectl:
- mcpd tees level>=error pino records into an in-memory ring buffer
  (src/mcpd/src/services/error-log-buffer.ts; wired via pino.multistream in
  server.ts so stdout logging is unchanged). Captures structured errors incl.
  fatal kinds like BACKEND_TOKEN_DEAD.
- GET /api/v1/logs/errors?limit=N (RBAC: 'logs' operation).
- CLI: 'mcpctl errors [-n N]' renders TIME/LEVEL/DETAIL, most-recent-first.

Buffer unit tests (6); full suite 2223 passing. Needs a deploy to go live.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
michal merged commit 76470f4f8c into main 2026-06-16 22:31:56 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michal/mcpctl#77