Release notes

BUGFIX

New sessions auto-list uncommitted changes, and time-to-empty estimates are dead-on

Starting a new session now automatically lists what you forgot to commit, and your quota estimates are much sharper. First, when you start a fresh conversation, the Progress Concierge's "where we left off" summary will now explicitly list any files you modified in the previous session but forgot to commit, saving you the headache of remembering them yourself. Second, the algorithm predicting "how long until you run out of quota" is completely overhauled. It used to blindly draw a straight line between your first and last usage points; now it uses a weighted rolling average, meaning if you suddenly start throwing massive files at the AI, it immediately reacts and shortens the estimate, while gracefully ignoring single-point hiccups. Finally, launching the packed App via double-click no longer instantly crashes when opening panels or requesting notifications, and temporarily missing quota data will no longer falsely trigger a "Quota Empty" ghost alarm. Finally, if a translated string's placeholder doesn't match the caller's arguments, it safely falls back to English and then to the raw key, preventing the entire UI from crashing. It's like a brilliant assistant who not only hands you the unsigned contracts from your last meeting before you head out, but also predicts your road trip's remaining mileage based on how hard you've been slamming the gas pedal today, rather than just doing a simple math problem from when you bought the car—and they stop screaming that the tank is empty just because the fuel gauge flickered, and even if they grab the wrong translated script, they just calmly read the original text instead of freezing up completely.

FEATURE

The burn-rate warning got shorter so it stops overflowing, and open-source paperwork is now in order

Your warning screens are now cleaner without overflowing, and all open-source compliance paperwork is fully sorted. The red warning that pops up when your quota is about to run out used to tack on a "(N× faster/slower than average pace)" suffix, and the extra text often pushed past the panel's edge. That suffix is gone now — the warning just shows time-to-empty and the reset countdown, so it fits cleanly. Separately, the project tidied up its open-source paperwork: a bilingual SECURITY.md now routes vulnerability reports to a private email instead of public Issues (so a bug isn't exposed before it's fixed), every Python file got an AGPL-3.0-only license header, and the maintainer's GitHub handle was added to the LICENSE copyright line. It's like re-laying-out a bulletin board notice that had been spilling past its frame, and while at it, finally pinning up the fire-exit map and safety inspection certificate that were supposed to be there all along.

Original changelog

Original changelogNew sessions auto-list uncommitted changes, and time-to-empty estimates are dead-on
**Progress Concierge now surfaces last session's uncommitted changes**: the "where you left off" handoff on a new conversation also lists the file changes the previous session hadn't committed yet, so you don't have to recall them.
**EMA-smoothed burn-rate forecast**: the "time until empty" estimate now uses an exponential moving average over recent interval rates instead of a single first-to-last slope, making it more responsive to sudden acceleration and steadier against single-point noise.
**Packaged .app no longer crashes on a non-terminal launch**: double-clicking the .app or launching it in the background could crash the moment it opened the panel or requested notification permission (`Argument 3 is a block, but no signature available`), because py2app shipped the bare WebKit/UserNotifications modules without their full wrapper metadata. The required block signatures are now registered unconditionally and the wrappers are bundled.
**Missing quota data no longer triggers a false "quota empty" alert**: when a quota window temporarily has no reading (e.g. an expired Codex 5-hour window), it was treated as depleted — firing a notification with a broken "back after --" body. Depletion now requires an actual 100%.
**A malformed locale string can no longer crash the UI**: if a translated string's placeholder doesn't match the call site's arguments, the lookup now falls back to English, then to the raw key, instead of raising.
Original changelogThe burn-rate warning got shorter so it stops overflowing, and open-source paperwork is now in order
**Shorter burn-rate warning**: removed the "(N× faster than / under average pace)" suffix that pushed the red warning line past the panel width. The warning now shows only time-to-empty and the reset countdown.
**Open-source prep: security policy and license headers**: added a bilingual `SECURITY.md` (vulnerabilities go to a private email, not public Issues), an AGPL-3.0-only header on every Python file, and the maintainer's GitHub handle on the `LICENSE` copyright line.