What's new
Every change you can notice, straight from the release pipeline. The desktop app shows the same notes when it updates.
- Agent rosters and activity indicators no longer leave tasks running after an agent process exits or the server restarts
- Background tasks and sub-agents no longer stay "running" in the Agents window and the composer banner after the agent process crashes or the server restarts; they show as status unknown
- Approval cards and questions left by a replaced agent session now close, and a late exit from an old session no longer clears the new session's background work indicator
- Agent plugins built for plugin API 75 or earlier must be rebuilt for API 76 before they load
- Closing the last tab of a browser profile, or reclaiming it for memory, now gives Chromium time to save the login you just made before shutting it down
- On Windows, a new per-agent switch keeps its background program, such as reclaude's account relay, running after a session ends, so stopping one session no longer drops the others
- Plugins built for the previous plugin API version keep working after a Ycodium update that only adds to the API
- Scheduled tasks no longer run after being deleted, run twice after a restart, or break around daylight saving time
- Messages from other people and from agents are no longer shown as yours
- Folders an agent delivers can no longer write files outside themselves, and pages in them can load their data and media
- Startup file check now shows progress like 317 MB instead of raw byte counts
- Downloads, uploads and settings now share one KB/MB/GB/TB size format
- The machine browser no longer stalls your input while an agent's cookie clear waits for a cookie import
- On a slow connection, leftover scrolling no longer interrupts the agent after you stop
- Plugin pages on remote machines open faster; identical plugin code is no longer downloaded again
- Opening browser settings on mobile now rereads whether the machine is reclaiming idle pages
- Delayed archive cleanup no longer stops agents started after a thread is restored
- Browser settings now show whether the machine is reclaiming idle pages, or why it can't
- Plugin icons and plugin code on a machine can no longer be read without signing in; update older clients to keep seeing them
- A browser recording no longer freezes when one screenshot never returns, and ends cleanly if the browser exits
- Child thread archiving now respects project access and preserves workspaces still in use
- A browser view stuck waiting for its image now reports the failure and offers a retry instead of ignoring clicks
- The browser float's focus frame no longer looks like the blue "you are controlling the page" border
- Scrolling inside the machine browser no longer also scrolls the page around it
- Agents can archive and restore their own direct child threads while keeping read access after archiving
- Archiving a thread removes a clean isolated worktree and keeps its branch; worktrees with local changes stay
- Older desktop and mobile apps must update again before they can connect to this machine
- Machines on an older version must update before newer apps can connect to them
- Busy pages in the machine browser look smoother on a local connection
- On a slow connection the agent no longer takes the machine browser back while you are still typing
- Typing and clicking in the machine browser no longer lag behind on a slow connection
- Clicks and keys in the machine browser go through right away while the agent waits for a page to load or for something to appear
- A browser snapshot the agent is reading no longer fails when you touch the page
- The agent's border around a machine browser page is now amber, so it no longer looks like your own blue border
- The first recording in a machine browser no longer comes out empty or freezes for its first few seconds
- Mobile no longer offers to open another thread on plugin notices
- Agents and plugins now need your approval on a card before they can import browser cookies
- Machine browser pages now show who is operating them, with a colored border and a status in the floating window's title bar
- You can now click and scroll a machine browser page inside the floating window
- The model picker no longer stays marked Unconfirmed after the agent has reported the model it runs
- On web and desktop, press Up in an empty composer to bring back what you sent in this thread
- Each agent turn now starts with a line showing the agent, model and thinking level
- Group messages with an @ mention now look like any other message, with mentioned names highlighted
- Messages forwarded from chat apps show the sender's name instead of looking like yours
- Cancelling an SSH login test keeps existing connections and other login tests running
- Invalid SSH addresses stay in the form with an error instead of silently using different connection details
- You can clear the saved SSH private key path so it stays empty when the wizard reopens
- SSH diagnostics hide private key paths while keeping useful failure details
- Switching threads after attaching a folder no longer opens an unwanted thread
- Starting a thread after adding a machine now keeps the selected machine and current project
- Paste an SSH address, reuse your last successful key path, and test login before adding a machine
- SSH setup shows elapsed time and host wait notices, and cancellation waits for cleanup while preserving the form
- Mobile's add-machine page directs SSH setup to the desktop app while keeping pairing available
- Added machines now show agent readiness and let you start a thread or install an agent
- The sidebar group under each project is now called Work lines
- On web and desktop, pin a plugin entry straight from the Extensions menu with the pin at the end of its row
- Extensions entries now share one colored icon, and a plugin keeps the same icon color everywhere
- A message that arrives just as a member's turn ends no longer leaves the member stuck; it starts a new turn as usual
- Images a tool shows the agent now stay on that tool's row instead of appearing in the conversation
- Agents can deliver a folder with an index.html, so a web page opens with its styles, scripts and images
- Continue adding a project in the command palette after adding a machine
- Project presets disappear after all folders are detached, and queued presets fail instead of running in the old folder
- The Add machine dialog stays above the machine list and returns focus to its button when closed
- Add machines directly from the command palette when no machines are available
- Commands use the logged-in user's home directory after all folders are detached from a project
- Machines without a project folder can run commands from the logged-in user's home directory, with the working directory recorded in the log
- Add machines directly from the machine list or empty home screen
- Machines that only publish activity show why they cannot connect instead of a Connect button
- Connection diagnostics reject malformed metadata without saving its contents
- Connection diagnostics are saved when the desktop's local machine is turned off
- The title bar now shows desktop control as one status pill with the owning conversation's title, and that conversation's tab is highlighted
- Starting a stopped Android emulator shows its screen without pressing Reconnect
- Reopening the Devices panel no longer fails with "Device support could not start"
- The Devices plugin can prepare Android 11 alongside Android 15 and run both at once
- On Android, navigation buttons stay readable when the app and the phone use different appearances
- Project sync translates errors about Git checks and missing project folders into your interface language
- Remote commands no longer bypass approval through a spoofed machine ID or block older machines’ pending work
- Desktop windows preserve other windows' machine sign-ins when saving connections
- Windows SSH setup keeps looking when a client probe fails and avoids mixing tools from different installations
- Provider status reports from other machines retry automatically after a failed send
- Failed initial provider checks on other machines show an error instead of staying on Checking
- SSH setup on Windows uses a newer installed OpenSSH client and shows clearer progress and recovery guidance
- Machine cards no longer repeat connection guidance in their accessible names
- Agents can run commands on project machines and view their exit codes and logs on the board
- Project sync explains missing Git, missing project folders and Git inspection failures
- When Windows rejects the work screen driver, the installer now says so instead of asking you to retry
- The Windows installer now sets up the work screen; its driver is now signed by Microsoft
- Relay machines no longer ask for pairing while unreachable, and missing sign-ins or changed device keys have specific recovery instructions
- Provider status on other machines updates automatically after checks finish following a restart
- Machines with a Git checkout can sync the project before its task table arrives
- Claude subagent history now opens while the session is running, not only after it has compacted
- Times in the mobile app now follow the app language
- The Devices hub no longer appears in the browser's Local servers
- Agents now get a built-in guide for building and testing mobile apps on devices
- Revoke saved permissions for local project actions from machine settings
- Task approval cards keep buttons busy while submitting and show how to recover from mobile confirmation failures
- Turn counts now include conversations that only replied with text
- The mobile connection status now follows the app language
- Review, approvals and the composer display correctly on Android
- Agents run tasks on their own machine directly; other machines require their owner's approval
- The first approval can save trust for that home machine and project on the executing machine; queued tasks honor revocation
- A collapsed floating device can be brought back from the conversation
- Brief video reconnects no longer cover the device screen
- Desktop save dialogs now show the file name as their title
- Upgrade tasks that cannot be handed to the desktop app now explain why and what to do instead
- Device tools now track the app on screen, and Relaunch really restarts it
- Device tools now confirm location changes and explain permission failures
- The mobile app can pair with a machine again
- Android emulators now show video on Windows, and agents can inspect their screens
- Projects can now run schedules: each run starts a new conversation on a timetable, with a history of every run
- Removed machines and join-code target mismatches report the actual rejection reason
- Machine admission failures keep their reason and Retry action until recovery is confirmed
- Machines removed from a project stay removed across devices and app restarts
- Archived projects no longer admit machines through an outdated project copy
- Connected machines now join projects automatically without opening settings
- Project machine tasks can upgrade a desktop-managed server to an exact version
- You can now schedule a wake-up yourself from the Agents window, and repeat it hourly, daily, on weekdays, weekly or on a cron rule
- Codex commands that keep running after a turn now appear as background tasks, and Stop ends them
- The Agents window now has separate tabs for agents, background tasks and scheduled wake-ups, with model, status and start and end times on every agent
- The banner above the composer shows running agents, background tasks and the next wake-up together
- The browser button now opens a tab on first click, and switching back to a right panel button returns to the tab you were last viewing
- Android emulators now boot and stream in the Devices panel without Java or ffmpeg
- Preparing an emulator shows the current component, speed and time left, can be cancelled, and survives leaving the panel
- Threads using Sonnet, Haiku or Fable no longer fail to send after a restart, and their reasoning level stays editable
- The model picker no longer jumps back to the top while you scroll
- The collapsed sidebar badge and browser tab title now show the Needs you count, so finished threads you haven't opened no longer add to it
- The Needs you page shows how long each thread has been waiting, longest wait first
- The status bar's waiting count now matches Needs you in the sidebar, across all machines
- The sidebar now has a fixed Needs you entry that opens a full page, and the machine, Sent to me, extensions and notification buttons moved to the logo row
- Machine tasks no longer restart a machine when their acceptance cannot be saved
- Restart and upgrade tasks now show failures when the runtime or service launcher refuses them
- Runtime inventory now shows process IDs and executable names without exposing command line arguments
- Grok turns that take in a message mid-step no longer show as cancelled when they finish
- Older desktop and mobile apps must update again before they can connect to this machine
- Plugin panels in the right panel now open as tabs next to browser tabs, so switching away no longer hides whether they are still open; entry icons are now in color
- Questions Codex asks while it keeps working now use the same card as other agent questions, one question at a time with a review before you submit
- Agents can run a project task on a machine of the project and wait for its result
- Machines in a project can be asked to restart Ycodium from their Actions menu
- Add server can now fill itself in from the official MCP registry; you only add the keys it marks
- Add skill can search skills.sh and install a skill straight from its GitHub repository
- Agents can look up skills on skills.sh and, once you agree, install one into Ycodium for every agent on the machine
- Pi providers now show Pi's official logo
- The Actions menu of a project's machine lists its project tasks, and the board card shows the exit code and log of a run
- Project tasks run as machine tasks on the chosen machine, with the exit code and the last lines of output kept on the work item
- Answering several questions from an agent no longer sends on the last click; jump to any question and check your answers before you submit
- Messages and notices sent to a Grok thread while it works now reach it in the same turn; with Grok's follow_up_behavior = "steer" setting they join the step in progress
- Child-session results, messages, reply notes and scheduled wake-ups now reach an agent in the turn it is working on when that agent can take messages mid-turn, instead of waiting for the turn to finish
- Questions Codex asks while it keeps working now appear once instead of being repeated in the reply, the timeline and your answer
- Pi providers can now use Pi's own sign-in and model list, with nothing to fill in when adding them
- A project can list the tasks its machines may run, such as setup, test or lint, in the tasks table of ycodium.json
- Project settings now have MCP servers and skills just for that project, saved to its ycodium.json as soon as you change them
- The conversation header now always shows which machine the conversation runs on, and no longer shows "Computer use idle"
- Inline chips in the message box show a remove button on hover, and Delete removes the chip after the cursor
- The mobile Plugins screen keeps plugins in name order and says which machine needs attention and why
- MCP & Skills now saves each change as you make it, lets you edit servers and skills you added, and explains every built-in and plugin skill
- Scheduled wake-ups and wake-ups from the home machine now join other pending notices in one turn; a waiting wake-up that other notices joined can only be cancelled
- Agent plugins now say what they let you do, in English and Chinese, on the plugins page
- The Plugins page is now a list sorted by name, with one Configure dialog per plugin and a line per machine that needs attention
- Board assignments and the automatic continue after a restart now join other pending notices in one turn instead of waking the session again
- Rejoining a project machine requires proof from its saved device key
- Last seen updates when a remote machine uses project tools
- Changing pairing codes checks the new code's access before switching sessions
- Concurrent project machine joins keep existing connections intact
- Messages, replies and child-session results that reach a session at the same time now wake it once, in one turn
- Source control now highlights the file whose changes you are viewing
- Settings fields that use a default when left empty now show the value actually in use, such as the detected Android SDK, a provider's data directory or the npm registry
- When a pairing link's access can't be checked, the page now asks before switching instead of switching on its own
- Menus now use a soft gray hover, full-width dividers, and no longer color delete-type items red
- Preparing an Android or iOS simulator now explains right next to the button why it can't start and how to fix it
- Menus no longer show a scrollbar when the window has room for them, and share a consistent width
- Opening a pairing link that gives less access than your current sign-in now asks before switching
- Computer use starts again on Windows instead of failing with a permissions message
- Ask a machine that joined a project to install, check, sign in to or update an agent, and follow it on the board
- Move a dialog by dragging its title bar; the gray area around it still moves the window
- On desktop, the close button and the first buttons of dialogs opened from Settings respond on the first click again
- The queue above the input labels each message by where it came from, and only your own messages and scheduled wake-ups can be edited or reordered
- The background banner above the input shows the next scheduled wake-up, and the Agents window lists wake-ups you can cancel
- On touch-screen devices, a plugin entry and its "Provided by" line now highlight together in the extensions menu
- File paths an agent mentions in code formatting no longer show a broken image box below the paragraph
- On the phone, choosing Fill for a machine browser page now sizes the page to the screen
- The floating browser has a title bar with Collapse and Close page, shows a red dot while recording, and remembers where you left it; a globe button at the top of the thread shows how many pages are open
- The machine icon only counts machines that dropped while you were connected, not ones that were never on
- A new desktop version now shows as an "Update to" button in the sidebar instead of a red dot on your account
- Plugin install and update results now count toward the bell, with a link to see them
- The sidebar no longer shows a stray grey bar under its tool buttons, and counts sit on their icons
- You can use a machine browser page by clicking or typing in it; there is no take control or hand back, and the agent continues shortly after you stop
- When adding a member, you can now choose any machine you are connected to; it joins the project first
- Machines you are connected to now join a project on their own from its Machines settings; inviting another account's machine still uses a join code, which now lists every address
- A team's lead can now put a member on another machine in the project, or move one there
- Devices signed in to the Ycodium Connect account that owns a machine now get administrator access to it, so you can manage it and add it to projects without pairing again
- Opening a pairing link in a browser that is already signed in now switches it to the link's sign-in and permissions
- In chat apps, /model now switches to the new model's default effort, can set an effort in the same step, and refuses an effort the model doesn't offer
- Child session results are no longer lost if the server stops at the wrong moment, and arrive together with other notices in one turn
- Custom models with thinking levels now show a notice when the agent reports no thinking options, and an agent changing a thread's model is refused with the available models when the model is not in the confirmed list
- Your per-model effort settings on mobile now survive an app restart, and web drafts carry them across devices
- Mentioning a member in a work item comment or replying to one now reaches that member and wakes it, on this machine or another
- When a work item is completed, the person who assigned it is notified, or the work line's lead if a plugin assigned it
- Board history now shows when a work line or a member on it was paused or resumed, and trial run results of assigned members
- More agents now confirm which model actually ran, including after you switch models mid-conversation
- Member machine execution status keeps updating after restarts and clock rollbacks
- Joined machines now show each machine's system and version, and whether each of its providers is ready or not signed in
- The office now shows what members on other machines are doing, and marks them offline with when they were last seen
- Downloads on a machine page have Cancel and Clear buttons, and Clear also deletes the file on the machine
- The phone browser now has a More menu with zoom, device size, actual size, clearing cookies and cache, plus a long-press menu, downloads, crash reload and site icons
- Machine browser profiles can import cookies from Chrome, Edge and other Chromium-based browsers on that machine, and agents and plugins allowed to import cookies can do the same.
- A machine page screenshot no longer hangs for over a minute when the page is momentarily not painting.
- Agents and plugins allowed to import cookies can import them into a machine browser profile, and a profile closed to agents stays closed.
- Machine browser tabs show the site icon captured on that machine.
- If a machine page's renderer crashes, the machine reloads it up to three times in thirty seconds.
- While a machine page has the keyboard, refresh, close-tab, address bar, and zoom shortcuts stay in the app, and Ctrl+Alt returns the keyboard without giving up control.
- Machine browser profiles can import cookies from a file or from Firefox on that machine.
- A machine page shows download progress, and Save stores the finished file on this computer.
- Right-click and Ctrl/Cmd+C on a machine page copy onto this computer while you are controlling it.
- Machine browser DevTools opens as another page in the same profile, without exposing the debug port.
- Machine browser menus can clear a profile's cookies and cache, and float the page over chat.
- Machine browser pages can use device size, page zoom, and a watch-only actual-size view.
- Add another machine to a project with a one-time join code, then put members on it and pick its providers
- On mobile, a team's Board view and the project teams page now open a live list of the project's work items, grouped by line
- The Board view on a team page now opens the project board filtered to that team, where the cards, details and comments live
- Each project now has a Board page in the sidebar, next to Memory, with live work items, filters by line, priority and label, custom states, labels and archiving
- Agents can send files with a message, including to agents on another machine in the project
- Messaging a session several times now wakes you once when it handles them all in one turn, not once per message
- Plugin entries now live in an Extensions menu wherever they appear, without the puzzle badge; pin the ones you use to keep them outside the menu
- Isolated child sessions with non-English titles no longer fail to start
- The team Office view is now an isometric office with team areas, desks, a roster and an activity feed
- Threads bound to a remote seat now start each turn with the home project's memory
- A machine connected to a home machine now picks up assigned work within seconds instead of about half a minute
- The work items toolkit is now on by default for projects nobody has configured, so agents can use the board right away
- Assigning a work item to an agent member now wakes it even when no team goal is running, in a thread opened for that member
- Switching to a model that lacks your reasoning effort now runs it on that model's default instead of sending an effort it cannot take, and switching back restores your choice
- The composer shows the model a conversation actually ran on and marks it unconfirmed when the agent cannot report it back
- The thread's model button now shows the model the session actually ran, and marks it as unconfirmed when the agent cannot report it back
- The model picker now keeps a hidden or retired model visible when a chat still uses it, explains thinking levels a model does not support, and shows each provider's model list status with a Retry button
- The model picker keeps your current model visible even when hidden or no longer listed, shows when a model list is checking, outdated or failed (with a Retry button), and keeps each model's own effort level when you s...
- Switching models in chat with /model no longer clears your reasoning effort; if the new model lacks it, it runs on the default and the setting comes back when you switch back
- When a team member's model cannot be used, the message now says whether the provider is missing, turned off, or the model is not in its list
- Starting a child thread on DeepSeek, Kimi or OpenCode models with a reasoning effort is no longer refused, and a model list that is still loading no longer reports "no such model"
- Usage, Settings, and About moved into the account menu; the Extensions button is always shown, with a link to plugin settings
- Plugin icons and skin wallpapers show again in the desktop app
- Panels, cards, menus and dialogs now have a subtle lit edge and layered shadow, and hovered or selected menu and sidebar rows share one consistent highlight
- The Check for updates button in Settings no longer stays stuck on Checking
- Loading spinners in notifications spin in place instead of swinging around the toast
- Reasoning levels for Claude, Codex, OpenCode, Kimi, Grok, ACP and DSH agents are kept when the agent cannot report them, and cleared only when it says a model has none
- Removing an agent no longer hangs when the disk stalls, and adding it back does not bring back the deleted model list
- The getting-started page shows the local machine's connection status, and the memory page no longer repeats its title
- Opening a new pairing link in a tab that is already on the pairing page now pairs automatically
- The git menu on mobile shows its status summary in the app language
- Large page screenshots on the phone can now be added to a message, and adding the same screenshot twice no longer removes both when you delete one
- While a merge is in progress, the commit box says that committing finishes the merge instead of hiding it in the placeholder
- The approval decline-reason box on mobile now shows "Sent with your next message" under the input instead of hiding it in the placeholder
- Thread hover cards, turn summaries and inbox headers show less repeated text
- The Lark scan-to-connect button no longer shows a Beta badge beside the warning that already says it may stop working
- Settings pages show fewer repeated descriptions, and the pull request token note now appears once per group
- The phone's browser page now shows when the page is being recorded with a Stop recording button, and can take screenshots, start recordings and show when the agent is operating the page
- The mobile Git menu now shows disabled reasons, action names and default-branch prompts in the app language
- The empty "No thread open" page now has a New thread button
- The connector catalog plugin now says it lists MCP servers from the address you set and that installing adds them to this machine, and its settings card names the right tab
- The red-team plugin no longer claims all four gates are required; it says publishing and reports/ paths are blocked until the report gate opens when sec-enforce is installed
- When a model does not offer your saved reasoning effort, the conversation now says so and which level the turn used
- Agent model lists no longer go empty after saving settings or restarting, and a failed check keeps the last good list
- The composer placeholder is now a single short line, and empty states, banners and tooltips no longer repeat what is already on screen
- The mobile app no longer shows success pop-ups when you turn on notifications or add a machine, and menus and empty states drop text that only repeated the title
- Machine, connection and provider settings drop repeated descriptions and duplicate success messages
- The Antigravity runtime section again says nothing is downloaded until you click Install
- Settings and panels of the red-team modes, pentest, devices, computer use, office and visualize plugins no longer repeat intro text
- Executor settings drop wording that repeated field names, and the program path field now says it must be an absolute path
- Chat bot, team and pull request pages no longer repeat what titles and buttons already say, and checking a bot connection now states beside the button that it sends a test message
- Plugin, browser, SnapShot and update settings are tidier, and the server update row shows the version change directly
- Project, Git, memory and browser pages drop explanatory lines that repeated their titles
- Settings pages no longer repeat each option's title in a description line
- Provider setup notes (for example Pi running tools without a sandbox) now show when adding or viewing a provider, and plugin settings dialogs no longer repeat the plugin description
- Settings screens on mobile no longer repeat the screen title as a section heading or on a row, and plugin sections only show the machine name when you have more than one machine
- Settings pages no longer repeat the page name as the first heading
- Team and chat plugin pages no longer repeat the selected tab's name as a heading
- Windows installs take about 115 MB less disk space
- Threads that receive many updates at once now redraw at most once every few frames, keeping the window responsive
- Windows desktop builds can find and install updates again
- Switching back to a thread that kept working in the background no longer freezes the window
- Incognito machine browser pages are always marked as Incognito
- Team wake-ups and reminders sent to the lead and members now appear as a one-line system note instead of looking like something you said
- Browser settings are now one section, with each machine's browser profiles and agent access first
- Choose which machine browser profile, including Incognito, a new page opens in from the panel's + menu
- Switching a Claude conversation to a model that lacks your saved reasoning level now runs at that model's default and shows a warning
- Changing the reasoning level in a Claude conversation no longer restarts Claude, so background agents and tasks keep running
- Stopping a DeepSeek Harness conversation now also stops the subagents it started
- Pi threads can switch to any model listed on the provider without restarting the conversation
- Subagents no longer show as running again after the agent process exits and the conversation resumes
- Machine browser profiles, agent access, and idle resource release are now in Settings
- The machine browser has back, forward, refresh, and an address bar, and shows clearly when you are in control
- Agents can go back, go forward, and reload pages in the browser
- A failed DeepSeek Harness subagent launch keeps its expandable tool step, and continuing a Kimi subagent after an interrupted turn keeps its original entry
- OpenCode subagent results no longer land on a stopped run after the next run
- Background OpenCode subagent results are no longer lost when events arrive out of order
- Background OpenCode subagents get their result text again, without mixing up runs after a reconnect
- OpenCode subagent results are no longer attached to the wrong run after a reconnect
- OpenCode subagents continued while the connection was down keep their previous result until the next launch or continuation
- Subagent renames now show up even when the subagent's state does not change
- OpenCode subagents no longer show a stale status or result after being stopped or continued
- Subagent titles and descriptions no longer briefly show the wrong state after they change
- A failed DeepSeek Harness subagent launch shows its reason again, and Kimi background subagents are no longer marked finished by a repeated launch notice
- Approval requests from subagents of a resumed OpenCode thread reach the thread again
- Subagents started by other subagents appear as ordinary entries in the agent list
- After a reconnect or a resumed thread, OpenCode subagents show an unknown status until they report again
- The agents dialog now shows "status unknown" for subagents whose outcome can't be determined, instead of "idle"
- Nested and restored subagents keep the right state in the agent list and batch
- OpenCode subagents that are continued after finishing, or finish while a thread is resuming, now show the right status
- Continuing an earlier Kimi subagent no longer leaves a stray cancelled entry, and a subagent result that arrives after its turn ended is still shown
- OpenCode subagent status now follows the subagent's own session, with results added when they arrive
- Nested subagents now finish correctly in the mobile agent batch, and restored subagents report their state reliably
- Kimi subagent answers stay visible in the conversation, resumed subagents keep their entry, and subagents no longer stay stuck as idle after the agent process exits
- OpenCode subagents that are continued after finishing, or finish before their result arrives, now show the right status and result
- When a subagent's outcome can't be determined, it now shows "status unknown" instead of "completed"
- Subagents started by ACP agents now stay out of the main reply and recover correctly after a restart
- OpenCode subagents that finish late, run during a reconnect, or survive a resume now end with their real status
- Subagents started by ACP agents that support subagent sessions now appear in the agent list
- OpenCode subagents are no longer marked finished when their real result is unknown, and resumed threads refresh their subagent status
- Subagents started by Grok now appear in the agent list, and their own commands and replies no longer mix into the conversation
- Subagents started by DeepSeek Harness now each appear in the agent list (their status reads unknown once the turn ends)
- Subagents started by Kimi Code now appear in the agent list instead of showing up as ordinary tool steps
- OpenCode subagents now appear in the Agents list with their status
- Mentioning a member with @name no longer depends on letter case, so @ben reaches Ben
- The person who opens a team is on it, and a person member can be marked “This is me”, so @-mentions in a team's group chat reach your Sent to me
- Memory recall no longer comes back empty when the server runs on Node.js 26
- Opening a team from a long conversation no longer names the lead member with the raw, cut-off conversation title
- An @name followed by punctuation, such as "@Ben, take a look", now counts as mentioning that member, and group messages sent through the API are checked by the same rule
- An agent whose first check failed is checked again within minutes instead of the next day
- Saving settings no longer makes every agent drop its model list and check again
- Group chat histories no longer share one cache when project or machine IDs contain colons
- Office rooms now update remote message stages without rescanning history when local conversations change
- Members waiting for work now sit visibly on the office bench
- The collapsed mobile composer keeps member-mention sends available when no provider is configured
- The office view now shows other machines as side rooms with each remote member’s last message stage
- Group messages now explain withdrawn, deleted, or unreadable text with the same notes as other messages
- The office view now seats every roster member, with unstarted members waiting on a bench
- Mentioning a member in a new thread draft no longer tries to send to a group that does not exist yet
- Group message deliveries remain visible in history when their original group record is outside the loaded window
- Group context in the inbox is easier to read in English
- Group target buttons now announce the member name before their action on mobile screen readers
- The composer now explains member roster loading and failure before you send
- Loading earlier group messages now shows progress until the request finishes
- Clickable group targets are easier to recognize, replied targets use completion colors, and transient unbound states no longer look like warnings
- Member mentions can be sent in active projects instead of being incorrectly blocked as archived
- Plain group replies can be sent while the member roster is unavailable, and @ replies use the roster already loaded for the group
- Group messages now display their text, recipients and reply context in the mobile chat timeline
- Group target labels no longer link back to the same chat, and mobile shows complete group messages
- Member mentions now show that the message goes to the group without waking the lead before you send
- Member mention sends now report a failed roster read instead of claiming members are still loading
- "For me" now recognizes your group replies using the current connection's identity
- Mentioning the lead no longer shows the same group message twice
- Group messages in "For me" show your reply and stop asking once you have answered
- Member mentions wait for the member list instead of accidentally starting a lead turn
- Retrying an uncertain group send no longer posts a duplicate message
- Group @ messages can be sent even when the lead agent is unavailable
- Older conversation history no longer mixes in group messages from outside that time window
- Mobile shows group messages and delivery labels in conversations, and replies from "For me" return to the group
- Group messages in "For me" show their group, and replies go back to the group with @ mentions
- Group @ messages and replies now appear in the conversation with per-member delivery labels
- The composer @ menu can mention team members, with this team's members listed first
- @ a team member in the composer to post into the group without starting a turn; attachments are blocked for now
- Subagent rows show roles and no longer report stopped or inferred runs as completed
- Settled tool groups summarize commands run and files edited instead of the last call
- Independent conversation cards follow the child thread's current title and state
- Monitoring banner shows the live monitor count and opens background commands
- Plugin settings now open from the plugin card's Configure button and are grouped by platform
- WeChat is no longer offered for new bots until it can connect, and destructive bot actions moved to a Danger zone
- Stop computer use, allow it again, and return work screen windows directly from the conversation
- Conversation controls remain available when plugin interfaces load
- Choose whether Windows desktop screenshots include control hints and the agent cursor
- Typing in browser annotations no longer moves focus to the page's chat composer
- Windows computer use now shows a broader, softer screen-edge glow
- Pixel Office keeps the room visible when a team's group chat is deleted
- When a team can't be read, the team page now says it couldn't load it, instead of saying the team doesn't exist (web) or spinning forever (mobile)
- Pixel Office now matches dark mode and keeps member labels readable
- Restoring an archived team whose name was taken now shows which team holds the name and opens it; archived teams no longer offer rename on mobile
- Windows computer use now has a pale-green top indicator and a soft screen-edge glow
- Team pages get an Office view: a pixel-art office where each session is a character, so you can see at a glance who is typing, who is idle at the coffee corner, and who needs you at the front desk
- Model option labels, standard approval actions, generated confirmations and fallback agent names now follow the interface language
- Live Activities retain original status text when switching back to English
- Live Activities ignore older snapshot responses after a newer refresh starts
- Filter the full trajectory by tool source and inspect per-turn call and failure counts
- Live Activities and the Dynamic Island follow the app language, including background updates
- Renaming a thread tab reliably opens its title editor
- File names in chat file tags can be selected again
- Long agent phase names now stay within the conversation panel in narrow windows
- Mobile screen-reader labels, shelf headings, and task actions now follow the interface language
- Fixed the Windows computer-use visual analysis worker failing to start because its isolation name was too long
- Native desktop menus and update messages now follow the selected app language
- Opening a team's group chat on mobile now keeps the machine browser button and its page-sharing prompts
- Agents receive consistent guidance for available Ycodium tools across providers
- Stopping computer-use history recording now releases its storage lock promptly
- Mobile navigation, menus, files and recovery prompts now follow the selected language and theme
- Interface metadata uses readable punctuation and spacing
- Web and desktop panels use consistent keyboard focus and colors, and agent status text follows the selected language
- Pull request metadata keeps spaces between copied values
- Plugin panels use consistent text sizes, warning colors and keyboard focus, with clearer metadata
- Pull requests now label missing author information as unknown
- OpenCode threads can read a project's other folders without asking for approval each time; writing still asks
- Mobile team pages: group chat, sessions and plugin views like the board, and teammates' approvals and questions are answered in place in the group chat
- Archiving a team now asks first and tells you how many items are unfinished and how many members are working; teams can be renamed, and restoring a team whose name was taken points you to the team that has it
- Turns no longer get an automatic one-sentence model summary; turn facts stay, and the setting is gone
- Requests that team members need you to approve or answer now show up right in the team chat so you can handle them in place, and team notifications open the team
- Tool updates reuse unchanged conversation history rows
- Open a team or switch its views from the command palette, and step through views with Ctrl/Cmd+Alt+[ and ]; plugin views stay alive in the background
- Teams have their own page with a row of views on top; the group chat and the list of sessions come built in
- The team's board, members and handbook are now views on the team page, and the old Teams page is gone
- Team conversations now live under "Teams" in the sidebar instead of the thread list, and a team that needs you collapses into one row
- Approval prompts from DSH and other ACP agents now show the command they want to run instead of a session id
- Previously English-only dialogs, notices and control labels now follow your interface language
- Terminal group labels and search feedback use readable text sizes
- The Windows desktop control overlay uses the normal arrow cursor
- WSL and Tailscale dialogs now follow your language and clarify restart effects and port errors
- View and take control of your agent's machine browser from web, desktop, or mobile
- Windows prepares included plugin components offline at startup, shows progress, and reuses them on later launches
- Source control writing settings no longer crash or lose other draft fields when you change one option
- Source control writing controls now follow your interface language, identify GitHub PR template support and fit long model names
- Failed source control rescans now show an error and a retry action while keeping the previous results visible
- Source control detection labels now follow your interface language and show readable states instead of disabled switches
- Office document tools use bundled components without first-use downloads
- The Devices panel can prepare private Android environments and guide iOS simulator setup
- Sidebar utilities now use two consistent rows with extension and About entries
- Usage, inbox, and pull request pages support previous-page navigation, with usage filters moved into the content area
- Workspace panels now have consistent bottom corners and draft titles remain consistent across projects
- Shortcut keycaps now display the plus key and platform-specific modifiers correctly
- Closing and reopening a shortcut condition editor now preserves unfinished input and its validation state
- Keybinding conflict warnings now include rules hidden by search, both when editing and adding bindings
- Keybinding command names, actions and search results now follow your interface language
- Shortcut condition controls and messages now follow your interface language
- Invalid shortcut expressions no longer get overwritten by visual editing controls
- Agents on the same machine are no longer capped at 8 concurrent sessions by default
- Shortcut edits preserve other bindings and unsaved changes, and reject invalid input before saving
- The lead is told which teammates are blocked waiting for a person, so it can hand work to the others
- Archiving a team's conversation now stops the team; unarchive it and it carries on from where it stopped
- Teammates now see what you and the lead said in the conversation since they last looked, each time they are woken
- Tell the agent to "use a team" in any conversation and it becomes the team's lead, with no setup page
- A teammate's trial run now uses the same full access as the team, so it stops hitting approval prompts
- Teammates in a team now run with full access, so they no longer stop to ask for approval on every command
- Use Pi with Chat Completions, OpenAI Responses or Anthropic Messages, with native session resume and Ycodium tools
- A teammate waiting in line for a free process slot no longer fails its trial run or gets asked about progress
- Teams no longer cap the number of agent members
- First-time setup opens a three-step guide (machine, agent, home) when no agent is ready yet
- Mobile gets a home overview with agent status per machine and recent work; agent setup is guided to desktop or web
- A new Home page shows agent status per machine and your recent work, reachable from the top of the sidebar
- You can start a conversation without picking a project; it lives under a new General conversations group in the sidebar
- Adding or editing a provider keeps only status, color and proxy in view; name, program path and other fields move behind Advanced options
- Windows installers bundle work-screen components and request administrator approval when setup is needed
- Computer use adds dedicated work screens where supported, with window return and recovery from settings
- When a machine is already running as many sessions of the same agent as it allows, idle sessions are now stopped to make room for waiting work, and pick up where they left off on your next message
- When a machine is already running as many sessions of the same agent as it allows, new work now waits its turn and starts on its own instead of failing
- Branch menus show loading failures and let you retry without losing loaded branches or search text
- Starting a thread no longer offers a separate worktree mode; threads work in the folder directly, and agents create worktrees themselves when needed
- When a project has several folders on a machine, you can pick which one a new thread works in and which others it takes along
- Branch picker menus and action feedback follow language changes, with clearer status badges
- The no-thread screen now follows the interface language
- Image failure messages use clearer wording while preserving image names and searched locations
- Markdown task checkbox labels now follow the interface language in editable and read-only views
- Large Markdown previews are read-only so task checkboxes cannot overwrite the rest of the file
- Failed file edits can be retried, and unsaved drafts stay available when switching files in the same window
- File previews now show reload failures without losing displayed content or unsaved edits
- Retry failed file previews and see clearer explanations for unsupported paths and preview size limits
- Cancelled account and model checks no longer overlap unfinished background work
- File search text and menu notes are easier to read; long names keep counts visible and large line numbers stay aligned
- Computer use checks desktop sessions, permissions and helper prerequisites before control
- Agents can select exact text and position the caret in supported desktop controls
- Agents can batch short desktop sequences, report progress and stop further actions on failure
- Desktop plugins can start their bundled native programs reliably
- Windows desktop input preserves emoji and other non-BMP characters
- File browser controls, reference actions, and operation messages now follow the selected language
- Workspace root rows no longer offer rename or delete and are excluded when deleting selected entries
- Copying a workspace root's relative path or reference no longer produces an empty path
- File context menus close with Escape or an outside click and return focus correctly without disrupting name editing
- Empty folders support creating files and folders, including after cancellation, failure, or deleting the last item
- Switching machines or workspace folders clears the previous folder's unfinished file-name draft
- Accepting a suggested file or folder name now creates the entry, and IME confirmation no longer ends name editing
- Creating a folder with a trailing slash no longer breaks the file tree when it refreshes
- When two machines run different versions of the same plugin, each machine's settings and quota labels now show that machine's own wording
- Batch file operations show partial results, and undo retries only remaining changes without repeating completed ones
- Failed file creation and renaming now retain names for retry, and context menu actions keep focus in the name editor
- Cancelling auxiliary checks and text generation now waits for owned resources to finish cleanup
- External plugins must be updated for plugin API 41
- Computer use includes its Linux runtime libraries and automatically prepares GNOME desktop integration without extra downloads
- Workspace uploads keep accurate progress after failures and preserve cancellation control for the active batch
- Upload status is easier to read on narrow screens and reports cancelled or skipped files accurately
- Auxiliary generation and health checks clean up their processes on failure or cancellation
- Claude Code wrappers now report account identity and limits through their configured CLI
- Switching machines or folders no longer lets delayed file operations change the newly displayed tree or open a file there
- File deletion and moves stop after confirmation if their target changed or the project became read-only
- Project archiving and experience erasure cannot be dismissed while their requests are in flight
- Failed plugin removal requests keep their machines selected for retry without resubmitting accepted requests
- Forms return focus to their opening control and prevent accidental dismissal while saving
- Failed branch creation and renaming keep your input available to correct or retry
- macOS and Linux desktop controls now let clicks through and avoid pointer actions; GNOME without XWayland requires the updated helper
- Account limits can be checked again after an account instance is recreated
- Branch and reference pickers can retry failed pages without losing search text, loaded results or selections
- Closing a selection dialog returns keyboard focus to the control that opened it
- Branch and reference pickers support clearing search, and input-method confirmation no longer selects or applies a result
- Read-only searches keep their text on Escape, and reference group labels are easier to read
- Claude Code and Codex sessions can now work directly in every folder the session uses, and Claude Code loads those folders' CLAUDE.md and rules
- Windows computer-use controls no longer block clicks or drags; move the Stop control by its grip or press Ctrl+Alt+Esc to stop
- Project search results stay inside the files pane instead of spilling over the content beside it
- Agents can now point a project folder at a new location and choose which folder new threads start in
- A session now shows a card when a folder is added to it, with a way to stop carrying it, and a card when a folder can't be found, with Relocate and Remove from project
- Adding a folder from the command palette now also gives it to the session you are looking at
- "View file history" now works for files in every folder of a project, not just the first one
- An agent now learns about folders added to or removed from its session on the next turn, without restarting it
- Project search now lets you collapse the results of each folder, and skips the folder heading when only one folder has matches
- When a session's folder has been deleted or moved, the turn now fails with a clear message naming the folder instead of a raw provider startup error
- Source control now shows one section per repository when a project has several folders, each with its own branch, changes and commit
- The branch picker names the folder it belongs to when a project has several folders
- Searching file contents now covers every folder of a project, with results grouped by folder
- A project can now use several folders on one machine; pick the default one, or point a folder at a new location, from the project's settings
- When a project has several folders, a new terminal asks which folder to open in
- Typing @ to find files now searches every folder of the project and groups results by folder
- When a project has several folders on a machine, the file tree now shows them side by side, one node per folder
- Adding a folder to a project can now hand it to the session you have open, from its next turn on
- A project can now use several folders on one machine, and new sessions get all of them
- Tabs for files with the same name now show the folder that tells them apart
- When a team member's trial run fails, the Teams page shows it right away with what to do next, and you also get a notice in English and Chinese
- New agent team members take a short trial run that checks they can reach the team's tools and handbook before they get work
- Machine settings now use consistent terms and bilingual permission messages, with an accurate explanation of the default Relay address
- Thread reference suggestions no longer use middle dots between project and machine names
- Machine settings navigation stays on one line on narrow screens and scrolls the current section or keyboard focus into view
- Failed provider status checks and model refreshes now show an error and let you retry
- Machine removal now waits for confirmation and supports retry after failure; you can clear the default proxy without deleting it
- Invalid provider fields keep your input and block saving; environment variable errors are explained and Discard restores saved rows
- Settings retain unsaved text, show save progress and retry guidance, and prevent closing a provider form while it is being saved
- Disabled-action hints stay visible on touch screens, plan menus open correctly, and command hints match narrow-screen controls
- Team confirmation dialogs are laid out properly again, and member rows show the agent and model by name
- Each agent team member now runs on the model chosen for that member instead of the project default
- Removing a team member hands back their work that hasn't been sent to them yet and tells the team lead
- On the team board you now assign work to a team member instead of a session
- The team lead agent can now add, edit, remove and restore team members itself, and the record shows who asked for each change
- Work assigned to a team member now wakes that member's agent, and work already underway stays with whoever started it
- Team members now start with the model you picked for them when their machine is this one, and an agent added while a goal is running joins it right away
- Manage your team's members from the Teams page: add, edit, remove and restore people and agents
- Fix computer use startup failures after installing its plugin from npm on macOS and Linux
- Closed popups no longer disable desktop title-bar dragging or double-click maximize and restore
- Closed popups no longer block pressing Esc twice to stop a running turn
- Empty desktop drafts now show window capture availability and the configured shortcut
- Browse complete files at a selected commit and navigate file viewers, editors and diffs with a code minimap
- Diffs load file by file with complete context, adjustable limits and a text patch fallback for large files
- Computer use on Windows no longer requires a separate Visual C++ runtime installation
- Computer use captures and clicks DPI-virtualized Windows applications correctly on scaled displays
- Computer use adds desktop actions, a bundled workflow skill, and a pause that only you can resume in settings
- Project memory is now on by default for every project; projects where you turned it off stay off
- Unavailable model accounts now explain why on keyboard focus or touch, and model option labels are easier to read
- Context details stay readable and scroll within short windows so actions remain accessible
- Message copy confirmations and errors remain visible beside the copy button
- Model search respects input method composition, and model favorites use clearer states and larger mobile touch targets
- File and folder icons no longer show unintended black fills
- Default folders now use a Windows-style yellow icon
- Computer use can inspect and operate Windows apps with a bundled controller and a visible stop button
- Conversations can discover and call newly mounted plugin tools without restarting
- Approval actions honor keyboard focus and stay readable on narrow screens, with consistent disabled states
- Composer buttons have consistent touch targets and disabled styling, with accessible explanations when unavailable
- On desktop, HTML files delivered in a conversation open in the browser panel, where you can annotate them for the agent
- Plugin pages and panels now have a small puzzle badge on their navigation icons
- The Memory page has a search box that looks through the handbook, pages, experiences and skills at once, with the matching words highlighted
- Opening a file from another worktree now previews the correct file instead of failing or showing a file from the current checkout
- Memory now has Pages and Skills tabs: write and edit pages, read earlier versions and restore them, read and edit skills, and see which skills a thread can use
- The handbook can now be read and edited in Memory: saving creates a new version, History shows earlier versions, and you can restore one
- Conversations show which project memories were included in a turn, and you can forget one right there
- You can erase an experience that should not be kept, such as a secret recorded by mistake: the text is deleted for good and only a marker stays under Erased
- Memory is now a full page: open an experience to read all of it, see who recorded it and in which thread, how often it was used, and its earlier versions, or write one yourself
- On mobile, HTML files delivered in a conversation open as a web page inside the app
- HTML files delivered in a conversation now open as a web page, with a switch to view the source
- Preview now shows clear page interaction controls and enters interaction automatically when annotating
- The sidebar groups account, pairing, settings and version controls in one menu, with completed threads in history and a status bar aligned beside the sidebar
- Back to workspace now returns from utility pages to the previously opened workspace
- Choose project folders with breadcrumb navigation, directory columns and an explicit path confirmation
- Files and Source control keep a narrow sidebar and show a project start page when no file or diff is open
- Plugins now have distinct colorful icons, with subtle color accents in the sidebar and matching plugin icons on mobile
- Claude subagent history opens correctly when session records use a custom account directory
- Enter and Escape no longer submit a decline or clear its reason while an input method is composing text
- Mobile copy controls show success only after clipboard writes succeed, report failures, and ignore stale results; chat copy feedback is accessible to screen readers
- Default approval buttons on mobile follow the selected interface language
- Program path lookup failures show an error instead of suggesting the program is missing, and interrupted machine removals no longer report completion
- SSH connection mode and download address settings offer Retry after a read failure and prevent saving until the saved value is loaded
- Provider deletion explains how to resume affected threads, and settings use clearer labels and separators
- Mobile settings switches expose their names and descriptions to screen readers, and the version label follows the selected language
- Adding a project MCP server keeps your input if saving fails and prevents duplicate submissions while saving
- Settings forms show field errors after interaction, clear stale connection errors after edits, and expose provider path errors to screen readers
- Settings distinguish loading and failures from empty lists, with retry actions for remote agents and connectors
- Proxy settings show detailed help on demand and clarify provider, Lark and Cloudflare tunnel limitations
- Replies triggered by a resumed session or a background task no longer vanish from the thread once the turn ends
- After switching model or reasoning effort, the first message no longer shows a false "finished without a reply" while the real reply lands elsewhere
- Dropdowns and the model picker now stay within narrow or short windows
- The composer no longer pops up "Could not save the model change" when a provider's model list is briefly unavailable
- Improve keyboard focus and text readability in settings and diff views
- Translate diff comments and diagnostics into Chinese and simplify interface labels
- In the web version, two tabs editing the same machine's connection at the same time no longer overwrite each other
- Writing @ and a team member's name in a work item comment now wakes that member even when the mention list was left empty
- Collapsed sidebar controls follow the selected language and plugin tabs no longer expose translation keys while loading
- App titles consistently use Ycodium and development builds display the application version
- Preview tab titles and navigation buttons now follow page updates at the same URL
- The sidebar button no longer briefly overlaps the project title when narrowing the window
- Settings forms fit narrow screens, dropdowns no longer cover their fields, and keyboard navigation and validation are more consistent
- Proxy settings reject invalid ports and discard outdated connection test results after editing or reopening the dialog
- HarmonyOS snooze menu follows the interface language
- HarmonyOS thread list and detail footer show durations in the interface language
- New experiences that agents write appear in the open Memory cell without a refresh
- Durations such as turn time and time spent waiting now use the units of your interface language
- For a long first message with sections, such as a team brief, the experiences added at the start of the turn now take every section into account
- Experiences added at the start of a turn now stick to what the message is about; one that only shares a common word or two is left out
- Members on another machine are now also asked about their progress when they have said nothing on an item for 20 minutes
- Team members now report progress as they go, and Ycodium asks on the item when a member has said nothing about it for 20 minutes
- Secondary and muted text is easier to read in every theme, including on selected rows and menus in dark mode
- Team members acknowledge the handbook when they are assigned work and can start only items assigned to them
- Preview automation no longer steals your keyboard: it waits until you pause typing, keeps your cursor in place, and clicking into a page shows how to exit
- Model picker keeps listing a provider's known models while its instance is in error, and says why it is unavailable
- An empty project folder shows an empty state with an upload button instead of a blank file tree
- Source control shows a full empty state with Initialize repository and Refresh buttons when the folder is not a Git repository
- The built-in preview works after desktop reconnects and no longer reloads during automation
- Sidebar project and Threads rows now highlight as one strip, with the trailing menu and count chips inside the highlight
- Organize related threads manually and inspect delegated agents in a live relationship map
- Read grouped conversations one at a time, compare on demand, and open complete agent histories read-only
- Native Harmony preview shows live thread messages, activity, requests, and older turns
- Thread details continue to show a connection failure when a machine remains unreachable
- Messages send the text captured when Send is tapped; edits made during session sync stay in the draft
- Thread history now shows failed page loads and lets you retry
- Declining an approval now sends the reason you entered to the agent
- In dev mode, local preview pages can use either localhost or 127.0.0.1 without CORS errors
- Tab changes no longer trigger repeated background saves
- Opening a preview while its tab list refreshes no longer loses the new tab
- Plugin workspaces such as Teams and Thread map now switch through project navigation without a close button
- Switch between conversations, files and other project tools from the sidebar while keeping your work in place
- Find project settings, Browser VS Code and project actions together in the project's more menu
- Sent tasks stay successful if attachment cleanup fails, and cancelled imports no longer leave private files behind
- New-task edits remain available after a failed save, and discarding a pending task stops unsent delivery
- Files chosen on Harmony can be attached and sent in a new task
- Access-mode changes no longer show a separate "next message" note
- When a desktop preview page cannot get ready, later preview tool requests recover on another desktop or after reconnecting
- New tasks keep your model and text edits while saving, and discarded offline tasks stay discarded
- Harmony native preview keeps new task drafts and attachments across restarts and queues starts while offline
- Plugin labels on threads can be reached with the keyboard and screen readers announce which plugin set them
- Read and unread marks now sync between the mobile app and your other devices
- The mobile app lists the clients authorized on a machine and can revoke another device, for example a lost phone; on web, a session that may only view access now sees that list with Revoke greyed out
- Only a session allowed to manage Ycodium Connect can change manual pairing for new devices or the tunnel's TCP setting; agents and plugins can no longer change them
- Native machine and thread cards are readable in light mode
- Thread actions wrap onto another line instead of clipping
- New task is temporarily unavailable in the HarmonyOS native preview
- Native preview can open Direct conversations and start a task
- Snooze options now show the correct wake time when you open the menu on HarmonyOS
- Native thread lists now refresh snoozed and archived items and show accurate settle confirmations
- Native preview now shows searchable thread lists with reversible pin, settle, remind, and archive actions
- The turn bar at the top of a conversation now shows attachment names for messages that only contain attachments
- The turn bar at the top of a conversation no longer disappears while you scroll through system notices, and no longer shows a turn number that jumps around
- Console programs started by the Windows helper no longer show a window
- Pairing and conversation links now open their destination in the HarmonyOS app
- Parent sessions can wake a child whose queue paused after a failure; queues you paused, stopped or interrupted stay paused
- Connection errors no longer show an empty reason
- The changelog panel can now show release notes in English or Simplified Chinese regardless of the interface language, and remembers your choice
- The mobile app now shows a machine's connection paths and lets you choose Auto, Direct, or Relay for this phone
- Plugin labels in the conversation list are set apart from the location, give way first when space runs short, and say which plugin added them
- Plugin labels on a conversation now also show in its header, not only in the conversation list
- On the mobile app, a machine's settings can require manual pairing for new devices, and pairing links authorized through Relay are labeled as such
- Threads started from Lark, Telegram, WeCom, or WeChat now show that app's name in the thread list
- Agents that assign or mention a thread with an id wrapped in extra quotes now get an "invalid id" error that says how to fix it
- Agents that pass a project or thread id wrapped in extra quotes now get an "invalid id" error that says how to fix it instead of "not found"
- A comment that mentions a remote team member now reaches the turn it is already working on, instead of waiting for that turn to finish
- Sign in to providers from your phone, copy device codes, and stop a login
- When an agent wraps a work item or memory id in extra quotes, it now gets an "invalid id" error that says how to fix it instead of "not found"
- A team's lead no longer goes quiet while work is still open: it schedules its next check on members, and is reminded once if it forgets
- Changing Claude permission modes while idle no longer blocks queued messages
- Claude sessions can change permission modes mid-thread, and rejected changes no longer leave unsent messages with unknown delivery status
- Team members are asked to acknowledge a required handbook as soon as a goal starts, and the lead is told when they have
- Windows background environment probes and device commands no longer open extra terminal windows
- When the session a chat is using gets archived, the chat keeps it and tells you to send /new or unarchive it, instead of silently starting a new session
- Notification copy feedback and detail labels now follow the interface language
- Sidebar hints and accessible control labels now follow the interface language
- When the agent asks a question in a chat, pictures and files sent with your written answer now reach the agent instead of being dropped
- Chat bots no longer treat a turn that has already stopped as still running when you queue, steer or start a batch
- Earlier turns in a conversation now show their working time, matching the turn summary, and leave it out when it cannot be measured
- Windows background servers no longer open agent terminal windows when process-tree protection is unavailable or disabled
- Send /batch in a private chat to collect several messages, then /send to hand them to the agent as one input
- A message sent into a running turn no longer leaves the queue stuck when its delivery fails; it is sent again as the next message
- Send /steer with an instruction to add it to the turn a chat bot's agent is running, on every chat platform
- A comment that wakes a team member now reaches it during the turn it is running instead of after that turn ends
- When a team member's session cannot start, the lead is now told right away instead of finding out at its next scheduled check
- A conversation whose session was restarted and later stopped for inactivity can start again instead of staying stuck until the server restarts
- Team leads are now asked to review each item as soon as a member finishes it, and are told who is idle and which items are still waiting in line
- With Claude Code, project rules and related experiences are added back after the conversation is compacted mid-turn
- On mobile, a switch that is off and disabled no longer stands out more than one you can use
- Agents now see why a command was rejected, such as the team handbook still needing acknowledgement, instead of only a rejection code
- Threads named from a first message that brings in another thread now show "@" and that thread's title instead of a raw link
- Thread titles taken from the first message on mobile are now cut at 50 characters, the same as on the web
- Hovering a referenced thread's chip or its "brought in" line shows the full title and which machine it is on, and clicking that line opens the thread
- The composer shows that it is sending while it reads the threads a message brings in
- When a chat approval is answered, denied on timeout or handled elsewhere, its card or message keeps what was being approved
- Team board cards in progress now show whether the assigned member's session is running, failed, waiting or stopped, and assigned items that have not been started yet are marked Queued
- Cancelling provider sign-in now finishes cleanup before another attempt can start
- Provider sign-in failures preserve the selected account's credential settings
- Slow request notices can be dismissed, and sign-in waits use their own progress and cancellation controls
- Provider sign-in can be cancelled while queued or running and stops waiting after ten minutes
- Codex and Grok sign-in wait for authorization; separate Codex accounts can sign in independently
- Default thread titles now follow the interface language in tabs, lists, references, the thread map and other thread views
- Codex Windows sandbox startup failures now show recovery steps and a fallback mode
- Timestamps in turn details and tooltips now follow the interface language
- Turn navigation shows localized titles for system wake-ups
- With a custom model address, Claude's Auto mode no longer writes files outside the thread's folder
- After this update, pairing links that were created earlier but not used yet stop working; create a new one
- The desktop app now signs back in to its own machine by itself however long it has been running, including WSL after a page reload
- Send /archived on to a chat bot to include archived sessions in its session list
- Chat bots deny approvals that nobody answers after 60 minutes by default; the limit is a bot setting
- WeCom app bots split long replies at line breaks instead of in the middle of a line
- Browser panel tabs on the desktop app come back after a full window reload again
- Browser panel tabs now come back after Ycodium restarts on the machine, reopening each tab's last address
- Send /compact to a chat bot to compact the current session's context
- Send /permission to a chat bot to pick a stricter permission mode for that chat, within the bot's own setting
- Cloning a project no longer gets stuck when the connection drops while it starts
- The user guide states that a phone names an archived project and tells you to restore it on the web or desktop, and that the phone has no restore button.
- The user guide describes when adding a project opens the home folder, asks before creating, and opens a project a link already points at
- Mobile push notifications follow the interface language in English or Simplified Chinese
- The user guide describes how adding a project works on a Windows machine
- On a Windows machine, Hidden and System folders stay hidden until you show hidden folders, and typing a dot does not reveal them
- Directory links are listed, and a link that points at an existing project names that project instead of adding another
- On a Windows machine, going up from a drive opens This PC, with every drive and shortcuts for Home, Desktop, Documents, and Downloads
- Paths on a Windows machine use backslashes, and a quoted path copied from Explorer is accepted
- A Windows folder name the system does not allow is blocked before the folder is created
- The user guide explains how to add a project
- The remote access and sidebar guides say machine where they used to say environment
- Typing while you add a project highlights a matching folder instead of creating one, and creating a folder asks you to confirm the path and machine
- On the desktop app, the folder browser has a button to choose a folder with the system window
- The control for adding a project is labeled Add project
- On the phone, adding a project says machine, names the pages, and shows Checking while a host is looked up
- Adding a folder that is already a project opens that project and tells you its name
- You can paste a path or a Git address when choosing where a new project comes from
- The folder browser can show hidden folders and remembers that choice
- An empty folder says you can add it, and a folder you cannot read says you do not have permission
- Adding a project skips the machine list when only one machine is connected, and names the connection
- When you have no machines, adding a project explains that and offers a way to add one
- Known failures while adding a project are explained in your language, with the original message under details
- The project name in the new-session title lines up with the rest of the sentence
- Setup required matches the other labels, and a clone that cannot tell whether the machine can clone says so
- A failed turn on a phone can open that agent's settings
- A failed model-list check keeps the last list you could use
- You see which session is handling a child thread's approval or question, and it is not counted as waiting for you until that turn ends without an answer.
- An agent-started thread's approval or question goes to the thread that started it first. If that turn ends without an answer, you are asked, and a later answer is shown as approved, declined, ignored, or the start of...
- Each turn shows how long the agent waited on you, and names approvals when there were some
- Settings can refresh one agent's model list
- Usage shows how long agents worked and how long they waited on you
- While Ycodium is open, model lists update about once a day, and also after the command-line tool is upgraded
- When you pick a model the agent does not list, that turn is not sent on another model
- Experiences that a newer experience replaces are no longer brought into agents' turns or memory search results
- The local command line can now record experiences and create memory pages, and is credited as their author
- Team members now each get their own worktree, registered to their session, the first time they are woken, instead of all working in the project folder
- Send /reasoning to a chat bot to see and change the model's reasoning effort
- Send /version to a chat bot to see which version of the chat bridge it runs
- When Claude Code uses a custom API URL, its provider settings now explain that every call sends all tool definitions, and how to turn that off
- A team member is now woken for one assigned item at a time; the next one waits until the current item is done
- Team members paused by a temporary upstream error now resume sending once on their own and pick up their work
- The source control panel no longer says nobody is using a worktree just because no thread is registered on it, and warns before you delete one that an agent may still be using
- A team member whose turn ends with work still unfinished is now nudged to continue, and the team lead is woken if they stall again
- A team member interrupted by a temporary upstream error now picks the work back up once on their own, and the team lead is woken when they can't
- Team members now run your project's checks before marking work done and ask the lead when they are stuck, instead of stopping silently
- An open team page now shows roster changes made elsewhere without reloading
- When a machine was reset or reinstalled, its settings now say so and offer to remove it, instead of showing an error trace and contradictory runtime status
- Telegram now keeps showing "typing…" while the agent is still working on your message
- When the web app's sign-in to its own machine expires, it now returns to the pairing page instead of saying it can't reach the machine; the desktop app signs in to its local machine again by itself
- Send /history in a private chat with the bot to see the last few messages of the current session
- Turn navigation follows native cursor settings
- Each experience in the memory panel now shows roughly how often it has been used and when it was last used
- Codex, OpenCode and Grok sessions keep the output-token footer on earlier turns after you send another message
- Plugin labels on mobile settings cards and usage quotas no longer stay as raw keys when the plugin's translations load after the screen opens
- The server no longer pauses while the machine health panel refreshes on machines with many processes
- Chat bots now reply with a short note when handling a message fails, instead of going silent
- The artifacts page lists every file an agent delivered to you in the conversation, with open, download and jump to the turn
- Agents can hand you a file with a new built-in tool; it is saved with the conversation and shown as an attachment
- Agents can read recorded changes from a selected turn
- Turn file lists now open recorded historical changes on web, desktop, and mobile
- Copying a fully selected conversation from the context menu now includes messages outside the visible list
- Attachment-only turns appear in turn navigation with attachment names
- Session maps fit the available workspace width and keep room for chat
- Desktop right-clicks keep input editing and selected-text copying without opening browser menus on empty interface areas
- Desktop focus rings appear during keyboard navigation and stay hidden after mouse clicks
- Desktop controls use native cursors, interface labels stay unselected, and images no longer drag out previews
- Mobile trajectories group work by turn with summaries, facts, and step navigation
- Browse turn summaries and locate their steps in grouped trajectories and turn navigation
- Generate a short model summary after substantial turns when a text generation agent is configured
- Worktree names are easier to read in narrow source control panels
- Hovering commit branch labels now shows commit details
- Forked conversations show their source turn and let you jump back to its message
- Source messages show links to conversations forked from them
- Thread maps fold ordinary turns while keeping fork points, errors and current requests visible
- Thread maps highlight related forks and keep clicked cards in place when expanding or collapsing
- Open the thread map alongside conversations in the project workbench on web and desktop
- The thread map is now a timeline of every thread by start date and project, with fork lines, search, and a details panel
- The thread map now opens as its own page from the sidebar menu or command palette; threads switch between chat and trajectory only
- The memory panel now lists each skill with its source and version, and shows same-named skills that are hidden by a higher-priority one
- Skills in a repository's .agents/skills folder are now given to agents in Ycodium sessions, except where the agent already reads them itself
- A refused runtime repair message now clears once the machine's state moves on, and health checks no longer pile up while one is still running
- Project memory is no longer added to every turn just because memory tools are on; a new switch under the memory tools switch turns it on, and it is off by default
- Messages sent to a Grok, DSH, Kimi Code, or generic ACP agent whose process just died now fail right away instead of leaving a turn spinning forever
- Stopping OpenCode now also stops a follow-up message you sent just before; it goes back to your draft queue instead of running after the stop
- Grok, DSH, Kimi Code, and generic ACP agents that exit on their own now show as stopped, and your next message starts them again instead of failing
- Each chat bot can have a default preset for new sessions, and /preset switches it for one chat
- WeCom bots now show the command panel as a card with buttons; tapping a button updates the same card
- WeCom self-built apps can now stream replies as the agent writes; if the WeCom client never picks up the stream, the final reply is still sent as text
- Telegram's command menu now switches language right after you change the reply language, without reconnecting
- Each chat bot can have its own default model for new sessions; /model in a chat still overrides it
- Chat bots can now be open in private chats while only allowing the list in groups, or the other way round
- The Lark icon is now a three-color bird, so Lark and Telegram bots no longer look alike
- A machine whose sign-in has expired now disconnects instead of staying connected with stale data
- Browser sign-ins now stay valid while you keep using them, and Relay connections renew automatically instead of expiring every hour
- Check connection in chat bridge settings now sends a test message to the bot's most recent private chat
- Turning plugins on or off in quick succession no longer occasionally fails with an invalid plugin patch file error
- WeCom bots now show progress in WeCom's native thinking block while replying, and the final message keeps only the answer and its status
- The IM bot form shows only name, credentials and access up front; other options sit under More settings
- Bot cards in chat bridge settings show the platform's logo next to the bot name
- Chat bridge settings with no bots yet explain how to add the first one and highlight scanning a Lark QR code
- In chat, /sessions with a project number lists sessions the bot opened in that project, and /resume can switch back to one, changing the chat's project with it
- When Ycodium Connect reports your sign-in is no longer valid, the app signs you out instead of showing a stale machine list
- Ycodium Connect machine list errors now explain what went wrong in plain words instead of showing a raw Relay error
- Lark bots now register their commands with Lark, so typing / in a chat shows the available commands
- After you approve a request or answer a question in Lark, the new reply card no longer repeats what the earlier card already showed
- Chat bridge settings show how many bots are online, and each bot card shows since when its status has held
- A failed refresh of Ycodium Connect machines keeps the machines already listed and shows a refresh error instead of an empty list
- On a machine running an older Ycodium, a project with no folder there now says to update that machine instead of offering to add the folder back
- Each bot card in chat bridge settings shows the last message it failed to handle, with the error code and reference number
- Lark bot rows have a new Verify card buttons action that sends you a private test card and confirms card button callbacks really arrive
- You can now create a WeCom smart bot by scanning a QR code in IM settings; its Bot ID and Secret are saved for you
- Bot cards in chat bridge settings show a masked app or bot ID, so two unnamed bots on the same platform can be told apart
- Lark bots now mark your message as done or failed when a turn ends, instead of only showing that work started
- Telegram bots now report a webhook set elsewhere, a token that isn't a bot's, or a mistyped token right in settings instead of quietly retrying
- When a Lark, Telegram or WeCom App bot can't connect, the connection check now says what kind of network problem it is, such as DNS, a refused connection, certificates, a timeout or the proxy
- When a reply fails, the chat now says why (quota, rate limit, context too long, credentials, model unavailable or connection) and what to do next
- Plugin translations now load from a local cache on reconnect instead of re-downloading every time, and only the current language is fetched
- Large updates from the machine are now compressed, so sessions over slow or remote connections load faster
- Messages sent to the bot on Lark or Telegram are no longer lost if the machine restarts right after receiving them
- Returning to the app while it is reconnecting no longer waits out an extra retry delay if that attempt fails
- Relay no longer limits how many machines can use managed connections
- Remote agents are now managed only on each machine's page in Settings, and settings search finds them
- Adding a folder on mobile that already belongs to a project now opens that project's latest thread; if the project is archived, it asks you to restore it on web or desktop
- Chat messages that fail to reach the agent are now retried automatically for about 12 minutes before you're asked to resend
- Turning a plugin on or off now explains why it failed, for example when it was just changed from another device
- Mobile can now open a team's goal and work items from a button on the home screen, view each item's status and assignee, and post comments
- A bot now stops receiving messages when its saved message records cannot be read, instead of silently starting over, and settings offer a reset to recover
- Danger-action buttons, including Stop, are easier to read
- A turn that ends without a reply now says so in the conversation instead of leaving it blank
- The Classic theme has been removed on web and desktop; if you were using it, the app now uses the default theme
- Plugin pages on mobile no longer sit under the home indicator, and text fields stay visible above the keyboard
- The Classic theme has been removed on mobile; if you were using it, the app now uses the default theme
- Copy diagnostics now says the report is ready and colors it by connection status, instead of reporting every unsuccessful check as a failed diagnosis
- Checking a WeCom smart bot that is still connecting now says so instead of reporting a connection failure
- Voice messages on Lark, Telegram and WeCom App now get a reply asking you to send text instead of reaching the agent as an audio file
- Lark "Repair scopes" now lists the missing required permissions with a link to request them on the Feishu open platform, instead of only checking the credentials
- Lark merged forwards now reach the agent as the full conversation, with each message's sender and time; attachments inside them are marked as unavailable for now
- Tabs and drafts from a newer machine no longer fail to load when they contain something this app doesn't recognize; this app shows them read-only and asks you to update before tab and draft sync resumes
- Telegram bots stop retrying when their token is rejected and reconnect on their own once a corrected token is saved
- WeCom smart bots stop retrying when the Bot ID or Secret is rejected and reconnect on their own once corrected settings are saved
- WeCom smart bots no longer fight over the connection when the same bot is signed in elsewhere: the bot stops reconnecting, says why, and can be resumed with Reconnect
- Git repository detection still works when the machine uses a non-English locale
- Each chat bot's settings card has a Reconnect action that reconnects just that bot using its saved settings, and a failed connection now points to it
- Lark and WeCom smart bot connection failures now say what is misconfigured (credentials, permissions, bot capability, long connection) and where to fix it
- WeCom App now greets allowed members when they follow or open the app, at most once every 12 hours per person
- A failed upstream check no longer greys pull as missing an upstream or switches the row to publish
- A failed Git repository check is now an error instead of "not a repository"
- Git status no longer shows a branch as synced when ahead/behind lookup fails
- WeCom App's Check connection now tells you whether WeCom has actually reached the callback, instead of showing green while messages never arrive
- When a chat message can't reach the agent, the bot now retries on its own and, if it still fails, replies with a reference number instead of staying silent
- Fixed "Reveal in File Explorer" on chat file links doing nothing on Windows
- Fixed opening links in the system browser from the server doing nothing on Windows
- Switching an existing thread to Full access now takes effect without losing the conversation
- Settings a newer machine changed in ways this app can't read now show as needing an update and are left untouched, instead of breaking the settings page
- Telegram bot replies now quote the message that triggered them, so it's clear who is being answered in busy groups
- Editing a queued message or answering an approval no longer shows a misleading failure when a newer machine returns an error this app doesn't recognize; it says the outcome is unknown and keeps your edit
- An executor list from a newer machine no longer disappears when it contains something this app doesn't recognize; unknown settings are shown with a prompt to update, and unrecognized install steps are not offered
- Plugin notifications from a newer machine no longer disappear when they contain something this app doesn't recognize; unknown items show generic text and a prompt to update
- Projects and conversations from a newer machine that this app can't read now show as placeholders asking you to update, instead of breaking the sidebar
- Conversations from a newer machine with parts this app can't read now open with a note asking you to update, instead of failing to load
- A new chat's first message is no longer lost: with one project the bot uses it right away, and with several it runs the message once you pick a project
- Telegram bots skip the backlog the first time they connect, then catch up on messages sent while the machine was off, without handling any message twice
- Slash messages the bot doesn't recognize, such as agent skills like /review, now go to the agent instead of returning the help list
- Opening Source control now re-reads Git status so outside edits show up without a manual refresh
- A failed turn now leaves a visible error row with a link to provider settings
- WeCom smart bots connect again: the default connection address was rejected by WeCom
- On mobile, going back and reopening a long conversation you had scrolled far up in now returns you to the turn you were reading instead of the end
- When a chat's turn finishes, its "working" reaction is cleared right away even if the next queued message has already started
- In a Lark topic someone else started, the agent now sees the topic's first message when the bot is mentioned later
- The WeCom bot's Check connection now verifies the bot ID and secret, so a wrong secret no longer passes
- Lark's Repair scopes now says it only checked the token and marks scopes, events and publishing as not checked, instead of ticking every step
- Forwarding a merged chat history to a Lark bot now gets a reply that it can't handle that yet, instead of silence
- Chat replies on Lark, Telegram and WeCom apps are resent automatically when the platform rate-limits them, instead of being lost
- If a live reply card can't be finalized, the conclusion is now sent as a text message instead of the card staying on "working"
- Reconnecting to an SSH machine that is too old or too new for this app now asks you to update instead of retrying forever
- Messages from a newer machine that this app can't read now show as a placeholder asking you to update, instead of breaking the whole inbox or message list
- Switching back to a long conversation you had scrolled far up in now returns you to the turn you were reading instead of jumping to the end
- Publishing a new repository can be retried after a failed push; it finishes the push instead of failing with "repository already exists"
- When a WeCom App reply can't reach someone outside the app's visible range, the conversation now shows a notice saying who missed it and how to fix it
- When a newer machine sends a settings section this app can't read, only that section is locked with a prompt to update; the rest of the settings keep working
- Chat bot rows in settings now say Connected only after the platform confirms the connection, and show Not connected with the reason when it fails or drops
- Plugin lists and plugin tasks from a newer machine no longer disappear when they contain something this app doesn't recognize; unknown items are shown with a prompt to update
- SSH reconnection no longer wastes pairing credentials when the machine was reset
- Hidden browser tabs now automatically free memory when over budget
- Agents that finish starting after the app opens, such as DeepSeek Harness, now show their limits in the status bar and on the Usage page
- You can now pick DeepSeek Harness's access level, and Full access stops asking for approval on every tool call
- When installing or updating an agent fails, the app now says why and links to the full output
- On a project's settings page, click Projects in the breadcrumb to switch to another project
- The sidebar now highlights the project whose settings you are viewing
- The status bar keeps showing your machine on the project settings page
- The source control panel now recovers on its own after its first status load fails, instead of staying empty until you reconnect
- Configuration warnings from Codex, such as a missing code-mode host that blocks MCP tools, now appear in the conversation
- On mobile, a queued message the machine refuses now shows why and stays in the outbox instead of disappearing
- On mobile, starting a new task no longer says the chosen agent is unavailable while the machine's agent list is still loading
- Preview annotations attached to a message draft are no longer lost when the app is reopened or the page is refreshed
- On mobile, the message box no longer blocks sending as if the agent was removed, and provider settings no longer show no agents, while the machine's agent list is still loading
- On mobile, thread actions such as settle, snooze and pin now say the machine is still connecting instead of asking you to update it
- Settings no longer says diagnostics are limited to terminal logs while this machine's diagnostics settings are still loading
- The message box no longer says an agent was removed or not chosen while this machine's agent list is still loading
- Keybindings and script shortcuts can no longer be edited before this machine's keybindings have loaded, so existing shortcuts are not lost or left behind
- Settings are no longer saved over this machine's newer values while it is still syncing; Save waits and says why
- WeCom App now replies "Got it, working on it" as soon as it starts on your message; the answer still arrives separately
- WeCom App rows can listen on another local address (such as 0.0.0.0) instead of only 127.0.0.1, for machines WeCom can reach directly
- WeCom App rows now always show their callback URL (or the path to put after your public address) in settings, instead of only in the server log
- On Windows, provider CLIs and their child processes no longer keep running after Ycodium is force-closed or crashes
- When a newer machine returns a result this app doesn't recognize, it now says so and asks you to update, instead of failing with a generic error
- New threads no longer start with the built-in run mode and environment before this machine's settings have loaded
- Self-hosted Relay Workers must be upgraded to work with machines on this version
- install.sh no longer prints errors when processes exit during scan
- Connecting to a machine no longer waits for editor detection; editor actions show a short loading state instead
- The pinned turn header, the quote button and the error banner no longer let the conversation text show through
- The changelog popover opens above the version button again instead of jumping to the top of the window, and long popovers such as CI checks stay next to their button
- The status bar is calmer: the machine is only colored when there is a problem, project and branch share one item, the activity count opens a list of threads, and an out-of-date usage figure turns grey
- The inbox no longer says nothing is waiting when it simply can't reach your machines, and screen readers now hear when messages arrive or leave
- Thread list menus and swipe actions on mobile now follow the app language
- When a machine runs a newer Ycodium, the app now reliably says it needs an update instead of showing a generic connection error
- Settling a thread no longer unpins it
- Declined tool calls are no longer hidden in collapsed tool groups
- The inbox updates on its own on machines running the latest Ycodium; older machines still refresh when you open or return to it
- Pins on the phone are now the same pins as on web and desktop, and pinning there no longer un-settles or wakes a thread
- Idle session tabs stay still while another tab is streaming
- Agents can reorder and pause the message queue of threads they started; plugins with permission can do the same and dismiss questions
- When sending fails, the app now says whether the request was already submitted, retries once on its own when that is safe, and keeps phone messages with an unknown outcome instead of dropping them
- Stopping a session no longer marks a reply that just finished as interrupted, and shows a notice when the stop can't be confirmed
- Open tabs, read marks and pins now stay in sync across your devices even without a Ycodium Connect sign-in
- MCP servers with a saved secret show that marker again
- Going back to the home page no longer reopens the project's first thread
- After a server restart, the home page opens the thread you last had open
- The turn bar at the top of a conversation now appears only after you scroll past a turn's first message, and clicking it jumps back there
- Clicking the version, notifications, machine, usage, project or branch on the status bar again now closes its popup
- Clicking an empty spot now closes an open menu or popup in the desktop app
- The usage card now opens right above the usage item on the status bar
- The browser button at the top now matches the buttons next to it
- Notifications and popups at the top of the window can be clicked again while Settings is open
- Plugin API 16: plugins read proxies and provider instances, routing and model selection only through the generated data ports
- Archiving a thread now actually stops its agent session; before, the session kept running in the background
- Updating a machine no longer reports a resume timeout when the update actually succeeded
- Keybinding and settings changes made while an app is connecting now reach that app
- Settings → Connections no longer misses a pairing code or session created or revoked while it is opening
- Stopping a turn on Grok, Kimi Code, or OpenCode now marks its running command as stopped by you instead of saying it may still be running
- Apps too old for a machine are now asked to update when they connect, instead of connecting without a version check
- While replacing a saved password or token in settings, Keep puts the saved value back
- When a relay is configured and you are signed out, the sidebar account menu now starts with Sign in
- ycodium pair, auth, and remote-agent commands print a one-line reason when the running server refuses them, instead of a stack trace and a crash on Windows
- The team board marks the goal's work item with a Goal badge, and the goal's state in the tab opens that item's details
- Running ycodium project add on a folder that is already a project now prints that project's ID, and failing ycodium project commands print a one-line reason instead of a stack trace and no longer crash on Windows
- Remote agent settings now show the home project ID and a ready-to-copy connect command after issuing a token and under each active credential
- You can now mention team members in a work item comment with the Mention button or by typing @, and the mentioned members are woken
- When several models of one agent share a name, the model picker now adds each model's ID so you can tell them apart
- Team board columns now wrap in a narrow panel instead of cutting off cards, and the comment box explains how to wake a member
- The sidebar's bottom button is now called Settings when you are signed out, and Chinese text consistently calls your Ycodium account 账户
- Starting a team goal now puts the goal on the board for the lead, and the Teams tab shows when the lead has marked it done
- When a plugin action is refused before sending, the composer keeps your draft, hint and focus instead of acting as if it was sent
- Provider passwords saved in settings are no longer sent to apps; the field shows Saved and can be replaced or cleared
- Archived and settled threads now show a Restore button, and the agents panel has Stop
- The queue shows its count once, and Stop waiting appears only on the request it applies to
- Clicking the project name at the top no longer starts a new thread
- Thread menus use the same names in tabs and the sidebar, and the sidebar offers Mark as read when a thread is unread
- Waking a snoozed thread is called Wake everywhere, reports failures, and can be undone
- Stop is called Stop everywhere and shows Stopping… until the turn ends
- The update button in Settings now matches the status bar, and the update notification opens the changelog
- The version, notifications and machines now live only in the status bar and open in place
- Add an agent and install it in one step when it is not on the machine yet
- Update installed agents from their settings page with one click
- The Windows installer and uninstaller now show a branded window in your light or dark colours, with a choice of install location
- The startup screen now matches your theme and shows the Ycodium mark from the first frame
- The desktop app now says which startup step it is waiting on, such as upgrading local data
- If the built-in server keeps stopping during startup, the desktop app now offers to retry, open the log, or quit
- One-click install for Codex, DSH and OpenCode now works on machines without Node.js
- Plugin API 15: plugins start, fork, import, interrupt and queue conversations and answer approvals only through the generated data ports
- On phones, foldable cover screens and split-screen windows, the bottom status bar no longer overlaps itself or cuts text in half
- Stopping an ACP agent session twice at once, or closing it while it stops, now waits for it to finish and keeps its final status
- Starting a team goal now says when the lead couldn't start because the project has no usable default model, instead of looking started
- Stopping OpenCode, or its process exiting, right as a turn finishes no longer loses the finished answer
- Plugin and usage pages now ask you to update the machine when it runs an older Ycodium, instead of showing a raw error
- Stopping an ACP agent (Grok, DSH, Kimi Code, Antigravity, generic ACP) right as a turn finishes no longer loses the finished answer
- Project MCP settings no longer show stored secret values; each server lists the saved names instead, and a failed save now says what could not be saved
- Plugin API 14: stopping a provider session, notifications and session projections move to the generated data ports
- Agents can inspect and control their direct child sessions; terminal history sync now declares thread access and only stops idle sessions
- The team panel shows the team handbook: its current version, which version needs confirming, and who has confirmed; people can edit and publish it or roll back to an earlier version
- The selected thread tab no longer shows a gap where it meets the panel below
- Captures no longer repeat error notifications or get stuck in the delivery queue
- Plugins can claim a work item for the agent that called them, and agents now have to claim an item instead of assigning it to themselves
- Team handbook now has versions, member acknowledgement, a claim gate for unacknowledged members, reminders, and publish or send-back by the owner
- Limits wording is consistent across the status bar, the limits card and the Usage page
- Clicking the limits item in the status bar opens the same limits card as the Usage page, with bars, reset times and a warning when the numbers are out of date
- Limits on the Usage page show each window as a bar with how long until it resets, warn when the numbers are out of date, and say when a used-up window comes back
- Phone usage limits now use the same wording as the web card, including how long until a reset and Check limits
- The team lead now splits its goal among members when the goal is assigned to it, instead of doing all the work itself
- Projects stay expanded when repository grouping catches up after a restart
- After a restart the project list appears without waiting for git
- In Auto mode through a third-party model gateway, agents can create and edit project files without waiting for approval, and tools outside the allowed list are refused right away instead of waiting
- In Auto mode through a third-party model gateway, agents no longer stall about a minute on each shell command before it is refused
- Agents can now read quota and token usage through the built-in ycodium tools
- The status bar limits item shows the most used window with a ring that turns amber at 80% and red when used up, shows balances, marks readings that are not current, and is hidden for agents whose limits do not apply
- The command palette checks source hosting only after you open the source list
- Switching theme or starting a new thread no longer keeps the previous add-folder setup on the command palette, and a slow repository lookup no longer pulls that setup back
- Typing a Git URL quickly no longer drops a character or clones a broken address
- In Auto mode, agents no longer get blocked from Ycodium's own tools, such as reading work-item comments from another machine
- Chat-bot replies are no longer lost when the app restarts: results of turns that finished in the last 7 days are sent afterwards, marked as delivered late
- The command palette finds an action when you search for the title it shows
- Codex no longer loses a finished turn when its session stops or exits right as the turn ends
- In group chats the agent now knows who is speaking: each message starts with the sender's name, or a stable member code when the name is not available
- The team lead's instructions no longer claim that comments can't reach members on another machine
- Quote a message and ask about it in Lark, Telegram, or a WeCom smart bot, and the agent now sees what you quoted
- The context meter for Claude sessions no longer jumps to full and back when a turn ends or a subagent reports progress
- Opening a conversation on mobile now shows a loading skeleton while its messages load
- Switching to a conversation that hasn't loaded yet no longer flashes an empty timeline
- Opening the browser workbench no longer hangs forever when its local server stops answering while it downloads
- Cancelling an agent session while it is still starting now stops it right away instead of waiting for startup to finish
- Team members working from another machine are now woken when someone mentions them or replies to their comment on a work item
- When the team lead sends work back, it now reopens the item so members on another machine pick it up again
- Remote members are woken again when their work is sent back, reassigned to them, or commented on by someone else
- Adding an SSH machine now uses the username you typed last instead of an earlier value
- A remote member on another machine now starts its own session for each team goal it is assigned, without binding a session by hand
- Codex sessions no longer expose Ycodium's MCP address and token in the process list
- Claude Code sessions no longer expose Ycodium's MCP session credentials in the process command line
- A thread bound to a home machine now starts a turn on its own when it gets new or changed work there, within about half a minute
- Connect this machine to a home machine as a remote agent with ycodium remote-agent connect, and bind a thread so its agent can reach the home machine's board and memory tools
- The Teams tab now opens beside the conversation instead of covering it, even when the workspace panel is not pinned
- Thread tabs titled with a long path now show its last two folders, so tabs that only differ at the end are easy to tell apart
- Thread tab details (project, machine, model, status) now open from the keyboard and appear in the tab's right-click and long-press menu
- With Grok, DSH, Kimi Code and ACP agents, a message you send while the agent is working and then press Stop goes back to your queue with a note instead of looking delivered
- Plugin API 12: authors, message participants and recipients can be an agent on another machine
- The Teams tab shows each remote member's assigned work, what is blocked, and when it was last seen
- Team rosters can include remote agents from other machines; the lead assigns them work items and they pick them up from their own machine
- Settings → Account can now list remote agents on a machine, issue a token shown only once, and disable or revoke them
- Teams shows "You" instead of your name for work items and comments you authored or were assigned
- Pressing Enter while older messages reload no longer drops your message, and a message that cannot be sent now says why
- In "Sent to me", replies send with Cmd/Ctrl+Enter, Esc closes the reply box in a conversation, and the box takes focus when opened
- Pressing Enter right as a reply starts showing no longer leaves your message unsent in the box
- Stopping a Claude Code turn on Windows now also ends the command it was running, instead of leaving it behind
- Starting an OpenCode session now fails with a clear error instead of waiting forever when its server never sends events
- Choosing a custom OpenCode agent right after a session starts no longer fails with "no agent named"
- Stopping an OpenCode session no longer hangs for up to 30 seconds when its server stops responding
- When the thread list stops syncing with a machine, the sidebar now says so and offers a retry instead of showing syncing forever
- When one request hits an internal error on a machine, only that request fails; the rest of the connection keeps working
- Android app no longer crashes on launch
- Turned-off agent instances no longer start their CLI or touch their account folders when Ycodium starts
- The previous team runs (Teams legacy) are removed; use Teams to give a project team a goal
- Declined and interrupted tool calls are now counted the same way everywhere, including background tasks on web and mobile
- Teams is now on by default: save a roster with a lead and give the team a goal from the Teams tab; the previous team runs are off and labeled Teams (legacy)
- A child thread's card keeps showing "Needs an answer" while its asynchronous question is still unanswered
- Loading placeholders are now visible in dark mode
- In chats, /team now gives the selected project's team lead a new goal with each message, and the lead's replies come back to the chat
- You can no longer send with a model marked Unavailable in the message box; pick another model first
- Handovers, summaries and conversation transcripts no longer drop the first task when a thread preset is applied
- A session that sent you a message now counts as waiting for you in the sidebar and status bar until you reply
- When a project has only a few experiences, agents now see all of them in a memory search, even ones that use different words
- A lead agent can answer the questions of the child threads it started, and the thread shows who answered
- Plugins can leave you a message under their own name, tied to a thread they work on
- Work item states on the team board show in your app language instead of always in English
- Plugin API 11: plugins start turns and update thread titles and models through the new data ports
- A maximized workspace panel now fills the whole row, and wide plugin tabs scroll inside it instead of pushing the page past the window edge
- Plugin API 10: plugins you allow can create and change work items and comments in your name when you act in their interface
- The phone app now has the "Sent to me" list too, so you can read and answer messages agents send you
- The Memory cell in the workbench lists the project's experiences, and you can forget one, undo that, or restore it later
- Parent threads no longer wake up to check an approval or question that a child thread already got answered
- Messages agents send you now land on one "Sent to me" page, where you can read and answer them
- OpenCode threads whose saved session is gone (for example started on OpenCode 1.x) now say so instead of quietly continuing with an agent that has forgotten the conversation
- A tool call you declined now shows as "Declined" instead of "Cancelled", and on mobile it is no longer drawn as a red failure
- Threads no longer get stuck on "Fetching models" when an agent finishes starting up while the app is connecting
- The workbench beside the conversation has a Memory cell where you turn project memory on or off for agents
- An agent can no longer start a child thread with wider permissions than its own thread; a child runs in the same permission mode or a stricter one
- On web and desktop, a tool call you declined now shows as cancelled instead of a red failure
- A child thread's "Needs approval" or "Needs an answer" status now clears once the approval or answer is given
- When a child thread asks a question, its parent thread now shows that it is waiting for an answer
- Declining an OpenCode approval with a note now hands the note to the agent right away and the turn carries on; declining without a note stops the turn as declined instead of showing a failed command
- OpenCode threads no longer start on a placeholder model you may not have; the composer waits until your models are read, then picks your default
- OpenCode models from providers you configured yourself now show up in Ycodium, and your own default model is selected instead of OpenCode's free one
- Agents can rename the child threads they started and switch a child's model for its next turns
- New OpenCode threads start on the default model you set in OpenCode instead of the first one in the list
- OpenCode threads that stop while idle no longer flash an error first
- Installing or updating OpenCode from Ycodium now uses the OpenCode 2.x npm package (@opencode/cli)
- The OpenCode provider now runs on OpenCode 2.x (2.0.26 or newer); an older install shows which version to update to
- On OpenCode 2.x, threads do not show task-list progress or attach files the agent produces yet
- Team triggers without a goal now start the run with a goal naming the event and its thread, instead of copying the agent's or provider's words from the event
- When a session fails, it now says what went wrong and what to do next, such as out of quota, rate limited, or sign-in failed
- Plugin notifications no longer wake an agent a second time after a reply already did, and a withdrawn notification no longer wakes anyone
- The team board now says when its direct messages could not be loaded and offers a retry, instead of showing no messages
- Failure notifications sent by webhook and other plugins now say what kind of failure it was
- Plugins reading thread messages get at most 8 attachments per message plus attachmentsTotal; read the whole message for the rest
- Plugins on a machine running an older Ycodium load again when one of them declares a permission this app no longer knows
- A machine whose settings this app cannot read now shows "Version not compatible" instead of reconnecting over and over
- Plugins written for plugin API 8 must move to API 9: a plugin now reads a thread through ctx.threads (get, messages.list, activities.list) instead of ctx.projections.getThread
- Agents now read another thread through small paged tools (status, messages, activities, pending approvals) instead of one call that often came back too large to use
- A sent message whose live updates stopped now says its text could not be read instead of showing stale text
- One unreadable update from a machine no longer drops the whole connection to it
- Plugin API 8: a communication record's text can be null with a bodyState saying why, and there are two new stages, withdrawn and deleted. Plugins must declare apiVersion 8
- A withdrawn or deleted message now says so where its text used to be, and no longer shows as still waiting to be picked up
- Pushing and fetching no longer hang forever when the remote stops responding; they stop after three minutes without progress and say so
- Plugins read communication records as record views and paged summaries; the plugin API is now version 7 and plugins built for version 6 need an update
- Agents now pick up only new messages with check_inbox, in batches that always fit one tool result; send_message takes a `to` address and no longer has `wait`
- A code block's wrap toggle no longer resets mid-reply when the code contains a dollar sign
- Commits and pushes no longer fail when a Git hook leaves a background process running
- Sessions that IM, session import and Teams start from a project's default model now keep that default's options, such as reasoning effort
- Plugins read projects through ctx.projects.get and ctx.projects.list; the plugin API is now version 6 and plugins built for version 5 need an update
- Agents can read their own project in full with the new get_project tool
- On Windows, source control no longer pauses for seconds on every refresh when the branch has not been pushed yet or the repository has no remote
- Plugins can pass undefined for optional fields when dispatching commands or sending notifications
- Agents now get a clear "result too large, ask for less" error from built-in data tools instead of silently receiving nothing when a result is too long
- Plugin data ports now treat an optional field passed as undefined as not given, instead of rejecting the call
- GitLab sign-in is now detected per host, so a self-hosted GitLab keeps working when another configured host (such as the default gitlab.com entry) is not signed in
- A git command that ignores the stop signal no longer leaves source control waiting indefinitely after it times out or is cancelled
- Sign-in problems reported by the GitHub and GitLab CLIs now show a fixed hint instead of the CLI's raw output, and commit hook output no longer shows credentials embedded in repository URLs
- Waiting for a quiet moment before repair no longer gives up after a single missed health probe
- Agents building a plugin can now read the plugin API reference in parts; it used to exceed what one tool result can hold and was silently dropped
- Stopping a turn no longer lets steer messages still queued for it reach the agent afterwards (Grok, DSH, Kimi Code and ACP agents)
- A message sent to steer a turn that has just finished now starts the next turn instead of getting lost (Grok, DSH, Kimi Code and ACP agents)
- The built-in browser no longer freezes other tabs when a page stops responding during setup or when starting a recording
- When a clone fails, the reason is now shown in your language and no longer includes Git's raw output
- Git error details and saved clone addresses no longer carry credentials from repository URLs
- Project lists cached on your devices by earlier versions are cleared once after updating, so repository credentials they may have held do not linger
- Telegram buttons no longer fire twice when the bot reconnects, and a reply in progress keeps updating after the bot's token or proxy changes
- Repository addresses shown in the app and handed to plugins no longer include credentials saved in the git remote URL
- Lock-screen and push updates no longer say an agent finished when you interrupted or stopped it
- Lock-screen and push updates now say an agent is working while its background work is still running
- On mobile, a thread now shows as working while a turn or background work is still running, and as failed when its last request failed
- The sidebar now marks a thread as failed when its last request failed, even after the session recovered
- A thread whose last turn was interrupted but still has background work running now shows as running in its tab instead of stopped
- Chat bots: /sessions and /resume now find this project's sessions opened in the app even when other projects have many newer ones
- Lark topics no longer split into two sessions after the bot reconnects or its app credentials change
- Stopping a DeepSeek Harness turn now ends the command it was running, including processes the command left behind
- Chat bot settings have a new layout: each bot is its own block with its own Save, and Connect a Lark bot, Check connection and delivery targets now work on mobile too
- Agents listing threads now see finished threads as idle instead of stopped, and a failed thread as failed even while its background work is still running
- Agents' list_threads tool now pages the project's session directory and takes parentThreadId and archived instead of scope
- Plugins now target API 5; plugins built for an older API stop loading until they are updated
- In a Lark group every topic is now its own conversation with separate context, starting on the group's project. Turn off "Open a topic when mentioned" to keep one running conversation in a group
- In a Telegram forum group a new topic now starts on the project, model and plan mode the group has picked, so its first message goes straight to work
- A thread that a chat is talking in now reports its conclusion and failures to that chat only; other chats on the same project (for example another topic of the same Telegram group) no longer get a copy
- Changing a chat bot's settings no longer disconnects your other bots; only the bot you changed reconnects
- On Lark the bot's answers now quote the message they answer, and a message that mentions the bot gets its answer in a topic under it (a per-bot setting, on by default)
- On Lark, after you answer an approval or a question the reply continues on a new card below it, so the finished answer is always the last card in the chat
- Stopping a Codex turn now ends the command it was running
- In a Telegram forum group each topic now has its own project and thread, and the bot answers inside the topic instead of in General
- Telegram bots show a command menu when you type /, react 👀 / 👍 / 👎 to show a turn's progress, and Check connection explains a mistyped token or a webhook set elsewhere
- WeCom App bots can now receive images and send images and files back, and a row with a malformed value no longer connects silently
- Telegram replies now show bold text, code blocks and tables formatted instead of raw Markdown
- Failed replies in chat now explain what went wrong in your language, with a reference number and what to try next
- Chat approvals no longer offer "always allow"; approve permanently from the app instead
- In WeCom and WeChat chats you can answer an approval by replying approve or deny, not only the option number
- Chat bridge: you can continue a web conversation from a bound IM chat after confirming, and private chats mirror text both ways with the web
- Chat bridge bots can be set to answer anyone or only an allowlist
- Installing a plugin that acts in your conversations now lists everything it can do there, including approving requests and stopping the agent
- When adding a project, a machine without a name uses the current language instead of "This device" or an internal id
- The mobile app no longer crashes when it opens the machines screen
- Machines running an older Ycodium can no longer install, update or remove plugins; the Plugins page says which ones need an update first
- The brand mark previews in Appearance settings on mobile now load in release builds
- Google Antigravity is now available as a plugin: install @ycodium-ai/agent-antigravity from the plugin center to run it as an agent
- On iOS 26 you can swipe back from a code block or table that is already scrolled to its left edge
- On iPhone a long machine name or reconnect status no longer pushes Settings off the Home header, and the logo no longer morphs into the back button
- On iPhone, header and bottom toolbar buttons no longer trigger the wrong action or disappear when a search bar is shown
- On iPhone the Home header logo no longer gets mixed up with navigation buttons when you open or leave a thread
- On iPhone the Home header buttons no longer flicker or get stuck mid-animation when the header updates
- Team members told they have unread messages are now pointed at the tool that actually reads them
- In a team run, an agent can ask which run it belongs to and whether it is the coordinator or which role it holds
- Agents can look up their own session address, project, machine and working folder, so they can tell others how to reach them
- The previous and next buttons in the image viewer now give a subtle press response
- Dialogs, sheets and popovers now close a little faster than they open, with a softer exit
- Cancelling a new worktree thread no longer leaves its temporary branch behind
- OpenCode and SSH machines no longer occasionally fail to connect because the system picked a local port that browsers and fetch refuse
- The browser workbench no longer mistakes its own server for a foreign one while VS Code is still downloading, and a stale or unanswering saved instance can no longer block Open forever
- Stop on a reconnected browser workbench now lets go of it instead of getting stuck, and tells you the old server may still be running
- New worktree threads now show their preparation steps and can be cancelled while they start
- Closing the app or losing the connection while a new thread is starting no longer leaves an empty thread behind
- The browser workbench reconnects to its existing server after a restart instead of launching a duplicate
- Stopping an adopted workbench no longer kills a process it cannot identify; its live port remains recoverable
- Plugins built for an older plugin API now show as too old and offer an update instead of a raw error
- Settings → Chat now has a "Connect a Lark bot" button: scan once and the bot app is created, published for you only, and saved as a bot, with no fields to fill in or Save to press
- Background sends open a fresh composer right away instead of waiting for worktree setup, and a failed background start restores the draft you sent
- Switching a draft's project now applies the new project's default model unless you picked a model yourself
- Sidebar update notices use a quieter pill while keeping a colored dot
- The sidebar version badge is easier to tap on touchscreens without growing visually
- The retired Ultrathink option and rainbow composer decoration are no longer shown
- Attachments added to a review comment are no longer limited to 10 MB when the machine accepts direct uploads
- An attachment that finished uploading before a later one failed is now removed from the server when you discard it
- Removing an attachment after a failed send now also removes its pending copy from the server
- Old Ultrathink selections no longer prepend Ultrathink to the message
- An attachment uploaded with a new task is now removed from the server once the draft or queued task that pointed at it is gone
- A sent attachment is removed from the server only after nothing still points at it, and cancelling before the upload starts no longer tries to delete it twice
- A failed or cancelled send no longer deletes an attachment that a draft or queued message still needs
- Sending a message no longer prepends "Ultrathink:" to what you wrote
- Chat messages now fade out over a shorter 24px area beneath the top bar
- Thread plugins no longer write saved passwords in plaintext when updating their settings
- Plugin settings can no longer be used to read other saved secrets
- Plugin settings no longer close themselves while you save them
- Files shared into Ycodium from other apps now upload directly too, with no 10 MB limit on machines that support it
- Phone attachments now upload straight to the machine, with no 10 MB limit, and show progress and retry if the connection drops
- Attachments no longer have a count or size limit; an image a provider cannot take is passed by file path instead of failing
- You can now attach files to your answer when an agent asks a question that accepts a typed answer
- Pasting a large block of text now attaches it as a text file the agent reads on demand, instead of filling the composer
- Typing after opening and dismissing a menu goes into the composer again
- The chat composer no longer blurs the timeline behind it while responses stream, which caused dropped frames
- Thread titles now also take the subject of linked GitLab issues and merge requests into account
- Project skills picked from the composer now run in Claude threads too
- The composer no longer shows an empty usage row before you pick an agent or after its agent was removed
- The slash command list now shows the commands and skills of the project you are in
- OpenCode Go subscribers can see how much of their rolling, weekly and monthly quota is left
- OpenCode turns now include the tokens used by their subagents in the turn's usage
- When a Claude usage window is rejected, the thread says the turn is paused and when the limit resets, and a failed turn names the limit
- When Codex stops on a usage limit, the thread names the window that ran out and when it resets
- Codex limits always show the main allowance; a model-specific limit such as Spark no longer replaces it
- Codex's Usage page and composer limits can use one reset credit to zero the current limit window
- The composer's limits show each window's and balance's real name instead of a raw label key
- The Usage page and the composer's limits now use the interface language for dates and numbers, name each agent by its own name, and no longer show raw label keys
- The Usage page and the composer's limits now read only when you ask, and show when they were last read
- The phone Usage page now shows each agent's limits, read only when you ask
- In a group that holds only you and the bot on Lark (or on Telegram with Group Privacy off), the bot now answers without a mention
- Chat settings now configure bots instead of groups: only people on a bot's allowed list can use it, and each chat picks its project with a picker card or /repo
- Skills picked from the composer now actually run in Claude threads, wherever they sit in your message
- The connector search box in plugin settings now has a clear button, and the publish-repository choice cards share the standard selected style
- The app uses about 200 MB less memory at startup; syntax-highlighting workers now start only when a diff or file preview opens
- Settings saved on a machine are now greyed out with an explanation when this app isn't running one, instead of looking editable and not saving
- The desktop app can run without a local machine: turn it off in Settings → Machines and Ycodium only uses the machines you connected, keeping this machine's projects and threads
- Images in chat reserve their final size up front, so the timeline no longer jumps when they load
- Tool rows that read an image now show a preview of it when expanded
- Images in chat messages can be clicked to enlarge, and images in the same message can be paged through
- Changing the project of a new thread no longer leaves an extra draft behind in the sidebar
- Text typed while a new thread is starting is no longer lost
- Expanded images can now be zoomed and panned, and the viewer controls sit outside the image
- Context can now be compacted while the composer holds an unsent draft
- Attachments that failed to upload during a disconnect retry automatically once the machine reconnects
- Settings search boxes now have a clear button, and the choice cards (provider type, account, add-machine method, pairing endpoint, appearance mode) share one selected style and arrow-key navigation
- Empty-list messages in Settings (no machines, no proxies, no users, no search results and so on) now share one centered style
- New `ycodium trace summary` command prints per-span counts, rates, and latency from the local trace file
- New setting to open commit, stash, and comparison diffs with files expanded or collapsed
- Diff file headers now have a button to copy the file path
- You can now expand gitignored folders (such as build output) in the file tree and open the files inside
- The file tree now has an expand/collapse all folders button
- Selected text now stays visible on the line a file link jumps to
- On mobile, quote an agent reply or one of its paragraphs from the Quote button next to Copy
- The theme editor no longer floats over Settings and blocks its controls when both are open
- The agent can now send files from the project to your WeCom chats too (pictures as pictures, other files as attachments)
- On Windows, a one-click install now finds the agent's program even when the installer only updated your user PATH
- The agent can now send a file from the project to your Lark or Telegram chat (images go as pictures, other files as attachments); the plugin asks for permission to read project files on install or update
- After a one-click install, Ycodium finds the agent's program and fills in its path, so it works without another click
- WeCom: images, files and videos you send to the bot, and pictures sent together with a mention in a group, now reach the agent, and a voice message arrives as the text WeCom transcribed from it
- When an agent's program isn't installed, Ycodium now says so and shows how to install it instead of a raw error
- Typing right after a line break placed before a quote or mention chip no longer jumps past the chip
- Telegram: voice messages, audio, videos and GIF animations now reach the agent as files, and a file over Telegram's 20 MB download limit gets a clear reply instead of silence
- Lark: images, files, voice messages and videos sent straight into a group now reach the agent without a mention (the agent gets them with your next message), and every image in a rich-text message is read
- In chat bots, sending a file or image on its own no longer starts a turn: it waits for your next message and goes with it, and an attachment that could not be taken now says why
- Editing a queued message uses the same editor as the composer, so quotes, mentions, and skills show as chips
- Plan approval cards in chat apps show readable choices in your language
- An offline machine now shows a short status in project settings, with the technical details in a tooltip, and its Direct badge no longer stays green after it disconnects
- Plan approval questions from Kimi and Grok now show "Approve plan" / "Revise plan" / "Stop here" in your interface language on web and mobile
- Questions Codex asks while it keeps working now appear as cards above the composer, where you can answer or dismiss them
- When an ACP agent such as Grok or Kimi quits while starting, the error now shows what the agent itself reported
- When an OpenCode thread's model is temporarily missing from OpenCode's model list, it stays selected and is marked Unavailable instead of being silently switched to another model
- A --dangerously-skip-permissions in Claude's launch arguments no longer bypasses the permission mode chosen in the chat input
- On mobile, choose /compact from the composer's slash menu to compact the conversation
- When Codex can't be started, its status now says it wasn't found and points you to the program path setting instead of showing "not checked"
- Codex requests for access to other apps or folders now show an approval card instead of leaving the agent stuck
- Codex sub-agent rows now show each sub-agent's model and reasoning effort when Codex reports them
- A --permission-mode in Claude's launch arguments no longer overrides the permission mode chosen in the chat input; the setting now says it is ignored
- Model options you never changed, like reasoning level, are no longer sent, so the agent's own configuration for them applies
- Compact context now works with Grok threads
- When a Claude turn fails, the error now says why: an expired login points to claude auth login with the right config directory, and overload or give-up results are shown as failures
- Retired models no longer linger in the model picker after a refresh, and custom models you deleted no longer come back
- OpenCode no longer asks before reading files, searching or updating its task list (.env files and commands still ask), shows its task list as plan progress, and no longer reports an error after you press Stop
- Grok's plan approval step now shows up as a plan question in the thread instead of failing as unsupported
- Codex now receives Ycodium's plan-mode and tool instructions, so it uses the built-in browser and child threads instead of improvising
- After OpenCode reconnects, approvals and questions raised during the disconnect now show up instead of leaving the agent stuck
- Approvals and questions from OpenCode sub-agents now reach you instead of hanging, Stop also stops sub-agents, and Full access no longer prompts for them
- Grok monitors and background shell commands now show up as background tasks, and a reply is no longer split in two when a background command reports progress mid-answer
- Grok's skills now show up in the composer's $ menu
- When Grok hits its usage limit or is rate limited, the turn now fails with a clear message instead of ending with an empty reply
- On the phone you can paste your clipboard into a terminal
- On mobile, refusals to remove a folder now explain the reason in your language instead of the server's English text
- Saved machines that have not connected yet now show their detected machine icon instead of a generic server
- On mobile, a folder whose clone failed can be removed from its project instead of deleting the whole project
- Machines that need a different app version now appear as neutral, disabled rows in the Connect list, saying whether to update the app or that machine, instead of failing when you try to connect
- The desktop installer is smaller: it no longer ships source maps and type declaration files
- On Linux, the link handler now shows the Ycodium icon in the system's "choose an application" dialog and is recognized by more desktop environments
- When a folder already belongs to another project, the message now names that project in your language
- Copy buttons under assistant messages are now always visible on touch screens
- Clicking a file path ending in a colon in compiler output now opens the file at the right line and column
- The quit shortcut no longer gets stuck while held, and pressing it twice now quits in every mode
- Run `ycodium app <folder>` to open a folder as a project in the desktop app that is already running
- In WeCom and other chats, /continue resumes sending after /stop paused it
- Searching for words with spaces or punctuation now finds them inside quoted replies and their comments
- The mobile app can now show a machine's Ycodium version, check for a newer release, and update the machine from Settings → Machines
- In the hosted web app, threads on remote machines now raise system notifications and close stale queued-message edits
- Refusals to archive, delete or remove a folder now explain the reason in your language instead of the server's English text
- Long branch names and paths are now shortened in the middle, so the date or file name at the end stays visible
- New tasks on mobile start with the project's default model unless you pick one yourself
- New threads start with the project's default model unless you pick one yourself
- Searching for a branch when starting a new task on mobile now also finds remote branches, and typing a space matches a dash in the branch name
- Pressing Enter in the pull request dialog now starts a worktree, matching the main button, and Enter picks the highlighted branch in long branch lists
- The pairing page is now available in Simplified Chinese and consistently calls the target a machine
- Chat groups now show the agent's questions as tappable cards, and answering one (or replying with a message) hands the answer to the agent
- A message sent while the agent is busy now shows a queued card in the chat, with buttons to steer it in, withdraw it, or resume sending
- A project whose folder is still cloning can no longer be archived: Archive is grayed out with the reason until the clone finishes
- When a machine runs an incompatible version, the banner above the message box now says which side to update instead of offering Reconnect
- Quotes in queued messages, sidebar previews, and search results now read as the quoted text instead of a link
- Click a quote in a sent message to jump back to the agent reply it came from and highlight the passage
- Press Ctrl/Cmd+Shift+C to copy the current thread's pull request link, or its thread ID when it has none
- Machines can now be turned off from Settings without removing them, so they keep their pairing and cached threads but stop connecting
- Connecting to a machine whose version is too far from this app now stops with a clear "update the app" or "update that machine" message instead of failing and retrying
- Each machine shows an icon for the kind of computer it runs on, and you can pick one yourself
- Settling or snoozing the open thread from its tab's right-click menu or with the settle shortcut now moves you on to the next thread, like the sidebar does
- Multi-select threads in the sidebar can now be unpinned in one go, with a single Undo
- The thread hover details no longer cover the snooze menu while it is open
- Select part of an agent reply to quote it in the composer, optionally with a comment
- Dragging the workspace panel's width now ends cleanly when the window loses focus or the drag is interrupted, keeping the current width
- Settings → General → About now has an Open source licenses page listing the license notices of the third-party software shipped with Ycodium; installers and the npm package include them
- Projects now show their icon in the mobile app too
- Projects can now have their own icon, an icon from the library or an emoji, and projects without one show their name as a colored letter badge everywhere
- Pressing Back after opening a project from a thread now returns to where you were instead of bouncing back
- The General settings page is now fully translated
- `ycodium service status` on Linux now reports why the background service may not survive logout or start at boot, and setup stops with a recovery command instead of leaving a half-installed service
- With a web page focused in the built-in browser, Ctrl+W (Cmd+W on macOS) now closes that browser tab directly, without pressing Ctrl+Alt first and without closing the window
- Settling, snoozing, pinning and reordering a thread now take effect immediately, even on a slow remote machine, and roll back if the machine rejects them
- Opening a link to a page that doesn't exist now shows a "Go home" page, and Try again after a failed startup re-checks the server instead of staying on the old error
- Dragging the sidebar edge no longer leaves the resize cursor stuck if you switch windows mid-drag; the sidebar keeps the width you had dragged to
- Kimi Code (and other ACP agents) no longer repeat earlier replies at the start of each new turn
- Chinese interface now uses one name each for the sidebar and for snoozing
- Scrolling up to load earlier messages no longer makes the conversation jump away from where you were reading
- Custom snooze can also wait for a number of minutes, hours or days
- The theme editor is now translated
- Snooze a thread until a date and time you pick
- The sidebar can collapse to a compact rail of project icons
- Threads you un-settle move back to the top of the list on mobile
- The Appearance settings page, the Add theme dialog and the command palette's "New thread in" entry now show in Chinese when the interface language is Chinese
- The accent and theme color pickers can now be used from the keyboard and with screen readers
- The command palette keeps keyboard focus while open, and number shortcuts no longer switch threads behind it
- The desktop quit shortcut can now quit directly, after a hold, or after two quick presses
- The command palette can now change the theme (with color previews) and the appearance mode, with new shortcuts for both
- Reopening the theme editor now shows the colors you last saved
- Switching the theme editor to Advanced colors no longer rewrites the theme you are editing
- Placeholder text in custom and imported themes stays dimmer than typed text
- OTLP trace and metric export can now send custom headers, set with YCODIUM_OTLP_HEADERS
- Settings search now also matches related words, section names and keyboard shortcuts, in both languages
- Long machine names no longer wrap in the connection rows, the authorized-clients list no longer traps page scrolling, and the connection status tooltip resizes when the status changes
- Thread right-click menus now have a "Project settings" entry that opens the thread's project settings
- Thread and pull request status colors are now consistent across the app; approval, completion and failure colors follow the selected theme
- On Windows, the server no longer refuses to start when a process has an unusual name or the process list can't be read under heavy load
- Switching back to the window puts the cursor in the message box again, without pulling focus away from the built-in browser page, a file you are editing, or another text field
- The right panel now remembers its width per project, and dragging its edge no longer leaves the resize cursor stuck when the window loses focus mid-drag
- Ctrl/Cmd+W now closes the current tab of the panel you are working in (the open file or diff on the left, the browser or pull request tab on the right), and still closes the window when there is nothing to close
- Add an optional notification sound, show an in-app notification instead of a system one when Ycodium is in front on another thread, and make the taskbar and dock badge count what notified you while the window was away
- Settling, snoozing, unpinning or archiving a thread can now be undone within 5 seconds from the notification or with Ctrl/Cmd+Z
- Thread rows on mobile now show each provider account's color behind the provider icon
- Press Ctrl/Cmd+[ and Ctrl/Cmd+] to go back and forward through visited pages, except while typing in a field or editor
- On mobile, the Settled and Snoozed shelves now start collapsed
- After selecting text in the terminal, copy shortcuts work right away; press Shift+F10 to reach the selection actions
- WeCom replies now stream in as the agent works instead of arriving as one message at the end
- Telegram replies now fill in as the agent works, approvals update when answered, and /panel opens tappable commands
- Inputs, selects and toggles now share the same heights, focus rings and disabled look
- A tab opened from a folder link now shows a folder icon instead of a file icon
- Folder paths written with a trailing slash in chat now become clickable folder links like other paths
- The green change bars and blame in a file preview now keep up with the file while the agent is still working
- Each folder in an open file's path is now a menu you can use to browse that folder and open files from it
- Clicking a folder link in chat now selects that folder in the file tree instead of showing a broken file preview
- Editing a long file with word wrap on no longer makes the view jump, because the heights of unchanged lines are kept
- The file editor now loads a file's syntax grammar before accepting edits, so highlighting no longer drops out on the first edit
- Syntax colors in the file editor no longer snap back to out-of-date highlighting after you type
- Starting a line comment in an editable file preview now puts the cursor in the comment box instead of leaving it in the file
- While the agent is still working, the file tree, diff view, open file previews and Git status now update as soon as it changes files or finishes a command, instead of waiting for the turn to end
- The diff view no longer rebuilds every file when one file in the working tree changes, so scroll position and expanded files stay put
- In a browser, Ctrl/Cmd+1..9 no longer jumps threads and goes back to switching browser tabs; the desktop app keeps the jumps
- The floating browser preview's outer corners now line up with the page clipped inside it
- A queued message no longer jumps into the chat, back into the queue and out again when its turn starts
- In Lark groups, the new /panel command opens a command panel with a button for every command; picking a session, team or model opens a second view with Back
- On desktop, menu items that open over the title bar can be clicked again
- On mobile, scrolling right after opening a thread no longer snaps you back to the bottom
- New Diff colors setting switches additions and deletions to blue and orange for easier reading with red-green color blindness
- Press Ctrl/Cmd+Shift+P to pin or unpin the open thread tab
- The taskbar and dock icon now show a badge with the number of threads that need your attention
- Code highlighting no longer freezes or spins a worker on pathological input
- A slow server now finishes loading the thread list and thread details instead of loading them twice
- The Run on / Workspace menu now closes after you pick an option
- Running-terminal icons in the sidebar now pulse in sync instead of out of phase
- Ctrl+Insert now copies the terminal selection on Windows and Linux
- The file tree search box no longer has its focus ring clipped in the inline preview
- The iOS search field no longer autocorrects or capitalizes what you type
- The desktop window can be dragged again on the empty start page and on the new-thread error page
- The environment badge no longer crowds the sidebar header when the sidebar is narrow, and screen readers announce the sidebar as navigation
- Searching by thread ID now finds the thread, and title matches in the command palette are ordered by recent activity
- Opening an existing project from the command palette no longer jumps to a settled thread
- The snooze menu no longer offers the same wake time twice on Sundays
- A clone you cancel now says "Clone cancelled" instead of "Clone failed" and is no longer shown as an error
- On mobile, cloning a repository returns right away: the project shows clone progress, and a failed clone can be retried or removed
- Plugin settings (IM, pull requests, webhooks and others) now follow the interface language
- Cloning a repository no longer holds the dialog open: the project appears right away with clone progress, and a failed clone can be retried or removed
- Browser profiles can now import cookies straight from a Firefox profile on this computer, in addition to an exported cookie file
- /resume now finds a thread by its ID prefix even when the prefix happens to be all digits
- The network access confirmation now explains what turning it on or off does to your other devices, in your interface language
- The error page can copy a full error report, with the app version, page and time, for bug reports
- On Lark, the agent's reply now fills in live on a single card and settles when the turn ends (finished, failed with the reason, or interrupted)
- On Lark, every pending approval gets its own card, and a card answered in the app or elsewhere switches to "handled elsewhere" with its buttons disabled
- When a project has no agent selected, the chat bot now tells you to send /model or set a default in the project settings
- Opening a file that isn't text (such as an MKV video) in the file panel now explains it can't be previewed and offers to reveal or download it, instead of showing a raw server error
- Importing a Claude Code session no longer drops messages that sit on very large transcript lines
- Open questions from an agent are now dismissed when its session ends, instead of staying on screen until the server restarts
- Clicking a file link in the conversation now opens the workspace bar when it is collapsed
- Ycodium no longer picks an agent for you: a new thread asks you to choose one before sending, and adding a project no longer sets a default agent
- Pressing Ctrl/Cmd+Enter to steer a running Codex turn works again instead of failing with "no turn id"
- Plugins too old for this Ycodium now say so and offer an Update button instead of a raw import error
- Updating a built-in plugin no longer pins it to that version after Ycodium updates
- The sidebar is fully translated in the Chinese interface
- On mobile, when the agent you chose has been removed or turned off, the app no longer switches to another one; it says so and waits for you to pick again
- When the agent you chose for a thread or project has been removed or turned off, Ycodium no longer switches to another one; it says so and waits for you to pick again
- Video and audio attachments in a conversation now play right in the message
- The file panel now shows HTML and PDF files as rendered pages, plays video and audio files, and opens files outside the workspace (read-only) when a conversation links to them
- Question cards no longer stay open after the turn that asked them has ended
- Messages sent in quick succession in the same chat group are now handled in order, so /new right after a message no longer leaves the chat bound to the wrong conversation
- Downloaded chat attachments keep the file name you uploaded, including Chinese names, and video or audio attachments can be played in place
- Chat bots now support /model to see or switch the group's model and /plan to toggle plan mode
- Chat bots can list the conversations they opened for a group's project (/sessions) and switch to one (/resume), so you can pick an older conversation back up from the group
- Importing a session whose tool outputs or file writes run to megabytes no longer drops those messages and tool calls
- Chat bots now pick up the same conversation after a restart, and approval buttons still sitting in the group keep working; a card that was already answered just says "Already handled"
- Chat bots can now reply in English or Chinese — pick the reply language in the Chat settings card (Chinese by default)
- The "session ended on restart" and approval-outcome lines in the timeline now follow the interface language
- The command palette and file picker are fully translated in the Chinese interface, and the Open connections command now appears in the palette
- Built-in agents such as Claude Code no longer occasionally fail to load when the server starts
- Thread titles stay on what you asked for instead of drifting with later replies, and vague first messages get a better title once the first turn finishes
- Pasting an absolute path into the Add project folder field now replaces the prefilled ~/ instead of creating a new folder under your home directory
- New Claude Code, Codex and Grok threads now start on claude-opus-5-5, gpt-6-sol and grok-4.7 by default
- Ycodium no longer fails to save its runtime state on Windows when antivirus or another process briefly holds the file
- Grok, DeepSeek Harness and Kimi Code sessions can now use Ycodium's built-in tools, such as the browser
- Scrollbars and other hover and state styles on shared controls inside the conversation and plugin pages now show correctly
- Starting Ycodium in a folder now only creates the project, no longer a first conversation with an agent you never chose
- With no agent enabled, the chat no longer behaves as if Codex were selected
- The server no longer fails to start on a busy Windows machine while checking for other running instances
- The conversation header shows a project's new name right after it is renamed
- Telegram bots keep retrying when the proxy is briefly unreachable at startup instead of never receiving messages
- Telegram group commands sent as /stop@your_bot now work like /stop
- A chat group whose project was deleted now gets a one-line explanation instead of silence
- Chat bots no longer mix up two groups on different platforms that share the same group ID
- Start a message with ! to run that line in the conversation's terminal; the conversation records the command, and you can attach its output to your next message
- A chat platform that is slow or unreachable no longer takes the whole chat plugin down at startup.
- WeCom bots now reconnect on their own after the connection drops, instead of staying silent until the plugin is restarted.
- A chat group whose project is archived now gets the archived notice once every 10 minutes instead of after every message.
- When a project has no default model, a chat group now gets a message saying so instead of silence.
- Long replies in Lark groups are now sent in several messages instead of being cut off with an ellipsis.
- When the server restarts, agents that were working get "继续" (continue) automatically and pick up where they stopped
- A bot in two Telegram groups no longer drops a message just because another group had a message with the same number.
- Chat groups no longer let anyone tap an approval button; only people on the row's allow list can approve from a chat.
- Copy buttons on code blocks, tables, invite links, connection logs and pairing codes now work over a plain-HTTP address, and the code block and table toolbars are translated
- On mobile, the no-writing-agent message now tells you to choose one in the desktop or web app
- Claude Code and OpenCode can read files you attach without asking for permission; they still can't change them
- The "start new worktrees from origin" setting is now always visible, even when new threads default to local
- File links whose paths differ only in letter case are no longer treated as inside the workspace on Linux and macOS
- A Codex file-change approval without a stated reason now shows which files it will change
- Closing the file editor no longer writes outdated contents back over the file
- Loading a very large Codex result (such as a long thread) no longer stalls while it streams in
- Deleting a worktree with a large install tree (such as node_modules) no longer fails with a timeout
- Deleting several threads at once now keeps going when one fails, and failed ones stay selected so you can retry
- Opening a new thread on a machine that is still loading no longer pulls you back from the page you have since moved to
- MCP servers you attach now reach agents run through the generic ACP connection
- Turning on network access no longer shows a Tailscale address as the local-network address, and machines that only have Tailscale can still enable it
- Long runs now show hours (for example 6h 59m 50s) instead of a huge minute count
- OpenCode detection no longer fails with "database is locked" or hangs on a stuck version check, and OpenCode 2.x servers now start correctly
- HTML and other document-type attachments now download instead of opening inside the app, and HTML previews run in a sandbox without access to the app
- Wide Markdown tables show a scrollbar again, and two-digit list numbers are no longer clipped
- Copying a code block no longer adds the triple backticks
- Copying a nested task list keeps each item's own checked state
- Assistant reply text now follows the contrast setting instead of staying capped at 80%
- Copy buttons now work when the app is opened over plain HTTP (LAN or Tailscale address)
- Claude threads no longer trigger an extra model request when a turn ends, slash commands still expand when a message carries images, and a safety model fallback is now shown instead of being hidden
- Pressing Enter to pick an IME candidate in a settings field no longer submits half-typed text, and ordinary typing no longer wastes work on keyboard-shortcut hint tracking
- With no text-generation agent chosen, regenerating a title and commit/push/PR actions now tell you so up front instead of failing halfway
- Usage statistics refresh much faster for long-running sessions, since only newly written transcript content is re-read
- Fixed an occasional hang where the agent never picked up a new message after a very quick previous turn
- Ycodium no longer silently uses Codex to write titles and commit messages; choose a text-generation agent in Settings, and until then titles come from your first message
- Codex MCP tool rows now show which tool ran and its key argument instead of "1 call"
- The accent color label in provider settings now follows the app language
- Browser tool rows in the conversation show the website's icon
- Starting a thread in a new worktree is faster: only the base branch is fetched and files are checked out in parallel
- While an agent is working, Ctrl/Cmd+Enter now sends your message into the current turn; plain Enter still queues it
- On mobile, text you typed as a free-form answer to a question now stays in the message box when you pick one of the options instead
- Picking "opus", "sonnet" or "haiku" for Claude Code now uses whatever model the installed Claude CLI maps that name to, instead of a fixed older model
- Commands that finish with an ordinary non-zero exit code, such as a search with no matches or a failing test run, no longer show as red failures; only real tool problems do
- When a web page in the built-in browser grabs focus, it goes back to your message box much faster, so fewer typed characters land in the page
- Text typed into a question's free-form answer is now kept in the message box when you click one of the options instead
- Claude models and reasoning levels now come from Claude Code itself, so new models show up without a Ycodium update; context length shows as unknown until Claude reports it
- Mentions of files you type in the composer now keep exactly what you wrote after reloading a draft or sending
- The built-in browser no longer steals keyboard focus while you type; press Ctrl+Alt on its own to return focus from the page to the app
- You can now choose, per browser profile, whether agents may use its logins; a profile switched off is closed to agents and the tabs they open fall back to Incognito
- Provider settings labels and descriptions are now translated into Chinese, and any agent plugin can describe its own settings form
- The model picker on web and mobile no longer tucks older models away under a "Legacy models" section; every model is listed and you choose
- Terminal links open only with Ctrl+click (Cmd+click on macOS) again, and pointing at one shows a hint
- A context window you type for a model now takes effect for agent plugins, and the settings page says whether a window was set by you or reported by the agent
- Removed the "Model catalog" card from machine settings; the machine no longer downloads models.dev data that nothing used
- Long lists, paragraphs and code blocks in streaming replies are no longer re-parsed in full on every chunk
- Long code blocks in streaming replies no longer stall the app while they highlight
- Saving the thread list cache no longer briefly freezes the app when you have thousands of threads
- Connecting to a machine now downloads its settings and model list once instead of twice
- Opening the Diagnostics page no longer loads every trace file into memory at once
- Terminals that print a lot of output no longer slow down the machine or grow its memory without limit
- Reopening the web app no longer re-downloads files that have not changed
- Agent icons in the web app now come from each agent's own plugin, and a missing or broken plugin icon shows a grey missing-icon box instead of initials
- The add-agent list, agent names and the plugin center's agent switches now follow the agent plugins installed on each machine
- Agent icons on mobile now come from the machine's agent plugins; a missing icon shows as a grey placeholder box instead of initials
- While a long tool call is stalled, the conversation no longer redraws itself every few seconds
- You can now import cookies from an exported cookie file into a browser profile, to bring a login over from Chrome or Edge
- Settling a thread now closes its terminals that are sitting idle at a shell prompt; terminals running a command stay open
- If saving settings fails, provider and proxy secrets are no longer left changed or deleted
- Removed the /feedback command for Codex threads that uploaded feedback and logs to OpenAI
- A thread that fails to load now shows an error instead of staying on "synchronizing" forever
- The in-app browser now supports multiple profiles, each with its own cookies and logins, plus an Incognito profile that is discarded when the app closes
- Restarting the server no longer sends notifications again for tasks that had already finished or failed
- Threads no longer crash for projects that have older scripts whose names cannot have a keyboard shortcut
- Approval and question cards that were already handled no longer reappear
- When a thread's workspace folder has been moved or deleted, Ycodium now says so instead of showing a confusing process-launch error
- Restarting the desktop app no longer piles up duplicate local entries under Authorized clients
- `ycodium service install` and `update` no longer replace a newer background service with an older CLI version unless you pass --allow-downgrade
- OpenCode sessions now get a generated title instead of staying on the placeholder
- Automatic thread titles are retried after a temporary failure instead of staying on the placeholder
- Remote and WSL hosts whose Node.js was installed with Linuxbrew are now detected
- Settings search now finds the WSL backend setting on Windows
- The WSL backend now starts from a copy kept inside the Linux distro, so launches after the first are much faster
- Closing a terminal on Windows now actually stops the processes running in it
- Programs in the integrated terminal now detect truecolor support
- Background Git status checks no longer leave large temporary pack files behind when repository maintenance keeps failing
- Terminal output is smoother over remote and relay connections
- On Windows, your shell's PATH order is now kept and stray quotes in PATH entries no longer break lookups
- Installed editors no longer disappear from the Open menu when PATH discovery is slow
- Showing a file in File Explorer now works for paths written with forward slashes
- Self-hosted repositories cloned over SSH on a custom port now link to the correct web address
- A session that just finished a long turn is no longer shut down by the idle reaper right away
- Failed fetches now say whether credentials, the network, repository access, or a lock is the problem
- Approval cards for Codex no longer stay stuck after a restart when their callback has expired
- OpenCode installs whose version prints with a "v" prefix now show their version and get the minimum-version check
- Switching to a branch that was deleted elsewhere no longer discards uncommitted edits to a file with the same name
- Thread titles, branch names and commit messages written by Claude now work with Claude Code's verbose mode on, and run without tools, hooks or project config
- The app stays responsive when many Git commands run at once
- A stalled or very slow connection can no longer make the server buffer live events without limit and run out of memory
- Worktree setup scripts no longer print stray color probe sequences when they start before a terminal is attached
- Starting a thread in worktree mode no longer fails when the folder is not a Git repository or has no commits yet
- `ycodium project remove` and `rename` can find a project by path even after its folder was deleted
- The relay client now installs on Windows instead of failing its post-download check
- A thread whose worktree still had a placeholder branch name now follows the branch the agent checks out
- Reconnecting after a long absence no longer risks running the server out of memory when the missed events carry very large tool output
- Git status polling no longer keeps re-running clean filters while the repository index is locked
- Two remote servers on the same hostname no longer sign each other out of the web app
- Diff views no longer lose their file names when git is configured with diff.noprefix or diff.mnemonicPrefix
- Starting a thread from origin no longer fails when the base branch exists only locally
- With Repository conventions selected, generated commit messages and pull request text now follow the project's AGENTS.md, and CLAUDE.md for Claude writers
- Pushing a branch that was created from another branch no longer writes its commits into that base branch
- The database write-ahead log now shrinks back after large writes, and a query that failed once because the database was briefly locked is retried
- Provider secrets typed directly into settings.json are no longer lost when settings are saved from the app
- Threads no longer settle on their own after a stretch of inactivity or when their pull request merges; a thread is settled only when you settle it
- Manually compacting a Codex thread's context now actually compacts it, and a failure is shown in the thread
- Images attached to a Codex message now reach the model instead of arriving only as a file path
- The desktop app now explains an unreadable connection key after a user-account switch or data-folder copy, and lets you reset this computer's connection identity without deleting anything
- Notifications waiting for a busy thread are no longer lost when the server restarts
- Agents that are not signed in show a Sign in button on their provider page again, and Kimi Code now knows whether it is signed in
- After a restart, a thread still waiting on an approval or answer can no longer be marked done or snoozed by mistake
- Screenshots and recordings of any size are sent to the machine again; the 4 GB limit is gone
- GitHub Copilot, Gemini CLI, Qwen Code and Hermes are no longer built-in providers; any ACP agent can still be added as Other agent (ACP)
- Kimi Code is now its own provider type with its own settings page
- Tool calls cut off by an app restart no longer keep showing as running
- Approval and question cards left over from before the app restarted now close on their own instead of waiting for a click
- Screenshots and recordings over 4 GB now stay on your computer with a notice instead of being sent to the machine
- Text added in recent updates now appears in Simplified Chinese instead of English when the interface is set to Chinese
- Agent activity from earlier threads is no longer overwritten after restarting the app
- Codex and OpenCode sessions list your skills in the $ menu again
- Approving an agent's request no longer fails after restarting the app, and the approval card goes away when you interrupt
- Claude sessions now list your Claude skills in the $ menu and show $skill mentions as skill chips
- Screenshots and recordings you take in the browser panel can be sent to the thread's machine with Send to in the notice after saving
- Browser recordings an agent asks for are now sent to the machine the agent runs on, and the agent is told whether they arrived
- Deleting a project no longer lands you on one of its deleted threads
- Adding a folder to a project on another machine can now clone a Git repository there
- Renaming a project now carries the new name to its other machines once they are connected
- The sidebar has a project sort menu: recent activity, date created, or manual drag-to-reorder
- Cloning a private repository on a machine with no one at its terminal now fails quickly instead of waiting two minutes
- Clients no longer re-download the full plugin list every second while an agent works, cutting data use on mobile and remote connections
- Long conversations no longer tear down and rebuild older turns while a reply starts and finishes
- More notifications in the conversation view, such as settle, copy-path and feedback messages, now follow your language
- Picking a branch after switching it outside the app now checks it out instead of doing nothing
- Upload failure hints on attachments now follow your language
- Placeholders, stash notices, mode menus and timestamps in conversations now follow your language
- The branch-switch confirmation and the drop-files hint now follow your language
- Project settings can add a folder on another machine to a project, or remove a folder from it without deleting files or threads
- A project with folders on several machines now shows as one row in the sidebar, with each machine listed under it
- Connection, snooze, background-work and branch notices above the message box now follow your language
- A new thread's message box no longer invites you to continue a conversation that hasn't started
- Browser recordings of pages without a background color now show a white background instead of black
- Agents waiting for an element in the browser now actually wait until it appears instead of continuing right away
- Choose in Settings whether links you click in the chat and terminal open in your system browser or the integrated browser
- Terminal links open with a plain click; hold Ctrl or Cmd to open a web link in your system browser
- The floating browser preview shows a red dot while it is recording
- Browser recordings keep the pointer aligned with the page and can show key presses and mouse clicks
- Hiding the right panel while it shows a page now moves the page into the floating preview
- Pages without a background color now show on white in the built-in browser, as in a regular browser
- Browser recordings stay sharp at high resolutions and release screen capture as soon as they stop
- The floating browser preview can sit in the empty space beside the message box
- Browser recordings are now captured at full resolution, with an optional 60 fps setting
- The floating browser preview can be resized from any edge or corner and keeps the page's shape
- Providers that use their own API address and key no longer show another account's subscription usage
- Browser tabs you are not looking at no longer keep drawing in the background, saving battery
- A new Claude or Grok provider that uses its own API address and key now gets its own account directory, so it never borrows another account's sign-in
- Grok no longer sends its signed-in session token to a custom model address, and signing in to a Grok provider now uses that provider's own account directory
- Agents can use the browser in threads created by plugins such as teams
- Closing a browser tab the agent is using now asks for confirmation first
- The floating browser preview now pops up whenever an agent uses the browser and stays above the side panel
- Keys the agent presses in the browser panel no longer end up in the app's message box
- When several desktop apps are connected, a new agent session now uses the browser you are looking at
- Open menus now close when you click into a page in the built-in browser
- Right-clicking a page in the built-in browser now shows a menu with copy, paste, Copy Link and Copy Image
- Browser snapshots taken by the agent stay small enough to read, and the agent can save a snapshot's screenshot to disk
- Adding a Grok or Codex provider again tells you which account is already signed in on the machine and lets you add a separate account
- Keyboard shortcuts inside the built-in browser now go to the page instead of triggering app commands, while copy, paste and undo keep working
- Annotating in the browser no longer gets stuck when the page navigates after an embedded frame loads
- Agents can now take a text-only browser snapshot without a screenshot
- The message box no longer stays locked when a browser annotation screenshot fails; the annotation is sent without it and you are told
- If a desktop app stops answering the agent's browser requests, the agent now switches to another connected app instead of timing out repeatedly
- Agent browser snapshots and screenshots no longer hang when a page is slow to render
- Sign-in popups such as "Sign in with Google" now open from the built-in browser
- Clicking the last prompt in the stash menu restores it again, and the / @ $ menus no longer slip under the message box
- Sign-ins behind Cloudflare human checks now work in the built-in browser
- Screenshots from browser annotations are attached again in the desktop app
- Fixed a crash that could close the whole app while an agent was controlling the browser panel
- While answering an agent's question, / @ $ menus in your own answer open again and a picked file stays in the answer
- Typing in the message box no longer redraws the rest of the input card on every keystroke
- The browser panel, its menus and the annotation tools now follow the app language
- Clear cookies and Clear cache in the browser panel now clear only the current machine's storage
- In Claude threads, your message now appears the moment you press Enter instead of after a round trip to the machine
- Stopping Browser VS Code while its tab is open no longer shows a "secure channel could not be opened" error
- The Browser VS Code progress window now says why a step was skipped in words instead of codes like already-running
- Reopening Browser VS Code no longer shows steps left over from the previous attempt
- The conversation view now loads with the app instead of being downloaded from the machine, so it no longer goes blank when that download fails
- On Windows, Ycodium started from Git Bash can now unpack runtime archives; it always uses the tar that ships with Windows
- Browser VS Code now opens on Windows instead of failing right after downloading the VS Code CLI
- On Windows, settings containing quotes, & or ^ now reach npm-installed agent CLIs such as Codex intact instead of being cut off
- Forking from a message now opens the new thread instead of bouncing back to the original one
- The "Scroll to end" button no longer floats over the trajectory view and now follows the interface language
- An environment variable left empty on an agent no longer blanks out the same variable from the machine's environment, so Claude Code stops reporting "Not logged in" in that case
- The model picker lists only each agent's own models; leftover model-source choices from earlier versions no longer affect drafts, queued messages or sending
- The bundled model-vendor plugins and protocol translations are removed; each agent now connects to its model service directly with its own settings
- Model connections are now set up on each agent's own settings page; the Models settings page, source picker entries and "Split into executor and source" are gone
- If you split an agent into an executor and a model source earlier, add its address and key back on the agent's settings page to keep using that service
- Conversations that ran on a model source that no longer exists keep working once the agent has its own address and key, instead of refusing to start
- "Show in chat" from the trajectory view now scrolls to the selected message instead of jumping back to where you were
- The conversation area no longer goes blank and reloads when the connection to a machine drops and comes back
- When the conversation area cannot show, it now names the plugin, the machine and the reason, and offers a retry; a broken control no longer blanks the whole area
- Model URLs and keys set in an agent's environment variables now reach the agent again, so Claude Code can use Anthropic-compatible services such as OpenRouter or DeepSeek
- Usage checks pause until you sign in again if a plugin changes its approved request, and provider sign-in hints update when protocol translations are enabled or disabled
- Unavailable model choices are collapsed, and disabled sources no longer hide available models from the agent's own account
- Grok conversations no longer reject follow-up messages when the agent's internal model differs from the selected model
- Switching compatible models keeps the conversation and applies the new model to the next turn
- Open file tabs can be switched and closed again
- Codex threads use the service tier picked in the model menu again, such as Fast
- If a model plugin is replaced after you sign in with a subscription, Ycodium stops renewing that sign-in and asks you to sign in again
- Fixed Grok and OpenCode failing to start with Anthropic-format and Responses-format model sources
- Codex subagents that are woken up again show as working instead of idle
- Codex subagents show up in the Agents panel again
- If the Codex CLI exits while a request is stuck being sent, Ycodium now reports the failure instead of leaving the request hanging or crashing the server
- A conversation whose model source was removed now stops and tells you to stop waiting on the failed message and pick another source, instead of quietly running on the agent's own login
- Switching the model source mid-conversation on Claude Code now takes effect, and later turns no longer fail with a false "bypassed the proxy" error
- Turns that finish right after a session restart or account switch no longer fail with a false "bypassed the proxy" error
- Checking a provider's status while it runs many sessions no longer marks it as unavailable
- Snoozed threads on mobile show their wake-up countdown in the interface language
- Long conversations through a model source no longer fail every turn with a "bypassed the proxy" error after 64 requests
- Model sources now lists the recent requests Ycodium forwarded, and says plainly when there are none
- Providers now warns when an agent's requests bypass Ycodium, with a button to sign that account in to Ycodium
- Recently visited pages in the browser panel now keep their "visited" time up to date
- Relative times such as "3h ago" now follow the interface language
- The provider list's "Checked" time now reflects its oldest status instead of its newest
- Conversations from before an update no longer start over on the next message, and switching accounts of the same agent inside one conversation works again
- Messages sent while an agent is working now stay in the queue without jumping through the chat timeline
- Codex replies, streaming text, tool rows, and approval cards render again instead of failing with decode errors
- A Codex account over its quota now shows the usage-limit message with its recovery time instead of dropping the session
- Long conversations keep a bounded history window while preserving reading positions, selections, and active requests
- Chat and trajectory views no longer get stuck while loading earlier history
- Plugin views load correctly when executor plugins are installed
- The pull requests page now follows the app language instead of showing English
- Mobile composer first row gains an agents badge and a turn navigator
- Skill tokens ($skill) now prepend a run-instruction line to the prompt sent to the agent
- Mentions (@file) now prepend a read-instruction line to the prompt sent to the agent
- Terminal user documentation is now in English, matching the rest of the user docs
- Idle terminal tabs now show your shell's name, such as zsh or bash, instead of a generic number
- Screen reader users can now hear new terminal output and read the full scrollback
- You can now select and copy terminal text while a command is still printing
- The terminal no longer flickers or jumps back to the bottom on every new line once a command has printed a lot of output
- Import a ChatGPT subscription from a Codex CLI sign-in, or sign in directly, and use it with any agent, not only Codex
- Codex can use a DeepSeek API source through the built-in proxy
- DeepSeek Harness is now provided by the removable executor plugin @ycodium-ai/agent-dsh.
- Browser VS Code no longer fails to open on this machine when its saved identity is still a placeholder
- Machines now include a Browser VS Code plugin that can install the official CLI
- Open Browser VS Code from a machine, a project header, or the command palette
- The first open of Browser VS Code shows a step-by-step wizard; later opens go straight to the browser
- Startup failures now show a reload action instead of leaving the app stuck on its loading screen
- Expanding the message input no longer rerenders the mounted conversation history
- Local thread snapshots now stay within a storage budget and reload from their machine when evicted
- Connecting to the same machine from multiple places no longer starts competing connection attempts
- Grok text generation works again on the default instance
- Switching between long-running conversations no longer accumulates hidden renderers or rebuilds the full conversation view
- Local plugins can rebuild and refresh their interface when you save source files, without restarting the desktop app
- Conversation history no longer jumps back to the latest message while you scroll upward
- Desktop window resize and maximize no longer trigger severe conversation UI stalls
- Settled conversations no longer show a redundant banner above the composer
- Old-session compaction now appears as a compact one-line prompt
- Mouse wheel scrolling over conversation tables now continues through the conversation
- Resizing the sidebar and workspace panels now stays responsive in long conversations
- Conversation notices now keep their intended layout instead of collapsing into the icon column
- Web and Mobile now consume the executor card catalog and render install/sign-in/drain slots driven by each executor's contribution, replacing driver-specific switches
- Executor plugins can now be installed, registered, and managed through the host lifecycle with card-driven catalog and force-uninstall support
- Executor plugin contribution contract enables external agents to register as first-class providers in the Ycodium orchestration layer
- Plugin views now load correctly in Windows builds
- Add vendor preset cards for OpenAI, Anthropic and DeepSeek to Settings → Models for step-by-step source setup
- Show live account usage or balance for the selected model source in the composer, with manual refresh
- Models from a freshly verified Codex account can be selected right after sign-in
- Desktop builds can load plugin views and translated plugin navigation again
- Finished team runs no longer make the server re-stop their members on every agent event
- Add separate Codex subscription accounts in Models settings and use them from the message input
- Manage model sources in Settings and keep the selected account and model options with drafts and queued messages
- Chat, trajectory and turn navigation controls now sit together inside the message input card
- Provider errors now appear once in a conversation instead of repeating across the reply, timeline, and banner
- Update buttons and release-history controls remain clickable in the desktop changelog popup
- Queued messages stay within the list while dragging and show clear placement, saving and failure feedback
- More built-in features can be managed as plugins, with saved settings and disabled state preserved during upgrades
- Plugin settings stay readable when a connected machine reports newer operations
- Pull request pages now keep usable tabs and resizing, with improved narrow-screen layouts and plugin configuration forms
- Conversations sharing a provider can start independently without waiting for each other
- Collaboration reminders and replies can reach the active turn when supported
- Dialogs keep long forms scrollable and their actions visible in smaller windows
- Source control keeps its layout while loading and refreshes changes with commit history
- Team completion notifications no longer retry indefinitely after a related team has ended
- Remote machine updates no longer report failure after the new runtime starts
- Browser previews in narrow desktop windows are now visible and interactive
- Teams can be disabled or removed without affecting ordinary chats, with team rules and interfaces managed by the plugin
- Browser previews stay visible in narrow side panels and finished team runs no longer show a pending-action warning
- Teams can be disabled or removed without affecting chats, attachments, or message queues
- Team controls stay accessible in narrow chat panes, and team drafts keep their attachments while Teams is unavailable
- Edit queued messages with images and files, reorder them, and steer the current turn or stop it to prioritize a message
- New conversations keep messages visible during startup and queued messages no longer stall during dispatch
- Large replies no longer trigger repeated reconnections when other messages arrive at the same time
- Search results now show file matches and web sources while preserving complete tool output
- Conversations now show clearer tool details with preserved raw input and output
- Pending approvals keep conversations readable and show complete action labels
- The home and download pages now show the desktop release date and time
- Hidden trajectory views no longer perform automatic scrolling that can make the window sluggish
- The queue banner now offers Stop waiting for this request when an earlier request's delivery stays unknown, letting queued messages proceed
- Conversation view gains a Chat / Trajectory toggle — the same session events as a filterable step table, on web and mobile
- Switching between conversations and groups no longer makes the layout shake at scaled display settings
- Switching between conversations and groups no longer makes the layout shake at scaled display settings
- Terminal input recovers after reconnecting, with a Take control action when another device owns the terminal
- Terminal input recovers after reconnecting, with a Take control action when another device owns the terminal
- Message queues recover after restarts and let you inspect queued messages, cancel unsent requests, and resolve unknown deliveries
- Message queues recover after restarts and let you inspect queued messages, cancel unsent requests, and resolve unknown deliveries
- Team task timeouts resume when a person answers, even if the provider never confirms
- Failed team tasks show a reason when a member session ends without an error message
- Team task timeouts resume when a person answers, even if the provider never confirms
- Failed team tasks show a reason when a member session ends without an error message
- SSH handover no longer stops a different server when a saved process ID has been reused
- New conversations open in their own tab outside the current group while existing blank group members are preserved
- Paused conversations now show queued requests and a Resume sending action without getting stuck on a sending indicator
- Pinned turn headers now fit the conversation column without covering the full timeline width
- Git History now supports complete reference filtering, accurate comparisons, richer commit actions, and automatic refresh after Fetch or Pull
- Runtime installation and self-updates now use the current download source, including configured mirrors
- SSH reconnections reuse installed runtimes without contacting the download site
- SSH connections no longer fail while fetching the runtime from an obsolete download address
- Team tasks no longer time out while producing output or waiting for an answer
- Diff previews preserve whitespace in filenames and open the correct file
- Switching between machines keeps cached Git panels on their own machine and avoids unnecessary layout work
- Generated images from Grok now appear correctly on Windows
- Team tasks retain activity tracking while their running turn is still being bound
- Active team tasks no longer fail solely because they run for more than an hour
- The composer no longer underlines spelling mistakes or autocorrects words
- Unread completion indicators remain until the final reply is visible and include collapsed groups
- Discarding changes handles special filenames correctly and reports failures
- Typing a slash in the file editor no longer moves focus to search
- Diff previews load files on demand and stop unnecessary work when closed
- Saved models remain selected when a provider's model list is empty, including after importing a session
- Native session imports recover recorded models when model lists are empty, while refreshing preserves the selected model
- Model request failures now appear consistently across local providers and clear when responses recover
- Conversation groups now open as one tab with side-by-side chats, independent drafts, and resizable layouts
- Dragging tabs now preserves group membership and shows the final drop position
- Markdown document previews now resolve relative file links and images from the document folder
- Claude conversations now show API retry progress and errors, clearing the notice when a response resumes or the session stops
- A card sent back for changes is no longer killed by the previous attempt's error, and the time it spent waiting for review is no longer charged to whoever did the work
- Agents can schedule a wake-up that survives an idle session being closed and the server restarting
- Team cards now go through acceptance before they count as done, and the board shows which cards are waiting for review
- Long conversations scroll more smoothly and release offscreen history after you return to the latest turn
- Terminal session import results can be closed after success or failure without a delayed response reopening the thread
- Tool headings prefer operation descriptions and show edited files with available added and removed line counts
- Importing a Codex session no longer reports no available model when its models are already listed in Ycodium
- Opening the local install package menu for a machine no longer crashes the app
- Toggling the sidebar no longer causes cookie errors in the desktop app
- Claude threads now stop showing Compacting context after compaction finishes
- Child threads now appear in the Agents panel alongside subagents, and agent rows expand to show their recent activity
- Codex conversations now use the selected model's context capacity when starting or resuming, within Codex's own limits
- Images generated by Grok now appear directly in conversations and remain available when reopening a thread
- Switching threads keeps each thread's provider, model, options, and draft when sending
- Escape and other chat shortcuts now affect only the visible thread while background threads keep running
- Grok failures now show their error messages instead of appearing as successful empty replies
- Diffs render again instead of showing a blank panel
- Remote machine updates now wait for reconnection and refresh the displayed runtime version
- Kimi questions and plan reviews now show their full contents and choices, and unsupported approval actions no longer cancel requests
- Bold text wrapped in quotes or followed by a dash now renders as bold instead of showing the asterisks
- Bold text written as **前缀:**正文 now renders as bold instead of showing the asterisks
- Terminal sessions containing reasoning history can now be imported successfully
- Double-clicking a row in the source control panel no longer selects the whole list
- Enabled providers no longer start automatically during startup, reconnection, or background status refreshes
- The "requests are slow" notice now looks like a live status instead of a dismissible failure
- Small buttons now render at their intended text size instead of falling back to the default one
- The sidebar footer is now one account button plus notifications, with settings and pages behind it
- Stopping an ACP agent now reliably ends the current turn so the conversation can continue
- Provider update hints in settings can now run the update in one click, including npm-installed providers on Windows
- Primary machines now show installed runtime versions in machine settings
- Installed runtime versions can now be viewed and unused versions removed across local, Direct and Relay connections
- Project read counts now show sync failures and recover after reconnecting the machine
- Failed Claude requests now show a failed status and their error message
- SSH machines now correctly list installed runtimes and remove unused versions
- Action results now collect in a notifications center in the sidebar, so errors stay readable after the toast fades
- Local plugins and their approved commands now work correctly on Windows
- Windows runtime installation and repair now handle script encoding, process shutdown, and temporary inspection timeouts correctly
- Machine settings now detect conflicting servers and repair them with task checks, database backups, and restart verification
- Desktop startup no longer fails while restoring saved proxy settings
- Provider icons now tint the logo with your account colour instead of showing a corner badge, and thread tabs keep that spot for run status
- Restarting a machine no longer marks its running threads as failed
- Project rows show each attention status as its own count, and clicking one opens those threads
- Conversations no longer capture automatic file snapshots or show per-turn change cards; Source control and tool edit records remain available
- The final answer copy button now shares the time and token row without leaving an empty action row below the reply
- Discarding file changes no longer leaves source control queries waiting indefinitely
- Rejected mode changes no longer appear applied when the next message is sent
- Native agent modes such as Kimi Plan and YOLO now stay selected and apply from the first message, including after reloads
- Changes and History use compact input fields, and Ctrl+Enter commits while Enter and Shift+Enter add new lines to the commit message
- Thread tabs have cleaner borders and a clearer active indicator, while busy provider icons are easier to spot
- Add multiple Codex API and ChatGPT accounts, with account changes taking effect after the current response
- Thread tab context menus now show synchronization status and a working retry action while the layout is loading
- The thinking placeholder no longer reappears between tool calls or makes the conversation jump
- Imported sessions retain recorded models, thoughts and tool details without duplicating history
- Terminal session import adds search, filters, pagination and provider icons, and supports Windows Codex command shims
- Project rows show stable thread totals and priority status counts, with details on hover
- Background unread counts sync across devices, and session import joins the top toolbar
- The startup screen now shows real progress while it prepares local data
- Rebuilding chat history after an update is now far faster on large workspaces
- Conversation tabs now show provider status badges, searchable history and grouped toolbar controls
- Tab layouts, drafts, attachments and read status follow your account across devices
- Creating a conversation preserves your file panel layout
- React file icons now display clear outlines instead of black-filled shapes
- Replies and expanded details are clearer, while progress text and collapsed summaries use consistent softer colours
- Background tasks stay grouped with their original reply and show running and failed states
- File changes appear at the end of each reply and separate thought summaries no longer run together
- Show the agent and model before reply content and keep their identity in place as the turn progresses
- The app now shows a startup screen while it prepares local data instead of a blank wait
- Updating no longer stalls launch for minutes while chat history is re-indexed
- Keep your reading position when expanding or collapsing thoughts and tool details
- Read thoughts and tool calls in a compact timeline with consistent Markdown formatting and command details
- Follow live responses and Codex command output without losing your place in long logs
- The chat area reads tighter and closer to familiar chat tools: 13px text at 1.5 line height, a light gray canvas behind white cards in the default light theme, and more compact message bubbles and code blocks
- Added GLM as a provider, with separate entries for Z.ai and BigModel
- Signing in to Codex now shows a copyable code and a clickable link instead of raw command output
- Grok threads show context window usage, and the reasoning effort you pick now takes effect
- Kimi Code threads now show how much of the context window is in use
- The Diagnostics settings page no longer shows two overlapping views of the same process data
- Kimi Code now shows live plan quota alongside the other providers
- Plugin panels in a conversation on another machine now load instead of hanging
- Deleting a proxy now warns you when a chat bot is still using it
- A plugin installed from a local directory now picks up code changes without a page refresh
- The usage page now says "machines still scanning" instead of "devices"
- Plugins must now declare which orchestration commands they dispatch, and can only act on conversations they opened themselves
- Agents with their own permission modes now show only those, instead of two conflicting mode menus
- Kimi Code models now offer the thinking levels that model actually supports
- Kimi Code models now show their context window size
- Kimi Code models now show their context window size
- The server log now records each chat command a bot handles
- Chat bots are now configured in Settings → Plugins → Chat; bots set up in the old Messaging bots section need to be added again
- Adding a second Codex account now works on Windows
- Chat bridges now take /stop, /status, /new and /help, and can be limited to a list of people allowed to command the bot
- Grok replies no longer lose their last chunk when it arrives after the turn's completion signal
- Selecting text and typing with an IME no longer stutter or lose the selection while the chat view updates
- Adding a Grok provider now prefills the XAI_API_KEY row so you can see where the key goes if you use one
- The Grok account directory setting now explains what changing it does — providers sharing a directory can continue each other's threads
- The Grok model list now comes from the CLI itself instead of a single hardcoded entry, and a Grok provider that reports no models says so instead of showing a green light
- Grok now reports "Not signed in" instead of a startup failure when it has no credentials
- Grok now says both ways to sign in — run grok login, or set XAI_API_KEY on the provider — instead of naming only one
- A DeepSeek Harness provider that is neither installed nor configured now says it is not installed first, instead of asking for the API key and only then mentioning the missing tool
- Adding a DeepSeek Harness provider now prefills the DEEPSEEK_API_KEY row so you can see where the key goes
- DeepSeek Harness now shows "Not signed in" until its API key is set on the provider, and reports an error instead of a green light when it connects but returns no models
- Providers that authenticate from an environment variable now say which variable to set instead of falling back to a generic "not signed in" message
- Picking a model the current thread cannot switch to now tells you why instead of silently doing nothing
- The reason a running thread refuses a model switch now follows your language setting
- Model search on mobile now tolerates typos and out-of-order words, matching the web picker
- Providers we do not ship an icon for now show their initials on mobile instead of the Codex mark
- Custom and third-party providers now show a readable name on mobile instead of their raw instance id
- Imported sessions can be continued right away instead of showing "No provider available"
- The live activity line now says what a running command is doing (Installing dependencies, Running tests, Inspecting git...) instead of just the program name
- A malformed reply or tool result now shows as a single broken row instead of blanking the whole conversation
- Sessions waiting on your answer are no longer closed for being idle
- A question left over from a dropped session now clears itself instead of freezing the thread
- Long threads stay smooth while a reply streams
- The live header above a group of tool calls now says how many are running instead of repeating one of their names
- The live header no longer flickers when an agent fires off tool calls in bursts
- The elapsed timer catches up immediately when you come back to a background tab
- Update notes now appear in Chinese when the interface language is Chinese
- Newly released Claude models discovered from models.dev now run at their full context window and expose reasoning levels
- Model context windows from models.dev no longer disappear after a background provider refresh
- Fetching the models.dev catalog now updates context windows and newly discovered Claude models right away
- Provider panels no longer get cut off inside the settings window
- Provider panels are no longer see-through, so the page behind them stops bleeding into the form
- On desktop, browser tabs no longer ask a third-party service for site icons
- Installing or updating Ycodium on a remote machine now shows each step, download progress, and the machine's own output
- Machines whose sessions still run through the SSH tunnel are marked as such, with a one-click retry for a direct connection
- Machine actions moved into a single menu, and Update no longer looks urgent on a machine that is already up to date
- Provider CLI paths now take the full path to the executable, with a button that finds it for you
- OpenCode now installs with its official script on macOS and Linux
- Grok CLI can now be installed from Ycodium with one click, including on Windows
- Cursor CLI can now be installed from Ycodium with one click
- Claude Code now installs with Anthropic's official installer instead of npm
- Installing a provider CLI no longer reports "not found on PATH" right after it succeeds
- You can now point provider CLI installs at an npm mirror
- Switching model or effort is saved to the thread immediately and shows up on every device
- A divider at the bottom of the timeline shows which model your next message will use
- Replies now show their model header while the turn is running, not only after a reload
- Avatars no longer fail to load behind a cross-origin error when the client already has them cached
- Deleted threads no longer flood the console with retries, and avatars stop hammering the relay when a fetch fails
- Clicking elsewhere while a file is still opening no longer blanks the file preview
- The layout gains a dedicated workspace column for files and source control beside the chat, with the right side reserved for opened content
- On desktop, the built-in browser can be opened again even when no file tabs are open
- Fetching the model catalog now adds newly released Claude models to the model picker
- SSH setup failures now show the actual error instead of the machine's login banner, and the full text instead of one truncated line
- Setting up a machine that has no Node of its own now finishes instead of failing at the last step
- A stalled runtime download now fails in about three minutes with a clear reason instead of leaving setup stuck for fifteen
- A machine whose shell profile has a broken line can now be set up over SSH instead of failing before setup even starts
- Setting up a machine over SSH no longer fails with "platform is not supported", and no longer leaves the uploaded archive behind on the machine
- Switching models mid-conversation no longer silently strips the agent's browser, delegation, and team tools
- The source-control panel now shows a repository tree with per-worktree sync counts, colorful file rows, a one-line commit box with AI message generation, and resizable sections
- Adding a machine over SSH now shows transfer progress and speed, and says up front when the machine is missing something it needs
- The file tree now shows gitignored files in gray, accepts drag-and-drop uploads, and downloads any file via right-click
- The file panel gains full-text search with regex support, auto-refresh after each turn, and open-in-terminal
- Files and folders now use the Symbols icon set, so file types are easier to tell apart at a glance
- A conflicted gather can now be abandoned from the team board panel with one click
- The file tree can now create, rename, delete, and drag files into folders, with undo on rename and move
- The team board panel can now gather an isolated role's work back into the starting checkout and reclaim its worktree, and tasks can be added straight from the board
- The team board panel can now gather an isolated role's work back into the starting checkout and reclaim its worktree, and tasks can be added straight from the board
- Code in chat, diffs, and file previews now uses VS Code's Light Modern and Dark Modern colours
- The current branch and remote badges in commit history now stand out in distinct colors
- The current branch and remote badges in commit history now stand out in distinct colors
- Agents can now gather an isolated role's branch back into the starting checkout locally and reclaim its worktree safely
- Agents can now gather an isolated role's branch back into the starting checkout locally and reclaim its worktree safely
- Tool call rows now read as the tool name plus what it acted on, instead of a raw dump of the call's arguments
- Team settings dropdowns now show proper labels instead of internal values
- Team settings dropdowns now show proper labels instead of internal values
- The panel gains a fetch button, branch switching, and file sorting by name, path, or status
- The panel gains a fetch button, branch switching, and file sorting by name, path, or status
- Team tasks with no dependencies now run in parallel across roles, and a stuck board pings the starting thread instead of hanging silently
- Team tasks with no dependencies now run in parallel across roles, and a stuck board pings the starting thread instead of hanging silently
- Commits in the history can be undone, handed to the agent, or compared with the upstream branch, the fork point, or any other branch
- Commits in the history can be undone, handed to the agent, or compared with the upstream branch, the fork point, or any other branch
- Team roles can now work in a shared checkout, another role's worktree, or their own isolated worktree created on first dispatch
- Team roles can now work in a shared checkout, another role's worktree, or their own isolated worktree created on first dispatch
- Threads no longer keep a stale "waiting for your input" badge after the server restarts
- Threads no longer keep a stale "waiting for your input" badge after the server restarts
- The forked-from banner no longer claims the source thread was deleted when it may just be archived
- The forked-from banner no longer claims the source thread was deleted when it may just be archived
- The phone and tablet thread lists now show a team run's status and task progress on its starting thread
- The phone and tablet thread lists now show a team run's status and task progress on its starting thread
- Team run turn budgets no longer reset when the server restarts
- Deleting a thread now warns it will stop its active child agents and team runs
- Team run turn budgets no longer reset when the server restarts
- Deleting a thread now warns it will stop its active child agents and team runs
- Teams can set a coordinator model that takes over when you start a run from the composer
- Teams can set a coordinator model that takes over when you start a run from the composer
- The source-control panel now stacks worktrees, changes, stashes, and commit history as collapsible sections, with turn diffs moved to its own icon
- The source-control panel now stacks worktrees, changes, stashes, and commit history as collapsible sections, with turn diffs moved to its own icon
- The history graph now separates incoming from outgoing commits, gains search, branch filtering, and jump-to-HEAD
- Diffs open as their own tab with side-by-side or inline layout instead of expanding inside the panel
- The history graph now separates incoming from outgoing commits, gains search, branch filtering, and jump-to-HEAD
- Diffs open as their own tab with side-by-side or inline layout instead of expanding inside the panel
- Role briefs now actually reach team members as their opening briefing, and the team editor can add members from five built-in role templates
- Role briefs now actually reach team members as their opening briefing, and the team editor can add members from five built-in role templates
- Pick any worktree in the source-control panel to see and commit its changes, and lock, unlock, or clean up worktrees from the same list
- Pick any worktree in the source-control panel to see and commit its changes, and lock, unlock, or clean up worktrees from the same list
- Pick a team right in the composer — sending starts a run whose progress, board, and member messages all live with that conversation
- Teams got their own settings tab, and the team board with a member-message timeline now opens in the right panel of the conversation
- Pick a team right in the composer — sending starts a run whose progress, board, and member messages all live with that conversation
- Teams got their own settings tab, and the team board with a member-message timeline now opens in the right panel of the conversation
- The agent routing table now takes custom work types, and team members reference its rows explicitly instead of by accidental role-name match
- The agent routing table now takes custom work types, and team members reference its rows explicitly instead of by accidental role-name match
- The right panel is now a permanent activity bar: source control, files, and agents each have an icon you can reach even when the panel is closed
- Terminals now live only in the bottom drawer
- The right panel is now a permanent activity bar: source control, files, and agents each have an icon you can reach even when the panel is closed
- Terminals now live only in the bottom drawer
- Changed files in the source-control panel can now be opened directly
- The file viewer now shows change bars in the gutter and an optional per-line git blame
- Batched notifications and attached team messages now all show in the timeline instead of only the first one
- Child threads of an archived parent are no longer labeled as coming from a deleted thread
- Stale approval badges no longer survive a server restart
- Team and approval history that an earlier replay bug left missing is backfilled automatically on upgrade
- Stash your changes and manage worktrees from the source-control panel; deleting a thread no longer deletes its worktree
- The source-control panel gains a History view: a commit graph across your branch, upstream, and default branch, with per-commit diffs, branch-from-commit, and per-file history
- Threads that spawned children no longer lose track of them across a server restart
- Merge, rebase, and branch management now live in the source-control panel, with conflict resolution you can hand to the agent in one click
- Child-thread and team results now queue while the parent thread is busy or archived and arrive as one batched message instead of being dropped or waking it once per child
- Quiet team messages now actually reach the recipient agent: attached to its next turn, or read on demand via the new check_team_inbox tool
- All Git actions now live in the source-control panel: publish, amend, undo commit, force push, and per-file gitignore, with Git status colouring in the file tree
- The right-side panel is now a source-control panel: stage, unstage, discard, commit, and push without leaving the thread
- Newly added projections now replay the full event history on first start instead of silently stopping after 1000 events
- Streaming updates no longer re-render the entire chat view on every chunk
- Code blocks in streaming replies now highlight incrementally instead of re-highlighting from scratch on every chunk
- Long streaming replies render incrementally instead of re-parsing the whole message on every chunk
- Turn diffs now work in any folder, and Ycodium no longer writes anything into your project's Git repository
- Agent replies no longer lose their final chunk when it arrives together with the turn's completion
- The changelog now reads in Chinese throughout, including entries written by hand
- A stuck turn now says what it is waiting on — a tool, your approval, your answer, or the model — and offers to interrupt
- Chat panels, model picker, and plan cards now translate instead of falling back to English
- Ycodium reopens the thread you were last on when it starts, instead of always landing on a new draft
- Ycodium can now post system notifications when an agent needs you and when a new version is ready
- Press Escape to stop the running turn, and Shift+Tab in the composer to switch run modes
- The desktop update prompt now lists what changed in each version
- The floating "Collapse activity" switch is gone — collapse individual activity groups by clicking them instead
- Starting a thread now shows project, machine, workspace, and branch in one row above the composer
- The workspace picker lists every worktree your project's threads have used, not just the last one
- Hover a machine in the sidebar for a new-project button that opens the picker already scoped to that machine
- The brand mark you pick in Settings now also applies to the desktop window, taskbar, and Dock icons
- The startup splash now shows a crisp brand badge and cross-fades without a full-window color shift
- OpenCode threads now exit reliably even when the service still produces output during shutdown
- Reopening a thread mid-turn now preserves the in-progress request and its complete response
- Failed starts now wait for the old process to exit before cleanup or retry, preventing overlapping processes
- Recovered threads now retain completed turn content, including the user's message and native response
- Changing the execution source no longer causes a new turn's response to disappear from thread history
- Cancelling a run no longer interrupts cleanup after the process stops, and Claude stop failures are reported correctly
- Switching execution accounts now closes the old thread and endpoint first, while cleanup failures remain visible instead of being hidden by cancellation
- Agent and background-task displays no longer mix names, progress, usage, or tool activity when different providers reuse the same task ID
- Ycodium no longer falsely reports a login change when quota validation is unavailable, while still blocking credential access
- Usage checks pause until you sign in again if a plugin changes its approved request, and provider sign-in hints update when protocol translations are enabled or disabled
- Unavailable model choices are collapsed, and disabled sources no longer hide available models from the agent's own account
- Grok conversations no longer reject follow-up messages when the agent's internal model differs from the selected model
- Switching compatible models keeps the conversation and applies the new model to the next turn
- Codex child agents now appear once in the panel, retain their correct status, and receive missing identity details when available
- WeCom messages now handle send failures and late error receipts without leaving pending requests or crashing the host
- Codex subagents that are woken up again show as working instead of idle
- Codex subagents show up in the Agents panel again
- ACP connections now close cleanly when messages cannot be written, rejecting affected requests instead of hanging or crashing Ycodium
- When a response cannot reach the Codex CLI, Ycodium now records a warning and clears the approval or question instead of leaving it stuck
- Sampling and history requests no longer hang or produce unhandled errors when the telemetry sidecar stops while a command is being written
- If the Codex CLI exits while a request is stuck being sent, Ycodium now reports the failure instead of leaving the request hanging or crashing the server
- Switching the model source mid-conversation on Claude Code now takes effect, and later turns no longer fail with a false "bypassed the proxy" error
- Refreshing the request list no longer shows an empty state while results are still loading
- An empty request list now reports only that no requests have been recorded, without guessing that conversations bypassed Ycodium
- Checking a provider's status while it runs many sessions no longer marks it as unavailable
- Snoozed threads on mobile show their wake-up countdown in the interface language
- Long conversations through a model source no longer fail every turn with a "bypassed the proxy" error after 64 requests
- Local model endpoint usage records now identify the provider handling each request for more accurate reporting
- Model sources now lists the recent requests Ycodium forwarded, and says plainly when there are none
- Recently visited pages in the browser panel now keep their "visited" time up to date
- You can now view the latest requests routed through Ycodium's local model endpoints
- Relative times such as "3h ago" now follow the interface language
- Open file tabs can be switched and closed again
- Conversation views now use the plugin installed on the active machine, so they no longer randomly fail when the same plugin is installed across multiple machines
- Conversations from before an update no longer start over on the next message, and switching accounts of the same agent inside one conversation works again
- Connections that go stale while the window is hidden are now detected and reconnected without waiting for you to return to the window
- Server startup is no longer blocked by slow pending-message queries on large databases
- The permission mode shown in the input area now matches the mode actually sent to the CLI
- OpenCode no longer fails when a bound model does not match its provider format; it now uses the configured default model
- Turns that fail during startup now settle as errors with the cause shown, instead of remaining stuck in a loading state
- Disabled models in the selector now explain why they cannot be used when you hover over them
- Agents that cannot use external endpoints are now marked unavailable in the selector with a clear explanation
- Claude Code startup failures now include the CLI's original error output, making the cause easier to diagnose
- 429 errors now distinguish rate limits from unexplained request failures and include the upstream response for troubleshooting
- Routed Claude Code sessions no longer inherit configuration keys that could override Ycodium's endpoint or credentials
- Claude Code transcripts continue to be saved where expected even after the CLI recreates its projects directory
- Claude Code onboarding settings are initialized only once, avoiding conflicts when the CLI updates its own configuration
- Antigravity requests now use Google's supported Cloud Code streaming route, host, and client identity instead of failing with 404 or 403 errors
- When Ycodium routes a Claude Code session, it uses an isolated configuration directory instead of the user's ~/.claude directory
- Model requests now use the source's configured proxy directly, so sources that require a proxy no longer silently connect directly
- Ycodium now enforces its selected endpoint, model, and proxy settings over conflicting local CLI configuration
- Claude sessions now use the bound model identifier, preventing valid requests from being rejected before they reach the model endpoint
- Usage now correctly reports when your plan has no reportable quota instead of showing a refresh error
- Subscription login now remains available for up to two hours, giving you more time to complete browser authorization
- The first proxy you add becomes the machine default, and proxy choices now show which route they will use
- Subscription login no longer relies on a callback listener; paste the returned address instead, with clearer errors and a 30-minute window
- Providers that claim external endpoint support must now supply a complete configuration, preventing silent fallback to their own account
- A turn that bypasses its configured local proxy is now marked failed with the overridden settings identified
- Context compaction and feedback uploads now work for supported agents instead of being reported as unsupported
- Usage probes can now combine requests, read response headers, and show zero when a window has no count
- Messages already marked as read no longer return to unread after a restart or cross-session delivery update
- Usage windows are now labeled by their duration, with explicit provider labels taking precedence
- Grok monthly usage now converts raw used and limit counts into an accurate percentage
- Messages sent while an agent is working now stay in the queue without jumping through the chat timeline
- You can now sign in to Grok with your subscription, use its subscription endpoint, and view its usage and effort levels
- Open file and diff tabs now stay consistent across sessions in the same project, so switching sessions no longer makes the workspace pane disappear
- Cursor is no longer available as a provider in Ycodium
- Plugin hands can now dispatch API-backed models without failing because request observation is unavailable
- Rate limits now respect a minimum retry delay, and ChatGPT quota windows clearly show their five-hour and weekly labels
- Kimi For Coding now reports subscription usage, including remaining weekly quota, in the input area
- Workspace pane layout and width now follow the project across worktrees and persist after a browser refresh
- Configured agents are now registered automatically at startup without hiding models that were already available
- dsh now offers its three native permission modes and applies your selection when running the CLI
- Browser workbench tabs now use the clearer title format “Machine - Project”
- Terminal path links are now shown only when the referenced files or directories exist
- Terminal links with line and column numbers now open the file at the specified column when possible
- The browser workbench now stays in English with correctly matched labels and no workspace trust prompts by default
- Codex now offers four native permission modes, including a mode where Codex—not you—reviews approvals
- Claude Code now offers five native permission modes that match its actual CLI behavior
- Configured agents no longer bypass Ycodium's relay when their own credentials or base URLs are present
- OpenCode now offers three native permission modes that each produce a distinct set of tool rules
- Grok now offers its three actual permission modes instead of an extra option that had no effect
- Refresh models can now recover from an outdated models.dev catalog and find providers that have moved
- You can enable terminal copy-on-selection in Appearance, with the setting off by default
- API-backed model choices are no longer incorrectly marked unsupported based on the hand's capabilities
- API-backed model choices remain visible when a hand has no separate login, while unavailable native models stay hidden
- Ycodium no longer ships with built-in telemetry enabled by default
- Codex replies, streaming text, tool rows, and approval cards render again instead of failing with decode errors
- A Codex account over its quota now shows the usage-limit message with its recovery time instead of dropping the session
- Malformed plugin events are skipped without killing the session, so execution can continue
- Changing an ACP approval mode now applies it to the agent instead of only changing the local display
- ACP providers now show their own approval modes, including the currently selected mode, instead of a generic four-option list
- Code views and terminals now use the bundled Maple Mono font for consistent rendering across machines
- Add Kimi for Coding and Moonshot providers, with device-code sign-in available for Kimi subscriptions
- Ycodium no longer sends telemetry to PostHog
- Idle sessions no longer show a misleading machine-disconnected message in the input area
- Long conversations keep a bounded history window while preserving reading positions, selections, and active requests
- Chat and trajectory views no longer get stuck while loading earlier history
- Plugin views load correctly when executor plugins are installed
- Subscription sign-in now supports device codes for services that do not use browser redirects
- Choosing a thinking level now sends that setting to the agent instead of leaving it unchanged
- ACP providers can now report their available models and thinking levels for you to choose from
- Dsh providers now expose their available thinking levels instead of hiding them
- Queued messages no longer show internal envelope labels or record IDs
- The agent picker now shows DeepSeek Harness with its correct name instead of an incorrectly reconstructed label
- Usage errors now explain when a provider is rate-limited instead of saying usage data is unavailable
- Saved model choices are preserved and remain switchable while a plugin is still discovering its model list
- Timeline replies now identify the agent and use the consistent Claude Code name
- The Self-hosted Relay URL setting no longer displays its title twice
- Concurrent Ycodium instances no longer create duplicate probe sessions when sharing a machine account
- Usage status now explains whether credentials are missing, the instance is disabled, or the provider lacks support
- Usage checks for agents using their own sign-in are no longer incorrectly labeled as unsupported
- The agent picker now shows the agent name before the account nickname, making the selected agent clear
- Kimi Code now reports the models recognized by its CLI, so you can select them in Ycodium
- Grok now reports all models recognized by its CLI, including their context sizes
- dsh now reports its available models, allowing you to switch models instead of being blocked by an empty list
- Claude subscription usage is read per instance, with localized context-window labels and no duplicate usage fetches
- Team runs now wait for member-thread setup before dispatch, avoiding skipped tasks and falsely allowed actions
- Dark terminal themes now use the Solarized Darcula palette, including ANSI colors
- Plugin cards now display their own icons instead of showing broken placeholders
- Queue entries now hide internal markers and record IDs, showing only readable notification text
- The pull requests page now follows the app language instead of showing English
- Source status dots now reflect actual accounts and endpoints instead of marking every existing source as connected
- Subscription logins now create usable endpoints for sending requests with Antigravity and Anthropic credentials
- Permission status now lists all configuration files that can affect Grok approvals, including user-local and machine-level settings
- Grok’s permission status now reports measured approval boundaries and matching rules instead of promising coverage for all file writes
- Signing in to an existing provider source no longer creates duplicates, and failures now show a clear error instead of doing nothing
- Vendor preset cards now use clear Login or Add with API key actions, with response formats in the menu
- An MCP server closing its stdin no longer crashes the entire environment
- Subscription accounts can now be created only through browser authorization; importing credentials from CLI login files is no longer offered
- The permission mode picker now clearly says changes take effect on the next message, both in the picker and beside the control
- Mobile thread details now show turns correctly and keep live subagents marked as running
- Composer instruction lines ending in a mention or $skill now work reliably, while ordinary @mentions remain text
- Usage limit labels are now localized consistently across the real-time limits section
- Built-in team role names and command-failure messages now follow your selected language
- Mobile composer first row gains an agents badge and a turn navigator
- Anthropic-compatible models using the Responses protocol now show readable reasoning summaries instead of a blank thinking section
- You can switch to a provider before its model list is available; Ycodium now explains missing models when you send
- Skill tokens ($skill) now prepend a run-instruction line to the prompt sent to the agent
- Claude text generation now uses the same configured relay as the session, including for titles, commits, PRs, and summaries
- You can split a legacy model instance into a provider and model, with its credentials moved securely to the secret store
- Grok now honors the permission mode you select, while unsupported modes accurately report their actual behavior
- Terminal output confirmations now retry after failed delivery instead of losing track of pending output
- Mentions (@file) now prepend a read-instruction line to the prompt sent to the agent
- Codex now correctly uses your selected subscription account when launching a bound provider
- Usage is now detected correctly when an upstream response omits its content type
- Built-in executors now appear correctly in provider setup and executor lists
- New Claude executor instances are now labeled Claude Code to distinguish them from Claude models
- Terminal user documentation is now in English, matching the rest of the user docs
- Terminal flow control remains active after closing and reopening the same terminal
- Protocol translation no longer fails when an upstream streaming response omits its content type
- Binding-specific endpoint, credential, and proxy settings now take precedence over instance environment settings
- Grok bindings to local endpoints now use the binding credentials instead of the user's own login
- Recently used composer entries no longer let unavailable providers crowd out usable ones
- Plugin-provided protocol translations are now available in the server, enabling supported cross-provider connections
- Codex can now use Anthropic-format models through the built-in adapter, with compatible models enabled in the selector
- dsh now uses its bound endpoint and credentials even when the machine has its own DEEPSEEK_API_KEY configured
- Unsupported reasoning levels are no longer sent to Anthropic, preventing avoidable 400 errors
- Codex priority mode no longer sends an unsupported speed setting that causes Anthropic requests to fail
- Idle terminal tabs now show your shell's name, such as zsh or bash, instead of a generic number
- Translated requests now always use the model bound to the provider, keeping execution, usage, and limits consistent
- Changing a model's reasoning level now applies to the very next turn, including when continuing an existing thread
- Codex can now use chat-format models such as DeepSeek and GLM without failing on newer request fields
- Switching providers now resolves the model for the new provider, instead of carrying over the previous provider's model
- You can now stop a running terminal command from the mobile terminal menu
- During initial setup, runtime-managed providers now use their own configuration consistently instead of rejecting valid explicit selections
- The composer no longer treats unchanged server updates as new model selections or repeatedly writes them back
- Sessions using external models no longer repeatedly write the same execution selection back to the server
- Terminal pastes no longer add extra trailing blank lines, and selection menus stay aligned with the terminal
- Terminal search shortcuts now follow your platform, and initialization errors are translated
- Claude Code now reports its available models, effort levels, fast mode, and context windows for accurate selection
- Screen reader users can now hear new terminal output and read the full scrollback
- Grok now applies the reasoning level selected in the input box when launching the agent
- dsh and Grok now select only models advertised by the provider, avoiding session failures from unsupported model IDs
- Direct requests now use the model bound to the provider instead of the model name sent by the coding agent
- dsh and Grok now report their actual readiness after probing, so usable providers are no longer stuck as unchecked
- Teams can now start without waiting for large event histories to finish reconciling
- Explicit model selections and API-backed models are now dispatched correctly during initial discovery instead of being silently skipped
- You can now select and copy terminal text while a command is still printing
- Claude instances authenticated with ANTHROPIC_API_KEY or ANTHROPIC_AUTH_TOKEN are no longer incorrectly marked unavailable
- The terminal no longer flickers or jumps back to the bottom on every new line once a command has printed a lot of output
- Unsupported output fields such as logprobs and annotations are now reported instead of being silently dropped
- Import a ChatGPT subscription from a Codex CLI sign-in, or sign in directly, and use it with any agent, not only Codex
- dsh and Grok hands can now use Anthropic-format models through automatic Chat Completions-to-Messages translation
- Claude Code hands can now use Chat Completions models such as DeepSeek through automatic Anthropic-to-Chat translation
- Vendor cards can now import subscription accounts from supported CLI logins and set up the subscription endpoint in one step
- Chat Completions hands can now use Responses models through automatic protocol translation
- Plugin views now recover automatically after a disconnect, without requiring a window refresh
- OAuth subscription accounts imported from supported CLI logins now retain the account identity required by subscription endpoints
- Translated streams now finish correctly across Chat Completions, Responses, and Anthropic protocols, avoiding false truncated-stream errors
- Web terminals now include a Ctrl+F search bar with incremental search, match options, and F3 navigation
- The slash menu now shows up to three recent commands in grouped sections, while searches keep their existing ranking behavior
- Terminal Ctrl+Shift+C now copies the selected text, and Ctrl+Shift+V pastes from the clipboard reliably
- New sessions now keep session actions and the terminal control visible in the compact first row
- Web terminals now use xterm for smoother rendering and more reliable text selection, links, and paste behavior
- Pressing Esc once now arms stopping a turn and a second press within 2.5 seconds confirms it, while open menus keep Esc for closing
- The terminal now shows a stop button for running subprocesses and confirms multiline pastes before sending them to shells that could execute them immediately
- The terminal toggle is now available in the first row of the composer for quicker access during a conversation
- Agent controls now remain available for the entire thread, and opening them automatically loads earlier turns when needed
- Repository panels now show accurate unmerged commit counts from the remote default branch, including for the main worktree
- Double-clicking a worktree row in the Git panel no longer highlights the row text
- Repository panels now use clearer orphan labels, show unmerged commit counts, and warn before deleting a worktree
- You can now send a message into a running Codex turn
- Codex now starts turns with the selected reasoning effort and collaboration mode
- OpenCode model discovery now lists only models your CLI account can use
- The agents popover now opens above the button instead of covering the prompt area
- Pending approval requests now end with a failure result when a session closes instead of spinning forever
- Current Codex models are no longer misclassified as legacy when the CLI does not list them in a hard-coded table
- Usage tracking now supports POST endpoints and credential filtering, bringing Claude subscription usage and Antigravity credits into the plugin
- Provider setup now syncs available models and options from models.dev, so the model ID and reasoning choices stay aligned with the selected provider
- Codex now loads its model list and reasoning options from the CLI, restoring model choices and thinking levels in the composer
- Codex sessions can now use configured MCP servers, including remote servers that require OAuth
- Chat now shows the specific provider identity for shared drivers instead of a generic provider label
- ACP providers including Kimi Code, GitHub Copilot, Gemini CLI, Qwen Code, Hermes Agent, and custom providers are available through one consistent integration
- OpenCode is available and works correctly in packaged builds
- OAuth sign-in now starts from the provider card and supports remote setups with a copyable authorization link and pasted callback URL
- GLM and Antigravity now show their actual icons in model source cards and catalog entries
- Subscription accounts now refresh credentials as needed and are reliably used for inference requests throughout a session
- Retrying a failed provider source creation now reuses the same source instead of creating a duplicate
- API sources can now sign in with OAuth, securely store refresh tokens, and renew access automatically
- The timeline’s “earlier turns” controls are now translated with the rest of the interface
- Plugin and provider responses with unusual values no longer break RPC responses; unsupported values are safely converted
- Plugin loading failures now show the reason instead of leaving the conversation area blank
- Subscriptions can now require a specific proxy, preventing silent fallback to a direct connection
- The plugin list now remains available when a plugin contains data that cannot be sent to the client
- Agent controls now live in the input card, keeping the sidebar focused on cross-conversation tools
- Codex can use a DeepSeek API source through the built-in proxy
- Plugin packages now have their own grouped section in Settings, while MCP tools and skills stay organized per machine
- DeepSeek Harness is now provided by the removable executor plugin @ycodium-ai/agent-dsh.
- Browser VS Code no longer fails to open on this machine when its saved identity is still a placeholder
- Machines now include a Browser VS Code plugin that can install the official CLI
- Open Browser VS Code from a machine, a project header, or the command palette
- The first open of Browser VS Code shows a step-by-step wizard; later opens go straight to the browser
- You can now open diffs for registered worktrees, including worktrees located outside the project directory
- Run Codex sessions in Ycodium with the new Codex agent plugin
- Run Claude sessions in Ycodium with the new Claude agent plugin
- Conversation usage now uses token accounting data first and shows cache hit rate when it can be calculated
- You can enable raw provider payload logging when you need full protocol data for replay or troubleshooting
- Source control now lists untracked files individually and shows how many more are hidden when the 10,000-file limit is exceeded
- Startup failures now show a reload action instead of leaving the app stuck on its loading screen
- Expanding the message input no longer rerenders the mounted conversation history
- Local thread snapshots now stay within a storage budget and reload from their machine when evicted
- Connecting to the same machine from multiple places no longer starts competing connection attempts
- Switching threads no longer triggers unnecessary layout work, making changes faster and reducing worst-case UI stalls
- You can now use Copilot, Gemini, Qwen, and Hermes providers through Ycodium
- Grok text generation works again on the default instance
- Resuming an older thread no longer prompts you to reduce its context, and the full history is preserved automatically
- You can now connect Ycodium to Grok, sign in with a device code, and choose a reasoning level when starting a session
- Switching between long-running conversations no longer accumulates hidden renderers or rebuilds the full conversation view
- You can now use the dsh agent through its ACP integration
- Grok turns now complete when the prompt response is replaced by a completion signal, while errors continue to appear correctly
- Agents can now ask you questions during a turn and continue after you answer
- If the CLI crashes while you’re answering an approval request, the turn no longer hangs indefinitely
- ACP-based agents can now switch models through either advertised model metadata or model configuration options
- ACP executor plugins can now be installed from npm without unresolved workspace dependency errors
- You can connect custom ACP-compatible coding agents by providing their program path and launch arguments, then run multi-turn sessions in Ycodium
- MCP tools with empty input schemas now work reliably across providers instead of causing the server to drop the entire tool list
- Team tool failures now appear in server logs with the tool name, calling thread, and error details, making troubleshooting easier
- Local plugins can rebuild and refresh their interface when you save source files, without restarting the desktop app
- Conversation history no longer jumps back to the latest message while you scroll upward
- Desktop window resize and maximize no longer trigger severe conversation UI stalls
- MCP clients can use the full tool set, including tools without inputs, instead of losing every tool when one schema is invalid
- Ycodium now prevents disabling or uninstalling an executor plugin while its active sessions are using it, and shows which sessions must finish first
- The add-instance grid now includes executor types contributed by installed plugins, with appropriate icons and labels
- Newly installed executor plugins are recognized without restarting the server, and provider behavior now follows each plugin's declared capabilities
- Executor contribution counts now display correctly in all supported languages
- Settled conversations no longer show a redundant banner above the composer
- Old-session compaction now appears as a compact one-line prompt
- Mouse wheel scrolling over conversation tables now continues through the conversation
- Resizing the sidebar and workspace panels now stays responsive in long conversations
- Web and Mobile now consume the executor card catalog and render install/sign-in/drain slots driven by each executor's contribution, replacing driver-specific switches
- Executor plugins can now be installed, registered, and managed through the host lifecycle with card-driven catalog and force-uninstall support
- Executor plugin contribution contract enables external agents to register as first-class providers in the Ycodium orchestration layer
- Session plugin UI changes now hot-reload without a full-page refresh or server restart, while failed builds keep the current interface intact
- Conversation notices now keep their intended layout instead of collapsing into the icon column
- Plugin views now load correctly in Windows builds
- Add vendor preset cards for OpenAI, Anthropic and DeepSeek to Settings → Models for step-by-step source setup
- Show live account usage or balance for the selected model source in the composer, with manual refresh
- Models from a freshly verified Codex account can be selected right after sign-in
- Desktop builds can load plugin views and translated plugin navigation again
- Finished team runs no longer make the server re-stop their members on every agent event
- Add separate Codex subscription accounts in Models settings and use them from the message input
- Manage model sources in Settings and keep the selected account and model options with drafts and queued messages
- Chat, trajectory and turn navigation controls now sit together inside the message input card
- Update buttons and release-history controls remain clickable in the desktop changelog popup
- Queued messages stay within the list while dragging and show clear placement, saving and failure feedback
- More built-in features can be managed as plugins, with saved settings and disabled state preserved during upgrades
- Plugin settings stay readable when a connected machine reports newer operations
- Pull request pages now keep usable tabs and resizing, with improved narrow-screen layouts and plugin configuration forms
- Conversations sharing a provider can start independently without waiting for each other
- Collaboration reminders and replies can reach the active turn when supported
- Dialogs keep long forms scrollable and their actions visible in smaller windows
- Source control keeps its layout while loading and refreshes changes with commit history
- Team completion notifications no longer retry indefinitely after a related team has ended
- Remote machine updates no longer report failure after the new runtime starts
- Windows sidecar hosts now start correctly when using official plugins
- Browser previews in narrow desktop windows are now visible and interactive
- Teams can be disabled or removed without affecting ordinary chats, with team rules and interfaces managed by the plugin
- Browser previews stay visible in narrow side panels and finished team runs no longer show a pending-action warning
- Teams can be disabled or removed without affecting chats, attachments, or message queues
- Team controls stay accessible in narrow chat panes, and team drafts keep their attachments while Teams is unavailable
- Edit queued messages with images and files, reorder them, and steer the current turn or stop it to prioritize a message
- New conversations keep messages visible during startup and queued messages no longer stall during dispatch
- Large replies no longer trigger repeated reconnections when other messages arrive at the same time
- Disabled plugins now keep their proper names and descriptions, and the homepage accurately lists which plugins come bundled
- You can open installed and discovered plugin details to read their npm README, version, release date, and weekly downloads
- Mobile plugin lists now show versions and available updates, so you can see what needs attention before updating on desktop
- Plugin installation now shows download, manifest, and activation progress instead of leaving the install button unresponsive
- You can search npm for Ycodium plugins and install results directly, with a clear notice that npm listings are unreviewed
- Plugin management now uses detailed cards, and you can manually check npm for available updates and install them
- Built-in plugins can now be updated independently, with new versions taking effect immediately without restarting
- Plugin developers can now install the Ycodium plugin API and Teams integration directly from npm
- You can now install official Ycodium plugins without any npm account setup
- You can now install Ycodium plugins published as npm packages with `ycodium plugin add`
- Search results now show file matches and web sources while preserving complete tool output
- Conversations now show clearer tool details with preserved raw input and output
- Pending approvals keep conversations readable and show complete action labels
- The home and download pages now show the desktop release date and time
- Install the Teams plugin and have Ycodium load it without restarting the server
- Agents can replace their own thread-installed plugins with newer versions without being blocked by the earlier version
- Ycodium now prevents stale status updates from overwriting a turn's actual current state
- Ycodium now prevents child-thread updates from reporting activity that never started
- Invalid plugin events are now rejected before they can corrupt saved state or break future restarts
- View the team board and inbox in a clear, readable format, with open work and unread messages at a glance
- After a restart, Ycodium correctly restores the latest turn when consecutive turns began in the same millisecond
- Team messages are now tracked in the correct receiving turn and no longer marked delivered when only a wake-up was queued
- Existing team runs now appear with their cards, member threads, statuses, and rejection history without requiring migration
- Plugins can now persist their own event-driven state, so plugin data survives restarts and stays in sync with Ycodium
- Team recovery now continues past failed updates, preventing unrelated pending work from being skipped
- Event-driven integrations now rebuild their state after restarts, preventing work from being missed while Ycodium was offline
- Failed team recovery work is now reported instead of being silently marked complete
- Team recovery now preserves pending work across restarts, and role instructions are sent once per thread only when their history can be verified
- Team runs now retain launch failures and role briefings after a restart, preventing duplicate briefings and incorrect recovery decisions
- Session wake-up notices now distinguish replies from completed turns, so you won't open an empty inbox expecting a reply
- Threads recovering after a restart stay protected until they restart or time out, and later retries no longer leave them stuck as failed or pending
- Hidden trajectory views no longer perform automatic scrolling that can make the window sluggish
- After a restart, Ycodium automatically wakes team members with unfinished tasks; if they cannot resume, the task stays assigned and is flagged for attention
- Stopping work after a new turn has been sent now keeps queued work paused until you resume it
- Offline installation now works in packaged Ycodium builds for Hosts without internet access
- Direct messages to team members are now delivered and processed reliably, including during queued delivery turns
- Quiet messages are now credited to the turn that actually checked them, so later work no longer causes missed or incorrect follow-ups
- Team members who finish a turn can now be woken for queued work without waiting for their process to exit
- After a restart, Ycodium now resumes pending message follow-ups without duplicating work
- Queued messages are handled reliably without being lost or misattributed after restarts, and delivery notifications no longer include message bodies
- Teams now retry queued wake-ups when members become available after a failed start attempt
- Team turn budgets are enforced consistently when members are added or replaced, including threads with prior activity
- Team members waiting in a provider queue are no longer marked as failed, and real start failures are reported correctly
- Queue cancellation banners no longer act on stale confirmations or show errors for a newer queued request
- The queue banner now offers Stop waiting for this request when an earlier request's delivery stays unknown, letting queued messages proceed
- Trajectory views now retain tool details and accurate task statuses, with reliable links to the matching chat entry
- Team members who finished a turn can be assigned or awakened again without their in-progress work being marked failed
- When a team run reaches its turn budget, it now pauses reliably and can resume after you increase the budget
- After a restart, queued turns no longer remain blocked by lost or completed sessions
- Conversation view gains a Chat / Trajectory toggle — the same session events as a filterable step table, on web and mobile
- Switch between chat and trajectory views with Mod+Shift+T to inspect messages, activity, tool calls, approvals, and scheduled wakes in one timeline
- Team runs now reliably enforce turn budgets for every member-thread turn and pause when the budget is reached
- Switching between conversations and groups no longer makes the layout shake at scaled display settings
- Turn limits now stay accurate during retries and concurrent starts, preventing unnecessary queuing and over-allocation
- Terminal input recovers after reconnecting, with a Take control action when another device owns the terminal
- Message queues recover after restarts and let you inspect queued messages, cancel unsent requests, and resolve unknown deliveries
- Team task timeouts resume when a person answers, even if the provider never confirms
- Failed team tasks show a reason when a member session ends without an error message
- SSH handover no longer stops a different server when a saved process ID has been reused
- See scheduled wakes and upgrade outcomes in the timeline, cancel pending wakes, and let SSH machines use the Host's background service
- Team run limits are now enforced for every start path, and retrying a role message will not start duplicate turns
- Team messages now stay assigned to the correct thread after recovery or role changes, and attachment metadata is preserved
- Fixed SSH connections failing when Ycodium reuses an already running default runtime
- New conversations open in their own tab outside the current group while existing blank group members are preserved
- Paused conversations now show queued requests and a Resume sending action without getting stuck on a sending indicator
- Ycodium no longer stops unrelated processes when a stale SSH record points to a reused process ID
- Resumed tasks now begin a fresh active time segment, keeping timers and recorded durations accurate
- When an upgrade request is unavailable, Ycodium now gives instructions tailored to how the machine is installed
- Pinned turn headers now fit the conversation column without covering the full timeline width
- Git History now supports complete reference filtering, accurate comparisons, richer commit actions, and automatic refresh after Fetch or Pull
- Runtime installation and self-updates now use the current download source, including configured mirrors
- SSH reconnections reuse installed runtimes without contacting the download site
- SSH connections no longer fail while fetching the runtime from an obsolete download address
- Team tasks no longer time out while producing output or waiting for an answer
- Diff previews preserve whitespace in filenames and open the correct file
- Switching between machines keeps cached Git panels on their own machine and avoids unnecessary layout work
- Generated images from Grok now appear correctly on Windows
- Team tasks retain activity tracking while their running turn is still being bound
- Active team tasks no longer fail solely because they run for more than an hour
- The composer no longer underlines spelling mistakes or autocorrects words
- Unread completion indicators remain until the final reply is visible and include collapsed groups
- Discarding changes handles special filenames correctly and reports failures
- Typing a slash in the file editor no longer moves focus to search
- Diff previews load files on demand and stop unnecessary work when closed
- You can pull back an unreviewed task delivery from the board, and task timing now separates work time from acceptance time
- Team run groups now show a collapsible task board above their conversations, letting you select a task to focus its member's pane
- Team boards now support task delivery and acceptance review, including rejection feedback and a dedicated awaiting-acceptance stage
- Clients now stay connected when they receive newer orchestration events they do not yet recognize
- Saved models remain selected when a provider's model list is empty, including after importing a session
- Native session imports recover recorded models when model lists are empty, while refreshing preserves the selected model
- Long-running turns stay active while streaming output, and time waiting for your input no longer counts toward their idle limit
- Agent subthreads can no longer bypass coordination rules for an active run
- Direct messages now honor quiet delivery and run safeguards, while each message is stored once and linked to its communication record
- Upgrade requests without a verdict now complete with an unconfirmed status and the observed version instead of waiting forever
- Agent turns remain recognized after task edits, and terminal retries no longer double-count work time
- You can use check_inbox in non-team threads, and messages are marked received only after you read them
- Upgrade wake-ups no longer interrupt active agent turns and retry safely when a thread is busy
- You can mark a reply as answering a specific message, so conversations show when it has been answered
- list_wakes now shows the target version and status for pending server upgrades
- Communication records now track delivery and processing, and wake the sender when a recipient finishes handling a wake message
- You can use an SSH machine as a tunnel to a server managed by its Host service, with safe handover if the existing server cannot stop
- Ycodium now alerts you when a deleted member thread cannot be restored, with steps to add the member under a new role or start a new run
- Coordinators can request a specific Ycodium server upgrade and receive a follow-up confirming whether it succeeded or explaining why it did not
- Historical team messages now show the member who held the recipient role when each message was sent
- Retrying send_message with the same idempotency key no longer sends duplicates or overwrites the original message
- Scheduled wake-ups now honor cancellations, wait for active work to finish, and reliably appear in the timeline
- Messages sent by role, thread, or user are now recorded, and you can message any thread in the same project directly
- A card sent back for changes is no longer killed by the previous attempt's error, and the time it spent waiting for review is no longer charged to whoever did the work
- Agents can schedule a wake-up that survives an idle session being closed and the server restarting
- Coordinators can add members to an active team run so new roles can start work without restarting the run
- Team cards now go through acceptance before they count as done, and the board shows which cards are waiting for review
- Model request failures now appear consistently across local providers and clear when responses recover
- Conversation groups now open as one tab with side-by-side chats, independent drafts, and resizable layouts
- Dragging tabs now preserves group membership and shows the final drop position
- Markdown document previews now resolve relative file links and images from the document folder
- Provider and model changes are queued reliably across restarts, while approvals and replies stay with the agent process that started them
- Claude conversations now show API retry progress and errors, clearing the notice when a response resumes or the session stops
- Long conversations scroll more smoothly and release offscreen history after you return to the latest turn
- Terminal session import results can be closed after success or failure without a delayed response reopening the thread
- Tool headings prefer operation descriptions and show edited files with available added and removed line counts
- Importing a Codex session no longer reports no available model when its models are already listed in Ycodium
- Teams now use explicit task completion, safe rework and backup handoffs, while approval waits no longer consume task time
- You can now reopen failed, canceled, or blocked team tasks, add run budget, and inspect dependencies and handoff history from the board
- Status colors on the mobile board now update correctly when you switch themes
- Opening the local install package menu for a machine no longer crashes the app
- Toggling the sidebar no longer causes cookie errors in the desktop app
- Running sessions now continue after you update or remove their provider configuration
- Team runs now have a dedicated entry in each thread and can be found across the machine from the run board
- In-progress and failed work in threads is now easier to scan, with consistent status cards, clearer tool summaries, and thinking duration
- Thread activity now shows the underlying reason when a provider turn fails, so you can diagnose failed team tasks without digging through events
- Malformed provider credentials can no longer be exposed in error messages or diagnostic reports
- Switching between threads stays more responsive, even with many background threads open
- Ycodium uses a lighter running indicator to keep the interface responsive while agents work
- Claude threads now stop showing Compacting context after compaction finishes
- Scrolling through long threads is now smoother and less likely to stutter
- Child threads now appear in the Agents panel alongside subagents, and agent rows expand to show their recent activity
- Codex conversations now use the selected model's context capacity when starting or resuming, within Codex's own limits
- Images generated by Grok now appear directly in conversations and remain available when reopening a thread
- Press Ctrl+Shift+P to view diagnostics for kept-alive thread panels and recent switching performance
- Creating a new thread no longer unloads your open threads, so switching back stays fast
- Typing Chinese in the prompt is no longer interrupted while a question or approval is waiting
- Switching threads keeps each thread's provider, model, options, and draft when sending
- Escape and other chat shortcuts now affect only the visible thread while background threads keep running
- Grok failures now show their error messages instead of appearing as successful empty replies
- Diffs render again instead of showing a blank panel
- See the files changed in each thread, with recent edits first, edit counts, and one-click file opening
- Use the new turn panel to review, jump to, and export every turn with token usage totals
- You can now upload files and folders from the file panel, track progress, cancel uploads, and handle files of any size
- File tree and source control panels now show loading placeholders instead of appearing blank while they load
- Remote machine updates now wait for reconnection and refresh the displayed runtime version
- Switch back to an open thread without losing your place in its history
- The workspace panel now matches the middle column's color scheme for a more consistent layout
- Long conversation timelines now scroll more smoothly, keep recent content fast to open, and allow selections across turns
- Kimi questions and plan reviews now show their full contents and choices, and unsupported approval actions no longer cancel requests
- Bold text wrapped in quotes or followed by a dash now renders as bold instead of showing the asterisks
- Bold text written as **前缀:**正文 now renders as bold instead of showing the asterisks
- Terminal sessions containing reasoning history can now be imported successfully
- The sidebar is now more clearly separated from the main area
- Sidebar footer icons, including notifications and collapse controls, are now easier to see
- Double-clicking a row in the source control panel no longer selects the whole list
- Sidebars and tabs stay responsive while agents stream output
- Ycodium now uses far less CPU while idle without delaying session imports when you open or message a thread
- Loading spinners and progress indicators no longer slow the app, especially at non-default display scaling
- Enabled providers no longer start automatically during startup, reconnection, or background status refreshes
- The "requests are slow" notice now looks like a live status instead of a dismissible failure
- Small buttons now render at their intended text size instead of falling back to the default one
- Desktop context menus now match the app theme, retain icons and group labels, and offer editing actions such as cut, copy, paste, undo, and redo
- Streaming replies now appear smoothly word by word and render mathematical formulas and Mermaid diagrams
- The Source Control panel now has a clearer HEAD indicator and more precise resize handle behavior
- Collapsed machines no longer show a misleading “no projects” message or add-project button
- Deleted threads no longer spin indefinitely after a connection error
- The sidebar footer is now one account button plus notifications, with settings and pages behind it
- Stopping an ACP agent now reliably ends the current turn so the conversation can continue
- Split action buttons now look and behave consistently, with destructive machine actions clearly separated in menus
- New threads now open immediately to the right of your current tab
- Input controls and buttons now use matching corner radii for a more consistent interface
- Provider update hints in settings can now run the update in one click, including npm-installed providers on Windows
- Disabled controls now explain why they’re unavailable, such as when no remote is configured or a commit message already exists
- Keyboard focus is now clearly visible on the sidebar header
- Primary machines now show installed runtime versions in machine settings
- Installed runtime versions can now be viewed and unused versions removed across local, Direct and Relay connections
- Project read counts now show sync failures and recover after reconnecting the machine
- Failed Claude requests now show a failed status and their error message
- SSH machines now correctly list installed runtimes and remove unused versions
- Failure events in the timeline now show full error details, including provider limits, authentication issues, and checkpoint failures
- The submit controls now use a unified split-button design, and disabled submissions explain why they’re unavailable
- Bottom bar icons no longer get clipped on narrow screens, with overflow scrolling available instead
- Action results now collect in a notifications center in the sidebar, so errors stay readable after the toast fades
- The homepage now highlights multi-account setups, relays, and Ycodium's plugin architecture
- The homepage no longer shows mock features that are not available in Ycodium
- The homepage now includes an animated example of agents collaborating on a task board
- The homepage now replays an agent using a browser preview to find and fix a checkout total bug
- Local plugins and their approved commands now work correctly on Windows
- Windows runtime installation and repair now handle script encoding, process shutdown, and temporary inspection timeouts correctly
- Machine settings now detect conflicting servers and repair them with task checks, database backups, and restart verification
- Desktop startup no longer fails while restoring saved proxy settings
- Provider icons now tint the logo with your account colour instead of showing a corner badge, and thread tabs keep that spot for run status
- Watch a real agent session replay on the homepage, with clear controls and readable tool details
- Restarting a machine no longer marks its running threads as failed
- Project rows show each attention status as its own count, and clicking one opens those threads
- Conversations no longer capture automatic file snapshots or show per-turn change cards; Source control and tool edit records remain available
- The final answer copy button now shares the time and token row without leaving an empty action row below the reply
- Context menus now have consistent icons, clearer grouping, and a visible shadow
- Discarding file changes no longer leaves source control queries waiting indefinitely
- Approval cards now show every permission a plugin requests, including program launches and command dispatches
- You can now use the new skill discovery plugin to find skill packages installed by other coding tools on your machine
- The connector catalog is now organized into category cards and remains available when offline
- Rejected mode changes no longer appear applied when the next message is sent
- Native agent modes such as Kimi Plan and YOLO now stay selected and apply from the first message, including after reloads
- Collapsing commit history now lets the Changes section use all available space in Source Control
- The top bar now spans the workspace, thread actions are in tab menus, machines can be reordered, and each turn shows its model output token count
- Changes and History use compact input fields, and Ctrl+Enter commits while Enter and Shift+Enter add new lines to the commit message
- The Plugins settings page now shows friendly names, descriptions, authors, icons, and clear contribution summaries instead of internal identifiers
- Thread tabs have cleaner borders and a clearer active indicator, while busy provider icons are easier to spot
- Add multiple Codex API and ChatGPT accounts, with account changes taking effect after the current response
- Thread tab context menus now show synchronization status and a working retry action while the layout is loading
- The thinking placeholder no longer reappears between tool calls or makes the conversation jump
- Imported sessions retain recorded models, thoughts and tool details without duplicating history
- Terminal session import adds search, filters, pagination and provider icons, and supports Windows Codex command shims
- Project rows show stable thread totals and priority status counts, with details on hover
- Background unread counts sync across devices, and session import joins the top toolbar
- Disk-installed plugins can now use their declared page headers, appearance packs, and Sparkles icons
- Set one wallpaper across the sidebar, workspace, and thread area, or override each area with your own or a plugin appearance pack
- The startup screen now shows real progress while it prepares local data
- Stopped threads now reliably show when and why they were stopped, including after upgrades or interrupted rebuilds
- Rebuilding chat history after an update is now far faster on large workspaces
- Conversation tabs now show provider status badges, searchable history and grouped toolbar controls
- Tab layouts, drafts, attachments and read status follow your account across devices
- Creating a conversation preserves your file panel layout
- Stop requests now sync across devices, and stale failures no longer clear a newer request
- React file icons now display clear outlines instead of black-filled shapes
- Replies and expanded details are clearer, while progress text and collapsed summaries use consistent softer colours
- Background tasks stay grouped with their original reply and show running and failed states
- File changes appear at the end of each reply and separate thought summaries no longer run together
- Chat settings now show only credentials for the selected platform and display platform icons
- Exported JSON Schemas now mark trimmed text fields as requiring non-empty values
- Show the agent and model before reply content and keep their identity in place as the turn progresses
- The app now shows a startup screen while it prepares local data instead of a blank wait
- Updating no longer stalls launch for minutes while chat history is re-indexed
- Keep your reading position when expanding or collapsing thoughts and tool details
- You can disable anonymous telemetry entirely from Settings > About
- You can now disable resource monitoring completely, while enabled monitoring adapts to power status and tracks host disk activity
- The Diagnostics settings page no longer shows two overlapping views of the same process data
- Read thoughts and tool calls in a compact timeline with consistent Markdown formatting and command details
- Follow live responses and Codex command output without losing your place in long logs
- Tool output is now saved and displayed more reliably in conversation timelines
- Plugin panels in a conversation on another machine now load instead of hanging
- Deleting a proxy now warns you when a chat bot is still using it
- A plugin installed from a local directory now picks up code changes without a page refresh
- The usage page now says "machines still scanning" instead of "devices"
- Plugins must now declare which orchestration commands they dispatch, and can only act on conversations they opened themselves
- The server log now records each chat command a bot handles
- Chat bots are now configured in Settings → Plugins → Chat; bots set up in the old Messaging bots section need to be added again
- Chat bridges now take /stop, /status, /new and /help, and can be limited to a list of people allowed to command the bot
- The chat area reads tighter and closer to familiar chat tools: 13px text at 1.5 line height, a light gray canvas behind white cards in the default light theme, and more compact message bubbles and code blocks
- Added GLM as a provider, with separate entries for Z.ai and BigModel
- Signing in to Codex now shows a copyable code and a clickable link instead of raw command output
- Grok threads show context window usage, and the reasoning effort you pick now takes effect
- Kimi Code threads now show how much of the context window is in use
- Kimi Code now shows live plan quota alongside the other providers
- Agents with their own permission modes now show only those, instead of two conflicting mode menus
- Kimi Code models now offer the thinking levels that model actually supports
- Kimi Code models now show their context window size
- Adding a second Codex account now works on Windows
- Grok replies no longer lose their last chunk when it arrives after the turn's completion signal
- Selecting text and typing with an IME no longer stutter or lose the selection while the chat view updates
- Adding a Grok provider now prefills the XAI_API_KEY row so you can see where the key goes if you use one
- The Grok account directory setting now explains what changing it does — providers sharing a directory can continue each other's threads
- The Grok model list now comes from the CLI itself instead of a single hardcoded entry, and a Grok provider that reports no models says so instead of showing a green light
- Grok now reports "Not signed in" instead of a startup failure when it has no credentials
- Grok now says both ways to sign in — run grok login, or set XAI_API_KEY on the provider — instead of naming only one
- A DeepSeek Harness provider that is neither installed nor configured now says it is not installed first, instead of asking for the API key and only then mentioning the missing tool
- Adding a DeepSeek Harness provider now prefills the DEEPSEEK_API_KEY row so you can see where the key goes
- DeepSeek Harness now shows "Not signed in" until its API key is set on the provider, and reports an error instead of a green light when it connects but returns no models
- Providers that authenticate from an environment variable now say which variable to set instead of falling back to a generic "not signed in" message
- Settings now point you to where status check intervals are configured
- You can favorite models on mobile to keep frequently used choices at the top of each provider
- Mobile threads now show a provider status banner when a provider is unavailable or needs attention
- The sidebar now shows machines and projects before they have threads, with an Add project option for empty connected machines
- You can now enable, disable, check, and update providers from mobile settings
- A new Providers page lets you view provider status by machine and install or copy login commands when needed
- Plugins can now read provider session bindings, project and thread summaries, and available instance models
- Plugins can now validate discriminated result formats with oneOf schemas and receive clearer validation errors
- Agent-created plugins can add approved pages and panels visible only in the current thread’s right sidebar
- Machine headers now stay visible while scrolling, and their icons show connection status
- The thread list now shows each thread's latest completed message preview, making threads easier to distinguish
- Review and approve each permission a plugin requests before it is installed
- Plugin commands now report invalid results instead of sending malformed data to the app
- The sidebar is more compact, with aligned thread details and clearer status information
- Generated thread titles no longer display raw JSON instead of a readable title
- Mod+Enter now sends normally, while background runs use Mod+Shift+Enter and remain easy to find
- The model picker no longer briefly appears empty while availability checks are still running
- When a provider is not signed in, Ycodium now tells you which login command to run
- The Archive option is labeled correctly again in mobile settings
- Completed and archived threads are now together in a searchable Done page, while projects show fewer sidebar threads by default
- Mobile now shows consistent provider status and signed-in accounts, with only available models offered for selection
- Hidden models no longer remain marked as the default model
- Third-party plugins can add pages and panels that load reliably and display their translated titles
- You can now disable the built-in Usage feature from Settings, removing it from navigation
- Update notes now appear in Chinese when the interface language is Chinese
- On desktop, browser tabs no longer ask a third-party service for site icons
- The connector catalog now works through configured proxies and clearly shows when it is disabled or not configured
- Plugin developers can use approved filesystem, credential, HTTP proxy, provider, and activity access in their plugins
- Avatars no longer fail to load behind a cross-origin error when the client already has them cached
- Plugins can add validated, localized commands with streaming responses for coding agents to use
- Imported sessions can be continued right away instead of showing "No provider available"
- Switching provider accounts within the same thread now preserves the agent's conversation context
- Settled turn durations now exclude time spent waiting for your approval or input
- The live activity line now says what a running command is doing (Installing dependencies, Running tests, Inspecting git...) instead of just the program name
- A malformed reply or tool result now shows as a single broken row instead of blanking the whole conversation
- Sessions waiting on your answer are no longer closed for being idle
- A question left over from a dropped session now clears itself instead of freezing the thread
- Newly released Claude models discovered from models.dev now run at their full context window and expose reasoning levels
- Switching model or effort is saved to the thread immediately and shows up on every device
- A divider at the bottom of the timeline shows which model your next message will use
- Replies now show their model header while the turn is running, not only after a reload
- Deleted threads no longer flood the console with retries, and avatars stop hammering the relay when a fetch fails
- Agents can immediately discover and use newly created tools in the same thread
- Clicking elsewhere while a file is still opening no longer blanks the file preview
- Agents now resume work when requests to enable or promote plugins are approved, rejected, or fail
- You can ask an agent to create a tool for a thread from the command palette or plugin panel
- The layout gains a dedicated workspace column for files and source control beside the chat, with the right side reserved for opened content
- Model context windows from models.dev no longer disappear after a background provider refresh
- Fetching the models.dev catalog now updates context windows and newly discovered Claude models right away
- Model and mode changes now appear immediately in the right place, with model labels shown on the reply you are reading
- Provider panels no longer get cut off inside the settings window
- Provider panels are no longer see-through, so the page behind them stops bleeding into the form
- You can now import sessions that are open elsewhere, and Ycodium will sync new messages written by other programs
- Installing or updating Ycodium on a remote machine now shows each step, download progress, and the machine's own output
- Machines whose sessions still run through the SSH tunnel are marked as such, with a one-click retry for a direct connection
- Machine actions moved into a single menu, and Update no longer looks urgent on a machine that is already up to date
- OpenCode now installs with its official script on macOS and Linux
- Grok CLI can now be installed from Ycodium with one click, including on Windows
- Cursor CLI can now be installed from Ycodium with one click
- Notifications no longer repeat for old thread events after reopening the app, while new issues and turns still alert you
- Claude Code now installs with Anthropic's official installer instead of npm
- Installing a provider CLI no longer reports "not found on PATH" right after it succeeds
- Threads interrupted by a server restart are now shown as stopped instead of errors, with a timeline notice to continue
- You can now point provider CLI installs at an npm mirror
- Switching models mid-conversation no longer silently strips the agent's browser, delegation, and team tools
- The source-control panel now shows a repository tree with per-worktree sync counts, colorful file rows, a one-line commit box with AI message generation, and resizable sections
- Temporary thread plugins are now grouped separately in Settings, without exposing raw IDs or unsupported controls
- Agents can now use tools they create within their own thread, without exposing them to other threads
- You can now configure webhook notifications when a thread settles or fails
- Provider installations now show live command output and clear success or failure details
- You can reopen the same file from the Files tree after returning to it
- Providers are now easier to scan in a card grid, with settings opened in movable windows or a mobile drawer
- Previously imported Claude threads no longer reappear in the import list or create duplicates
- New installs start with no providers, and you can choose and retain available agent modes in ACP threads
- The file tree now shows gitignored files in gray, accepts drag-and-drop uploads, and downloads any file via right-click
- The file panel gains full-text search with regex support, auto-refresh after each turn, and open-in-terminal
- A conflicted gather can now be abandoned from the team board panel with one click
- When a team member has no committed work, settling now tells you there is nothing to merge instead of reporting success
- The file tree can now create, rename, delete, and drag files into folders, with undo on rename and move
- The team board panel can now gather an isolated role's work back into the starting checkout and reclaim its worktree, and tasks can be added straight from the board
- The team board panel can now gather an isolated role's work back into the starting checkout and reclaim its worktree, and tasks can be added straight from the board
- The current branch and remote badges in commit history now stand out in distinct colors
- The current branch and remote badges in commit history now stand out in distinct colors
- Agents can now gather an isolated role's branch back into the starting checkout locally and reclaim its worktree safely
- Agents can now gather an isolated role's branch back into the starting checkout locally and reclaim its worktree safely
- You can now settle team work with squash or no-fast-forward merges, and safely abort squash merges with conflicts
- You can now drag the main window normally while Settings is open
- Team settings dropdowns now show proper labels instead of internal values
- The panel gains a fetch button, branch switching, and file sorting by name, path, or status
- Team tasks with no dependencies now run in parallel across roles, and a stuck board pings the starting thread instead of hanging silently
- Fetching the model catalog now adds newly released Claude models to the model picker
- SSH setup failures now show the actual error instead of the machine's login banner, and the full text instead of one truncated line
- Setting up a machine that has no Node of its own now finishes instead of failing at the last step
- A stalled runtime download now fails in about three minutes with a clear reason instead of leaving setup stuck for fifteen
- A machine whose shell profile has a broken line can now be set up over SSH instead of failing before setup even starts
- Files and folders now use the Symbols icon set, so file types are easier to tell apart at a glance
- Code in chat, diffs, and file previews now uses VS Code's Light Modern and Dark Modern colours
- Commits in the history can be undone, handed to the agent, or compared with the upstream branch, the fork point, or any other branch
- Team roles can now work in a shared checkout, another role's worktree, or their own isolated worktree created on first dispatch
- New worktrees no longer inherit an upstream branch, preventing accidental pushes to the branch they were created from
- On desktop, the toolbar border no longer runs through the window controls
- Threads no longer keep a stale "waiting for your input" badge after the server restarts
- The forked-from banner no longer claims the source thread was deleted when it may just be archived
- The phone and tablet thread lists now show a team run's status and task progress on its starting thread
- Team run turn budgets no longer reset when the server restarts
- Deleting a thread now warns it will stop its active child agents and team runs
- Teams can set a coordinator model that takes over when you start a run from the composer
- The source-control panel now stacks worktrees, changes, stashes, and commit history as collapsible sections, with turn diffs moved to its own icon
- The history graph now separates incoming from outgoing commits, gains search, branch filtering, and jump-to-HEAD
- Diffs open as their own tab with side-by-side or inline layout instead of expanding inside the panel
- Role briefs now actually reach team members as their opening briefing, and the team editor can add members from five built-in role templates
- Setting up a machine over SSH no longer fails with "platform is not supported", and no longer leaves the uploaded archive behind on the machine
- Tool call rows now read as the tool name plus what it acted on, instead of a raw dump of the call's arguments
- Source control refresh no longer spins indefinitely or keeps announcing it is refreshing, and is unavailable while another action is running
- Adding a machine over SSH now shows transfer progress and speed, and says up front when the machine is missing something it needs
- Pick any worktree in the source-control panel to see and commit its changes, and lock, unlock, or clean up worktrees from the same list
- Pick a team right in the composer — sending starts a run whose progress, board, and member messages all live with that conversation
- Teams got their own settings tab, and the team board with a member-message timeline now opens in the right panel of the conversation
- Started sessions now appear as a single sidebar item with run status, task progress, and expandable member threads
- The agent routing table now takes custom work types, and team members reference its rows explicitly instead of by accidental role-name match
- Network issues on one remote machine no longer block sessions or notifications on other machines
- The right panel is now a permanent activity bar: source control, files, and agents each have an icon you can reach even when the panel is closed
- Terminals now live only in the bottom drawer
- You can now upload profile photos through a relay from your browser
- Avatar upload errors now explain whether the issue is your image, connection, rate limit, or server
- Machine inventory panels now use the full row, with aligned version details and less crowded controls
- You can remove unused runtime versions from remote Hosts and see which processes are using protected versions
- Clicking outside Settings no longer closes it while you are configuring Ycodium
- Changed files in the source-control panel can now be opened directly
- The file viewer now shows change bars in the gutter and an optional per-line git blame
- Batched notifications and attached team messages now all show in the timeline instead of only the first one
- Child threads of an archived parent are no longer labeled as coming from a deleted thread
- Stale approval badges no longer survive a server restart
- Team and approval history that an earlier replay bug left missing is backfilled automatically on upgrade
- Stash your changes and manage worktrees from the source-control panel; deleting a thread no longer deletes its worktree
- The source-control panel gains a History view: a commit graph across your branch, upstream, and default branch, with per-commit diffs, branch-from-commit, and per-file history
- Threads that spawned children no longer lose track of them across a server restart
- Manage all your machines, including adding, pairing, routing, and access settings, from one Machines page
- Merge, rebase, and branch management now live in the source-control panel, with conflict resolution you can hand to the agent in one click
- You can now see when a team run has settled or failed in the notification timeline
- Child-thread and team results now queue while the parent thread is busy or archived and arrive as one batched message instead of being dropped or waking it once per child
- Quiet team messages now actually reach the recipient agent: attached to its next turn, or read on demand via the new check_team_inbox tool
- All Git actions now live in the source-control panel: publish, amend, undo commit, force push, and per-file gitignore, with Git status colouring in the file tree
- Ycodium can start and load history even when some older event records are corrupted or incompatible
- The right-side panel is now a source-control panel: stage, unstage, discard, commit, and push without leaving the thread
- Newly added projections now replay the full event history on first start instead of silently stopping after 1000 events
- Running threads now show an animated status indicator without crowding out their titles
- Ycodium now keeps you in Settings when you navigate away with unsaved changes, so drafts are not lost
- Account details and shortcut icons in Settings no longer overlap
- You can drag the window while a modal is open, and outside clicks no longer close modals accidentally
- Your messages now show an avatar in every conversation, with a neutral icon when you're not signed in to a relay
- Runtime updates now keep only the three newest versions, preventing old installs from filling Host disk space
- You can now inspect installed and active runtimes on remote Hosts in Settings and see how to resolve version conflicts
- Update availability notifications are now always shown once per version and no longer repeat after reconnecting
- Long tool-call logs now stay compact, keeping messages and responses visible in the thread timeline
- Streaming updates no longer re-render the entire chat view on every chunk
- Relay deployments no longer generate duplicate database migrations that can conflict with existing tables
- Code blocks in streaming replies now highlight incrementally instead of re-highlighting from scratch on every chunk
- You can force tunnels to use TCP on networks that block UDP, avoiding slow fallback at startup
- environment downloads can now automatically use your relay's configured download mirror, with GitHub as a fallback
- Long streaming replies render incrementally instead of re-parsing the whole message on every chunk
- Git, GitHub CLI, and npm now use your configured proxy and honor per-proxy bypass addresses
- Relay client installation now falls back between mirrors and GitHub, times out instead of hanging, and supports local files
- Administrators can now paste a list of users to send invitations in bulk and export the results as CSV
- You can now use a colored initial avatar or upload a profile picture, shown across the web and mobile apps
- Desktop users can route Ycodium and environment connections through a proxy without restarting
- Environments can now use their configured proxy to connect to relay
- Admins can manage users from mobile, identity screens are now in Chinese, and disabled accounts lose access immediately
- New devices signed into the same account can connect through relay without a pairing code when automatic authorization is enabled
- Relay deployments now apply committed incremental migrations instead of attempting to recreate existing tables
- Disabled self-hosted accounts lose access immediately, logins are rate-limited, and deployments can require a bootstrap token for initial signup
- Relay deployments can safely rerun user migrations when the required tables or indexes already exist
- Turn diffs now work in any folder, and Ycodium no longer writes anything into your project's Git repository
- You can set up, update, and manage SSH Hosts entirely in Ycodium, including fingerprint approval, remote downloads, cancellation, and server removal
- Timeline pages no longer fail to load during server rendering
- Remote hosts now correctly detect installed Ycodium runtimes instead of asking you to reconnect repeatedly
- With a relay configured, you can now sign in and manage your account from the sidebar
- Password sign-in and invites now work reliably on Cloudflare-hosted relays
- Invite links now open directly in the mobile app, where you can set a password and sign in
- Your own messages and threads no longer display redundant author or owner labels
- Telegram, WeChat, and WeCom integrations can now use a proxy configured for their instance
- You can now expand long prompts in the sticky turn header to read them in full
- You can sign in to a relay from the CLI with your username and password, without a browser or external identity provider
- Mobile now lets you sign in, create the first relay admin, and manage your account without external identity screens
- Relay admins can now manage users, send invites, reset passwords, and disable or restore accounts from Settings
- Opening a conversation now shows who created it
- Provider commands and usage checks now use the proxy selected for that provider
- You can sign in to a self-hosted relay in the web app, set up its first admin, and accept account invites without an external identity provider
- Mobile now explains whether a connection failed because credentials expired, were used up, or belong to another device
- In multi-user mode, you can now see who created a thread and who sent each message
- Pairing links no longer show broken copy or QR controls after creation; credentials are shown when created and links are identified by their last four digits
- Self-hosted relay deployments now support user invites, password sign-in, and account sessions
- The model picker now shows each provider account's email and color marker, making same-provider accounts easier to tell apart
- People rejected by an IM bot now receive their own ID so you can add them to the allowlist
- You can now switch between two Claude accounts in the same thread while keeping the conversation continuous
- IM bot setup now marks required fields, offers common server addresses, and keeps allowlist settings under Advanced with a visible summary
- IM bot setup no longer requires an unfindable project ID, and bots automatically select your only project
- You can now import Claude and Codex terminal sessions into threads from mobile
- You can now import Claude and Codex terminal sessions into a new thread from the project sidebar and continue them in Ycodium
- You can now configure and test proxies, set a default proxy, and choose a proxy or direct connection for each supported IM bot
- Pairing failures now explain whether a code was used, revoked, expired, or belongs to another device, and the CLI creates links through the server
- Images Telegram cannot process are now delivered as files instead of disappearing
- Agent replies no longer lose their final chunk when it arrives together with the turn's completion
- Settings changes now stay in a draft until you save, with options to review or discard them
- Agent-created images and files now appear in connected chats, with a notice where media delivery is unavailable
- You can now see when a stalled turn is waiting for a subtask rather than a tool
- Settings now open in an overlay above your workspace, keeping your current context visible
- You can now use chat commands to stop an agent, check its status, start a new conversation, or get help
- Stalled-turn timers now show elapsed time correctly, and active work status is translated
- You can now manage MCP servers and skills for ACP agents in the plugin center
- DeepSeek agent usage is now tracked separately instead of being grouped with ACP agents
- Leaving settings now returns you to your workspace without replaying every page you visited
- User message bubbles now use the same corner styling as adjacent conversation elements
- Error notifications no longer shift conversations or cover the sticky turn header
- Messages no longer peek through above sticky turn headers while scrolling
- The sticky turn header now follows the turn you are reading as you scroll through a conversation
- Relay connections now work with local HTTP relays and correctly request and scope access credentials per host
- The floating "Collapse activity" switch is gone — collapse individual activity groups by clicking them instead
- Starting a thread now shows project, machine, workspace, and branch in one row above the composer
- The workspace picker lists every worktree your project's threads have used, not just the last one
- Hover a machine in the sidebar for a new-project button that opens the picker already scoped to that machine
- The brand mark you pick in Settings now also applies to the desktop window, taskbar, and Dock icons
- The startup splash now shows a crisp brand badge and cross-fades without a full-window color shift
- Approve agent requests directly from Telegram, Feishu, WeCom, or WeChat, even when you are away from your computer
- Turn agent teams on or off from the Integrations settings on web and mobile
- Images returned by tools or opened by Codex now appear in the conversation
- Set up Hermes as an ACP coding agent from the agent directory, with guidance for its optional ACP installation
- The changelog now reads in Chinese throughout, including entries written by hand
- A stuck turn now says what it is waiting on — a tool, your approval, your answer, or the model — and offers to interrupt
- Files included in OpenCode assistant messages now appear as downloadable attachments
- Images and files sent by Cursor and Grok agents now appear in chat instead of being discarded
- Chat panels, model picker, and plan cards now translate instead of falling back to English
- Images generated by Codex now appear in chat as attachments
- Images produced by Claude tools now appear in chat, including in attachment-only responses
- Ycodium reopens the thread you were last on when it starts, instead of always landing on a new draft
- Ycodium can now post system notifications when an agent needs you and when a new version is ready
- Press Escape to stop the running turn, and Shift+Tab in the composer to switch run modes
- Update controls and release notes now appear fully in your selected language
- The desktop update prompt now lists what changed in each version
- See which thread a fork came from on mobile and open the source thread directly
- Get attention badges, visible context compaction, default run modes, file attachments, and gentler Claude stops that preserve your session
- Send images and files to Ycodium through Feishu
- Send photos and files to Ycodium through Telegram, including messages with no text
- Set up each messaging platform with tailored guidance and verify credentials before saving
- Release-note links now work for visitors who open the site without JavaScript
- The skill picker no longer suggests unavailable Claude skills, and search results are easier to read
- Managed skills are now available in Claude sessions
- Start a new thread directly from a project in the sidebar
- Sidebar project counts, thread times, and machine badges now align cleanly
- Open a machine overview from the sidebar to check its status, reconnect, or go to its settings
- Continue an existing thread with another provider or model from the command palette
- System updates such as handovers and team tasks now appear as clear chat cards on mobile
- Machine-specific provider, source control, plugin, and integration settings now open in the relevant machine settings
- View and revoke authorized clients for each machine from its new Access tab
- On mobile, you can collapse child-thread chains while keeping your open thread visible, and child updates appear as cards you can open
- Use the command palette to jump directly to Teams settings or agent routing settings
- Custom keyboard shortcuts now follow this device instead of a specific machine, with an option to follow machine defaults again
- Manage plugins separately for each machine from that machine's details page
- Browse your machines from Settings and manage providers, integrations, source control, and behavior for each machine
- Mobile thread rows now show the worktree folder name when a thread uses a worktree
- The current thread is now clearly highlighted in the sidebar, and worktree threads show their folder name
- On mobile, child threads grouped beneath a parent now use a cleaner indented layout
- Sidebar machine and project headers now reveal connection, version, path, repository, and thread details on hover
- In the web sidebar, you can collapse a parent thread's child threads without hiding the thread you have open
- Download links on the Ycodium website now refresh automatically when new builds become available
- Child threads now appear directly below their parent in the sidebar, making thread hierarchies easier to follow
- Claude CLI sessions can now reliably use Ycodium's built-in tools, including starting child threads and listing providers and teams
- Pair devices from the sidebar and see your Ycodium version at a glance
- Choose the black or blueprint Ycodium brand mark in Appearance settings
- Install and manage plugins, choose presets for new threads, and see where child and continued threads came from
- Use built-in skills, install plugins, and continue work with another provider without losing context
- View agent reasoning and structured tool input, output, files, and exit codes directly in the conversation timeline
- Set a custom runtime download URL for each Host, or install from a local package when provisioning fails
- Ycodium no longer fails to start on Windows when the bundled Lark integration is included
- Kimi, DeepSeek, and Qwen now have distinct icons so you can tell installed providers apart
- Install supported provider CLIs directly from Ycodium when they are not already installed
- Run separate Cursor, Grok, and OpenCode provider instances with different accounts
- Provisioning now reports runtime download failures clearly instead of incorrectly saying the runtime is missing
- Route agent work to chosen providers, manage MCP servers and skills per project, and sign in to Codex MCP
- Reorder projects and threads, navigate the sidebar by keyboard or screen reader, and see unread completed work on mobile
- Use dsh as a provider, let agents start child threads, and manage MCP servers and skills from Plugins
- Add SSH Hosts through a guided setup with authentication options, live progress, and clear recovery steps
- Ycodium now shows a smoother startup transition while the app is loading
- Explore Ycodium's remote workflow on the website, now available in Simplified Chinese
- Sidebar thread statuses now display correctly in Chinese
- Browse threads in an expandable Host, project, and thread tree, with conversations needing your attention kept at the top
- Messaging bots now help you choose a project when the configured one is unavailable, without losing your original message
- Configure multiple messaging bots in Settings, with credential and language changes taking effect immediately
- Offline runtime installation no longer asks for your SSH password twice
- Upgrade a remote Host from the desktop, including offline installations, with confirmation before running agents are interrupted
- Project settings, scripts, search, and project setup now follow your selected language
- Pull request review controls and comments now follow your selected language
- Relay connection errors now appear in your selected language
- Connection status and failure messages now follow your selected language
- Browser, settings, and usage screens now follow your selected language, with clearer version labels for screen readers
- The floating preview player now follows your selected language, including its close control
- Browser and settings update messages now follow your selected language
- Mobile settings now follow your selected language, including linked environment counts
- Mobile settings and usage screens now consistently follow your selected language
- More browser, chat, settings, terminal, update, and usage screens now follow your selected language
- Use Lark to start and continue Ycodium sessions from chat
- Use WeChat to start and continue Ycodium sessions from chat
- Use WeCom to start and continue Ycodium sessions from chat
- Use Telegram to start and continue Ycodium sessions from chat
- Usage totals now include spending from Cursor, Grok, OpenCode, and ACP agents
- Use the CLI to view provider status, available models, and diagnostics from a headless environment
- Check configured providers, authentication status, and available models from the mobile Settings screen
- ACP agents now show their own modes and slash commands in the composer
- See each model's actual context window and whether its value came from your settings or the model catalog
- Add custom model aliases when creating a model and use them anywhere you select a model
- Quota information now avoids showing vendor limits when your provider uses a custom endpoint or credentials
- Use multiple ACP accounts independently by giving each provider instance its own login directory
- Use Ycodium in English or Simplified Chinese, with localized settings navigation, search, and restore dialogs
- Run a one-click diagnostic for a provider instance to check its CLI, connection, session, and models
- Review diffs now keep consistent syntax colors on busy devices and for very long lines
- Quickly add Kimi Code, GitHub Copilot, DeepSeek Harness, Gemini CLI, or Qwen Code from Settings
- Add and use any ACP-compatible coding CLI as a provider from Settings
- Give custom models labels, choose a default, and configure supported thinking options
- See live plan quotas on the Usage page
- Run multiple Ycodium clients on one machine without their local backends competing for a port
- View authorized clients for each remote Host and revoke access for other clients from Settings
- Relay deployments now fail safely on invalid state-store credentials instead of replacing the store
- Deploy the relay to a new Cloudflare account without state-store bootstrap failures
- Remote SSH environments stay running when you quit, disconnect, or reconnect, avoiding unnecessary restarts
- Run the relay without Apple push credentials when you do not use iOS notifications
- Provision Linux and macOS remote Hosts over SSH on x64 and Arm64 devices
- Internal desktop builds can now receive automatic updates when an update feed is configured
- SSH environments now provision Ycodium automatically, recover after remote service failures, and avoid freezes during stalled uploads
- Choose a Direct port for each SSH environment, and Ycodium will use it for public access and accurate reachability checks
- You can now self-host the relay service with Docker and PostgreSQL
- Relay connections now use relay-issued access tickets for improved access control
- Cloud pairing credentials are now bound to your client's encryption key, preventing reuse on another device
- Connections now reject hosts whose identity key changes unexpectedly
- Device grants are now tied to your device, preventing them from being used on another device
- Self-hosted Relay can now run on Node.js
- Your device identity now persists across app restarts, keeping paired access available
- After SSH provisioning, Ycodium can continue connecting through saved Direct or Relay routes
- You can use a custom Relay URL instead of the default one
- Settings now group connections by host and let you choose Auto, Direct, or Relay paths
- Connections now select the best saved Direct or Relay route, using SSH only as a fallback
- Closing one of several terminal connections no longer releases input control for the others
- Desktop now identifies SSH connections as provisioning or break-glass access
- A stalled coding agent no longer blocks work from other agent providers
- Repository updates now avoid conflicts with each other and never expose partially written files
- Only one session can control a terminal at a time, with an explicit option to take over input
- Cloud sign-in can no longer replace Host authorization for connections that require Host credentials