This release covers all changes since v1.1.9 — a large update with new features, major improvements, and several important bug fixes.
---

New Features
• AI Connect Info Page (/ai-connect/) — A public page on your forum showing the manifest URL, OAuth authorize URL, and step-by-step instructions for connecting AI agents. Visitors see a clean landing page; logged-in users get a ready-to-paste prompt.
• Token Generator (/ai-connect/generate-token) — Logged-in forum members can generate a Bearer token in one click via the info page, no OAuth flow required. Useful for personal API access.
• Translation Provider Admin Setting — Choose between AI Self-Translate (default, no external API), MyMemory API (~5,000 chars/day free tier), or Disabled. Configurable under Admin CP → Options → AI Connect.
• Footer Icon & Navigation Entry — AI Connect icon appears in the forum footer (next to RSS) and optionally in the top navigation bar. Both default to on; configurable in Admin CP.
• ?token= Query Parameter Auth — AI agents that can't set HTTP headers (e.g. web-based agents using URL fetching) can now authenticate via ?token=YOUR_TOKEN in the URL. Authorization: Bearer header takes priority when present.
• Claude Desktop / webmcp-client Setup — Built-in instructions in the info page and README for connecting via the webmcp-client npm package.
---

Improvements
• Universal Tool Schemas (v1.2.0) — Date filters now accept natural language ("today", "yesterday", "1week", "1month"), dynamic durations ("3d", "6h", "2w"), ISO dates ("2026-03-15"), or "all" for full history. Tools also now accept username and user_id filters, and translation uses standard ISO language codes.
• until= Date Filter (v1.2.2) — Closed time windows: combine since= and until= to search within a specific date range (e.g. since=1week&until=yesterday).
• Fuzzy client_id Matching — Supports common AI client variants: gemini_client, claude_ai, chatgpt_client, openai, google, etc. All resolve to the correct registered client automatically.
• Registered Clients in Manifest — The manifest now exposes the list of registered client IDs, so AI agents can discover the correct client_id to use without guessing.
• Improved AI Agent Prompts — The info page and generated token prompts include better documentation: tool examples, date filter syntax, username search, MCP connection instructions.
---

Bug Fixes
• [Critical] Rate Limiter — isRateLimited() was returning a truthy array instead of a boolean, causing every request to return HTTP 429 Too Many Requests. All API calls were being blocked regardless of actual usage.
• [Critical] tools_endpoint URL — The manifest was pointing tool calls to the wrong controller (/api/ai-connect/v1/tools/ instead of /api/aiconnect-tools). All tool executions were silently failing with 404.
• [Critical] ?token= Auth Placement — Token query param was being checked before the auth middleware could handle it. Fixed by moving the check to the correct layer (BearerAuth).
• Fix: Duplicate Port — Info page URLs were doubling the port number when running on non-standard ports (HTTP_HOST already includes the port).
• Fix: Base URL — Info page was using the boardUrl admin option (often set to "localhost") instead of the actual request host/scheme.
• Fix: Navigation Template Variable — The conditional nav display was using $xf->options->... which caused PHP warnings; corrected to the proper template variable format.
• Fix: client_id variant aliases pre-registered on fresh install — Common variants (gemini_client, claude, claude_client, chatgpt_client) are now registered during installation so fuzzy matching works from day one.
---
Full changelog:
https://github.com/chgold/xf-ai-connect/commits/main