feat: v2.7.0 — teams, cloud tokens, docs search, version caching#129
feat: v2.7.0 — teams, cloud tokens, docs search, version caching#129
Conversation
Three new tools bringing the total to 38: - `teams` — list, get, get_members, get_current, get_current_members - `cloud_tokens` — Hetzner/DigitalOcean CRUD + validate - `search_docs` — full-text search across Coolify docs (BM25 via MiniSearch) Plus version caching on first API call to reduce redundant requests. search_docs fetches coolify.io/docs/llms-full.txt on first call (943ms), indexes 1500+ chunks, then serves subsequent searches in ~1ms. Returns ~849 tokens for 5 results — context stays lean.
PR Review: v2.7.0 — teams, cloud tokens, docs search, version cachingSummaryA solid PR that adds 3 new tools (35 → 38), introduces a useful documentation search feature, and adds version caching. The implementation follows established patterns and includes comprehensive tests. ✅ What Looks GoodCode Quality:
Performance:
Testing:
Documentation:
🔍 Minor Observations (Non-blocking)
🛡️ Security
📊 Test CoverageThe PR adds 17 new tests with good coverage of:
VerdictLooks good to merge! 🚀 The implementation is clean, follows existing patterns, and adds genuinely useful functionality. The 🤖 Review by Claude Code |
Summary
Three new tools (35 → 38) plus version caching.
teams— list, get, get_members, get_current, get_current_members. Wraps existing client methods.cloud_tokens— Hetzner/DigitalOcean: list, get, create, update, delete, validate. Wraps existing client methods.search_docs— Full-text search across Coolify documentation. Fetchescoolify.io/docs/llms-full.txton first call (943ms), indexes 1,545 chunks via MiniSearch (BM25), serves subsequent searches in ~1ms. Returns ~849 tokens for 5 results.getVersion()caches result after first call,getCachedVersion()getter for diagnostics.New dependency
minisearch— 826KB, zero transitive deps, BM25 full-text search. The LLM handles semantic understanding; we just need good ranking.Context budget
search_docsreturns 5 results at ~849 tokens total. Each result: title, URL, description, 300-char snippet, score. No full pages dumped into context.Test plan