Skip to content

Break screen, performance and playback fixes, and an up-to-date README - #14

Merged
alexandre-wayss merged 6 commits into
mainfrom
fix/analysis-bugs
Oct 1, 2026
Merged

alexandre-wayss merged 6 commits into
mainfrom
fix/analysis-bugs

Conversation

@alexandre-wayss

@alexandre-wayss alexandre-wayss commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Break screen

When a focus session ends, a full-screen screen shows the break countdown and asks what you'll do in the break: drink water, stretch, rest your eyes, play a game, or anything typed on the spot.

  • Activities are editable on the Pomodoro page (new Break screen card): name, hint, icon, which breaks they suit, an optional break length, and an app or link to open when picked.
  • The activity done least recently is suggested, so breaks vary; tiles show how many times you did each one today.
  • Optional: show it when a break ends too ("5 more minutes" / "Start focus"), keep it up for the whole break, dim other displays, or turn it off in favour of the notification. Both screens can be previewed without touching the timer.
  • Return starts the break, Esc closes (the timer keeps running).

Follow-up fixes

  • Break screen clicks: it was a non-activating panel, so while another app stayed in front its first clicks (and Return and Escape) were often lost. It now brings Brisa to the front, acts on the first click, and gives focus back to the previous app when it closes. Only its clock redraws every second, and tiles no longer wait to tell a single click from a double-click. Checked on the installed app.
  • ⌘Q now quits Brisa, like any Mac app; closing the window keeps it running in the menu bar.

Fixes from the app review

  • Imported audio kept in memory is capped at 20 minutes (a long MP3 could decode to several GB), and every sound's loop is prepared off the main thread.
  • The per-second countdowns moved out of AppModel, so a running timer only redraws the views that show it; Pomodoro state is no longer written to UserDefaults every second.
  • Sleep timer counts down only while playing, fades over the last minute without being undone by the volume slider, and offers the same options everywhere.
  • Now Playing names imported sounds; the mini player lists Tones; deleting a mix asks first; a Portuguese label in the English UI is fixed.
  • Wake-up routines explain that the Mac must be awake.
  • The menu bar icon reopens a closed main window (it didn't open for shared mixes or the break screen's settings link when the window was closed).

Docs

  • README rewritten: Pomodoro, break screen, desktop widgets, themes, permissions and privacy, plus a break screen preview.
  • ARCHITECTURE.md now lists every source file. Info.plist reports 1.2.0 for local builds.

Testing

  • ./Scripts/test.sh: 65 passed (8 new tests for break activities).
  • ./Scripts/build.sh and an xcodebuild build of Brisa.xcodeproj both succeed.
  • The break screen and the activity editor were rendered offscreen to check the layout; the live window over other apps (typing, Esc, several displays) still needs a manual check via Pomodoro → Break screen → Preview.

- Cap imported audio kept in memory at 20 minutes and prepare every sound's
  buffer off the main thread, so large files and noise synthesis no longer
  exhaust memory or stall the interface
- Move the per-second countdowns out of AppModel so a running timer only
  redraws the views that show it, and stop writing Pomodoro state to
  UserDefaults on every tick
- Sleep timer: count down only while playing, fade over the last minute
  without being undone by the volume slider, same options everywhere
- Now Playing names imported sounds; mini player lists Tones
- Confirm before deleting a mix; fix a Portuguese label in the English UI
- Explain that wake-up routines need the Mac awake
When a focus session ends, a full-screen screen shows the break countdown
and asks what you'll do in the break. Activities are editable: name, hint,
icon, which breaks they suit, an optional break length, and an app or
link to open. The least recently done one is suggested so breaks vary.

It can also appear when a break ends (with "5 more minutes"), stay up
during the break, dim other displays, or be turned off in favour of the
notification. Settings live in a new Break screen card on the Pomodoro
page, with previews. The menu bar icon now reopens a closed main window.
# Conflicts:
#	Brisa/Sources/AppModel.swift
#	Brisa/Sources/ContentView.swift
#	Brisa/Tests/TestRunner.swift
The README now covers the Pomodoro timer, the break screen, both desktop
widgets, themes, permissions and privacy, with a break screen preview.
ARCHITECTURE.md lists every source file. Local builds report version
1.2.0, matching the next release.
The break screen was a non-activating panel, so while another app stayed
in front its first clicks (and Return and Escape) were often lost. It now
brings Brisa to the front, acts on the first click, and hands focus back
to the previous app when it closes. Only its clock redraws every second,
and tiles no longer wait to tell a single click from a double-click.

⌘Q now quits, like any Mac app; closing the window keeps Brisa running in
the menu bar.
@alexandre-wayss
alexandre-wayss merged commit fa9540a into main Oct 1, 2026
1 check passed
@alexandre-wayss
alexandre-wayss deleted the fix/analysis-bugs branch October 1, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant