Block a user
Visual refresh: cohesive TUI/charm aesthetic (sketch-first)
SPA-like reader: summaries + Q&A integrated in the main view (HTMX inline-expand)
Observability: slog + Prometheus metrics (AI-focused) via middleware
Make repo the canonical arg name (demote name to alias) — advertised schema is non-idiomatic
Validate required owner/name at tool layer — empty repo arg leaks a bare 404
Per-repo MCP tools 404 — routing falls back to /api/swagger instead of /api/v1/repos/{owner}/{repo}
Root cause — parameter-name contract mismatch, not a routing fault
Not a route resolver / base-URL bug. MCP dispatch was correct the whole time.
Every per-repo tool declares the repo…
Per-repo MCP tools 404 — routing falls back to /api/swagger instead of /api/v1/repos/{owner}/{repo}
Per-repo MCP tools 404 — routing falls back to /api/swagger instead of /api/v1/repos/{owner}/{repo}
chore: add brain tunnel between gitea-mcp/failures and hyperguild/decisions notes