Update User Settings
PUT /api/settings/user
Update user preferences (accepts the full UserSettings model).
Request Body required
Section titled “Request Body required ”User preferences persisted to user_settings.json.
object
Idle threshold (ms) after which the editor commits the buffer to the main .docx via the explicit save path. Per-keystroke autorecover writes cover crash recovery; this is the only timer that touches the canonical file.
Number of recent messages included in LLM context for chat.
Maximum results returned when searching chat threads or messages.
Global default directory for saving documents. Empty = app default (data/documents/).
How often to poll for backend notifications (seconds).
How long to keep notifications before auto-cleanup (hours). Range: 1h-168h (1 week).
Throttle rendering when window loses focus. Requires restart.
Global keyboard shortcut for quick idea capture.
Enable the global quick capture shortcut.
Directory to watch for auto-import. Empty = disabled.
Enable automatic file watching and import.
File extensions to watch for in the watch folder.
Enable verbose logging for the agent communication hub (message routing, authority checks).
ONNX execution provider: auto (detect GPU), gpu (force DirectML), cpu (force CPU).
ONNX execution provider for the NLI model (contradiction detection): auto (detect GPU), gpu (force DirectML), cpu (force CPU). Defaults to CPU — the model is small and GPU threading can crash.
Coref depth for the M4 contradiction engine. ‘on’ resolves pronoun chains so POV / knowledge / presence / dead-character queries fire on prose that uses pronouns instead of names — costs ~0.5-2s per scene on CPU with F-Coref. ‘off’ falls back to name-only linking and skips the FastCoref model entirely. Honors Absolute Rule #5: the speed/accuracy tradeoff is the user’s call, not Claude’s.
Hardware backend for the FastCoref F-Coref model. ‘cpu’ is always supported. ‘cuda’ requires a CUDA-enabled torch build AND an NVIDIA GPU — falls back to CPU automatically when either is missing. DirectML is not supported by FastCoref and is not exposed.
Hard ceiling in seconds for a freeform Lagan chat turn. The route wraps ask_lagan in asyncio.wait_for(timeout) — when the tool loop outruns this, the endpoint raises a 504 instead of leaving the UI hanging. Tune higher for heavier tool loops.
How many key concepts Lagan pulls out of the content when enriching from external sources. Higher = more candidate concepts to seed lookups, but more tokens and API calls per run. The first extracted concept is the actual query seed.
Maximum characters kept from each external enrichment source (Wikipedia summary, API payload, etc.) before merging into the enriched entry. Higher = more detail per source, but more tokens downstream.
Master toggle for the M11 intent classifier. When disabled, the chat input never calls the classifier and the agent pill behaves exactly as it did before M11 (manual selection only).
‘suggest’ (default): show a chip the user can accept. ‘auto’: switch the agent automatically inside a Gmail-style undo window when confidence is above the threshold. Manual agent selection always wins regardless of mode.
Minimum normalized confidence for the chip to appear (suggest mode) or auto-route to fire (auto mode). Below this threshold, no chip renders even if a prediction exists. Range 0.30-0.95; values below 0.50 accept potential out-of-domain noise.
How many top-K alternatives to surface in the chip’s ‘Why this prediction?’ expander.
Auto-route mode only: how long the Gmail-style ‘sending in Xs — Undo’ banner waits before actually sending. 0 disables the delay (message sends instantly with the routed agent).
Chat input idle threshold (ms) after which the classifier fires when the user has not typed a sentence terminator. Lower = more responsive, more CPU; higher = less twitchy. On low-end hardware where embedding inference is 200-400ms per call, increase this to 800-1000ms for a smoother feel.
Master toggle for the per-project content classifier. When disabled, EntryTypePredictor is hidden and the background trainer poller does not run.
Responses
Section titled “ Responses ”Successful Response
object
Validation Error