3.11.31
release: v3.11.31 — Live Docs (live API RAG) + dev-admin UX overhaul
The framework is now a live RAG. AI tools (Claude Code, Cursor,
dev-admin chat) hit /__dev/api/docs/* on the running server and get
ground-truth signatures for both framework public API AND the user's
own src/ code via Tina4\Docs reflection. No staleness, no cross-version
drift, no privacy concerns — the running server IS the source of
truth. Auto-discovery via .tina4/mcp.json so MCP-aware tools just find
it. See plan/v3/22-LIVE-API-RAG.md for the full design.
Major surface:
- New \Tina4\Docs class — token-parser reflection over Tina4/* and
the user's src/{orm,routes,app,services,services} dirs. Search,
classSpec, methodSpec, index, drift detection, sync. 16 tests. - HTTP /__dev/api/docs/{search,class,method,index,.well-known.json}
endpoints — thin wrappers around Docs. - MCP tools api_search / api_class / api_method registered alongside
existing docs_* (markdown search) — same names across all 4
frameworks for cross-framework AI-tool compatibility. - .tina4/mcp.json auto-discovery written on first server boot in
debug mode. .gitignore amended automatically.
Dev-admin UX overhaul (cross-framework parity in the same release wave):
- Dev toolbar now injects on 404 / 403 / 500 error pages — error
pages are no longer dead-ends. - Error overlay HTML embeds the toolbar inline, with a one-click
link to the dev-admin SPA. - Dev-admin overlay state persisted to localStorage so saving a file
(which kicks the file watcher → page reload) doesn't dismiss the
user's chat / plan / file tree. Auto-restored on next page paint. - opcache_reset() on server boot in debug mode + opcache_invalidate()
per-file on /__dev/api/reload POST. Fixes the symptom where
patched method calls report "Call to undefined method ::template()"
long after the source has been corrected.
Documentation cleanup (CLAUDE.md):
- Phantom methods removed: AI::detectAi/AI::detectAiNames/
AI::installContext/AI::statusReport (replaced with the real
isInstalled/showMenu/installSelected/installAll/generateContext
surface), Api::addCustomHeaders → addHeaders,
Api::setUsernamePassword → setBasicAuth,
Migration::doMigration → migrate. - \Tina4\Debug::message rewritten to Log::debug/info/warning/error
(the real class name).
PHPUnit: 2410 / 2410 still green. New: DocsTest (16 examples).
4 PHP-deprecation warnings remaining (down from 7) — all in test
files (setAccessible), out of scope for framework releases.