Repository navigation
Releases
Releases · nicojan/Chorus
Chorus 1.5.36
Changed
- Chorus now needs macOS 15 (Sequoia) or later. GitHub has retired the macOS 14 machines this project tests on, and Apple no longer fixes security problems in 14, so testing and support for it end here. On macOS 14, Chorus stays on 1.5.35. That version keeps working, and Chorus will not offer you this update. To install Chorus on a Mac with macOS 14, download 1.5.35.
Fixed
- Chorus no longer uses a third of a processor core while a red count waits for you to read it. The slow pulse on that count ran as a SwiftUI animation, which made Chorus redraw the whole window and measure it again on every frame, for as long as the count stayed red. Left overnight with unread messages, Chorus spent hours of processor time on it. The pulse now runs in Core Animation, which macOS draws on its own. It looks the same, and Chorus stays under 2% of a core with or without a red count.
Chorus 1.5.35
Fixed
- WhatsApp no longer signs you out while Chorus is open. When you moved to another service, Chorus took WhatsApp's page out of its window, and macOS froze the page; each time Chorus looked at the page for new messages, macOS woke it for a moment and froze it again. One freeze landed in the middle of a save. WhatsApp took that as broken storage, deleted it and asked you to relink. Covering Chorus with other windows, or minimizing it, did the same after a few minutes. Chat services and services set to Keep Loaded now stay awake in the background in all of these cases, at the cost of a little more battery than a frozen page.
Removed
- The memory readings Chorus wrote to the system log every five minutes, added in 1.5.29. macOS kept them for only a few hours. They were meant to cover days.
Chorus 1.5.34
Fixed
- Google Docs and Sheets no longer look blurry. Chorus told every page its window was 0 pixels wide, because Safari reports that size to a page and Chorus did not. Docs and Sheets compare that number with the size of the page to work out the browser zoom, and with 0 they drew the document at a quarter or half of the pixels your screen needs. The toolbar and menus stayed sharp because they are drawn another way. Pages now get their own size in place of 0. Thanks to naveenm0077 for the report (#43).
Chorus 1.5.33
Added
- Chorus now keeps a second file next to the quit record:
~/Library/Application Support/Chorus/page-storage-log.jsonl. A page gets a line there when it upgrades or deletes one of its databases, when its storage fails, or when it reports an error about storage. WhatsApp asked to be relinked again on 1.5.32 after a clean quit, and nothing on the Mac showed why. This file keeps what WhatsApp itself saw. It holds database names and the errors pages report, and keeps the last 3,000 lines.
Chorus 1.5.32
Nothing should look or work differently in this release.
- The part of Chorus that runs web pages (sign-ins, pop-ups, blocking, dark mode, downloads, notifications from pages) now sits in a Swift package of its own, ChorusEngine, in this repository. The web browser I'm building next uses the same code, so a fix made in Chorus reaches it too.
- Chorus now writes a line to a file each time it opens or quits:
~/Library/Application Support/Chorus/quit-log.jsonl. WhatsApp can still ask you to relink it with "A database error occurred", and this file shows how Chorus quit before that happened. It holds times, version numbers and counts, nothing from your pages, and keeps the last 500 lines.
Chorus 1.5.31
Added
- Choose where the services shown in every space sit: above or below the spaces, or at either end of the services bar. Pick a spot in Settings under Appearance, right-click the edge of their box, or drag the box by its edge to one of the spots that light up. In a layout with one rail or bar, the box goes at either end of it. The ⌘1–9 shortcuts and the arrow keys follow the order on screen.
Changed
- In the Rail on the left and Bar along the top layouts, the services shown in every space now sit in a box of their own instead of above a line.
Fixed
- WhatsApp no longer asks you to relink it with "A database error occurred" after Chorus quits or updates. Chorus now waits up to three seconds for pages to finish saving before it quits.
Chorus 1.5.30
Added
- Service groups. Drag a service onto another and pause, or right-click it and choose Group with, and the two sit together in a box. The box shows in every layout. You can name a group, rename it and move it to another space as one, and dividers still work around it.
Changed
- In the narrow space strip, the spaces sit as far apart as the service tabs in the bar, and the services shown in every space sit in a box of their own above them.
Fixed
- Press Escape while you drag a service, or let go of it away from the rail, and it goes back where it was.
- Chorus now quits while a sheet such as Edit Service or What's New is open. Before, ⌘Q, Quit in the Dock and the relaunch after an update did nothing until you closed the sheet.
Chorus 1.5.29
Added
- A service can now show in every space. Right-click it and choose Show in Every Space, or drag it onto the Global group at the top of the rail. It keeps one sign-in and one badge wherever you are. Move to Space puts it back in a space.
- Dividers. Right-click a service or a space and choose Add Divider Below to put a line under it, or right-click a + button to add one at the end. Drag a divider to move it, and drag it off the rail and let go to remove it.
- The services in a space now share one sign-in, and so do the services shown in every space, so signing in to Google once signs in every Google app beside it. Services you already have keep their own sign-ins, so this update signs nobody out; Edit Service can move one onto its space's. When you add a service, a second page asks where it shows and whether it shares the sign-in there or keeps its own, for a second account, and it warns when the same site already uses that sign-in. Asked for in #39.
- Dragging a service into another space, or into every space, now asks first and says its cookies come with it. In the layout with spaces on the left, a service can be dragged from the bar onto a space.
- Every five minutes, Chorus writes the memory each service's page uses to the system log, under the service's name in the catalog, never your own label. Chorus behaves as before. The log will show whether a page left in the background keeps growing, and later releases may use that to reload such a page. Marcio Vinicius Spiridigliozzi da Silva Leite wrote it.
Security
- A page from another site, open inside a call service, could use your camera and microphone without asking if you had set that service to Allow. A crafted link shaped like a sign-in could put such a page there. Chorus now always asks first, and the question names the real site.
- Settings opened while Chorus was locked, so anyone at your Mac could switch the lock off there, and sheets left open stayed usable above the lock screen. While Chorus is locked, Settings now shows only an Unlock button, open sheets show the lock screen too, and sign-in and link windows hide until you unlock.
- A service you are not looking at can no longer open a window on its own. Links you click work as before.
- Each notification now shows which service sent it, so a page can't post one that looks like it came from another service. A page can post at most five in ten seconds.
- A setup file can come from anyone. Importing one now drops CSS that could send what a page shows to another site, refuses a file that adds Chorus itself as a Mac app, and names any Mac apps it adds.
- The window you open from a link inside a service hands email and phone links to your Mac only when you click them, so a page can't start a call prompt over and over.
Fixed
- Deleting a space said its services would stay, but the ones in no other space were deleted with it. The question now names them.
- Remove from this space only shows for a service that is in another space too. In its only space it deleted the service and its sign-in without asking, as Delete does after asking.
- Edit Service scrolls, so Save stays in view.
- A camera or microphone question that went away without an answer, because Chorus locked or the page reloaded, was remembered as Don't Allow, and the service never asked again.
- Chorus forgot the service you had open if you quit with ⌘Q.
- Opening a link to a service that sits in two spaces could move you to the other space.
- Reload on the Unable to connect page now tries the page that failed. Before, it reloaded the error, and a service put to sleep there came back blank.
- Counts written as (99+) or (1,234) read as zero.
- A service whose site moved to a new address, such as threads.net to threads.com, stopped updating its count while it had none.
- Google Chat, Calendar and Drive now show their own icons, and icons from a site's favicon.ico use its largest size.
- In menu-bar-only mode, Show Chorus brings the window back after you close it.
- If an automatic recovery replaces your data, it now always keeps a copy of what it replaced first, and stops if it can't.
- Notifications that arrive while Chorus is in front stay in Notification Center.
- Two downloads with the same name no longer clash.
- In the narrow space strip, the spaces now sit as far apart as the service tabs beside them.
Chorus 1.5.28
Changed
- A count badge with no name beside it, on the icon-only rail, a space's tile or the space switcher, is now grey when you already know about the messages. It turns red only when something new has arrived since you last looked, as a count next to a name does. Before, these badges were always red.
Fixed
- A service whose page failed to load kept a grey loading ring on its icon and never showed the orange dot that marks a failure. It now shows the dot, and the ring goes away.
Chorus 1.5.27
Added
- When a service opens one of its own pages in a new window, such as a design in Canva, the page now opens as a tab at the top of the service's card. The service's own page stays in the first tab. Click a tab to switch, use ⌘⇧[ and ⌘⇧] to move between them, and press ⌘W or click the × to close one. Sign-in windows still open as windows. Tabs close when the service hibernates, and Chorus won't hibernate a service on its own while it has a tab open. Chorus doesn't keep tabs after you quit.