Removed the 120-char snippet preview from the _sendToChat() reference. The injected text is now clean: [Title](#document-<id>). Also captured Deep Research 'Send to Chat' reference injection feature to task board.
5.9 KiB
Ulysses Improvement Tasks
Last updated: 2026-07-07
Priority: HIGH
-
AUTO_START_LOCAL: persist & auto-restore last running model on restart
NewAUTO_START_LOCALenv var (bool, default false). On graceful shutdown/restart, persist the currently running model + all launch parameters (engine, quantization, context length, GPU layers, etc.) to a file in/app/data/. On startup, if the file exists and AUTO_START_LOCAL is true, automate the full launch pipeline: resolve the saved preset, spin up the engine, and register the endpoint — skipping the manual cookbook → Launch → pick model → verify params → launch → wait → refresh cycle the user currently endures on every restart. -
Floating windows overflow viewport after zoom/font changes — unreachable controls
:root.ui-scale-125 { zoom: 1.25 }renders all content 25% larger, butwindow.innerHeightdoesn't change withzoom(CSS rendering only, not DOM). ThewindowResize.jssaved-size restore at line 224 clamps towindow.innerHeight, which after zoom makes windows 1.25× the visible viewport — pushing headers, close buttons, and top resize handles off-screen. The user literally can't close or move them. Fix: (a) divide restored height by zoom factor in the restore path; (b) add a general safety net — any.modal-contenton open should clamp tocalc(100dvh / var(--ui-zoom, 1) - 40px). AlsowindowResize.jsline 134if (top + height > vh)needs zoom-awarevh. Current zoom compensation rules (line 181-196) only cover.modal-content,.cal-modal-content,.settings-modal-content,#theme-popup,#cookbook-modal, and.pdf-export-overlay— many windows lack the divisor. -
Fix manage_documents tool schema — missing "read" action
Themanage_documentsfunction-calling schema intool_schemas.pyhad"enum": ["list", "delete", "tidy"]but the handler indocument_tools.pysupports"read", "view", "open", "get". The model couldn't read documents through function calling. Fixed: added read/view/open/get to enum, addeddocument_id/offset/limitparams with read-specific descriptions, updated description with "DOCUMENT PANEL (not disk)" prefix. Also added disambiguation prefix tocreate_documentandedit_documentschemas. -
Add "Send to Chat" button to document editor
Button left of the Save button in#doc-actions-footer. Sends a document reference (title + doc_id + snippet) to the active chat, similar to how Cursor injects file references. Must NOT paste full content — just a reference the agent can resolve. Done: "Chat" button injects[Title](#document-<id>) — <120-char snippet>into the #message textarea.
Priority: MEDIUM
-
Bolster Library/Documents CRUD via MCP or native tools
Current document tools are solid but disjointed from agent-mode workflow. The agent has filesystem access (read_file,write_file,edit_file,glob,ls,grep,bash) but these tools operate on disk files, not Ulysses library documents. Need to bridge the gap: the agent should be able to list, read, grep, and edit library documents as naturally as files. Consider:- A unified
read_documenttool distinct frommanage_documents(which is an admin-style multi-action tool) - A
grep_documentsorsearch_documentstool for semantic/fulltext search - Auto-inject active document content into agent context when relevant
- A unified
-
Deep Research: "Send to Chat" reference injection (not just new-chat Discuss)
The only way to link research to chat is the "Discuss" button, which creates a brand-new session via/api/research/spinoff. Need a second button to inject a research reference ([Title](#research-<id>)) into the currently active chat's message input, matching the document "Chat" button pattern. Applies to: research panel sidebar (panel.js:1012), research library cards (documentLibrary.js:2767), and the inline result message (chatRenderer.js:1070). -
First-party document support in agent mode
Documents feel "disjointed from the agent." The agent creates documents fine but can't easily discover or reference existing ones contextually. Ideas:- "Agent workspace" awareness — automatically surface relevant documents based on chat context
- Document references in chat that are clickable and auto-expand
- The "Send to Chat" button (HIGH priority) is step 1; step 2 is making the agent proactively aware of library contents
-
Improve
create_documentschema description
Current description is verbose and overlaps withedit_file/write_filedisambiguation. Models sometimes usecreate_documentfor disk files. Fixed: added "DOCUMENT PANEL (not disk)" prefix, explicit "For files on disk use write_file" at end. Also applied toedit_document.
Priority: LOW
-
Cookbook sliders: active highlight misaligned with zoom
The rounded highlight on CPU/GPU/RAM etc. toggle sliders doesn't scale withui-scale-125. The active indicator (e.g. "GPU") is partially outside the highlight pill. Low priority — cosmetic, obvious which option is selected. -
Document library: batch operations
Multi-select, bulk delete, bulk export. Currently only single-document operations. -
Document version diff view
The version history panel shows versions but doesn't offer a side-by-side diff view between versions. -
Auto-language detection on document open
The editor auto-detects language on typing but not on initial document open from the library. Opening a Python file saved as "markdown" should suggest the language switch.
Completed
- 2026-07-08: Edit message textarea now fills full message width
.msg-user { width: fit-content }collapsed container when body swapped for textarea. CSS:.msg-user.editing { width: 85% !important }. JS:editUserMessage()adds/removeseditingclass. (commitf0031ea)