75 Commits

Author SHA1 Message Date
zoeissleeping 3f81f96bda feat: expand model icons, guard uploads, and handle seach env better 2026-09-10 04:25:37 -05:00
zoeissleeping 4b99921023 feat(markdown): Migrate to comark for markdown rendering 2026-08-11 03:18:28 -05:00
zoeissleeping c9e48687ef fix: Dramatically better auto scroll 2026-08-04 02:38:36 -05:00
zoeissleeping a836082de8 feat: per-agent tools toggle and better python scratchpad
Add ToolSelector for enabling sandboxed python per agent, drop unsafe
filesystem/bash tools, bundle fetchUrl with web search, and return
Monty's last expression value so agents need not print.
2026-07-29 14:18:37 -05:00
zoeissleeping 5aebd30808 fix: copy tool calls, generations, and timestamps when forking topics
Forked topics dropped toolCall/generation relations and rewrote part
lastUpdatedAt, which broke tool rendering, token stats, and reasoning durations.
2026-07-27 17:37:40 -05:00
zoeissleeping 166052012d fix: preserve nested hard-break content and use timestamptz
remarkSplitBlocks was splicing after-break paragraphs onto the root
tree, which dropped content inside list items and other nested parents.
Insert the split sibling into the actual parent instead.

Also store timestamps as timestamptz so Drizzle no longer treats naive
timestamp values as UTC and shifts displayed times by the server offset.
2026-07-19 14:03:14 -05:00
zoeissleeping 28ef0c8a07 feat: add export to topics dropdown 2026-07-16 14:29:07 -05:00
zoeissleeping 886f385835 feat: add timestamp and forking 2026-07-15 15:49:38 -05:00
zoeissleeping 8ccaa824dd feat: file upload retry, secure file tokens, UI polish
- Add HMAC-based file token auth for secure AI model file access
- Add file upload retry with exponential backoff (max 3 retries)
- File endpoint now requires session auth or signed token
- Support assistant role messages in chat input
- Optimistic UI for attachments on message send
- Verify topic ownership before allowing messages
- Switch web scraping to Firecrawl API
- Agent profile page layout fixes (proper flex overflow)
- Add quick switcher (Ctrl+K) to sidenav
- Clean up longcat.ts and stale comments
2026-06-06 00:16:39 -05:00
zoeissleeping 47009b1f0a refactor: un-hardcode file urls 2026-05-12 10:28:33 -05:00
zoeissleeping 9550d44220 merge: drizzle rewrite into main
Complete migration from Triplit to PostgreSQL + Drizzle ORM with all subsequent feature work and fixes.
2026-05-11 17:44:22 -05:00
zoeissleeping 57e7a92cd1 fix: UI polish and provider fixes
- Add animate-pulse CSS animation for loading states
- Add Ctrl+I/Ctrl+B markdown shortcuts in chat input
- Improve chat input resize with mirror element
- Add reasoning duration display and shimmer effect
- Add confirmation dialog for deleting all models
- Simplify RowVirtualizerDynamic resize handling
- Fix DialogType imports (type -> value)
- Fix ollama cloud model name resolution
- Make vllm auth header optional
- Various icon and styling fixes
2026-05-11 17:44:00 -05:00
zoeissleeping 6ee5b2cbbe feat: add LongCat 2.0 Preview model 2026-05-11 17:43:43 -05:00
zoeissleeping a16da3ee94 chore: update docker compose and env config for drizzle
- Replace Triplit env vars with PostgreSQL, auth, and S3 config
- Add app service to docker-compose with healthcheck dependency
- Bind ports to localhost only for security
- Add required POSTGRES_PASSWORD validation
2026-05-11 17:43:35 -05:00
zoeissleeping 30a425744d feat: add startup migration script and improve Docker setup
- Add scripts/start.ts to run drizzle migrations before server start
- Update Dockerfile to copy migration files and install prod deps
- Change entrypoint to use migration-aware startup script
- Add deployment documentation
2026-05-11 17:43:13 -05:00
zoeissleeping a1aeed51e2 feat: add huggingface provider and new model logos
- Add HuggingFace as AI provider with model fetching
- Add Poolside, Tencent, and HuggingFace logo components
- Update model mappings for new providers
- Add @ai-sdk/huggingface dependency
- Bump longcat-ai-sdk-provider to 0.0.5
2026-05-11 17:43:02 -05:00
zoeissleeping a0f2e89154 feat: add resources page with file management
- Add /resources page with file listing, filtering, and bulk operations
- Add useResources composable for file state management
- Add sidenav header and nav components for resources section
- Add files list API endpoint (GET /api/files)
- Track file size during upload
- Add resources link to home navigation
2026-05-11 17:42:28 -05:00
zoeissleeping 103dedd9cc refactor: replace focusedIndex with activeChildId
- Replace focusedIndex integer with activeChildId string in messages schema
- Add migration to convert existing data and drop focused_index column
- Add  hooks for providers.updatedAt and messageParts.lastUpdatedAt
- Add file size column to files table
- Update message navigation to use child ID-based lookup
- Simplify delete logic by removing focusedIndex math
- Fix file delete endpoint filename ([id[ -> [id])
2026-05-11 17:41:57 -05:00
zoeissleeping 7a944afdb5 style: UI polish and miscellaneous fixes
Fixes link color from hardcoded white to currentColor for proper theme
support. Adds video and audio modality icons to ModelInfo. Registers
anthropic, nvidia, and xiaomi in the provider icon map. Removes unused
pagination validation from agents and topics endpoints. Adds convenience
start script. Updates AGENTS.md.
2026-04-27 12:07:01 -05:00
zoeissleeping 03a0c3587b fix: improve chat flow and cleanup
Awaits sendMessage before navigating to prevent race conditions. Passes
agentId to startGeneration for correct agent resolution. Adds topic
deletion via Ctrl+Alt+Backspace shortcut. Adds date/time prefix to user
messages in LLM context. Fixes reasoning-container typo.
2026-04-27 12:06:46 -05:00
zoeissleeping 9bd4b36094 feat: enhance markdown rendering
Adds remark-breaks for newline-to-br conversion and a custom
remarkSplitBlocks plugin to split paragraphs at hard breaks. Code blocks
over 15KB are truncated with a 'Show all' toggle for better
performance.
2026-04-27 12:06:30 -05:00
zoeissleeping 61c73f394d feat: improve mobile responsiveness across UI
Sidenav becomes a full-screen overlay on mobile with slide-in animation.
Dialog goes full-screen on small screens. Settings dialog gets a mobile
nav with hamburger menu. Touch targets and text sizes scaled up for
mobile. Slider gets visual checked/unchecked colors. Sidebar auto-closes
on mobile route navigation. Resize handle hidden on mobile.
2026-04-27 12:06:15 -05:00
zoeissleeping 8c2cefea49 feat: add image viewer with zoom and pan
Full-featured image viewer with pinch-zoom, scroll-zoom, drag-pan,
double-click reset, and keyboard shortcuts. Animated open/close
transitions match the origin element position. Integrates into
attachment display with click-to-open behavior.
2026-04-27 12:05:58 -05:00
zoeissleeping 9914c043cb feat: add web search tool with reranking support
Integrates SearXNG web search as a tool available during chat when the
agent has search enabled. Supports optional reranking of results via a
configurable reranking model. Replaces Python subprocess evaluation with
@pydantic/monty WASM runtime. Introduces stable tool call ID mapping to
avoid exposing provider-native IDs to the database.
2026-04-27 12:05:47 -05:00
zoeissleeping 90d5698e76 feat: add agent search config and system assistant defaults
Adds a config jsonb column to agents for per-agent search settings
(enabled, rerank, maxResults). Types systemAssistants with rename and
rerank sub-objects. Backfills missing systemAssistants keys on settings
fetch. Includes generated drizzle migrations.
2026-04-27 12:05:27 -05:00
zoeissleeping 1ed2bd8b16 chore: fix drizzle migration output path
Moves migration output directory from ./migrations to ./drizzle/migrations
to keep all drizzle artifacts colocated.
2026-04-27 12:05:08 -05:00
zoeissleeping 1d40812f2a refactor: extract provider logic into modular registry
Each AI provider now has its own module implementing a ProviderModule
interface with createGateway, getAuthHeaders, and fetchModels methods.
This replaces the monolithic switch statements in ai-provider.ts and
models.post.ts with a clean registry pattern.
2026-04-27 12:04:49 -05:00
zoeissleeping 6ca4de4cab chore: update dependencies 2026-04-27 12:04:32 -05:00
zoeissleeping e2e3ac6e86 feat: ditch triplit, move to postgresql + drizzle orm 2026-04-08 17:03:07 -05:00
zoeissleeping c341c96798 feat: userids in openrouter requests 2026-03-03 10:24:40 -06:00
zoeissleeping 9b1bfcbca9 fix: money incorrectly formatted for some models 2026-03-03 10:24:00 -06:00
zoeissleeping 1d83b40fe0 feat: custom models 2026-03-03 10:23:25 -06:00
zoeissleeping ea17ee2313 feat: more in-depth token details dropdown 2026-03-03 10:22:56 -06:00
zoeissleeping 26230abc53 fix: typo 2026-03-03 10:22:32 -06:00
zoeissleeping 38bde3a73b feat: support pasting files into the chat 2026-03-03 10:22:00 -06:00
zoeissleeping 36df1de197 feat: virtualize model selector 2026-03-03 09:42:57 -06:00
zoeissleeping da0b652b29 fix: sidebar styles and search button 2026-03-02 13:55:02 -06:00
zoeissleeping e2a4643419 feat: add keyboard shortcut tooltips 2026-03-02 13:54:56 -06:00
zoeissleeping 579f4730c8 feat: add dropdown for token details 2026-03-02 10:45:55 -06:00
zoeissleeping d40e5a7404 feat: improve dropdowns a small bit 2026-03-02 00:12:28 -06:00
zoeissleeping 71985c325b feat: improve file upload and diplay stuff 2026-03-02 00:12:01 -06:00
zoeissleeping c84f982277 fix: global data not warming up correctly after hydration 2026-03-02 00:11:06 -06:00
zoeissleeping 5a35976ce0 refactor: useUserSettings uses global state to reduce db calls 2026-03-01 20:29:37 -06:00
zoeissleeping e0914b684a refactor: use floating ui for dropdowns 2026-02-28 22:23:10 -06:00
zoeissleeping 82ab72dae3 revert: no longer preprocess markdown to make singlenewlines double, breaks table rendering 2026-02-28 17:25:01 -06:00
zoeissleeping a2891e0461 fix: missing transitions to useDialog 2026-02-28 17:25:01 -06:00
zoeissleeping 874f0f7397 feat: add message attachments (wip) 2026-02-28 17:24:56 -06:00
zoeissleeping 5decf9939b feat: improve auth pages 2026-02-27 16:21:00 -06:00
zoeissleeping bf9f613e4d feat: quick switcher 2026-02-26 14:51:47 -06:00
zoeissleeping 97afa1cbe1 feat: replace nuxt icons with unocss icons 2026-02-26 14:51:07 -06:00