Skip to main content

Desktop Workspaces in Their Own Windows, Designs Moves Into Drive & Agents That Use Your Browser

· 16 min read
Copera Team
Copera Team
Product Team

Copera Desktop is rebuilt around workspaces: each one opens in its own window, with its own taskbar button, logo, unread badge and notifications — switch workspaces the way you switch Chrome profiles. Artifacts becomes Designs and moves into Drive, with saved design systems, tablet pages and honest failures. And hired agents can now work inside your browser, pausing for your approval before anything risky, while agent routines remind owners, stop and resume on command, and survive a restart without doing anything twice.

New Features​

Copera Desktop — One Window Per Workspace​

The desktop app no longer has a single main window that everything squeezes into. Every workspace gets its own (#3785, #3788, #3789, #3801, #3812, #3815).

  • A window per workspace — open as many as you have workspaces, each with its own tabs, its own session and its own notifications. A Choose a workspace picker lists your workspaces with their unread counts, and All workspaces appears only if you actually have more than one.
  • Your workspace logo on the taskbar — each window's taskbar button shows that workspace's logo with a small Copera badge in the corner, Chrome-style. Wide logos use their leading emblem so the icon stays readable, and pinned shortcuts are repaired automatically when the icon changes.
  • Windows remember where you left them — every workspace window reopens at the size and position you last used, including after a quit. Right-click a taskbar button (or use the macOS dock menu) for a jump list of your workspaces, a New window entry and a link to the picker.
  • Notifications and badges that know which workspace they belong to — unread counts and notifications are per workspace, so a window only tells you about its own.
  • Move a tab to another window — send any tab to any other window of the same workspace, and non-workspace links keep opening in tabs.
  • Sign-in and sign-out that behave — signing out clears every token the app holds and closes what belonged to that session, losing access to one workspace never signs you out of the account, and a window whose session expired takes you to login once instead of looping. Your account session now renews itself quietly on a rolling 90-day window, and a password change or a sign-out revokes it everywhere.
  • Notes and dictation follow the right workspace — recordings are pinned to the workspace that made them, never deleted behind your back, and dictation history is flushed when you quit. Cancelling dictation clears its mute.
  • Smaller fixes you will feel — no reconnect screen on a normal start, the spell-check menu is back, the first-run splash and the open picker follow your system theme, and a slow screenshot in Ask no longer blames a missing permission. In meetings, mute and push-to-talk moved from Space to the letter M (#3815), so the spacebar is free again.

Designs — Artifacts Gets a New Name and a Home in Drive​

What you knew as Artifacts is now Designs, and it lives in Drive (#3802).

  • Find it in Drive — Designs sits at its own place in Drive, old links redirect, and the former My Disk folder is now called Designs. Back always returns you to where you came from.
  • Save any design as a design system — turn a design you like into a reusable system that keeps its colours, fonts, logo and components, then start new designs from it. Design tiles get New design from this one and Save as design system.
  • Storage on by default — designs that declare they need storage get it, and the owner can still turn it off. Earlier choices are kept as they were.
  • Pages at their real size — phone and tablet pages are reviewed and screenshotted at their own size, and the canvas now lists pages whose entry only mounts a module. Ask for an iPad or tablet version and you get a proper tablet page; saying "no tablet version needed" no longer creates one by mistake (#3820).
  • A republish hint you can act on — when a public link is still running with older permissions, the Share popover says so and offers Update link.
  • The second-tab crash is gone, and desktop tabs keep their back-to-chat behaviour while new designs open in their own tab.

Designs — Honest Failures and a Reliable Build​

A long run of work on the Designs engine, all of it aimed at the same thing: when something goes wrong, you are told what and why instead of being handed a confident-looking nothing (#3813, #3814, #3816, #3817, #3818, #3820).

  • A creation that ran out of room fails honestly — a design cut off mid-build with nothing saved now fails and says so, with a card that names it, instead of reporting success on an empty result.
  • Blank pages fail the build — a page that renders nothing, or a page that never mounts, is caught before you see it. Links built from data count toward the "pages not linked" advisory.
  • Screenshots actually reach the model — a screenshot stays attached for the next step, and Copera says plainly when an image could not be delivered instead of guessing.
  • Search across the whole project — the file view searches every file and every version for a quoted phrase.
  • Imports and icons are checked — a change that imports a file which does not exist yet is refused, and an icon name your icon package does not actually export is refused with the closest real names suggested.
  • No pointless saves — a write identical to what is already there saves no new version, and an edit's new text is written literally.
  • A failed web search is not the end of the run — Copera carries on from it as a normal tool error.
  • Clearer refusals — saving an empty design draft as a design system is refused with a plain message, a reply that tells you to turn on a capability that is already on is corrected, and a build that failed on a missing resource names each resource and what to do about it (with a pointed fix for external fonts).
  • Brief cards that cannot break — the questions Copera asks before building are repaired automatically when they come back malformed, and if one truly cannot be shown, the failure card says exactly that, in all six languages.
  • Replies in your language — failures, refusals and notes come back in the language you wrote in.

AI Agents — Working Inside Your Browser​

Give an agent the Browser Power and it can work in your own browser session, with your approval for anything that matters (#3821, #3822, #3824, #3825, #3826).

  • Approve or deny a paused action — when an agent is about to do something risky, the run pauses and shows you a card on the Browser Use page. Approve runs exactly that action once, on the same page, and the task continues; Deny skips it. Only the browser's owner decides, cards expire, and an approved action is never replayed later.
  • Icon-only buttons are not a loophole — a nameless trash or Delete icon now asks for your approval exactly as a button labelled "Delete" would, because Copera reads the icon's own hint from the page. Harmless controls stay harmless: pressing Enter on a page container no longer asks you to approve the whole page.
  • You can always see when Copera is driving — a single-line "Copera is controlling this tab · Stop" pill appears only on the tabs a run actually controls, with a per-tab badge, and never inside an ad iframe or in a screenshot. Stop is one click, from the pill or the popup.
  • Clicks land where they should — hit testing works in page coordinates, rows that are clickable without a formal role can be clicked, real Enter is sent, and scrolling at a target that is off screen scrolls its pane instead of refusing. A scroll that names both a pane and a point now simply uses the pane.
  • Runs stop looping — a read loop is refused, a run that makes no progress wraps up with what it found, four failed reads end it, and an action that already went through is never repeated. A click with no visible change is reported as done, not as a failure.
  • Read-only means read-only — an agent with read access stops at the first action and tells you how to grant more, and the viewer shows read-only state and why a run stopped.
  • A connected browser is offered first — with the Browser Power and your browser online, the agent reaches for the browser from the first step instead of asking, and it will never ask you for a website login or password while the browser can already reach that site.
  • Faster, cheaper browser tasks — fewer and smaller model calls per step, older observations collapsed to summaries, and viewport-scoped snapshots.

AI Agents — Routines That Remind, Stop and Survive a Restart​

Agent routines become something you can supervise (#3779, #3780, #3781).

  • Routines that chase owners — an overdue item's owner gets one comment, inside fixed limits, with a ledger record for each reminder. Nobody is reminded twice, unowned items go to the routine's person, follow-up to-dos are private and capped, and escalations arrive as one notice per run.
  • Stop and resume a run — stop a running agent and nothing new starts after the stop; resume and nothing is done twice. A stopped run says who stopped it, when, and what it had already done, and a stop also reaches work the agent had handed to another agent — queued mail is withdrawn and pending requests cancelled.
  • Runs survive a restart — if Copera restarts mid-run, the run is continued exactly once with every step done exactly once. A run that truly cannot be continued ends honestly rather than pretending it finished.
  • Exact spend — agent AI calls are now charged their exact cost instead of being rounded up: sub-cent use is tracked in a per-agent carry, calls made outside a run are counted too, and the run page, the ledger and the in-flight list all show what your wallet was actually charged. Amounts under a cent and shares under one percent read truthfully.
  • Run now, honestly — asking for a run while one is already going tells you so, and Run now will serve a due occurrence.
  • Members can see an agent working — with run statuses that say what really happened, and a clear message when a member is not the person who may stop a particular run.

AI Agents — Guards on Everything They Send Outside​

New guardrails for agents that email, message and book on your behalf (#3807, #3808).

  • Promise sources — tell an agent which table and column hold your real prices and terms, and it can only promise what those sources back. Tables the agent could edit come with a warning, computed columns are hidden, and a source naming a table or column you cannot see is hidden from you and refused on save.
  • Contact ownership — the inbox thread and the contact drawer now show who owns a contact, and taking or returning one updates both at once.
  • Do-not-contact by phone — alongside email, with one recipient check in front of every send an agent makes.
  • Bookings that fit real availability — bookings and moves respect the person's availability, the booking guard reads the calendar itself and refuses when it cannot, and guests are emailed when an event changes.
  • Approvals cover the whole message — an approval now covers the subject as well as the body, side effects of a single step run in order, and flagging an email needs no approval at all.

Contacts Assistant — A Real Brief and a Real Answer​

The Brief card and the Ask thread in Contacts used to be placeholders. They now work (#3835).

  • A brief that reads your data — Copera writes a short brief on a contact from what you can see, cites the specific records it used, and offers concrete next steps you can edit.
  • Ask a question about a contact — get a grounded answer with its sources, rather than a guess.
  • Briefs stay fresh — a brief goes stale as soon as the underlying numbers change, a fresh one is reused for a couple of minutes, and two tabs asking at once produce one brief instead of two charges.
  • Clear states — low credits, a budget cap, a retry and an unavailable model each say what is happening, in all six languages.

Code Review — Copera Reviews Your Pull Requests​

Connect your GitHub repositories to a workspace and have Copera review pull requests for you (#3769).

  • Reviews that land in the pull request — findings arrive as inline comments with a score out of 5, and an approval only when the review is genuinely clean.
  • Progress you can watch — reactions and a status comment on the pull request show a review being prepared, running and published.
  • It argues back, properly — reply to a finding and Copera rechecks it against the code, lowers a severity or withdraws the finding with its reasoning, and closes the thread. Findings answered by a maintainer and files that changed since the last round are rechecked automatically.
  • It learns your house rules — recurring guidance from maintainer discussions is saved as reusable rules and applied to later reviews.
  • Settings per workspace or per repository — repository settings inherit the workspace defaults, and resetting a field hands it back to the workspace.
  • Billed once per round — one flat round from your workspace AI allowance after a review is published, labelled Code review in your usage.

Compute Channels — SSH Keys, Paste Shortcuts and a Details Panel​

More ways to actually work on a machine you bought in your workspace (#3792, #3806).

  • SSH key access — import or generate a key pair, download the private key, and connect from your own terminal with the SSH command shown in the UI. Keys can be removed at any time, and they stay visible and removable during a reinstall or restore.
  • Paste with the shortcut you already use — Ctrl/Cmd+V pastes your clipboard into the console, with the paste dialog kept as a fallback when the browser blocks access or the content is too big. Copying a selection out of a remote screen now works on demand, and server sessions use the terminal's own copy shortcut.
  • A collapsible details panel — machine details open beside the console without unmounting it, so nothing reconnects when you peek at the specs.

Chat & Calls — Sender Identity and a QR Login That Works​

  • Sender identity on notifications — notifications now carry who the message is from (#3823).
  • QR login fixed — signing in by scanning a code works again (#3823).

Bug Fixes​

  • Calls that would not go away — stale call invitations now expire, missed calls are recovered, a locally declined call is cancelled instead of ringing on, and a recovery for an old invitation never disrupts a newer call (#3793, #3804).
  • Notifications and Recents out of sync — read state, call events and the Recents list are now kept in step, with read ordering bounded and recent-chat targets corrected (#3804).
  • Messages missed after being offline — catching up after a disconnect could skip messages that shared a timestamp with the last one you had. Catch-up now replays that moment inclusively, so nothing falls through the gap (#3819).
  • Calendar split events losing their timing and reminders — recurrence and reminder behaviour is preserved when an event series is split or moved, imported override durations are respected, nested alarms no longer bleed into event timing, reminders are recovered, and invitation details and links survive (#3787).
  • Fresh meeting comments — a brand-new meeting's comment thread now keeps its authorisation, read state and the invitation shown on an empty timeline (#3778).
  • WhatsApp contact names being corrupted on outgoing messages (#3829).
  • Shared inbox creation left half-finished — provisioning a new inbox now ends in a consistent state every time (#3829).
  • Inbox triage and labels — triage and label processing are reliable again: label order is stable, synchronisation status is visible, empty page ranges are handled, repeated reads are bounded, and a backfill that truly failed is reported as failed instead of silently retried forever (#3827, #3828).
  • Inbox rendering and tag controls — one consistent way of rendering a thread and its tags, with action state kept while metadata catches up, quote folding restored, and draft metadata left out of the view (#3827, #3828).
  • Board permissions — validation is fixed, templates carry their own independent permission snapshot, and custom roles can be imported along with a board (#3810).

Improvements​

  • No more "an AI wrote this" on your outgoing messages — Copera never adds an automatic AI disclosure to messages an agent sends outside your workspace: not on emails, calendar invites, WhatsApp, Instagram, the web widget or the inbox support desk. The only disclosure that goes out is a line an admin chose to write, which is empty by default and never pre-filled (#3833).
  • AI requests recover instead of failing — when a model provider is overloaded, rate-limits a request, or rejects it for a reason another provider would accept, Copera now tries the next option in line rather than giving up on your turn. Failed attempts record a scrubbed provider message so a repeat problem can be diagnosed, and tool definitions are repaired before they reach the provider so one malformed tool can no longer break a whole conversation (#3831, #3832).
  • A turn waiting on your consent is served, not failed (#3831).
  • Smart ToDos has been retired — the Smart ToDos page and its entry points are gone (#3834). To-dos created by onboarding, agents, the command palette and search are unaffected and continue to work as before.
  • Agent emails read properly — a readable plain-text part, a real HTML body, and the opt-out footer exactly once (#3779).
  • Board writes that say what they did — setting a status must name one of the column's own options, a blank clears an option cell, and a row update reports what each cell now holds (#3779).
  • To-dos are created whole, with their description, instead of arriving as a bare title (#3779).
  • Calendar tools follow one guest rule, and a near-miss tool call is answered with the real argument names instead of a bare error (#3779).
  • Agent settings fit the screen — the Powers tab no longer needs a sideways scroll, a setup turn ends on the card it is waiting for, and the closing message says what it is asking you (#3822).
  • An agent asks for what it needs, once — requesting resources lets you pick several boards, tables, docs and channels in one go, and powers are narrowed after your reply with a readable notice of what was kept and what was turned off (#3822).