- Track context window usage per AI model in usage tracker
- Add context limits for Claude (200K) and Cloudflare models
- Display context percentage badge in ChatPanel header
- Add context warnings at 80% and 95% usage levels
- Fix entity label generation to allow explicit empty labels
- Auto-refocus input after message completion
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Migrate to LangChain for model abstraction (@langchain/anthropic, @langchain/ollama)
- Add custom ChatCloudflare class for Cloudflare Workers AI
- Simplify API routes using unified LangChain interface
- Add session preferences API for storing user settings
- Add connection label preference (ask user once, remember for session)
- Add shape modification support (change entity shapes via AI)
- Add template setter to DiagramObject for shape changes
- Improve entity inference with fuzzy matching
- Map colors to 16 toolbox palette colors
- Limit conversation history to last 6 messages
- Fix model switching to accept display names
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Cloudflare Workers AI as third provider alongside Claude and Ollama
- New cloudflare.js API handler with format conversion
- Tool converter functions for Cloudflare's OpenAI-compatible format
- Handle [TOOL_CALLS] and [Called tool:] text formats from Mistral
- Robust parser that handles truncated JSON responses
- Add usage tracking with cost display
- New usageTracker.js service for tracking token usage per session
- UsageDetailModal component showing per-request breakdown
- Cost display in ChatPanel header
- Add new diagram manipulation features
- Entity scale and rotation support via modify_entity tool
- Wikipedia search tool for researching topics before diagramming
- Clear conversation tool to reset chat history
- JSON import from hamburger menu (moved from ChatPanel)
- Fix connection label rotation in billboard mode
- Labels no longer have conflicting local rotation when billboard enabled
- Update rotation when rendering mode changes
- Improve tool calling reliability
- Add MAX_TOOL_ITERATIONS safety limit
- Break loop after model switch to prevent context issues
- Increase max_tokens to 4096 to prevent truncation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>