Releases: madsrg/astucia-wiki
Releases · madsrg/astucia-wiki
Release list
v2026.7.35
Fixed
- MCP tool calls to stateful (Streamable HTTP) servers now work — invoking a tool on an MCP server that requires a session (e.g. a Brave Search server) failed with
Bad Request: Server not initialized — code -32000, even though listing its tools worked. The outbound MCP client was stateless: it never sentinitialize, never captured theMcp-Session-Idresponse header, and never carried it on the actual call. The client now performs the full Streamable HTTP handshake (initialize → capture session →notifications/initialized→ the real call with the session header) for both tool listing and tool calls, and the admin "Test Connection" path uses the same logic. Stateless servers are unaffected — they return no session id, so no session header is added and the call proceeds as before; a server that doesn't supportinitializefalls back to a direct call. Fixes chat#mentiontool calls, the MCP Tool Explorer, and advanced-search MCP sources.
v2026.7.34
Added
- Two new interface languages: Simplified Chinese (简体中文) and Hindi (हिन्दी) — selectable from the sidebar language dropdown and My Preferences. Each covers the same ~440 UI strings as the other translated languages, with the remaining admin/help strings falling back to English, matching existing locale behaviour.
v2026.7.33
Fixed
- AI chat focus no longer silently stops working — reopening a chat where an AI User was pre-selected (the "Chatting with {name}" focus chip is shown) could silently post plain messages that never reached the AI, so nothing happened. The chip is drawn from persisted focus state, while the send path re-resolved the name against the live user list and dropped the routing on a miss with no feedback. Two fixes: the user list is no longer cached as empty after a transient load failure (which had permanently broken AI-user lookups until an admin action refreshed it), and an unresolvable focus now surfaces a toast instead of quietly posting an un-routed message. Applies to both team chat and page chat.
v2026.7.32
Added
- AI User system prompt from a Markdown page — an AI User's system prompt can optionally be sourced from an existing Markdown page instead of the inline textarea, so Editors (not just admins) can view and edit the AI's instructions as an ordinary, Git-versioned wiki page. Chosen via a Space → Folder → page picker lightbox (move/copy style); falls back to the inline text when unset, missing, or empty. Applies to agent jobs and team/page chat. Localized across all six languages.
- Sidebar toggle hotkey — press
sto show/hide the sidebar while reading any page (suppressed in the Markdown editor and when typing in a field). The shortcut is shown in the toggle button's tooltip.
Fixed
- Chat hover-action toolbar no longer overlaps the first line of the message — raised it 10px so it clears the text.
Added
- View Agent Job run logs in the admin panel — the job edit form now has a "Run logs" section: a dropdown of recent runs (timestamp + size) and a log viewer, so per-run output is readable in the browser instead of only on disk. Backed by a new
admin_get_agent_job_logsaction that lists/reads files underLOG_DIR/agent-jobs/<job>/(path-constrained to the job's own directory; large logs tailed to the last 200 KB).
v2026.7.31
Added
- View Agent Job run logs in the admin panel — the job edit form now has a "Run logs" section: a dropdown of recent runs (timestamp + size) and a log viewer, so per-run output is readable in the browser instead of only on disk. Backed by a new
admin_get_agent_job_logsaction that lists/reads files underLOG_DIR/agent-jobs/<job>/(path-constrained to the job's own directory; large logs tailed to the last 200 KB).
v2026.7.30
Changed
- Agent Job "Run now" runs detached instead of blocking the browser — the run used to execute synchronously inside the admin request, so any job longer than the reverse proxy's timeout (typically 60s) returned a 504 in the UI and held the session lock. It now answers immediately, runs server-side (
fastcgi_finish_request+ignore_user_abort+ no time limit, session lock released), and the admin panel polls a newadmin_agent_job_statusendpoint for the result. The job survives closing the admin panel and no longer blocks editing or chatting; the poll caps at 15 minutes and a crash still records an error status.
Added
- Copy button for AI User service tokens — a "Copy" button next to "Regenerate" copies the service token to the clipboard. Localized across all six languages.
v2026.7.29
Added
- Text-selection actions on read-mode Markdown pages — selecting text in a rendered page now shows a floating toolbar with six actions: Quote in chat (insert the selection as a Markdown blockquote into the page chat, creating the chat if needed), Ask AI (prefill the composer with the quote + an AI @mention, ready for your question), Copy, Search wiki (run a full-text search for the selection), New page (create a page titled from the selection), and Explain (an ephemeral AI tooltip that explains/defines the selection in 2–4 sentences). Backed by a new synchronous
ai_explainendpoint. Localized across all six languages.
Fixed
- Text-emitted tool calls no longer leak into chat — when a model (e.g. Qwen via vLLM) returns a tool call as plain text instead of the structured
tool_callsfield, the agentic loop now detects a tool-call-shaped JSON (bare,```json-fenced, or Hermes<tool_call>-wrapped) whose name matches an advertised tool, executes it, and continues — instead of posting the raw JSON as the reply. Guarded so normal replies are never intercepted. - Chat message hover no longer shifts the layout — the per-message action buttons (reply, save, pin, react) moved out of the in-flow reaction bar into a floated overlay toolbar, so revealing them on hover adds no jump and no reserved space.
Changed
- The admin panel closes only via its "×" button — a stray click on the backdrop no longer dismisses it, protecting unsaved edits in its forms.
v2026.7.28
Added
- "New Topic" checkbox in the chat composer — a checkbox stacked above the emoji button (in both team chat and the page-chat panel) that starts a new topic for the next message, so you don't have to remember to type
/newTopic. It's consumed (unchecked) on send, andAlt+Ctoggles it while the chat input is focused. Localized across all six languages. - Raw AI error diagnostics — a new
AI_DEBUG_RAW_ERRORSconfig flag (default off) that appends the HTTP status and a truncated raw response body to technical errors from the model endpoint, making it possible to see what a reverse proxy actually returned (e.g. an nginx 502/504/413 HTML page) instead of an opaque "unreadable response".
Changed
- Starting a new topic keeps the current AI focus —
/newTopic(and the new checkbox) still reset the AI's message context, but no longer drop you out of the focused conversation, so plain follow-up messages keep going to the same AI user. - AI model requests now advertise gzip/deflate (
CURLOPT_ENCODING) and always surface the HTTP status in connection errors, matching the MCP client and improving diagnosability of self-hosted endpoints behind a proxy.
v2026.7.27
Fixed
- AI users no longer fail with "Stopped after too many tool calls without producing a response" — when a model kept calling tools right up to the agentic-loop cap without ever writing a final reply, the request errored out. The final iteration now forbids tools (
tool_choice: none) across all provider families, so the model is forced to produce a text answer instead of erroring. The per-request iteration caps were also raised (agent jobs 10→12, team/page chat 8→10) to give complex tasks more room.
v2026.7.26
Added
- Custom request headers for AI Users and MCP Servers — both admin forms now have an "Extra request headers" editor (an editable list of name/value pairs) sent on every outbound request, on top of the provider/server auth. This covers gateways in front of a self-hosted model or MCP server, e.g. a Cloudflare Access tunnel needing
CF-Access-Client-IdandCF-Access-Client-Secret. Headers are merged into every request site (agent jobs, team/page chat, saved searches, and the Test Connection buttons) across all provider families; CR/LF are stripped on save to prevent header injection.