# **Changelog** All notable changes to Skales will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## v12.9.55 - Mango **A release about work you can hand over: documents that look designed, a Friend Mode that follows through, a calmer chat, and every cent of your AI spending in one view.** Word, PowerPoint, Excel and PDF files now come out on real templates and slide masters in your brand kit, with charts, diagrams, contents with page numbers and your own fonts, and Skales checks the file before you get it. Every chat has its working folder and a Files tab, discarded work goes to the trash, and agents can browse in their own sandbox browser. Friend Mode follows up on one open point at a time, listens to "done" or "later" and asks on one channel only. Azure OpenAI and Google Vertex AI join the providers, web search falls back instead of giving up, and a private SearXNG is one click away. The chat is calmer, with no avatars at the bubbles, a side panel that remembers whether you want it open and a header that lines up with Code. The Costs view and the year heatmap count every answer you paid for, the dashboard shows your week and editable widgets, notifications have four tones, and personal data such as an IBAN can be held back before it leaves, now also for pictures and Code. WhatsApp attachments arrive again under their own names, DeepSeek through OpenRouter no longer loops, a second Skales no longer takes the port of the first, and Google Vertex AI answers. ### Fixed - **Tooltips on the top row are whole again.** The hints of the incognito, Iris and composer buttons open below the button like every other tooltip, instead of rising under the window's title strip and being cut off. - **The start screen speaks plainly while macOS asks for the keychain.** The note sits centred under the tagline in two short lines, in your language, and so does the setup line after an install. - **Every built-in skill ships with the files it refers to.** The architecture review skill finds its report template again. - **The side panel never says "No model call yet" next to a cost.** An older chat that has answered but kept no per-call record shows its cost without that line. - **Cards no longer slide under the open side panel.** Approval cards, the plan, helper and team cards, the language-check questions and the slash menu make room for the panel like the conversation does. - **Bubbles and cards stand on one line.** Messages, approval and docked cards and the composer share the same left and right edges at every width. - **The session list opens where you asked for it.** It hangs under the "⋮" menu instead of somewhere in the chat. - **One quiet shadow for every bubble.** Sent and received messages carry the same small shadow, and nothing cuts it off. - **The sidebar is closed at the top in Flat and Classic.** Its head carries the same thin line as the other edges. - **The memory cloud shows what your memories are about.** Filler words such as "this", "nicht" or "aber" and verbs and adjectives such as "braucht" or "wichtig" are left out in every app language and on the phone, also style words a setting writes capitalised such as "Playful" or "Bold", the app's own upkeep records no longer appear as topics, and the cloud wears your accent colour. - **The session count matches the list beside it.** Sessions counts the same chats that "Jump back in" lists, without briefings, channel chats or chats nobody wrote in. - **Full-screen previews clear the window buttons.** The preview's head starts below the macOS traffic lights and beside the Windows caption buttons, its close button always takes the click, and Escape closes it even while you work inside the page. - **Save as image saves the page.** The picture shows the whole page as a browser shows it, top to bottom, whatever was scrolled into view, the zoom or the side panel. - **Asked to delete, Skales deletes.** Removing a task you asked for no longer runs in circles: the task list Skales reads first now counts as having seen the task. - **Free memory is measured right on a Mac.** The system status and the local model checks count the memory macOS can hand out, not only its empty pool that read 0.0 GB, and scripts written for "python3" or "nodejs" run. - **A calendar that needs signing in again says so.** When Google ends the calendar connection the widget says it in one sentence and offers Reconnect instead of Google's raw error. - **Skales Code opens in your colours.** The window's first frame already wears your accent instead of flashing the default green first. - **The Cockpit count sits at the edge.** The number on the Cockpit row lines up with the notice dots on the right. - **The dashboard Tasks card leaves the archive out.** Archived housekeeping runs no longer fill the Tasks card or the Iris task list, so they show the same tasks as the Tasks page and the Cockpit count, and the AI Brain row shows the whole model name on hover instead of cutting it off. - **Google Vertex AI answers.** Requests to Vertex AI now go to the chat address Google documents for its OpenAI-compatible endpoint; before, a version segment was added that Vertex does not have, so chat, Lio, skills and Visuals with Vertex got no answer. Azure OpenAI and Vertex AI also get the longer answer time thinking models need, and their own two-letter marks in Settings. - **Web search through OpenRouter is sent like every other OpenRouter call.** When the models may search too, the OpenRouter search now names Skales and its categories, so it reaches the models OpenRouter only serves to agents. - **The way to the trash is named right.** The working-folder hints in the chat and Skales' own directions now say Settings > Security & Privacy > Trash; before, they pointed at a Trash category that does not exist. - **Letter paper on Word reports shows the address, and a header keeps the page numbers.** A DIN 5008 letter made with create_docx now shows its address block and references on the first page; before, the report's own page setting hid that first-page header. A letterhead header no longer removes the report's footer with its page numbers, and page numbers alone keep the report's running title at the top. A letterhead part always replaces the report's own, never adds a second one. - **The safety note names your own browser.** Settings > Safety now lists using your own signed-in browser for an agent set to the sandbox among the steps that ask in every mode, as the approval card already did. - **YouTube transcripts are read again.** Reading a YouTube link brought back the title but no transcript, because YouTube now hands its caption files to the website only with a token a browser makes. Skales now asks the way YouTube's own app does and gets the words. When there really is none, it says whether the video has no captions or YouTube wanted a sign-in. - **Files sent over WhatsApp keep their names.** A document someone sends you on WhatsApp is now saved under its own name in files/documents, like a file you attach in the chat, instead of a number. A second file with the same name is saved beside the first as name-2. Photos and voice notes, which have no name, are named as before. - **Open in the Files list opens the file in its own app.** In the desktop app, Open now starts the file with the program your computer uses for it (Word, Preview, Excel), also for files outside the Skales folder. Scripts and programs are shown in their folder instead of being run. In a browser it opens in a new tab as before. - **An error Skales does not know reads as a sentence, not as code.** When a provider fails in a way Skales does not recognise, the chat now says which provider stopped and that the error is unknown; the provider's own text is under "Show error details". The Test button in Settings still shows that text right away. - **A branded conversation keeps the brand's voice in its answers too.** Once a document in a chat uses a Brand Kit, or the chat's project has one, the assistant writes its replies and drafts in that kit's tone and leaves out what the kit says to avoid, not only in the files it makes. - **Your documents are found by meaning, not only by their words.** Searching the documents you added to Skales now also compares meaning through your embeddings, so a question about fruit finds the page about apples. A new document gets its vectors on the next search, and they go when the document goes. Without embeddings the search works by words as before. - **Asked for slides or a spreadsheet, the assistant makes the file.** On the computer it now knows from the start that it can write a PowerPoint deck on slide masters, an Excel sheet, and read the Brand Kit, as on the phone, instead of offering an HTML page to print. - **Skales names the search service it really uses.** With a search provider chosen but no key for it, the assistant said it searched with that provider while another one answered. It now names the one that answers first. - **Searching a time span no longer costs a full re-index.** A conversation search limited to a period ("what did we talk about yesterday") threw away the meaning vectors of all other conversations, so the next ordinary search paid to make them again. They now stay. - **The Files tab knows what helpers made.** Files written by a background helper that a chat dispatched now show up in that chat's Files tab. File cards in the Code window follow a file you took over or moved, like in the chat. A conversation deleted for good no longer leaves its file list behind; one in the bin keeps it for a restore. - **DeepSeek through OpenRouter answers instead of looping.** OpenRouter could send DeepSeek requests to a host whose copy wrote filler into its thinking until the output budget was gone, with no answer. Skales now asks OpenRouter to skip that host for DeepSeek models; all other hosts and models are routed as before. - **A new install on OpenRouter starts on Claude Sonnet 5.5.** Setup picks it when OpenRouter lists it, and the model list carries it. Existing installs keep the model they use. - **A second Skales no longer lands on the port of the one already running.** Starting another copy beside a running app could pick the same port on macOS, so pages could open in the wrong instance. A port now counts as taken as soon as anything answers on it. - **Holding back personal data is easy to find and covers pictures and Code.** The switch that holds a message with an IBAN, a card number or a key before it goes to a cloud model is now also in Settings > Security & Privacy, next to Safety Mode, and it is still off until you turn it on. A held message now waits in the composer, so sending it anyway is one key. A picture with a caption and a line typed in a Code window (also from the phone, an edited message, or a queued line sent now) are held the same way, once. - **Skales starts faster after an install or update, and the window stays responsive.** The local server no longer waits for the check of the program files; that check now runs after start without blocking the window, and its result is kept, so later starts skip it. On Windows and Linux, unpacking the program files after an update shows its progress on the start screen instead of a frozen window, and "localhost" answers at once instead of after a two-second detour. - **"This is taking longer than usual" only when it really is.** The start screen stays up while Skales is unpacking files or waiting for the macOS keychain, and says so (on macOS: choose "Always Allow" if it asks, the dialog may be behind other windows). The slow-start message with Restart and Quit only appears when the local server has been silent for a real while, and Restart is no longer the main button while Skales is still working. - **Own windows wear your colours from the first frame.** The Iris name animation starts in your colour instead of black, and the Code window follows your accent like the rest of the app instead of staying green. - **Window buttons and headers on one line.** In the Code window the macOS window buttons now sit on the header's centre line with clear room before the menu button, at every Skales size; on Windows the window buttons take the header's height. - **Discover can be looked at without joining.** The join and the one-time character step have a visible way back (and Escape), and their colours follow your accent instead of a pink or orange tint. - **A new chat shows up once in the sidebar.** Starting a chat from the phone browser, with a code folder or by just sending could list the same conversation two or three times until the next reload. Every way in now updates the one entry. - **Attached text, code and HTML files are real files.** A file you attach in chat, in the browser on another device or from the phone app is saved in your workspace under files/documents, next to documents that arrive on WhatsApp, and the message names where it is. Asking to render, export or send it now works from that file instead of the assistant searching for a copy, and a long file that does not fit into the message is still there in full. - **WhatsApp that signs in but never finishes starting restarts itself.** After an app restart WhatsApp could stay signed in without ever becoming ready. Skales now restarts it on the saved login, at most twice, and the assistant calls this "linked, still connecting" instead of "not set up". - **A switched-off Ollama stays off.** With Ollama or LM Studio switched off in Settings, nothing uses it anymore: not as a fallback, not for scheduled jobs, routing or composer suggestions, even while an Ollama server runs on the machine. A small local model no longer delays the start of an answer. With routing on, the waiting line says that a routing model reads your message first. - **"Download backup" works in the installed app again.** A packaging rule meant for leftover backup files also removed the backup download route from every installer, so the download in the browser and from another device, and the automatic backup before an update, failed. The rule now matches only real backup files, and the build checks that every route reaches the installer. - **Background jobs never answer with raw tool-call markup.** When a model wrote a tool call as text instead of running it, a scheduled job, a helper or the final summary of a multi-helper job could show pages of that markup as its answer, or finish with a check mark and nothing in it. Every job answer is now cleaned the way chat answers are, a call written as text is named instead of shown, and an answer with nothing left counts as failed with the reason. A spelling of these calls with a space in the tag, which DeepSeek models use, is now recognised in chat as well, so the call runs instead of being dropped. - **The final summary of a multi-helper job can check the helpers' work.** It now has read-only tools (read files, list folders, search) to compare a claim with what is on disk, and nothing that writes, runs code or goes online. - **Images, voice messages and documents sent to you on WhatsApp arrive again.** After a WhatsApp Web update, received files could no longer be downloaded and the assistant said the image had not arrived. When WhatsApp Web's own download fails, Skales now fetches the file from WhatsApp and decrypts it itself. Photos (also HD), voice messages, videos, PDFs and HTML documents are saved in your workspace under the message's own name, and the assistant gets exactly that file. - **No stand-in for a file that did not load.** When a received file really cannot be loaded, the assistant says so and asks for it again; it no longer reaches for another image from your uploads and claims to have seen it. - **A WhatsApp Web build pin that did not take is named.** WhatsApp can serve its current build even when an older one is pinned. Settings now says so instead of asking for a restart that would change nothing. - **Identity maintenance stays one quiet job.** The nightly run no longer splits itself into helpers and a summary with a report in the chat; it does its steps in one run, says nothing when it works and sends one notice with the reason when it fails. ### Changed - **The chat head sorts itself.** The model choice sits on the right beside the side panel button, and Memory Mode is a button next to it again: one click switches between Always Remember, Compact and Minimal. "Start incognito chat" is in the "⋮" menu under handing the conversation to Iris. - **Cockpit is there from the start.** Whatever you answered in setup, Cockpit is on and stands in the Home sidebar right under the fixed rows. Unpin it and it waits under More; pin it again from there. From the chat sidebar it opens as a page, the same one the Home sidebar opens. - **"Needs you" shows what it counts.** Click the number on the Cockpit row or on the page and the board shows exactly those cards. Failed runs of the app's own housekeeping, such as identity maintenance, are archived instead of piling up: off the board and the count, kept under a new Archived filter in Tasks. - **A calmer sidebar head.** Home and Chat are two centred icons with their names as tooltips, and the Cockpit's Schedule and Tasks entries are marked by their text alone, without a filled background. - **The side panel shows everything at once.** On a window wide enough for the chat beside it the panel is open the first time, on a narrower one it waits behind its button; close or open it and that choice is remembered. Its overview no longer folds: on top agent, model, context, cost and runtime, with every model call of the session as a small heat strip, below it environment, what the context holds, background tasks, connectors and changes. The plan stays pinned in the conversation while it runs, and Background tasks in the "⋮" menu lands on its block. - **Arrange the whole dashboard.** Everything under the briefing bar in Calm, and under Live in Power, is one list you can sort: drag a card or a widget onto another, or use the arrows. Each view keeps its own order. A quiet "Edit layout" button on the right starts it, and widgets wear their own icons instead of emojis. - **Heatmaps that say what they show.** "Daily activity, last 12 months" fills its whole row, with empty dots for the days before and after, and "Your active hours" spreads its 24 hours across the whole card in the same round dots, with the hours written underneath. - **Cockpit is always a page.** Every way into Cockpit, the chat sidebar included, opens the Cockpit page, which remembers its view. - **Put dashboard cards away.** In Edit layout every card, not only the widgets, can be removed per view and comes back from Add. Cards in a row stand equally tall and every row is filled, so the dashboard has no gaps, and links such as "View all" step aside while you arrange. - **Zoom into images.** A picture opened from the chat zooms with a pinch, Ctrl or Cmd and the scroll wheel, the + and - keys or a double click, and 0 returns to 100 %. - **This round's new screens speak your language.** The new settings, the Costs view, the dashboard widgets, Discover's privacy notes and the chat files panel are translated in all eleven languages, French, Russian and Turkish address you informally like the rest of the app, the Keep button in the chat files panel names the workspace in your language (German: "In den Arbeitsbereich übernehmen"), and the trash settings say Storage used. - **The Guide knows this round's features.** The built-in Guide now explains the side panel's views, moving backgrounds, the notification tones, the web search stages with a private SearXNG, the Costs view, the dashboard widgets and how follow-ups work, and its catalog lists them with a jump to their settings. - **Editing your dashboard widgets is clear.** Edit now opens a visible customising mode: a line says how it works, an Add Widget tile sits in the grid (also when the dashboard is empty), every widget carries arrows to move it earlier or later next to dragging and its remove button, and Done or Escape ends the mode. The order you set is kept after a restart. - **The Costs view counts every answer you paid for.** The Costs view and the Activity heatmap now also count earlier answers you regenerated and turns that were rolled back, the same as the cost line under the chat, so all three show the same amount. The media tip in the Costs view opens Studio in the Flow window like every other Studio click, and Discover now says precisely that nothing from an incognito chat is posted. - **Memory growth counts each memory on the day it was learned.** The Memory growth widget now dates every entry by when it was learned rather than when its file last changed, so editing a memory no longer moves it into this week, and it lists the newest memories with their day under the bars. - **Jumping to an older message takes you there.** Jumping from the Files view to a message in the part of a long chat that is not shown yet now loads the older messages and lands on it, instead of asking you to load them first. - **Video length on Auto offers only lengths the video model makes.** In Flow, with the video backend left on Auto, the length picker now follows the backend Skales would try first, the same rule the phone uses, so a length that model would refuse is no longer offered and an own length snaps to the nearest one it makes, with a word about why. - **Office files are laid out once more before you get them, when LibreOffice is installed.** Word, PowerPoint and Excel files Skales writes are now also opened and laid out by LibreOffice in the background when it is on your computer. A page or slide that comes out empty, a file it cannot open or a slide that goes missing is named in the result; without LibreOffice the existing check runs alone, as before. - **Word contents with page numbers, and real bold in your brand font.** A Word document with a table of contents now asks Word to fill in the page numbers when you open it, and when your brand kit holds a bold cut of its font, that cut travels inside the file, so bold text is set in the real bold instead of a smeared regular. - **Needs you also shows what is overdue.** The Cockpit's Needs you count now includes a schedule that missed its run and a project milestone past its date, and the strip says how many of them are overdue. The count on the Cockpit page and the one in the sidebar now come from the same single reading, so they never disagree for a moment. - **Flow and Iris line up with Code at the top.** In the Flow and Iris Orbit windows the window buttons now sit on the same line as the window's own top bar, the way the Code window has it, instead of a separate strip above it, so both windows gain room and all three look alike. - **A calmer chat with more room to read.** Messages no longer carry emoji avatars beside the bubbles, on either side, like Code. The side panel now starts closed in windows narrower than 1600 pixels, where it would squeeze the reading column, and open in wider ones; open or close it yourself and that choice is remembered at every width. A document the agent brings up still opens the panel for that moment without changing your choice, and a closed panel no longer flashes open while the chat loads. - **A follow-up listens to your answer and comes once.** Answer a Friend Mode follow-up with "done" or "no" and that point is closed; answer "later", "tonight", "tomorrow", "this weekend" or "next week" and it rests until then and comes back exactly once. A follow-up now arrives on one channel only, the one you wrote on last, otherwise the first one you chose, and an answer on any channel or a reply button on your phone settles it. On WhatsApp and in mail, where there are no buttons, the answers come as links: on WhatsApp the chat opens with the answer typed in, in mail Skales opens the conversation with the answer in the composer. - **Friend Mode follows through.** A check-in now knows what is still open: running goals, tasks, schedules due within two days and the question a recent conversation ended on (private chats are never read). Before it writes, it may look things up with read-only tools, then follows up on one point with the next concrete step and answer buttons you can tap in Telegram, in the chat and on the paired phone. A point is not raised again for three days, and never again once you answered it, unless it changes. A draft it improved along the way arrives as a file on Telegram. Each check-in is a paid call on your own key, so Settings > Channels & Devices > Friend mode shows what the last one cost, and the Follow through switch turns it off. - **Four notification tones to choose from.** Settings > General > Sound now has a tone picker: the Skales tone plus Glint (a bright rising chime), Ripple (three soft wooden notes) and Bloom (a warm swell), equally loud and short, the same four the phone offers. Choosing one plays it. Before, the extra sound files were copies of the same tone and only some old themes reached them. - **Decisions can answer seven more questions, each with its own switch.** Settings > Assist > Decisions now lists what the decision model may answer, all off until you turn them on: a second opinion before Auto runs something without asking (it can only ever add a question), a prompt-injection check on web pages, search results and mail (a hit is marked for the model, never hidden), moderation before anything is published, a personal-data and secret check before a message goes to a cloud model or something is published, tool groups picked by meaning through your embeddings, which open point Friend Mode follows up on, and labels for mail lists (important, newsletter, spam; every mail stays in the list). Moderation can also use OpenAI moderation, Azure AI Content Safety, Google Cloud Natural Language or Llama Guard through Ollama; the injection check Azure Prompt Shields or a local Prompt Guard 2; the personal-data check works on this computer out of the box and can add Microsoft Presidio or Google Cloud DLP. Nothing is sent to a remote checker in an incognito chat or under Privacy Mode, and if a check does not answer, Skales does what it did before. A message held for personal data says what it found and where it would go; sending it again sends it. - **Azure OpenAI and Google Vertex AI as providers.** Companies can use their own Azure OpenAI or AI Foundry resource (paste the endpoint, use the deployment name as model) or their own Google Cloud project with Vertex AI in the region they pick, EU regions included, under their own contract and key. Both work in chat, Lio, skills, group chat and widgets. - **Choose where meaning-based search gets its vectors.** Settings > Memory > Knowledge now has an Embeddings group: local Ollama with nomic-embed-text, embeddinggemma, bge-m3 or qwen3-embedding, or OpenAI, Google Gemini, OpenRouter, Mistral (also codestral-embed), Google Vertex AI in an EU region, Azure OpenAI, Cohere, Voyage, Jina or Hugging Face, with the size where the model allows it, its own key and address where it needs one, and a test that shows the vendor's answer. Changing the source, model or size makes the stored vectors of your conversations, memories and documents again in the background, with a count; a search never mixes vectors from two models. - **Rerank for sharper recall.** A rerank model can re-sort what memory, document and conversation search found: Cohere, Jina, Voyage, Vertex AI Ranking or a bge-reranker running on this computer. It looks at a wider set of hits and keeps the order search found if it cannot answer. Off until you choose a source. - **Your week on the dashboard.** Five widgets can be added: Agent runs (the last seven days, how many finished well, which are still running, a click opens the Cockpit), Next 24 hours (your schedules on a day axis), Memory growth (new memories per week), Studio now shows what you made this week as a small gallery, and Most Used lists your top ten tools with an up, down, level or new mark against the week before. - **The installer window looks like Skales.** Opening the Mac download now shows a designed window: the Skales mark, the app and the Applications folder side by side with an arrow between them and one line on what to do, sized so nothing scrolls. - **The progress frame has the shape of what is coming.** While a picture, video, visual or 3D model is made, the frame takes the shape that tool makes, also when the request names none (a vertical clip is tall, a visual is square), and a tall frame narrows to fit instead of running under the bottom edge of Flow. - **Animated backgrounds that are honest about their cost.** An animated GIF behind the window is drawn without blur, because a blur would redraw the whole window every frame, and the Blur row says so. You can now also choose a short MP4 or WebM video: it plays on the graphics chip, without blur, and pauses while the window is hidden, out of focus or motion is reduced. - **A year of AI work at a glance.** A new Activity widget on the dashboard shows one square per day for the last year, by turns, tokens, cost or tool calls, for one model or all, local or cloud, with your current and longest streak and your busiest day. Click a day to see that day's conversations in History. Two more widgets show when in the week you work with AI and which models did the work, with the share that ran on this machine. The amounts are the ones the Costs view shows. - **Embeddings with a Google key work.** Choosing Google for embeddings with your own key now reaches Google's embeddings model instead of failing. - **Web search that falls back instead of giving up.** When the chosen search is blocked, rate-limited or finds nothing, Skales now tries every other search you have set up, then DuckDuckGo, then the open Google News, Reddit, Hacker News and Wikipedia indexes, and says which one answered. New optional keys for Serper, Exa, Parallel and Firecrawl sit under Web search, Fallbacks; without any key the chain still runs. - **Pages read as their content, not their clutter.** Reading a web page now returns the main text with an outline of its headings, without menus, footers, cookie banners and ads, so long pages no longer flood the answer; one section or the whole page is still a request away. Reddit, Hacker News, Bluesky, Stack Exchange, GitHub, Mastodon and single X posts are read through their open views, and feeds as their newest items. - **More places to search, and the same search answers at once.** Kagi, Perplexity Sonar, Google Programmable Search and Firecrawl join the search fallbacks with their own key, each with a Test button. A new switch, Let the models search too, lets Gemini, OpenAI, OpenRouter and xAI search with the keys you already set for chat when everything before fails, and a search about X goes to xAI's X search first; it is off until you turn it on, because those searches are billed on your keys. The open stage now also asks Lemmy, and YouTube when you add a YouTube Data API key. Asking the same thing again within ten minutes answers from the last result instead of searching again. - **Personal data waits the same way everywhere.** With the personal-data question switched on under Settings > Assist > Decisions, a message bound for a cloud model is now held on every way in, not only in the chat window: Telegram and WhatsApp answer once that the message contains personal data, and the same message sent again goes out; Iris says it briefly and sends the line when you answer "send" or "yes"; a line that waited in the queue during a turn stops with the notice instead of going out quietly, and Send on sends it. - **A private SearXNG with one click.** Settings > Accounts & Services > Web search can now set up SearXNG on this computer and make it your search: with Docker, or with Python 3.10 or newer and git when there is no Docker. Without either, the row says exactly what is missing. - **YouTube, Lemmy and Product Hunt read properly.** A YouTube link now comes back as the video's details and its transcript, a Lemmy post with its comment tree, and a Product Hunt launch with its comments when you add a Product Hunt token. - **A blocked page says so.** A page behind a Cloudflare or other bot check is no longer passed on as if it were the page: a reader you set up (Jina Reader, Firecrawl, Exa or Parallel) takes over, or the answer says the page blocks automated reading and where a reader can be added. Skales does not get around bot checks. - **Today's spend in the sidebar, if you want it.** Costs can be pinned into the sidebar from More; pinned, the row shows what today cost and opens the Costs view. It is off until you pin it. The phone shows the computer's own cost figures when paired. - **See where your API money goes.** A new Costs view shows what today, the last 7 or 30 days or this month cost: by provider and model, by area (chat, Code, Flow, tasks, pictures, background), the most expensive conversations and the tokens behind it. Calls without a price are named and never counted as free. It also points out where you could save, with the amount behind each hint and a button to the setting. Open it with a click on the connection card at the top of the sidebar, from the System popup or with the new Costs widget on the dashboard. - **Flow pictures show their price.** A picture made in Flow now starts on the same fast, low-cost image model chat and Code use, shows what the provider billed for it under the picture and in the recent list, and that amount counts in the chat footer and the Costs view alike. - **The Cockpit says what it holds.** Cockpit now has a fixed place in the sidebar right under Chat, with a count of what is waiting for you. The page opens with a strip: what needs you, what is running, how many schedules and when the next one runs, open tasks and goals, and each number opens its view. One switch covers Board, Live, Schedule, Tasks and Goals, and while the Cockpit is open, Schedule and Tasks also stand under it in the sidebar. - **Discover says what is private and what is shared.** Joining Discover now explains in a few lines what the feed shows, what your agent posts under your tag, that your chats, files, memory and keys are never sent, that your Briefing stays on this device, and how to take a post back. The same lines are behind an info button on the page, and your own posts carry a Public mark. - **Slide masters by default, your own look on request.** Presentations still start on the slide masters; ask for your own design or a particular look and Skales lays the slides out freely instead. - **Word documents that look designed.** Word files now come out in a real house style: proper heading, body, quote and list styles, page numbers, a title page and a table of contents once the document is long, tables that always fit the page with a header that repeats, charts, key figures and diagrams as pictures, and formulas as real Word equations you can edit. The same text you would turn into a PDF makes the Word file. - **Change someone else's Word file without breaking it.** Ask Skales to change an existing Word document: replaced words keep their look, new paragraphs and list points take the document's own styles, and earlier tracked changes and comments stay. Say "with tracked changes" and every edit arrives as a change you can accept or reject in Word. - **PowerPoint on real slide masters.** Presentations are built on a master with title, section, content, picture and chart layouts, your logo, tagline and slide numbers. Text that would overflow is set smaller or continues on a follow-up slide, and Skales says so. A deck that places its own boxes keeps them. - **Spreadsheets with formatting.** Excel files get a frozen header row you can filter, number formats that fit each column, widths that fit the content, a totals row set apart, and the formulas stay formulas with their results already filled in, so previews on a phone or in mail show numbers instead of zeros. - **A look before it is handed over.** Every PDF, Word, PowerPoint and Excel file is checked before you get it: empty pages, tables or pictures wider than the page, overfull slides and files that would not open. What can be fixed is fixed, and the rest is named in the answer. - **Diagrams in reports.** Flowcharts and other diagrams in a report now appear as drawings in the PDF and in Word, not as their code. A diagram that cannot be drawn shows its code with the reason. - **Your brand fonts travel with your files.** The brand kit now holds font files: add TTF, OTF, WOFF or WOFF2 under Settings → Brand Kit (web fonts are converted), or import the kit from your website and its fonts come along. They are embedded in PDF and Word. A font without a file says which font stands in, and it is the same one in every format. - **A brand kit per project.** Pick a brand kit on a project, and the reports, Word, PowerPoint and Excel files and charts from that project's chats carry it. Saying "without branding" in a chat still wins. - **Cleaning up a chat's working folder goes through the trash.** When a quiet chat's unkept files are cleared after the days you chose, they now go to the trash first, where you can restore them for 30 days. - **Charts and key figures in the answer.** Skales now draws numbers: a chart (bars, stacked or side by side, lines, areas, scatter, pie and donut, heatmaps) and key-figure tiles with their change appear right in the answer, in the colours of your theme, with Show source, Copy and Download SVG. A chart that cannot be drawn says why instead of leaving an empty box. - **Reports as PDF without a web page.** Ask for a report as PDF and Skales sets it directly: title block, headings, tables, quotes, formulas, charts and key figures as sharp vectors, page numbers, on white A4 paper. When you ask for HTML, a web page, a visualisation or slides, the familiar page export stays exactly as it was. - **Your brand kit, applied for you.** Name your company (or one of its other names, new under Settings → Brand Kit) or say "with our branding", and the report and the charts in that chat use the kit's colours, fonts, logo and tagline; the file card says "Branding: ". "Without branding" switches it off. The choice holds for the rest of the chat. A report made without a kit offers "Re-create with branding" on its file card. - **The phone follows your brand kit too.** In a chat your computer runs, the phone draws charts in the kit the computer chose, and a report's file card names the kit or offers to re-create it with one. - **Every chat has a working folder you can keep from.** What an agent writes for a chat lands in that chat's own working folder first and shows up in the Files list as "Working folder". Keep a file, or all of them, and it moves to where the chat works (its project or Code folder); a name that is already taken gets a number instead of being overwritten. Discard the rest. What nobody kept is cleared once the chat has been quiet for a while, 30 days unless you pick another time under Settings → Trash, where you also see how much space the folders take and can clean up now. Running and open chats and the pictures your history shows are never touched. A paired phone sees the same files and can keep or discard them. - **Discarded work goes to the trash.** Discard in a chat's working folder, here or from the phone, now moves the files to Settings → Trash instead of deleting them. There they can be restored into the chat's working folder for 30 days; they are deleted for good only when you delete them there, empty the trash or the 30 days run out. - **File cards follow what you keep.** After you keep a file from a chat's working folder, the file card under the earlier answer says where it went and opens, downloads and shows it there, instead of calling it gone. - **A sandbox browser for agents.** In an agent's editor, Browser now offers My browser or Sandbox. On the sandbox every run opens pages in a fresh profile without your accounts, cookies or history; it is deleted when the run ends, and what it downloads lands in the chat's working folder. Such an agent can still use your own browser for one step, but only after you approve it, every time. Isolated agents always browse in a sandbox. - **A sandbox agent keeps out of your Chrome.** An agent set to the sandbox no longer uses your Chrome through the paired extension just because the chat is connected to it: it browses on its own throwaway profile, and when it really needs your Chrome it asks with a card, every time. An agent set to My browser works as before. - **Updates can come from a bundle.** Under Settings → System → Updates, "Updates come from a bundle" is for Skales shipped inside a larger package that brings its own versions: Skales then does no update check, shows no update notice and downloads or installs nothing of its own. The package can also decide this itself with the SKALES_MANAGED_UPDATES environment variable. The version and its build stay visible. - **An agent can keep its own project.** Pick a project in the agent's editor and every new chat with that agent starts in it and works in its folder, whether you start it here, from the browser on another device or from your phone. A chat can still be moved to another project, and an active Code folder still comes first. - **The chat has a side panel, and a calmer header.** A panel on the right is open by default: an Overview with folded cards (what the chat runs on, how full the model window is and what fills it, the plan, background tasks, connectors and, with a bound folder, the changes in it), the document and the chat's files. Drag its left edge to make it wider or narrower; whether it is open and how wide it is stays after a restart. On a narrow window it steps aside instead of squeezing the conversation. The header keeps the agent, the model, the panel button and New chat; History, Memory Mode, Incognito, Compact, Share a window, Mini Mode, the hand-off to the Code window and Continue with Iris are in the new “⋮” menu. - **Background work at a glance.** The side panel's background card now lists helpers that are still working (with how many are done), standing goals, the next three scheduled jobs and the messages waiting in this chat's queue. When nothing runs, it is one quiet line instead of an empty card. - **Your phone shows the same files for a chat as the computer.** For a chat your computer ran, the phone's file list now asks the computer, so it includes what helpers and Studio made, exactly as the Files tab here shows it. - **Flow: your own video length.** Next to the quick picks and "Follow instructions" you can type a length for a video, film or motion clip. With a video backend pinned, the quick picks show only the lengths it makes; a length it cannot make moves to the nearest one it can, and a line under the row says so. Switching to a backend that cannot make the set length moves it the same way. Motion clips take any length. - **The helpers fold away once they are done.** While helpers work, their panel under the answer stays open so you see the progress. Once they are done it folds to one line with how many helpers ran, how many answered, how many failed, what it cost and how long it took; click it to open the panel again. Your choice is kept for that run, also after a reload. A helper that failed says why in one short line, and clicking it shows the whole reason, formatted, in its detail. - **Every file of a chat in one place.** Under an answer that made or took in files, a line says how many ("3 files") and opens a new Files tab beside the document in the side panel: that answer's files, or all files of the chat, with what the assistant wrote, Studio and Visuals made, helpers wrote and you attached. Preview, open, show in folder, jump to the message, copy the path or drag a file into another app. A file deleted since stays listed, greyed. With a folder bound to the chat, its tree sits underneath. - **Friend Mode explains how often.** The frequency row now says what Rarely, Sometimes and Often mean and how the wait grows when check-ins go unanswered. The phone's Buddy follows the same rhythm and the same words. ## v12.9.51 - Guardrail **A release about limits that hold: helpers that cannot send on their own, deletions on a server that always ask, your keys in the system's key store, and a conversation that stays whole.** Helpers started for research can no longer send, post or publish anything, and a sync that deletes files on a server shows its own question every time, in every mode. Your safety mode now sits at the top of the System menu, and Settings lists every tool that asks first. Stored API keys are sealed by the macOS Keychain, Windows or the Linux secret service, setup asks before switching on the nightly and morning schedules, and nothing is kept for telemetry without your opt-in. The assistant keeps the whole conversation after a long reasoning turn, a stop, a retry or an edit, plan steps survive a summary, the dashboard stays readable over your own background, the assistant can tell you why no Friend Mode check-in came, previews keep their styles in a browser on another device, one press of the down arrow reaches the end, and Anthropic's spending limit, free OpenRouter agent models and keyed local servers in setup all behave as they should. Notifications read like messages: a clear title, a clean preview instead of raw markdown, a click that opens the right place, a note when an answer is ready while you are elsewhere, an unread count on the app icon, and every kind with its own switch next to Mute all. ### Fixed - **Notifications read like sentences.** A finished task, a Friend Mode check-in or any other notice used to reach the system notification, the Buddy bubble and the in-app toast as raw model output, headings, asterisks, code and all, cut off mid-word. All of them now show the same clean text, cut at a word with an ellipsis. Telegram, WhatsApp and email keep their formatting. - **A system notification says what it is about and opens it.** Each one now carries its own title (Task complete, Waiting for your approval, Check-in and so on) instead of just "Skales", shows the app icon, and a click brings Skales forward on the task, session or page it is about. On Windows, notifications now belong to the installed app, so they stay in the Action Center and their click works. - **"System notifications" has its own switch.** It sits in the notification settings next to "Mute all"; until now it was on with no way to turn it off except muting everything. - **One notification, one place.** While the Skales window is in front, a notice appears inside the app; while you are elsewhere, it comes as a system notification; while the Buddy is on screen with the same text, the Buddy says it. It no longer arrives two or three times at once, and a notice the system notification did not carry still appears in the app once you are back. - **The Buddy bubble counts only when the Desktop Buddy is on.** With the Buddy switched off, notices sent to the bubble were counted as delivered and nothing showed; now the system notification takes over. - **Mute and quiet hours hold for every notice.** The "agents finished" notification and the Telegram message notification now follow the mute switch, quiet hours and the system-notification switch like every other one. Quiet hours set to 0 to 0 mean no quiet hours for Friend Mode too, instead of a silent day. - **"Answer ready" when you are in another app.** When a Chat, Code or Flow answer finishes while Skales is not in front, a system notification shows the session's name and the start of the answer; a click opens exactly that session. It has its own switch under notification types and follows mute and quiet hours. - **A Telegram message notifies you while the window is in the background.** It used to appear only while you were looking at Skales, and with a broken icon. - **A notification toast and a row in the list open their own place.** "View" used to lead to the notifications page every time; it now opens the task, session or page the notice is about, and a click on a row in the list does the same. - **The unread count on the Dock or taskbar icon.** Skales shows how many notifications you have not read on its icon (a dot on Windows) and clears it as you read them. It has its own switch in the notification settings. - **Your phone only buzzes for what you are waiting for.** Acknowledgements and "the run went idle" no longer arrive on a closed phone as "Your reply is ready", a task that waits for you or stops says so, a stopped task no longer reads as a finished one, and an approval request is never held back because a reply was pushed seconds before it. - **An incognito conversation wakes your phone only for an approval, and says nothing.** Messages from an off-the-record chat reach a paired phone as before, encrypted, but no longer make a closed phone show "Your reply is ready". Only a question the run is waiting on still wakes it, with the same general "Something needs your approval" every approval shows: no conversation, no tool and nothing of what it wants to do, and a tap opens the card in the app. - **Text stays readable on the dashboard over your own background.** With a picture, a colour or another pattern behind the window, the cards on the dashboard and every other page let it show straight through, so a bright picture in dark mode or a dark one in light mode took the text with it. The cards stay glass and the picture still shows, but each one now lays just enough of the base colour under itself to keep its text readable over the brightest and darkest point the background can reach, in light and dark and with any accent. Without a background of your own nothing changes. - **Small grey text is easier to read in dark mode.** Hints, dates and other muted text in the Skales X dark theme were a touch too faint on the cards. They are now a shade lighter, enough to meet the usual readability contrast on a card, and nothing else in the theme changes. - **Skales can tell you why no Friend Mode check-in came.** Asked about Friend Mode, the assistant guessed, because it had no way to look. It now reads the live state: whether Friend Mode is on, the frequency and quiet hours, each chosen channel and whether it can deliver, the last check-in that reached you, the earliest time for the next one, and every reason nothing is planned, such as a channel that is not connected or check-ins switched off on the Notifications page. Nothing changes and nothing is sent when it looks. - **Friend Mode reaches you with only the Buddy bubble or only your phone chosen.** Before writing a check-in, Friend Mode looked only at Telegram, WhatsApp and email, so with the Buddy bubble or the paired Skales phone app as the only channel no check-in ever came. Both now count on their own: the phone when it is paired and this computer is connected, the bubble when the Desktop Buddy is switched on and you are not in the chat. While you are in the chat the check-in waits a minute and tries again, without asking your AI provider first. With the phone app as a channel, a check-in also no longer waits until you have been away from Skales for half an hour, the same as with Telegram, WhatsApp and email. The Chrome side panel and the Office add-in do not count as a paired phone. Asked about Friend Mode, the assistant names the same reasons, such as no phone being paired. - **Friend Mode can reach you as a system notification.** The Friend Mode channels now offer a system notification of their own, off until you switch it on, so nobody gets it without asking. It shows the clean check-in under the Check-in title, a click opens the conversation, and it follows Mute all, quiet hours and the System notifications switch; with that switch off the row says so, and so do the Test button and the assistant when asked about Friend Mode. - **One "Always allow" where one is enough.** The approval card offered two session-long answers that read the same for most tools: this tool for this reason, and this tool whatever stops it. For a tool that only ever asks for one reason, such as publishing over FTP, only the wider answer is shown now; tools that can stop for different reasons, such as shell commands under Auto, keep both. The same in the Code window and on a paired phone. - **How much Skales may do on its own is easy to find.** The System menu at the foot of the sidebar now opens with your safety mode and one sentence on what it asks about; a click opens that setting. Settings, Safety lists, by group, every tool that asks before it runs, read from the same table the approval prompt uses. Both name everything that asks in every mode: purchases, sign-ins, publishing, exports, course uploads, deleting on a server, a click that deletes or pays, new tool code and changes to more than 20 messages in your mailbox. - **One press of the down arrow reaches the end of a long chat.** In a long session the button stopped short while the content below kept growing, and it took several presses to reach the live answer. It now follows the end until it holds still, jumps over long distances, and stops the moment you scroll yourself. - **Flow previews keep their styles in a browser on another device.** Opened on a phone or another computer, a preview page with its own stylesheet, fonts or images showed as plain unstyled text, because those files were refused without the sign-in. The page now hands them a short-lived pass for that one project, and fonts and modern image formats are served with their proper types. The same holds for pages previewed in the Code window and for earlier versions opened from a Flow project's history, and a link to a section further down a preview page stays on that page. A preview left open for hours still reloads. - **The assistant keeps the conversation after a long reasoning turn, a stop, a retry or an edit.** The history budget counted parts of each message that are never sent to the model, such as its reasoning and the earlier versions of a retried or edited message. One long reasoning turn filled the budget, and every earlier message of a short chat was left out, so the model answered as if the conversation had just started. Only what is sent now counts, and a turn that does not fit is shortened instead of left out. - **The plan card keeps its steps after a long chat is summarised.** When older messages were summarised, the assistant re-sent its plan in other words and every re-worded step appeared a second time, done steps included. A step said differently is now recognised as the same step, while a step with one word swapped, such as create and delete, stays a step of its own. - **The first reply no longer stands on "Working: load_tools" while helpers run.** The step that loaded tools and started helpers showed that line for the whole run; loading tools is instant and is no longer shown as work in progress. - **Free OpenRouter models made for agents answer.** Some free models on OpenRouter are only served to apps filed as agents, and Skales did not say what kind of app it is, so they answered 403. Every OpenRouter request, AIPointer's included, now names Skales as a personal and command-line agent. - **Your API keys are sealed by your operating system's key store.** Stored API keys and passwords were always encrypted, but the key that opens them sat in a file next to the settings. It now lives in the macOS Keychain, the Windows credential protection or the Linux secret service, and the file is removed once the move has been checked. On a Linux desktop without a secret service nothing changes and Settings, Backup says so, as it does when the key store cannot open the key on this computer. The Telegram and Discord bots read the key the same way. Backups work as before. - **"Show older messages" has room to breathe.** The button sat tight against the system notice below it in a reopened chat; it now has the same spacing as the notices around it. - **Sub-agents cannot send anything on their own.** Helpers started for research could still send Telegram files and notifications, because the list of tools they may never use named only some of the senders. Every tool that sends, posts, uploads or publishes is now out of their reach, from WhatsApp, Outlook and git push to Drive uploads and changes to a WordPress site, and a helper that reads the conversation is told that the request in it belongs to the main assistant, which delivers the result. - **Deleting files on a server asks every time.** A folder sync with delete removes files on the server that your local folder does not have. Once you had allowed one publish in a chat, later syncs with delete went ahead without a question. Each one now shows its own card, in every mode, and no earlier yes covers it. A sync that deletes also removes the folders it emptied, so a web server no longer answers with an error page for an empty folder. - **A spending limit you set at Anthropic is named as one.** When Claude stopped because of the limit on your own Anthropic account, the chat showed the provider's raw error. It now says the limit is reached, gives the date Anthropic names, and says where to raise it. For the next ten minutes Skales does not ask Anthropic again with the same key, for the chat, its helpers and side tasks alike, and then asks once more; a limit you raise is picked up by the next answer or at once by Test in Settings, as the message in the chat now says, and a different key is not held back. - **No telemetry trace without the opt-in.** With telemetry off, the daily channel count still wrote a small state file with a "last sent" date, although nothing was ever sent. With telemetry off nothing runs and no file is kept, and a file left by an earlier version is removed. - **The nightly and morning schedules are yours to switch on.** Daily Stand-up (9:00 on weekdays) and Identity Maintenance (3:00) were created and switched on with every new install. Setup now asks about both, each with one sentence on what it does and that it uses your AI provider; without a yes they stay off, visible under Schedules. Schedules you already have stay as they are. - **Fetch Models during setup uses the key you typed.** Setting up an OpenAI-compatible server that needs a key, Fetch Models sent no key, so the server answered 401, and the message named a URL without /v1, which looked as if the URL had been ignored. The typed key now travels with the request (never in the address), a /v1 you typed is kept, and a refused key is named as such. - **A trimmed tool list keeps the tools the assistant asked for.** When a model's input budget forced a shorter tool list and on-demand loading was off, the cut could take exactly the tools the task needed, with no way to load them back, and the assistant was told to use a loader it did not have. Tools from groups it asked for or already used now survive the cut, and the note says plainly when a tool is out of reach. - **Asking for Skales Visuals gets Skales Visuals.** The list of image engines the assistant reads named Skales Visuals next to the image generators, so a request for a designed graphic could come back as a generated picture with broken lettering from another provider. Skales Visuals is now named there as the designed-graphics path, and naming it as an image engine leads back to it. - **A generated picture no longer ends the turn.** Some image providers deliver JPEG, which was saved and passed on as PNG, and a model that checks the type refused the whole answer. The type is now read from the picture itself, and the file gets the matching name. - **Clean output also removes hidden text.** With Clean output on, answers now also lose the invisible tag characters that can spell out hidden instructions, the variation selectors that select nothing, and the remaining invisible format characters. Direction marks go in left-to-right text, as the setting always said, and stay in Hebrew or Arabic, where they place numbers and Latin words. Subdivision flags such as Scotland and Wales and emoji sequences come through intact, and code is never touched. - **Server profiles over FTP work again on hosts that also answer over IPv6.** Since the desktop runtime update in 12.9.40, listing, downloading, uploading and publishing over plain FTP or FTPS could fail on such hosts with a message that the server's passive-mode answer could not be read. Skales now asks for the data connection in a way that works over IPv4 and IPv6 alike, and connects it to the same server the session is already talking to. - **The Chrome extension and the Office add-in can be downloaded from the guide again.** The download links on the extensions page pointed at a route of the app that needs its sign-in token, so they opened an error in the browser and on skales.app; both packages are now attached to every release and the guide links there. - **The chat stays plain when you pick a plain background.** The green and cyan glow that breathes behind the chat while Skales thinks, answers or runs a goal now only appears with the drifting circles and Background animation on, the same rule the background itself follows. With Plain, Honeycomb, Waves, Dots or Contours, or with the animation off, nothing lights up while Skales works, and changing either in Settings > General > Appearance applies at once, without a reload. - **A closed phone shows what arrived, still end to end encrypted.** A reply, an approval request, a finished or stopped task, a Friend Mode check-in or a message from your computer now reaches a paired phone whose app is closed with the session's name and a clean line of what it says, instead of only "Your reply is ready". The preview is encrypted for that one phone like the message itself, so the relay, Apple and Google carry it without being able to read it. An incognito conversation sends none: its approval request still says only that something needs your approval. - **Approve or reject from the lock screen, even with the app closed.** An approval request carries enough of its card to the phone that the Approve and Reject buttons can answer it straight from the notification, for the same everyday requests that already had buttons while the app was open. - **Answer from the "Answer ready" notification on macOS.** The notification for a finished chat answer has a reply field; what you type there goes into that chat as its next turn, or waits behind the turn still working there. Skales stays in the background and the window is not reloaded, so whatever you had open, and anything you had typed, stays where it was. An answer the chat cannot take yet, or one typed while Skales was not responding, waits on this computer and goes out on its own once the chat takes it, also after a restart, in the order you typed it and never twice; a notification says it waits, and a click puts it into the composer instead. An answer that waited more than a day, or whose chat was deleted, is not sent, and a notification shows you what you wrote. Answers waiting to be sent are not part of a backup. ## v12.9.50 - Aftermath **A release about work that takes many hands: agents you can watch and steer one by one, a composer that finishes your sentence, and films Skales cuts, mixes and checks itself.** When several agents work on one thing, they now show as one panel with a band per phase and a tile per agent, and each agent can be stopped, steered or restarted on its own while the others carry on. A large task can be planned first, confirmed, run in phases with helpers on their own models and brought back as one answer that names what contradicts and what is missing. While you type, the composer suggests the rest of the sentence from a small model on your own computer, in the chat, Code, Flow, Lio AI and Iris, and a paired phone can borrow that model from this computer. Skales reaches further out: the Chrome side panel and the Word, Excel, PowerPoint and Outlook task pane pair with your Skales like a phone does, sixteen ready-made automations become a scheduled job in a few answers, and a custom endpoint can speak Anthropic Messages or OpenAI Responses as well as Chat Completions. Claude on your own Anthropic key is priced from Anthropic's list and its effort level reaches the model on every surface, and long thinking turns are no longer cut off. Flow learns the craft of a film. Skales can record itself in a separate demo copy, render one timeline in 16:9 and 9:16, look at its own film and redo only the seconds that changed, place takes as layers, slow clips around their moment, and mix voice, music, effects and clip sound into one track with stems. Narration and music come back measured, generated clips survive a restart, and an OpenRouter management key or an empty balance is named with the fix. ### Added - **Your own background behind the main window.** Under Settings > General > Appearance the Skales X background now offers Honeycomb, Waves, Dots, Contours and Plain next to the drifting circles, all painted in your accent colours, plus a background colour that tints the light or dark base. You can also set your own picture: it lies behind the whole window, sidebar included, with Dim, Blur and an Overlay colour that follows your accent until you pick one, and Remove takes it away again. The picture is stored as a file in the data folder, stays out of Flow and Code, and its blur is drawn once, so it adds no GPU load while you work. Moving patterns stand still with Background animation off or reduced motion on, and nothing changes until you choose something. - **Desert Day and Desert Night come with Skales as background pictures.** The Background picture row in Settings > General > Appearance now shows small previews of Desert (auto), which is Desert Day while the app is light and Desert Night while it is dark, Desert Day and Desert Night next to Choose picture, with the selected one marked, and Dim, Blur and the overlay colour work on them as on your own picture. Your own picture stays available while you try the others, and Remove simply turns a shipped picture off. A new installation starts on Desert (auto) in the Skales X theme; an updated installation keeps exactly the background it had. - **Setup asks whether you want the desert behind the app.** While Skales X is chosen in the look step, a Desert background switch with Day and Night previews sits under the theme cards, on by default. Turn it off, or finish setup on Classic or Flat, and the installation starts without a picture, so switching to Skales X later in Settings brings no desert along. Only the choice at the end of setup counts; trying other themes on the way changes nothing. - **Ready-made automations in a few steps.** Schedule now has a Blueprints view with sixteen automations, from an important-mail watch and a news digest to price, competitor and community watches, a morning brief and a weekly review. Pick one, answer a few questions, choose how often it runs and whether each result also goes to your paired phone, Telegram, WhatsApp or email. It becomes a normal scheduled job you can pause, run, edit or delete, asking twice never makes a second copy, and anything that is not set up yet is named with a link into Settings. Type /blueprint in the chat for the same catalogue. - **Narration returns the timing a film is cut to.** Every voiced line comes back with its length and the measured start of each spoken phrase, a script with several speakers is one request with a voice and a direction per line, a tempo factor speeds lines up at the same pitch, and long pauses inside a line can be shortened. - **Generated music comes back measured.** A track reports its real tempo, first downbeat, drop and bar-exact loop length, so the picture lands on the beat and a short track is extended on the bar; tracks over 30 seconds use the long Lyria model on OpenRouter. - **Generated video clips survive a restart.** Each clip is a background job whose provider job id is saved before the first poll, so a restart collects the clip instead of paying for it again; several clips render side by side, slow clips are never cut short, renders are only given up when they stop moving, and the fast Veo tier is the default. - **An OpenRouter management key and an empty balance are named.** "401 User not found" on every call is explained as a management key with the way to a normal API key, and a used-up balance is named as such, in the chat, in every tool result and in the Settings key test. - **Skales can film itself for a video or tutorial.** Asked in Flow, the chat or Code, it records a second copy of the app in a separate demo profile (remote access, feed, telemetry and channels off), clicks through it by script (pages, typing, light and dark, the Appearance skins), and returns a 30 fps MP4, the picture sequence, sharp stills and the time of every step, ready to place in Flow. Your own window and desktop are never filmed, and the second copy closes when the take ends, fails or is stopped. - **One motion film renders in 16:9 and 9:16 from a single timeline.** A composition declares its formats once and comes out as `motion.mp4` and `motion-9x16.mp4` (any aspect or pixel size works), laying itself out per format while the timing stays shared; a vertical cut shows an interface recording as the whole window, and Flow's render card lists every file. - **The assistant checks its own film and fixes only the seconds that changed.** `check_motion` returns contact sheets of every format, a frame-by-frame flash scan, waveform and spectrum with loudness, and the layout rules (text cut at the edge, heading margins, subtitle line, overlapping text, cropped interface in 9:16, frames that change with seek order) as pictures the model looks at; `render_motion` re-renders a range of seconds and splices it into the existing files. - **Takes become layers of a motion film.** `add_motion_take` turns a recording of the Skales interface, any video, a folder of pictures or a still into a frame sequence the composition can slow down, speed up or cut around a moment, with the same tools in Chat, Code and Flow. A take is placed with the same speed, fit and moment arguments as a clip in the editor, and the ready segment comes back with it. - **A film's whole soundtrack is mixed in one step.** Voice lines on their seconds, music ducked under the voice with its drop landing on the cut you name and lengthened by whole bars when it is too short, tape stops, sound effects on timeline cues and the clips' own sound (or none) come out as one track at -14 LUFS plus separate voice, music, effects and clip stems, and Skales reports the measured loudness, peak, ducking depth, drop and loop. - **Generated clips can be slowed down and cut around their moment.** A clip in the editor plays at any speed with its sound in step, fits a stretch of the film, or lands its one moment (a launch, a blink) exactly on a chosen second; video layers take a start point and a speed too. - **Skales looks at every clip it generates.** The start picture and three frames of the finished clip come back to the model so a wrong picture is made again before it is used, and a clip the service's content filter refuses comes back with how to soften the wording and try again. - **Several agents at work show as one panel you can act on.** Sub-agents of a chat turn, a job split into background parts, a plan with phases and a team run all draw the same panel, standing open in the conversation, chat, Code, Flow and Iris alike, instead of behind a folded header: the job's name with Stop for a dispatched job, a lead line with the phase, answers and time, phase counters ("Research 3/13"), then one band per phase that folds away once it is finished, holding one tile per agent: a rounded honeycomb cell in your accent colour with the agent's role icon inside, its state shown as the cell's outline, fill and mark. Clicking a tile shows its role, phase, errand, model, tokens, cost, run time, steps, attempt, last steps and result or error, with Stop for that one agent while its siblings carry on, Steer with a message field, and Restart once it has ended (it asks first, because only that agent is paid for again). "As table" folds out the agents with state, tokens and time, and the picked agent comes back after a reload. Reduced motion keeps the shapes and stops the pulse. - **A paired phone gets its typing suggestions from this computer.** When the phone has no small model loaded, its composers ask this computer, which answers with the same model, the same cost row on the conversation and the same quiet hand-over after "too many requests" as here; the phone's Privacy Mode keeps the answer on this computer's own model, and a suggestion the phone no longer needs is stopped here too. - **The composer suggests what you are about to write.** While you type, the rest of the sentence appears in grey behind the cursor, and with an empty box after an answer the message you are most likely to send next; Tab takes it, Esc or typing on drops it. It works the same in the chat, the new-chat page, Skales Code, Flow, Lio AI and Iris. A small model on this computer (Skales Local or Ollama) answers by default, asked only after a short pause in typing and cancelled by the next key. A small fast cloud model can be chosen instead; its cost counts toward the conversation, a free tier that refuses with "too many requests" quietly hands over to the local model, and Privacy Mode keeps it on this computer. Key, password and secret fields, and text that carries a key or a password, are never predicted. Switch it off or choose the source under Settings > Assistant > Typing suggestions; without a local model it stays quiet and the row offers to set up Skales Local. - **A custom endpoint can speak Anthropic Messages or OpenAI Responses, not only Chat Completions.** Each endpoint in Settings > AI & Models > Providers names its protocol (OpenAI Chat Completions, Anthropic Messages at /v1/messages, OpenAI Responses at /v1/responses), and chat, tools, streaming, the effort dial, the long thinking wait, the model list, Code, skills, Discover and fallback all use the matching wire. Endpoints saved before keep Chat Completions. Every extra endpoint also has its own Test connection with the connection map, run against what the card holds before it is saved. - **Reverting a file change does not count as new work.** Several edits and individual edits share the same progress history, so returning a file to an earlier state does not keep a turn running. - **Conversation model labels stay with the answers.** Repeated model switches, concurrent message saves and reloads verify the existing paired provider and model stamp. - **Several file changes can be applied together.** Every exact replacement is checked before writing; failed or interrupted batches restore the previous files and keep existing folder permissions and Undo. - **Conversation compaction uses the real text tokenizer.** Tool arguments and results participate in the count, CJK and code no longer use a four-character guess, and image cost remains a provider-dependent estimate. - **Independent file reads in one tool turn can run together.** Read, grep, glob and directory listing keep their existing permission checks and return in the requested order; writes and other tools wait at ordering barriers. - **Each plugin run now executes in its own permission-bound child process.** Approved code and existing legacy approvals stay valid; file access stays inside its own folder and authorized calls use the parent broker. Stop, timeout, crashes and inspection share the same isolated launcher. Repeated unchanged plugin calls do not create extra code cards. - **Hunter and Discord can be connected from a ready-made API preset.** Choose either in API Connectors, confirm its domain and add your key. Hunter finds and verifies emails; Discord reads a specific message or pages channel history with the bot permissions you granted. Each preset starts without a key or domain approval. - **Large tasks can be planned, delegated in phases and combined into a sourced answer.** The lead proposes a confirmable plan, parallel helpers use their own instructions and configured models, and the final answer names contradictions and missing results. Progress appears in Chat, Code and the paired phone; unfinished work resumes after restart, Stop reaches every helper, and parallelism follows your settings. - **Documents can be searched by their section hierarchy.** Local search returns parent paths, selectable sections and exact source citations without embeddings. The same search works on the local knowledge base; changed documents invalidate outdated section references while ordinary reads and keyword retrieval remain available. - **A nine-role development team can be installed in one step.** The existing team picker creates a CTO, planner, architect, version-control specialist, builder, security and performance auditors, reviewer and QA. Review roles stay read-only through execution, and choosing the preset again reuses the existing team. - **Scheduled work can run without a model.** Reusable JSON skills execute file, document, script and mail steps through the normal permission checks. Mail prefilters can stop before any further work, or queue a separate agent task only for matching messages. Saved jobs and their completed steps survive a restart. - **Use Skales from Chrome and Microsoft Office.** Pair the Chrome side panel or Word, Excel, PowerPoint and Outlook task pane with your Skales server to chat and work in your open browser and documents, using the same conversations, attachments and action approvals as your paired phone. Manage and disconnect extensions in Settings. - **You can write to a sub-agent while it works.** A working helper's chip in Chat and Code, a running child in Tasks and the paired phone offer a one-line field; the helper reads the message after its current step, and a message that comes too late is shown as not delivered instead of disappearing. - **Earlier sub-agents can be named again.** Skales keeps what a conversation delegated with an id per helper, so it can list them, give one more work with its earlier answer in front of it, or run only the one that failed again without paying for the others twice. - **Sub-agents can be asked for an answer in a fixed JSON shape.** Skales asks a helper to correct an answer that does not fit and clearly marks one that still does not match. - **Memory has a Journey view: everything Skales learned, on one timeline.** Facts, lessons, procedures and every change to them, episodes and what waits for your approval sit newest first; each entry can be corrected, removed or restored, and `/journey` opens it from the chat or answers in Code, the messengers and on the phone. What you change there is saved at once, also when learning waits for your OK; a memory topic the assistant deleted can be restored there, and a topic deleted to be written anew can be written again. "Reset what Skales learned", the character reset and asking Iris to forget something erase for good and keep no copy. - **Skales tidies up its own procedures once a week.** Procedures nobody used for weeks are marked and later archived, never deleted, after a grace period however the tidy-up was started; a procedure you asked for is only marked, never archived. Custom Skills shows the archive with Restore, a Pin keeps a procedure, and an optional merge of near-duplicates can be undone and is declined when its procedures changed since it was proposed. - **A trusted project brings its own skills.** In a folder-bound chat or Code session, the skills a repository ships in its skills folders come first, a skill that arrives later is named before it is used, and Skales changes them only when you ask and as your approval setting says. - **Skales can rewrite, trim and archive the procedures it keeps.** A whole procedure can be replaced after reading it, a reference file taken out, and a procedure archived and restored; one file a skill brought can be read on its own. - **NVIDIA Parakeet transcribes on your computer, without any provider.** Settings > Voice > On-device voice offers Parakeet TDT 0.6B v3 (25 European languages, German, English, French, Spanish, Italian and Croatian among them) and v2 (English), about 490 MB each, next to Whisper. It is several times faster than Whisper Small on a laptop CPU. Speech in a language the chosen model does not cover goes to the next service, and the answer says why. - **Higher-quality offline voices.** German (Thorsten High) and English (Cori High, British, and LJSpeech High, American) are offered as the larger Piper voices, which sound clearly less mechanical. Every Piper voice now says on its card whether it is high or medium quality, and when several voices for one language are downloaded, the high one speaks. - **Skales can dub a video or an audio file into another language with ElevenLabs.** Ask in chat and the speech is translated and re-spoken in the speakers' own voices, with music and background kept; the dubbed MP4 or MP3 lands in the Studio dubbing folder. Stop asks ElevenLabs to delete the job and says whether it succeeded. A failed cancellation keeps the job number so you can ask to cancel again; a dub that takes longer than expected can be fetched later without starting another. - **You can clone a voice on your ElevenLabs account from your own recordings.** Settings > Voice > ElevenLabs takes one or more recordings and a name, asks once whether the voice is yours or the speaker agreed, and only then uploads them; the new voice is selected and appears in the library for chat, Studio, Flow and Iris. Voices you made yourself can be deleted from the same list. - **ElevenLabs Scribe can transcribe your voice, with the same ElevenLabs key that speaks.** Settings > Voice > Speech to text has a new choice: pick ElevenLabs Scribe and its model, and it goes first for dictation, the chat microphone, Call mode, Iris, voice messages and video understanding, with the existing chain behind it as the fallback. A key saved only for speaking is never spent on listening. A missing key, a refused key or an empty balance is named on screen. - **The ElevenLabs speech model can be chosen.** Multilingual v2, v3, Flash and Turbo are offered in Settings > Voice next to the voice, and chat, Studio, Flow and Iris speak with the one you pick. - **Signing in with ChatGPT now also makes pictures, without an OpenAI API key.** Image requests in chat, Studio and Flow go through your subscription's own image tool; the subscription picks the GPT Image model and the reply says the picture was made that way. With an API key the key is still used, so a picked model is honoured. Video is not offered through a ChatGPT sign-in. - **Code roles can be switched from a paired phone.** The choice belongs to the coding session and survives reopening; phone tasks run through the same architect, coder and reviewer chain as the Code window. - **A Flow 3D scene can render to MP4.** Use the same Render as video button and progress display as for a Motion composition. - **The diagnostics report has a Skales Local section.** It names the graphics backend, the device the engine found, how many layers actually went across versus how many were asked for, the active model and its context window, or says plainly that the local engine is not running with the last known values when it isn't. - **Flow's composer can now pick a narration voice and a music service.** Your choices are kept with the project for video, film, motion and courses; naming a different service or voice in a later message changes that choice. With nothing configured, the composer says so and where to set it up. - **A local or custom model now shows a connection map instead of one green check.** Test Connection on the LM Studio, Ollama, KoboldCpp or custom endpoint card draws Skales, address, server, model, context, tools and a real test turn with arrows between them, names the link where it breaks with the reason and the next step, and turns green only when the test turn comes back. It recognizes the usual traps: a server that is off or on another port, LM Studio or Skales inside WSL2, a server that only listens on its own machine, no model loaded, a context window too small for Skales, and a model without tool calls. The last map comes back after a restart. - **A chat or Skales Code error from a local or custom model offers Check connection.** It runs the same check with your saved settings and shows the same map right under the error, with a way to the provider card. - **The diagnostics report shows the connection map of your local and custom models.** The same links, reasons and next steps, in plain text for a bug report, without any key that sits in an address. When Skales reads its own logs it uses the last map instead of testing the model it is running on. - **A paired phone can show the connection map of this computer's local model.** An error from a desktop-run conversation can be checked from the phone with the same test; the map never carries a key from a custom address, and a second tap joins the check that is running. - **The LM Studio guide has a section for Windows with WSL2.** It explains which side listens where, which address to use, Serve on Local Network, the firewall, the loaded model and the context length. - **Skales Code checks many more languages after every write.** Rust, C and C++, Objective-C, Java, C#, PHP, Ruby, Kotlin, Swift, Lua, Bash, YAML, JSON, HTML, CSS, Dockerfile and Terraform join TypeScript, Python and Go. A missing checker is installed only after you agree to the exact command on the card, which picks the package manager your computer already has and names a missing one, and it installs in the background while the session keeps working; where your system has no install command, the card says which program to install yourself. - **An undone turn in Skales Code can be redone.** `/redo`, or the Redo button that appears above the message box after an undo, puts the turn back with its files and its conversation, the most recent undo first, and it still works after restarting Skales. A file you edited by hand in between is named and kept, and nothing is redone; sending a new message ends the Redo. A paired phone can redo the same way. - **Start a plugin of your own from a template.** The Plugins page offers four working examples: a list you keep by hand, a page that asks your model, a weekly review and Snippets for text you reuse. Give one a name and it is yours, ready to change by hand or by asking the chat. Snippets also shows tools the chat and the plugin can use; suggested text waits for you to add or discard it. The weekly review starts only when you switch it on and costs one agent run a week. - **A guide page on building plugins that hold up.** The plugin blueprint walks through the brief, the three modes, where your approval sits, how to check a plugin and how to share it, and the Plugins chapter of the guide links to it. - **Language checks no longer run code from folders you have not trusted.** In Skales Code, a language server that runs a project's own build files or plugins starts only in the folder you opened, a folder on your trusted list, or one you trusted for this session; a repository cloned into the project, code downloaded into it later, or a folder the assistant picked for the conversation itself, stays untrusted until you say otherwise, and a checker that would load such a folder along with your project leaves it out or does not start. A project you bound to a chat before this version counts as yours, and the submodules your repository lists are trusted with it. The Code window and a chat in Code mode ask "trust this folder" on a card, the status bar says which checks are off and why, and Settings > Assistant > Skales Code > Trusted folders lists every trusted folder and takes it back. - **Fifteen more languages are checked as you code.** Vue, Svelte, Astro, Laravel Blade, OCaml, Dart, Haskell, Julia, Clojure, Nix, Zig, Gleam, Elixir, Prisma and PowerShell join the languages Skales Code checks after every write. A missing checker is installed only after you answer the install card, which names the exact command and where it lands, in the Code window and in a chat in Code mode alike. - **Shell commands and file changes in a project chat can be undone, and every Undo in the chat can be redone.** When a chat works in a project's folder, a command that can change files is snapshotted first and a file the assistant writes, edits or deletes in that folder keeps its earlier version, so each step gets the same Undo button Code mode has. Reading commands are not snapshotted, audio and video stay out, large folders are skipped with a note (the limit is under Settings > Assistant > Skales Code), and if a command changed files it does not name, the Undo asks before restoring those. After any Undo in the chat, the same place offers Redo until you send the next message; a file you changed in between is kept and named instead of overwritten. - **Plugins you build in the chat can bring tools of their own.** Ask for a plugin with its own tool and the chat creates it; a bad name or a missing file is refused with the reason instead of half-written. The plugin's agent can use those tools too, and a tool that sends something outward still asks you first. Creating or changing a tool's code shows you the code and asks in every mode. If the code changes while you are reviewing it, a new card asks you to review the current version. Confirming that new card from a paired phone keeps the conversation usable for the next turn. Reopening a conversation keeps the review code on its approval card without duplicating it in the conversation history or crowding out earlier messages. Page-only edits no longer repeat unchanged tool code in approval requests. Plugin updates recover from unreadable code files and explain which file needs attention. Updated approval cards stay answerable in Telegram, Discord and WhatsApp. - **You can decide what Skales keeps before it keeps it.** With "Keep new things only after my OK" on in Settings > Memory > Learning, nothing Skales learns about you is written until you say so, whichever way it learned it; new facts, lessons and procedures wait in a block at the top of the Memory page and under the learning line in the chat, each with Keep and Discard. Changes Skales makes to its own procedures (a rewrite, taking out a reference file, archiving, restoring) and a merge the weekly tidy-up proposes wait there too. The same thing said again in more detail grows its entry, a longer entry shows its full text before Keep is offered, and an entry that changed after you looked asks you to look again. What you remove from the Journey or discard here is not offered again, with or without approval; when you ask for it again in so many words, Skales checks with you once. Removed entries stay restorable and declined entries stay declined until you change your decision. Large learning histories stay responsive when you remove or restore an entry. Nothing is dropped without your decision, and a paired phone can show and decide the same list. - **Telegram, WhatsApp, Discord and the terminal learn the way the chat does, and only from you.** Your conversations there get the same look-back, its cost counts toward that conversation's daily budget, and one short line after the answer says what was kept (in a group only how many; it can be switched off). `/learn`, `/refine` and `/btw` work there too. Other people in a group, or on Discord anyone but the owner, are answered, but nothing they say is kept. While Skales does not know who the owner is, it says so once with the way to set it, Settings shows the same, and nobody can confirm an action there; on Discord, Settings gives a one-time code that makes whoever sends it to the bot in a direct message the owner. - **A message you send on Telegram, WhatsApp, Discord or in the terminal while Skales is working joins that turn at its next step.** It works like the chat window and follows the same setting; "After the turn" keeps the previous behaviour, and "stop" still stops at once. A message that was acknowledged is always answered, or, if you stopped the turn first, named back to you. - **Standing instructions now have their own place under Persona, and can go at the very top.** Settings > Assistant > Persona shows the instructions that apply to every agent, your own included, while the persona text says it is for the default agent only. A new switch, off by default, makes the standing instructions the first thing every agent reads in the chat, your own agents, Code, the messengers and Buddy. ### Fixed - **Asking whether Skales works in Word, Excel, PowerPoint, Outlook or Chrome gets the real answer.** A question about "office docs", "word" or "the Chrome extension" now finds the Office add-in and the Chrome side panel, each with how it is installed, paired, limited and disconnected, and while nothing is paired the answer says where to pair it instead of pointing at the Skills page. The agent panel, the progress honeycomb, the protocols of a custom endpoint, the connection map, the effort dial, the on-device voices and the other additions of this release are found by the words people use for them, too. The Guide lists both extensions with their pairing state and a way into Settings. - **The guide explains Chrome and Office from the download to disconnecting.** Installing the Chrome side panel, serving and sideloading the Office add-in on the web, on a Mac and on Windows, connecting Outlook to Microsoft 365 with an Entra application, what each extension can do, its limits, what each connection message means and what to do about it, and how to disconnect. When Skales looks something up in its docs, a long list of places no longer pushes the explaining section out of the answer. - **Asking Skales about itself in German, French, Spanish, Portuguese or Croatian finds the guide.** "Wie verbinde ich Skales mit Word?" or "Wie koppele ich mein Handy?" now brings back the guide section that explains it, as the English question does; English answers are unchanged, and a question about the world in any language still finds nothing in the docs. - **An OpenRouter key problem is explained once.** A failed step that hit a management key or an empty balance carries the explanation a single time, even when the same result passes through more than one check. - **The effort dial reaches the model in a plain chat.** A conversation on the default assistant with no model picked in the composer now sends the chosen effort level to Claude (and every other model with its own effort setting) instead of quietly running at the model's default. - **Claude on your own Anthropic key shows what each turn cost.** Chat, Skales Code and Flow price Claude Opus, Sonnet, Haiku and Fable from Anthropic's list instead of "price unknown", with prompt-cache reads and writes billed at their own rates, so the spend meter and the spending limit count these turns; a model Anthropic has not priced yet still says unknown rather than borrowing an older model's rate. - **French and Russian keep talking to you informally on the new screens.** The automation blueprints, the paired browser and Office extensions, the custom endpoint warning and the agent panel no longer switch to the formal address. - **Reading pictures through your own vision endpoint reaches the same server the chat does.** The custom Vision Provider in Settings > AI & Models > Models per task reads its address like the chat (a bare host gets /v1, a pasted /chat/completions is removed), can speak Anthropic Messages or OpenAI Responses as well as Chat Completions, and an active custom endpoint that can see now reads screenshots instead of answering "Unsupported vision provider". - **Adding a custom endpoint such as Tetrate works on the first try.** The address is read the same way everywhere (with or without https://, /v1, a trailing slash, the full endpoint path or the version twice), so the model list and the chat no longer reach different addresses. Fetch models uses the key typed into the endpoint before it is saved, reads a paged catalogue to its end and names a refusal with its status, the endpoint's proxy is honoured, a second identical endpoint is named instead of saved, Add no longer stacks empty endpoints, and an error names "your custom endpoint" instead of a number. - **The effort control is in sight in a Flow project and follows what the model list says.** The project toolbar wraps onto a second row instead of hiding pills past the edge of the chat pane, and the model pill, which holds the model and the reasoning-effort choice, comes first. Whether a Claude model takes an effort level, and which levels, is read from Anthropic's own model list (also for your own endpoint speaking Anthropic Messages) after Fetch models; a model written with a date, a long-context suffix, a routed or Bedrock prefix, capitals or a dotted version (for example `claude-opus-5-5[1m]` or `claude-sonnet-4.6`) is recognised when the list says nothing. - **Long Claude tasks no longer break off while the model is thinking.** Claude from 3.7 on, GPT-5 and later and o4 get the long silence window and the longer call budget on every route (Anthropic direct, OpenRouter, Chat, Flow and Code), and any request sent with an effort level counts as a thinking request, so a quiet minute of reasoning is no longer reported as "stream stalled". - **A Flow project that reaches into another project now explains the way forward.** The model is told to say that you can name the project in your message or attach it with "Reference another project", and it loads any missing tools itself instead of asking you to change a setting. - **Plugins and custom skills reach only the hosts their rights name, on every network path.** WebSocket, EventSource, the shared HTTP client, sockets handed out by an allowed connection and a dynamic import of a socket or process module are now held to the same host list as fetch; plugins approved before keep running unchanged. - **A delegated part whose role shares no tool with the conversation now stops with that reason.** Narrowing still never widens a helper's tools; when the role's tools and the tools the run may use have nothing in common, the part fails at once, names both lists and is reported as a gap instead of running as a helper without tools. Team runs report the same reason for that member. - **Very large files and results from the Chrome and Office extensions stop with a clear reason instead of filling memory.** Files, screenshots, pages and attachments up to 64 MB still cross in pieces; a larger one is refused in the panel or the tool result right away, not after a timeout. Disconnecting the last extension that used an origin also stops that origin from reaching the server. - **Code sessions can be archived, restored or deleted from a paired phone.** Remote requests use the same session writers as the desktop, archive views remain distinct from active work, and archiving preserves the session's recency. - **Server capabilities explain FTP and FTPS alongside SSH.** Profile listings point FTP users to ftp_list, ftp_download and ftp_publish, while keeping SSH commands and sync tied to SFTP/SSH profiles. - **Tool discovery survives tight input budgets.** Available load_tools and check_capabilities stay in capped catalogues, and the payload accounting includes them even when their minimum cost exceeds the provider budget. - **Cloud tool budgets follow the API account's measured limits.** Anthropic and OpenAI token limits survive a restart, lower limits reported by refusals replace earlier measurements, and Override Model Limits accepts input tokens per minute alongside context and output. - **Agents can use their own FTP profiles and mail accounts.** Regular agents also retain shared accounts; isolated agents continue to see only their own resources, and a running turn keeps the identity it started with. Incognito retains its existing privacy boundary. - **Linux .deb installations keep the Chromium sandbox enabled.** AppImage fallback checks the setuid helper and its mount, and the Linux package includes the installation guide. - **An AppImage running under an AppArmor profile that allows user namespaces keeps the Chromium sandbox.** Skales reads the profile it runs under at startup, and the Linux guide shows the profile line for the AppImage path. - **A picture made with the image bar appears only once.** Google, Replicate and fal.ai results in the chat no longer show a second copy as a thumbnail below the answer. - **A dropped Anthropic or Gemini stream no longer suggests a longer timeout.** The message names what can cut a streaming answer, such as the network, a proxy or antivirus web protection. - **Temporary provider limits no longer leave acknowledgments and learning reviews paused.** They resume after the waiting period or when you switch outside the affected free tier. Limits reported after an answer has begun also pause these extra calls while keeping the text already received. - **Skales IQ congestion messages use your selected language.** The waiting hint and available alternatives stay alongside the message. - **Model lists refresh without disturbing other settings.** Reopening an unchanged catalogue keeps your existing preferences intact. - **Learning history restores reliably from a backup made on another computer.** Backups also keep a consistent history while Skales is learning. - **Rate-limit messages name the provider and explain your options.** When available, they show the account tier and retry time; after a free-tier refusal, acknowledgments and conversation reviews pause for that session. - **Continuing an image question starts showing progress immediately.** The answer streams into the open conversation, including in a remote browser, and a failed start leaves the question ready to retry. - **Image support follows the current model catalogue.** DeepSeek Flash can receive pictures, and a provider’s declared text-only models no longer inherit image support from their names. - **Privacy Mode keeps your standing instructions out of cloud conversations on every surface.** This also applies to custom agents, Code, messengers and Buddy when instructions are placed at the top, and when a local model falls back to a cloud provider. - **A background task that fails stops completely.** This also applies when it was allowed to run without a time limit. Folder triggers now report filesystem watcher failures in their existing schedule logs and can be restarted safely after the underlying problem is resolved. - **Sub-agents ask you in the conversation when they need approval.** In Safe mode, a background helper that needs to write a file or run a command puts the question in the chat that started it and carries on after your answer. A helper that does not finish says why in its report. - **NVIDIA NIM no longer offers or defaults to models NVIDIA has switched off.** Llama 3.3 70B and the other retired ids are gone from the list, a setting that still names one is sent as its current replacement, and a model NVIDIA retires later is named with its end-of-life notice and where to change it. - **The setting "Keep new things only after my OK" is found by Settings search in every language.** Words like memory, approval or remember, and each language's own words for them, now lead to it. - **When a provider reports an error mid-answer, Skales now shows that error instead of "the connection closed".** An overload such as NVIDIA's "Service temporarily overloaded (503)" is named with its status and text and retried after a short wait like any other 503; a stream the server ended and a connection that dropped each get their own sentence, and only a real timeout suggests raising the timeout. - **A busy NVIDIA model that times out in NVIDIA's queue says so.** The 504 NVIDIA sends after about five minutes is named as its queue giving up, so nobody raises a timeout that cannot help. - **Nemotron 3 Ultra and Super on NVIDIA get their real context window.** They were budgeted at 32K tokens, which compacted long tool-heavy conversations far too early. - **Diagnostics explain a failed answer more clearly.** The report includes the provider's error and distinguishes an answer the server ended from a connection that dropped. - **An answer on an old approval card no longer approves the next question.** A late answer from a phone or a second window is refused with a sentence instead of letting a different action through. An older Skales Mobile can answer the first question it sees in a task; after another question, the phone and the computer both say to update the app while the task keeps waiting, including after reconnecting or restarting. - **Someone else in a group chat or a Spaces room can no longer change or delete what Skales knows about you.** A message from another person in a Telegram, Discord or WhatsApp group, or a task another room member gives your agent, is never learned from and cannot rewrite or remove a remembered topic, and an approval card raised by their message can only be confirmed by you. - **Telegram answers each person in a group on their own.** Messages from different people that arrive at the same moment are no longer answered as one. - **A conversation with a local model is not sent to a cloud model for the look-back.** Skales says it skipped that conversation for privacy instead of learning from it quietly. - **What you remove on your phone is removed from the computer's copy too.** The phone's memory on a paired computer now follows it line for line, and what you already kept on the phone is not asked about a second time on the computer. - **DeepSeek works again with the models DeepSeek retired.** A DeepSeek card, a fallback entry or an agent still set to the old chat, coder or reasoner model now runs on the current DeepSeek V4.1 Flash in the same mode as before: without thinking for chat and coder, with thinking for reasoner. The DeepSeek card says so beside the old model, and the model list offers the current Flash and V4 Pro models. - **DeepSeek V4 turns show what they cost instead of "unknown".** The current Flash and Pro models are priced from DeepSeek's own price list, including the lower price for cached input and the half price outside DeepSeek's peak hours. - **Motion videos with music or narration finish encoding.** The sound is now cut to the exact length of the picture; before, the encoder could wait on padded silence after the last frame until the render failed. - **Motion videos longer than a minute keep their full length.** A 61-second composition was cut at 60 seconds without a word. - **A failed render says why.** The message names the encoder's actual error instead of its statistics, and a failed composition check names its reason. - **Project files shows a folder with many files as one card.** A render's frame dump no longer fills the panel with hundreds of empty rows. - **Answers no longer show half-written tool calls or say the same thing twice.** A tool call the model was cut off in the middle of is removed from the answer, and it no longer flickers into view while the answer streams. A sentence, a block of sentences or a paragraph repeated word for word is shown once, unless you asked for the repetition. - **A file Skales says it wrote is now checked on disk.** A file result confirms the saved file or says the write failed. If the assistant claims to have created a file without doing so, it is asked to finish the work and otherwise tells you the file is not confirmed. - **A video render or a Flow PDF, PowerPoint or Word export that gets stuck is now stopped and explained.** Instead of standing unfinished with no file, it ends after a few minutes without progress and says which step it was on and how far it got. - **Exporting a Skales Visual, an animated Type or a multi-scene Studio video to MP4 works again.** Earlier Visuals export too, and a page without animation support no longer stops the export. - **Local AI no longer reads as disconnected while Ollama downloads a model.** The dashboard row says which model is downloading and how far it is, and testing the Ollama card during a download says the runtime is busy instead of unreachable. - **A Flow project works in its own folder.** Its agent no longer lists, reads or copies other Flow projects unless you name one in your message or attach it with "Reference another project"; a refused step says why. - **Stopping Code from a paired phone confirms when that task has stopped.** A delayed reply from an earlier task cannot clear a newer coding task or its waiting question. - **Undo in Code reliably restores quick edits, including changes that keep the same file size.** Files you edited yourself after the turn are still kept and named instead of overwritten. - **Iris keeps the full Voice settings button visible when there is room.** An empty spoken line no longer clips the button or causes unnecessary scrolling; short windows still let you scroll. - **Keyboard activation in Iris acts on the focused control.** Space and Enter on recording, permission and settings buttons no longer start a microphone or open the text field; a configured alternate push-to-talk key and the original held-turn owner keep working. Repeating that key keeps the same turn, and releasing it after a settings change ends only the turn it opened. - **Iris keeps its orbit and decisions reachable in short windows.** Long explanations and their buttons scroll together without covering the orbit; reopening, resizing and reloading preserve the conversation and its usable layout. - **Iris recording and permission choices follow their explanation.** Retry, Discard and Voice settings stay in the same text flow when a notice wraps or an orbit opens, instead of covering the reason or becoming unclickable. - **Stopping an answer no longer leaves an unfinished thought marker in the visible text.** The answer and its reasoning stay readable when reopened, exported or read aloud. - **An Iris held key stops only the turn it opened.** Releasing the original key or leaving the window still works after changing push-to-talk settings; a later hands-free turn is no longer stopped by an older held press. - **Releasing Iris push-to-talk ends a microphone start that is still waiting for permission or the device.** A late microphone or audio-context response can no longer open an unowned recorder or leave Stop waiting forever; the next turn remains usable. - **A partial control-window failure describes the surface that failed.** A healthy frame or Stop bar is no longer described as invisible when only its neighbour could not load. - **A missing control page now names its HTTP error.** A 404 or server error stays visible in the existing notification and tool-result paths until a healthy page and control bridge return, rather than opening a silent, unusable frame or Stop window. - **The control frame covers the whole display on macOS.** Its window stays at the display origin instead of shifting below the menu bar, so the comet marks the actual desktop point and the bottom edge stays on screen; the Stop bar keeps its place inside the work area. - **Computer-control window failures now name their cause.** A window that fails to load or stops responding says why in the existing notification and tool result. The reason stays until the window recovers; a delayed error from an earlier task cannot affect the next one. - **The new local-provider checks and LM Studio errors use the familiar form of address.** French, Croatian, Russian and Turkish match the surrounding interface. - **Flow voice and music choices show their translated labels in all twelve languages.** The composer uses the same familiar wording as the rest of Settings. - **Motion exports keep looping audio and long end fades as heard in the preview.** A short music bed repeats through its timeline, and a fade longer than the clip reaches silence at the same moment. - **The control frame and Stop remain visible when screen recording permission is denied.** You can still stop the task, and taking a screenshot explains which permission is missing. - **Flow describes all eleven design modes when explaining what it can make.** Film and narrated E-Learning courses are included alongside the other existing modes. - **Flow Motion renders projects with their own fonts, animations and video clips.** The export and contact sheet include the project's files just as the preview does. - **A Motion render no longer rejects a frame whose picture has not changed.** A still frame can be revisited reliably while an unexpected visible change is still reported. - **Diagnostics distinguish errors from the current version from older ones.** An error left by an earlier installation is listed separately instead of blamed on the version you are running. - **When the agent cannot draw its on-screen control frame, it says so instead of clicking blind.** A missing display or a window that failed to open names itself as a toast and in the agent's own reply, rather than leaving a silent gap between what the agent believes is visible and what the user actually sees. - **Installing a plugin package that only partly writes to disk is no longer reported as a successful install.** A brand-new install that could not finish is removed instead of left behind as a broken entry; updating an existing plugin that cannot finish leaves the working version in place and says what did not arrive. - **A sub-agent that keeps repeating itself now stops and says why.** A helper stuck repeating the same unsuccessful work no longer leaves you waiting without an explanation. - **Push to talk now does what Settings says it does.** Choose off, hold, or toggle, and the key you set is the one that actually starts and stops Iris Orbit's microphone - and the Iris window now shows which key and which mode are active. - **Completed replies stay visible even when the model never separates its thinking from its answer.** Interrupted streams keep their text, saved affected replies are restored when reopened, and clearly separated thinking remains folded. - **The Business page says what its provider figure counts.** The number is the providers people actually use with Skales, custom endpoints included, and it is now labelled as providers in use in every language instead of reading like the list you can pick from. - **Flow's live preview shows the page as soon as it is written.** It used to stay on "Building your preview" until the whole turn had finished, and sometimes until the window was reloaded; it now shows the page once the agent's files stand still and catches files that settle just after the turn ends, without restarting the preview while the agent is still writing. - **Flow follows the brief over the project's defaults.** A length the brief names for the whole piece now wins over a duration preset you did not change in the composer (one you picked still stands), and the finished piece speaks the language the brief is written in, even when the brief names an audience somewhere else or the app runs in another language. - **Pictures Skales generates for a Flow page show up in the preview.** A missing picture is named and the agent is asked to repair it. - **Code roles ask you instead of giving up.** When the Architect or the Reviewer needs your approval for a step, for example running a script, the question now appears on the session's approval card with the role named on it, under the same rules as the main run in Auto; it no longer ends the chain with "there was nobody to ask". - **Skales Code no longer creates a near-duplicate of a file that is already there.** When a similarly named file already exists, the agent uses it unless a second file is wanted. - **An approval you already answered on the phone no longer comes back as a second card.** When a session was refreshed on the phone at the moment you approved a step, the phone could show the same approval again after the step had already run; it now only ever shows a question that is still open. - **A paired phone reconnects on its own after the computer restarts.** The computer now rejoins its paired phones from its own background heartbeat as soon as it is running again, instead of waiting for the app window to open, so the phone no longer shows the computer as offline until it is paired again. - **The look-back no longer competes with your next message on a local model.** When the helper model runs on your computer, it waits until nothing else is running and the conversation has been quiet for a minute. It also looks first at the procedures the conversation actually used, and Stop or deleting the conversation ends it without keeping anything. - **A development team member installed earlier gets the tools its role gained since.** A preset role's newer tools, such as section search for the read-only roles, reach members that were installed before; nothing they already had is taken away, and an agent whose tools you picked yourself keeps exactly your list. ### Changed - **Burned-in subtitles of a landscape film sit higher.** Their centre line now keeps about 200 px above the bottom of a 1080p frame. - **Code Roles also govern queued phone and relay messages and Code sessions handed to Iris.** A queued task waits for the whole Architect–Coder–Reviewer sequence, survives restart, and starts through the same session setting. Stopping leaves waiting tasks available to send explicitly, using the current role setting even for older waiting messages. - **PetDex and custom pixel skins have been removed.** Desktop Buddy keeps its Skales, Bubbles and Capy skins. Saved pixel-skin selections fall back safely; imported files stay on disk. Old PetDex links return home before the app renders, including nested links; settings search no longer advertises pixel skins. - **A plugin tool that can reach the internet asks before each call, and the Plugins page says which ones do.** A scheduled plugin run leaves such a call as a card on the plugin's page, and the page also names any tool in a plugin's list that plugins may not use, such as starting helper runs.