feat: scene management for RP settings
This commit is contained in:
10
README.md
10
README.md
@@ -27,6 +27,7 @@ open "build/Debug/MLX Server.app"
|
||||
## App Features
|
||||
|
||||
- **Chat interface** with markdown rendering and model-aware image attachments (file picker, drag & drop, clipboard paste, Finder copy-paste on vision-capable models)
|
||||
- **Scene-based chat starts** — New Chat opens a scene picker with Neutral plus saved scenes, each with an optional model override, a scene prompt layered onto the base system prompt, and an auto-sent starter prompt
|
||||
- **Model picker** in toolbar with local/download status indicators and re-download button
|
||||
- **Download progress modal** — shows file progress, percentage, and speed when downloading a new model
|
||||
- **Thinking mode** — models like Qwen3.5 can reason internally before responding; thinking content appears in a collapsible box. Toggle on/off in Settings.
|
||||
@@ -34,7 +35,8 @@ open "build/Debug/MLX Server.app"
|
||||
- **Export chat** — File > Export Chat (Cmd+Shift+S) saves conversations as Markdown or RTF (Pages-compatible)
|
||||
- **Status bar** showing model name, context window, tokens/sec, token counts, GPU memory, API server status
|
||||
- **Keyboard shortcuts**: `Cmd+N` (new chat), `Cmd+Return` (send), `Escape` (stop), `Cmd+1/2/3/4` (switch models), `Cmd+Shift+S` (export)
|
||||
- **Settings** (`Cmd+,`): default model, thinking mode toggle, system prompt, API port, API auto-start, idle unload timeout
|
||||
- **Scene management** — create and edit reusable roleplay/task presets from the New Chat flow or Settings
|
||||
- **Settings** (`Cmd+,`): default model, thinking mode toggle, base system prompt, scene management, API port, API auto-start, idle unload timeout
|
||||
- **Idle auto-unload** — model is unloaded after configurable idle time (resets on both user input and model output), reloaded on next request
|
||||
|
||||
## API Server
|
||||
@@ -91,10 +93,14 @@ MLXServer/
|
||||
├── Models/
|
||||
│ ├── ModelConfig.swift — Model definitions, alias/repoId resolution
|
||||
│ └── ChatMessage.swift — Chat message data model, thinking tag parser
|
||||
│ └── ChatScene.swift — Persisted chat scene presets (prompt + model + starter)
|
||||
├── ViewModels/
|
||||
│ ├── ModelManager.swift — Model loading/switching, download tracking, idle unload
|
||||
│ └── ChatViewModel.swift — Chat state, ChatSession, API server lifecycle
|
||||
│ └── SceneStore.swift — Scene persistence and editing operations
|
||||
├── Views/
|
||||
│ ├── SceneSelectionView.swift — New chat scene picker popover
|
||||
│ ├── SceneManagementView.swift — Scene editor and list management
|
||||
│ ├── ModelPickerView.swift — Toolbar model selector with re-download
|
||||
│ ├── ChatMessagesView.swift — Scrollable message list with markdown + thinking blocks
|
||||
│ ├── ChatInputView.swift — Text input + image attach (paste, drag, picker)
|
||||
@@ -113,7 +119,7 @@ MLXServer/
|
||||
├── LocalModelResolver.swift — Offline-first HuggingFace cache resolution (sandbox + system)
|
||||
├── ChatExporter.swift — Export conversations to Markdown or RTF
|
||||
├── FocusedValues.swift — FocusedValue keys for menu bar integration
|
||||
└── Preferences.swift — UserDefaults wrapper
|
||||
└── Preferences.swift — UserDefaults wrapper, including scene persistence
|
||||
|
||||
project.yml — xcodegen project spec (dependencies, settings, deployment target)
|
||||
build.sh — One-command build script (xcodegen + xcodebuild)
|
||||
|
||||
Reference in New Issue
Block a user