Replay 0.9.8
Download
Replay-0.9.8.zip — unzip it and drag Replay.app to Applications.
macOS will refuse to open it the first time. Here is why, and what to do.
Replay has no Apple Developer ID yet, so macOS marks it as unverified and shows
"Apple could not verify Replay is free of malware" — offering only Move to
Trash or Cancel. That message is about a missing certificate, not about
anything found in the app. Every unsigned app gets it.
To open it:
- Try to open Replay once and dismiss the warning.
- Go to System Settings ▸ Privacy & Security, scroll down, click Open Anyway.
- Confirm. It opens normally from then on.
Or one line in a terminal, which does the same thing:
xattr -dr com.apple.quarantine /Applications/Replay.appRight-click ▸ Open does not work. That bypass existed for years and Apple
removed it in macOS 15. It is still the advice in most projects' READMEs.
Or skip all of that
Homebrew compiles it on your machine, so it is never downloaded, never quarantined,
and opens with no warning at all:
brew tap nurkamol/tap
brew install nurkamol/tap/replay-app # the application
brew install nurkamol/tap/replay # the command-line readerA signed, notarised disk image — no warnings, nothing to click through — appears
here the day there is a certificate. The workflow that builds it is already written.
Added
-
Reinstall, in Settings ▸ About. Downloads the published build of the version you are
already on and replaces this copy.- A version number stops being the whole truth when a release is rebuilt under it. Two
builds then share a number, "check for updates" correctly answers "you are up to date", and
a copy of the earlier one has no way forward. That happened to this very release, twice. - Also the repair for a bundle that is merely damaged — right version, wrong contents.
- Never automatic and never suggested. The same download, checksum and swap as an ordinary
update, with only the "is it newer?" test skipped. Your record is untouched. - It says so afterwards. A reinstall comes back at the version it left, so the note that
normally follows an update — decided by comparing versions — had nothing to compare and
said nothing at all. Pressing a button and getting silence is the one outcome that leaves
you no better off, so the banner now reads Reinstalled Replay 0.9.8.
- A version number stops being the whole truth when a release is rebuilt under it. Two
-
The permissions Replay does not use now have rows, in Settings ▸ Privacy and on the welcome
screen. Each says where it stands and what it is for; Reset takes back anything granted
earlier, which was previously impossible from inside the app.- Accessibility's button asks macOS to prompt, which puts Replay in the list — so all
that is left is the switch. The two buttons here before opened System Settings and stopped,
leaving somebody to press+and find Replay in/Applicationsby hand. - App Management has no button of that kind, because macOS offers none. No app can read
or request it, so the row says so rather than showing a tick that would be a guess. - Every row offers a way in and, where there is something to undo, a way out — so a
permission can be granted, taken back and granted again without leaving Settings. App
Management always offers Reset, precisely because macOS will not say whether it is on:
hiding the button until a permission "looks" granted would have made the one thing nobody
can check also the one thing nobody could undo. - Nothing here is required and the rows never imply otherwise: no red, no warnings, no
"action needed". Every row off is the state Replay is built for. - No password is ever asked for. macOS collects authorisation in its own window; an app that
put up a password field to approve a toggle would be collecting a credential it has no
business seeing, and it would not work anyway.
- Accessibility's button asks macOS to prompt, which puts Replay in the list — so all
-
Replay runs on macOS 14 Sonoma. It required macOS 26 before, which is a version most
Macs are not on. Exactly two calls in the interface needed something newer — the system's
glass material (26) and a colour blend (15) — found by building the app against each floor
in turn rather than by reading the code. Both are guarded, so three OS generations gained
the app and nothing about it changed on a current Mac.- Below macOS 26 the Surfaces setting offers Solid and Frosted, and not Glass. A
setting that silently did nothing would be worse than one that is not there. - A
Glasspreference carried over from a newer Mac — in a backup, or across an account —
draws as Frosted rather than as nothing. - macOS 13 is not reachable the same way: the models are built on Observation, which begins
at 14. That is a rewrite rather than a guard, and it is not planned.
- Below macOS 26 the Surfaces setting offers Solid and Frosted, and not Glass. A
-
A report on a schedule. Settings ▸ Data writes a report of the period that has just
finished — yesterday, or the week just gone — into a folder you choose, as Markdown or
HTML, keeping the eight most recent and removing only its own. The sibling of the scheduled
backup and deliberately the same shape, with one difference worth stating: a backup is
insurance you hope never to open, and this is the one file in the app meant to be read.- Past tense on purpose. A report of a day at two in the afternoon is wrong by six.
- A period with nothing in it writes no file. A folder that fills with "nothing happened"
is a folder somebody stops opening. - Not PDF: that is one page with a pointer to HTML, which is right for a document somebody
asked for and wrong for a file that arrives on its own and might cover a busy week.
Changed
- The parts of the app you read most are now translated. A session is called "Late night
in Terminal" and a gap "8m not recorded" — sentences the app assembles at runtime, which had
no whole string for a translator to be given and so stayed English in every language. Each
is now a format string whose pieces a translation can reorder, which matters: in Uzbek the
application's name comes first and the time of day after it. Session titles, the gaps
between them, the day's headline figures, the sidebar sections, the resume card, the
reflection prompt and the relative day and time labels all follow the chosen language.
Uzbek is complete at 519 strings.- Still English everywhere: Story, the autobiography, Memories, the morning briefing,
Collections and Projects. Those are the same kind of work and are listed as undone in
docs/TRANSLATING.mdrather than left to be discovered.
- Still English everywhere: Story, the autobiography, Memories, the morning briefing,
Fixed
-
The schedules section reported one schedule as if it were both. Its footer was the
backup's, so "Nothing has been written yet" sat directly under a line saying a report had
just been written. -
A VoiceOver label was built from a malformed format string. One argument was handed to
a two-placeholder format on the Chapters screen, mixing positional and non-positional
specifiers — both undefined behaviour, and the label is read aloud.