11 KiB
11 KiB
Feature Landscape
Domain: Runtime workspace UX for local-first AI desktop tools Researched: 2026-03-28 Scope: Runtime management, settings editing, model source selection, and lifecycle/status reliability in a local desktop app
Table Stakes
Features users expect. Missing = product feels unsafe or annoying to operate.
| Feature | Why Expected | Complexity | Notes |
|---|---|---|---|
| Draft-safe settings editing | Desktop operators expect form edits to remain stable until they explicitly save, cancel, or reset. If polling overwrites a path field or provider choice, trust collapses immediately. | Med | Treat live runtime snapshot and editable draft as separate state models. Background refresh should update live status, not clobber draft inputs. Confidence: HIGH |
| Explicit save/cancel/revert flow | Adjacent desktop tools expose clear commit points for configuration changes, especially when edits affect runtime behavior, security, paths, or restart requirements. | Med | Show dirty state, changed fields, and per-field or whole-form reset. Keep save semantics deterministic. Confidence: HIGH |
| Unified runtime control center | Users expect one place to see current runtime, active model/provider, health, and lifecycle actions instead of split status and settings surfaces. | Med | Status summary, runtime actions, and current effective config should live together even if advanced settings remain collapsible. Confidence: HIGH |
| Clear lifecycle controls with feedback | Start, stop, restart, retry, and health check are baseline for local runtime tools and adjacent desktop dev tools. Users need to know whether an action is pending, succeeded, failed, or requires attention. | Med | Include transitional states, disable conflicting actions in flight, and preserve action history or last result. Confidence: HIGH |
| Effective vs draft configuration visibility | Users need to understand what the runtime is currently using versus what is only edited locally and not yet applied. | Med | Use labels such as Live, Draft, Unsaved, Restart required. This directly reduces confusion in brownfield apps with background polling. Confidence: HIGH |
| Model source and model selection with validation | Local AI tools commonly let users pick a provider/runtime source and then choose from valid models. Users expect incompatible or missing options to be explained before save. | Med | Cascade validation: source -> runtime availability -> model list -> compatibility warnings. Confidence: MEDIUM |
| Health/status surface with actionable diagnostics | Operators expect more than a green/red badge. They need endpoint, process state, selected model, last health check, and error guidance when unhealthy. | Med | Troubleshooting entry points matter because local runtimes fail for common machine-specific reasons. Confidence: HIGH |
| Safe path/directory editing for model storage or managed libraries | Desktop tools that manage runtime assets usually expose path selection, current location, and validation because storage layout is a core operator concern. | Med | Folder picker plus existence/permission checks before commit. Never silently revert user-entered paths. Confidence: HIGH |
| Restart-required and apply-now signaling | When settings affect runtime startup, networking, auth, or model loading behavior, users expect the UI to say whether a save applies immediately or on next restart. | Low | Show this per setting group, not as hidden tribal knowledge. Confidence: HIGH |
| Error recovery without losing work | Failed saves, failed starts, or failed health checks must not erase the user draft. Users expect to fix the problem and retry from the same screen. | Med | Preserve draft across failures and optionally across app refresh/reopen for the current session. Confidence: HIGH |
Differentiators
Features that create competitive advantage for this scope.
| Feature | Value Proposition | Complexity | Notes |
|---|---|---|---|
| Side-by-side live snapshot and editable draft | Turns a common failure mode into a trust signal: users can compare what is running with what they are preparing to apply. | Med | Best fit for this project because the current pain is polling overwriting edits. Confidence: HIGH |
| Per-setting change impact preview | Before save, explain consequences such as restart needed, model reload required, auth exposure risk, or path rescan. | Med | Makes advanced runtime settings feel safe without adding wizard friction. Confidence: MEDIUM |
| Runtime/source switching with preserved drafts per source | Users exploring local vs remote runtimes often lose partial config when switching providers. Preserving draft state per source reduces setup frustration. | High | Useful when multiple runtime backends or model sources are supported. Confidence: MEDIUM |
| Inline diagnostics and guided repair actions | Instead of just reporting Unhealthy, offer actions like open logs, retry probe, reveal models folder, reset to last saved, or test connection. | Med | Adjacent tools win on time-to-recovery, not just status visibility. Confidence: HIGH |
| Optimistic model browser with compatibility hints | Show available models, installed/downloaded state, source provenance, and whether the current runtime can serve them before commit. | High | Especially valuable if local and remote sources coexist. Confidence: MEDIUM |
| Session-safe draft persistence and recovery | If the app reloads or the runtime poll stream reconnects, the user can restore unsaved edits intentionally rather than losing them. | High | Strong differentiator because settings trust is the product constraint called out in PROJECT.md. Confidence: MEDIUM |
| Explainable automation for model loading/runtime lifecycle | Features like auto-start, JIT loading, auto-unload, or health polling become safer when users can see why the app took an action and how to override it. | Med | Borrow the best part of LM Studio and Docker Desktop: power features with visible state and controls. Confidence: MEDIUM |
Anti-Features
Features to explicitly NOT build.
| Anti-Feature | Why Avoid | What to Do Instead |
|---|---|---|
| Silent form rehydration from background polling | This is the core trust-destroying behavior in the current product. Users read it as data loss. | Keep live runtime snapshot separate from draft state and ask before replacing a dirty draft. |
| Implicit auto-save for high-impact runtime settings | Auto-saving ports, auth, paths, or provider changes creates surprise restarts and hard-to-debug state. | Use explicit save/cancel, with optional narrow autosave only for low-risk preferences later if ever needed. |
| Split-brain control surfaces | Duplicated controls across status card and settings drawer create uncertainty about which surface is authoritative. | Make one workspace the source of truth and let secondary surfaces deep-link into it. |
| Overloading the workspace with chat redesign work | Chat is validated and out of scope; broadening here dilutes the runtime reliability goal. | Touch chat only where active runtime/model context must be surfaced. |
| Hidden config mutations on source switch | Auto-clearing fields or swapping model selections without explanation feels like a bug. | Preserve drafts per source or require explicit confirmation before destructive changes. |
| Advanced settings without safety copy | Security, network, and path settings are easy to misuse when labels are terse. | Add impact text, validation, and restart/apply semantics directly in the UI. |
Feature Dependencies
Unified runtime control center -> Clear lifecycle controls with feedback
Unified runtime control center -> Effective vs draft configuration visibility
Effective vs draft configuration visibility -> Draft-safe settings editing
Draft-safe settings editing -> Explicit save/cancel/revert flow
Draft-safe settings editing -> Error recovery without losing work
Model source and model selection with validation -> Optimistic model browser with compatibility hints
Clear lifecycle controls with feedback -> Health/status surface with actionable diagnostics
Safe path/directory editing -> Restart-required and apply-now signaling
Explicit save/cancel/revert flow -> Per-setting change impact preview
Draft-safe settings editing -> Session-safe draft persistence and recovery
Health/status surface with actionable diagnostics -> Inline diagnostics and guided repair actions
MVP Recommendation
Prioritize:
- Draft-safe settings editing
- Explicit save/cancel/revert flow
- Unified runtime control center
- Clear lifecycle controls with feedback
- Effective vs draft configuration visibility
- Model source and model selection with validation
One early differentiator worth pulling into MVP if capacity allows: 7. Side-by-side live snapshot and editable draft
Defer:
- Runtime/source switching with preserved drafts per source: valuable, but only after one-runtime draft safety is solid
- Session-safe draft persistence and recovery: strong trust feature, but second-order after fixing in-session overwrite behavior
- Optimistic model browser with compatibility hints: defer until core save/apply semantics are reliable
Sources
Authoritative / official docs
- Docker Desktop settings and maintenance docs: https://docs.docker.com/desktop/settings-and-maintenance/settings (used for expectations around desktop settings, lifecycle, restart/apply semantics, notifications)
- LM Studio server settings docs: https://lmstudio.ai/docs/developer/core/server/settings (used for expectations around runtime/network/auth/model-loading controls)
- LM Studio headless/runtime service docs: https://lmstudio.ai/docs/developer/core/headless (used for expectations around start-on-login, auto server restore, JIT model loading)
- VS Code settings docs: https://code.visualstudio.com/docs/configure/settings (used for expectations around settings scopes, direct editing, modified state, and user/workspace separation)
- VS Code default settings reference: https://code.visualstudio.com/docs/reference/default-settings (used to confirm settings editor + JSON are both first-class)
- Ollama troubleshooting docs: https://docs.ollama.com/troubleshooting (used for expectations around logs, diagnostics, runtime failure recovery, and model/config locations)
Ecosystem / discovery sources
- Exa ecosystem search on local AI desktop tools and adjacent desktop developer tools, 2026 queries covering LM Studio, Ollama clients, AnythingLLM, Open WebUI, Docker Desktop, and unsaved-settings reliability patterns
Confidence Notes
- HIGH confidence: explicit save/cancel, separate live vs draft state, unified control center, lifecycle feedback, diagnostics, and non-destructive failure handling are strongly supported by official desktop-tool patterns and the project's stated constraints.
- MEDIUM confidence: preserved drafts per source, compatibility-hint browsers, and session draft recovery are opinionated differentiators derived from ecosystem patterns and UX pain points rather than a single canonical doc.
- LOW confidence: none of the core recommendations rely only on unverified single-source claims.