Repository navigation
Releases: mcp-tool-shop-org/incontrol
Release list
InControl 2.0.1
InControl 2.0.1: Ollama chat for Windows, on this PC or over SSH to a GPU you rented.
New in this release: file and image attachments, web search behind a Web toggle, markdown replies, a reasoning model's live thinking, settings that persist, Launch at startup, and minimize to tray.
Install: Microsoft Store — InControl-Desktop (Windows 10 version 2004 or later, x64). The 2.0.1.0 package is in Store certification; until it is published, the Store serves the previous version. To build from source, see the handbook.
No installer is attached to this release. The Store package is signed by Microsoft.
Added
- Web search, off until you turn it on with the Web button next to the paperclip. A model that can use tools may search DuckDuckGo and read public pages; pages on this PC or a private network are refused. Each reply lists its searches, offline mode turns it off, and the choice is remembered.
- Replies render markdown: bold and italic, inline code, code blocks, headings, lists, quotes, tables and links.
- A reasoning model's thinking streams into a Thinking section on the reply, which folds away when the answer starts.
- Attach files to a message with the paperclip, Ctrl+Shift+O, or by dropping them on the composer. Text and code files (up to 256 KB) go into the message in a fenced block. PNG, JPEG and WebP images (up to 10 MB) go to vision models through Ollama. Each file shows as a chip that can be removed before sending, and attachments are saved with the chat.
- Before images are sent, InControl asks Ollama whether the model can read them. A text-only model gets a plain message instead, and the files stay attached. Images from earlier in a chat are left out of the request for a text-only model, so the chat keeps working.
- Settings are saved between launches: theme, voice, auto-speak, volume and speed, the default model, web search, and minimize to tray. They live in
%LOCALAPPDATA%\InControl\config\settings.json, and only settings you changed are written. - Launch at startup works, through a Windows startup task. Windows keeps that choice and shows it under Settings, Apps, Startup.
- Minimize to system tray works: minimizing hides InControl to an icon by the clock, and clicking it brings the window back. Its menu can also close the app.
Fixed
- A reply that Ollama refuses, or that comes back empty, is shown as an error with Ollama's own sentence instead of a blank reply. The empty card is removed.
- The voice model downloads the first time voice is needed, when a reply is spoken or Settings opens, not at every first launch.
- Screen readers announce each session by its title.
- Theme, voice choice, and the Launch at startup and Minimize to tray switches looked live but were never saved or did nothing. They are now saved or working.
Changed
- The Windows SDK projection is 10.0.22621.57, which the tray icon library needs.
InControl 2.0.0
InControl 2.0.0: Ollama chat for Windows, on this PC or over SSH to a GPU you rented.
Install: Microsoft Store — InControl-Desktop (Windows 10 version 2004 or later, x64). The 2.0.0 package goes through Store certification first; until it passes, the Store serves the previous version. To build from source, see the handbook.
No installer is attached to this release. The Store package is signed by Microsoft.
Changed
- The app version is 2.0.0, and the MSIX identity version is 2.0.0.0. The package identity is
mcp-tool-shop.InControl-Desktop, publisher display namemcp-tool-shop, as on the Partner Center Product Identity page. An earlier draft usedInControl.App, which was the 1.4.0 upload's file name and would have been rejected. The application id isAppagain, as in 1.3.0, so Start and taskbar pins survive the update. NuGet library versions are unchanged. - The package runs on Windows 10 version 2004 and later. The build had been writing Windows 11 22H2 as the minimum.
- The tiles, taskbar icon, Store logo and splash screen are the llama from the README.
scripts/generate-icons.pydraws them fromlogo.png. - PRIVACY.md lists every network connection, including the one-time voice model download and the diagnostics check, says that project instructions and remembered notes go to a connected rental, and describes Store storage and updates.
Fixed
- The status strip says Online when Ollama answers and Offline when it does not. It had the two the wrong way round.
- A long reply or model pull is no longer cut off at 100 seconds. The inference timeout is now how long a stream may go quiet, not how long it may run.
- Changing the endpoint no longer drops a reply that is still streaming. The old connection is closed after its last call ends.
localhostin the Ollama address is used as 127.0.0.1, so an IPv4-only Ollama is found.- Session, project and note files are written to a temporary file and then swapped in, so a crash during a save cannot leave half a file.
- A session deleted while its reply is being saved stays deleted. A session whose file cannot be deleted stays in the list with its notes, and the window says so.
- When a chat cannot be saved, the window says so instead of only logging it. Failures to load, rename, delete, remember, export or speak are shown too.
- A cancelled load is no longer reported as corrupt session files, and the next load tries again.
- Stop never throws when a reply is ending at the same moment.
- Switching sessions, renaming, or starting a new session while a reply is streaming keeps the reply running. Going back to that session shows the reply so far and the Cancel button.
- Remember for this session files the note under that session's project. Right-clicking a row no longer changes which session the memory list shows.
- Duplicate stores a real copy with its messages and project. Before, the copy existed only in the sidebar.
- Model Manager keeps the selected default model when it refreshes.
- Connect, Stay on this PC, RunPod lookup and the Help page diagnostics handlers catch their errors, and an unhandled UI exception no longer closes the app.
- After an unclean exit, the next launch says so and that saved chats are intact. Code that claimed to recover an unsent prompt, but never did, is removed.
- Clear All Memory clears the remembered notes. Controls that did nothing are removed or relabelled: Change Storage, Settings Export Diagnostics, Clear activity, plugin install, policy Configure and audit Export, and the composer's Attach file. Reset to Defaults is now Reset appearance.
- A message card stops listening to a message it no longer shows, so tokens cannot paint into the wrong card.
- Restoring a backup extracts it to a staging folder first. A corrupt or empty backup no longer deletes the current sessions.
- Exporting all sessions reads the list once. Clearing session notes clears only that session's notes.
- Voice works from the Store package. The voices and eSpeak data now ship inside it, the app starts in its own folder instead of System32, and the voice model downloads into the app cache instead of beside the read-only exe.
- The SSH client config no longer sets
ClearAllForwardings. That keyword was erasingLocalForwardafter OpenSSH parsed the file, sossh -Ncould sit with nothing forwarded. - When that SSH process exits, the chat comes back to this PC and the banner says so. While the tunnel is up, the banner includes the Ollama version the probe already read.
- Model Manager and diagnostics talk to the endpoint the banner is naming, not always
localhost:11434. - Offline mode refuses a rented GPU, RunPod lookup, and a model download, and it closes a rental that is already open. The switch no longer says every network connection is blocked. Chat on this PC still works.
v0.3.0
Source release of the Windows app at 0.3.0. There is no MSIX installer. Clone this tag and build with the .NET 9 SDK.
The rental forward listens on 127.0.0.1:11436 and stays off this PC's Ollama port. The chat stays here until /api/version answers through that forward. Look up my RunPod pods fills a direct SSH command from RUNPOD_API_KEY. It does not start a pod, store the key, or send the chat.
Codecov is connected. The failing bar is patch coverage at 90%. The repository-wide percentage is informational, and the WinUI project is outside that report. On the code commit it measured 84.25% line coverage and a 92.31% patch.
NuGet is unchanged: InControl.Core 1.2.2 and InControl.Inference 1.0.2.
The window was not launched for this release. dotnet build of the app compiles the assembly, then Windows App SDK packaging fails on a plain .NET SDK because the Appx task is missing.