Release Notes

Version 1.4.1

Fixed

  • Session no longer lost on wake from sleep (token refresh conflict between main/renderer processes)
  • Invoice line items now group all slips per task, rounding hours once — fixes inflated unbilled totals and duplicate line items
  • Invoice line items now show the task name instead of "Task work"
  • Auto-starting a timer from a kanban card now uses the task title for the slip name
  • Done column kanban cards no longer show the due date / overdue badge
  • Favicon auto-fetch no longer crashes on the web app
  • Web app login now correctly detects the platform (was erroneously running Electron-only code on web)

Changed

  • Client empty state (no projects yet) shows a curved arrow pointing to the New Project button
  • Favicon images in client list have slightly rounded corners
  • Login screen app icon is now white with a purple/pink glow

Version 1.4.0

Bug Fixes

  • Project icon updated from folder emoji to SVG folder icon throughout the app
  • Timer no longer resets to zero after pausing and resuming from the menu bar
  • Timer correctly accumulates across multiple pause/resume cycles
  • Timer indicator play button now resumes a paused timer
  • Updated favicon to magenta theme color
  • Updated menu bar timer pill to magenta theme color

Improvements

  • Fixed Project Profitability Report — Lists all flat-fee projects with logged hours, effective hourly rate, and color-coded delta vs. your target rate
  • Profitability card strip on project detail (Details tab) for flat-fee projects: shows fixed fee, hours logged, effective rate, and target comparison

Version 1.3.0

Bug Fixes

  • Fixed blank screen after waking from sleep — the app now silently refreshes your session when the Mac wakes up. If the session has fully expired, it shows the login screen cleanly instead of a blank screen
  • Fixed auto-timer defaulting to off — the automatic timer-on-drag feature is now enabled by default for new users; existing preferences are preserved
  • Fixed deep link handling on cold launch — the aeto:// protocol is now registered earlier, so opening a magic link when the app isn't running works reliably

Design

  • New magenta accent color throughout the app, replacing the previous purple
  • Calendar day columns are now equal width — long task names no longer push individual columns wider
  • Logged time on Kanban cards is now brighter and easier to read

Version 1.2.6–1.2.8

Security

  • Remove .env bundling from app
  • Hardcode Supabase/PostHog keys in main process

Auto-Update

  • Add ZIP target for macOS electron-updater delivery
  • Fix quitAndInstall not relaunching after update
  • Cap PostHog shutdown at 2s so it doesn't block relaunch

Analytics

  • Add PostHog Node SDK in main process
  • Add PostHog JS snippet in renderer
  • Capture events: timer, client, project, invoice, auth, account

Bug Fixes

  • Fix wake-from-sleep blank screen
  • Fix window.resolveFaviconForClient not a function
  • Fix toggle slider thumb overflow on profile page
  • Fix tray menu task switch resetting timer to 0
  • Fix PostHog main process crash on launch
  • Revert "Unbilled This Month" to done-only tasks

Version 1.2.2–1.2.5

1.2.5 — Wake from sleep & staged releases

  • Added 2-second delay on system resume before re-fetching data (gives network time to reconnect)
  • Removed sample data fallback on load error — keeps existing data displayed instead of replacing with placeholder content
  • Re-renders current view (dashboard, workload, client detail) after data reload, not just kanban
  • Staged release pipeline: npm run release:staging creates a draft, npm run release:promote makes it live

1.2.4 — Login & system wake fix

  • Fixed isElectron() returning false in production: VITE_APP_PLATFORM=electron was accidentally removed from .env during cleanup, causing login button to do nothing and system-resume handler to not register

1.2.3 — Auto-update format fix

  • Added ZIP as a build target alongside DMG — electron-updater on macOS requires a ZIP file for updates, not a DMG

Auto-update & security fixes

  • Fixed auto-update hash mismatch: removed manual codesign step that was invalidating latest-mac.yml after electron-builder generated it
  • Removed GH_TOKEN from .env; stored in ~/.aeto-secrets (never bundled in the app)
  • Removed .env from the distributed app bundle entirely
  • Hardcoded Supabase credentials in main process instead of reading from bundled .env

Profile Screen

  • Added in-app content panel (420×420) on the right side, loading from aeto.app/in-app
  • Panel is right-aligned, borderless, sticky while the profile scrolls
  • On mobile, panel stacks below the profile form
  • Profile form fields capped at 520px so they don't stretch too wide

Your work is done.
Make sure you're paid for all of it.

Download Aeto free. Your first 30 days are on us. No card, no commitment — just the end of the unbilled hour.