← Back to TopTrack

Changelog

Every version so far. Most of these were development builds that never reached anyone — they are listed because leaving them out would make the history look tidier than it was.

0.9.0

1 November 2026Released

A native macOS widget keeps today, this week and pending Jira time visible, and TopTrack can now open automatically when you sign in.

Added

  • A native macOS widget for the desktop and Notification Center shows the current task, its live elapsed time, and the totals for today and this week. The widget receives only a small display snapshot through the app's shared container; Jira credentials and tracking history are never exposed to the extension. The widget requires macOS 14 or later, and each instance can optionally show estimated earnings through its native Edit Widget settings and choose between the configured original and converted currencies. The medium widget also shows the distinct Jira issues and rounded time from today that are still ready to review and post.
  • Settings → General can register TopTrack as a macOS login item, so the menu-bar monitor, reminders and widget are ready after sign-in. macOS 13 or later manages this setting in System Settings; TopTrack remains compatible with macOS 12 without the switch.

Fixed

  • The widget now refreshes when TopTracker starts, switches or stops tracking instead of waiting for WidgetKit's next scheduled update.
  • Open at login now registers on the first click. The checkbox previously entered its mixed state before registration and could ask macOS to remove a login item that did not exist, resulting in an “Operation not permitted” message.

0.8.2

12 October 2026Released

A running session now stays aligned with the activity TopTracker is actually timing, and development builds no longer block newer public updates.

Fixed

  • A running session now takes its start time from the active TopTracker database row identified by the timer heartbeat. TopTracker can replace an activity without the log sequence TopTrack expected, which temporarily made the menu timer and current week total too large until tracking stopped.
  • Development builds now use a dotted build number between the current and next public builds. A locally installed test build could previously have a larger integer than a newer release, making Check for Updates describe that release as newest while refusing to install it.

0.8.1

12 October 2026Released

Worklogs stays current while open, date presentation is clearer, and summary totals no longer count overlapping TopTracker activity twice.

Fixed

  • The Today, week and month totals no longer count overlapping TopTracker activity rows twice. A recovered or duplicated row can cover time already represented by another session; the summary now counts the union of those intervals instead of inflating the total, sometimes until the app was restarted.
  • Worklogs keeps up while it stays open. Sessions TopTracker starts or finishes appear in the day view without closing the window, keeping what you ticked and any amount typed into To Post, and a window left open on today moves to the new day at midnight. Before, it showed what it was opened with until it was closed and opened again.
  • On a past day the date in Worklogs shows in full beside Today, instead of "20", and an issue's sessions read "4 sessions" rather than "4 sessions today". With "Show scroll bars: Always" in System Settings, the table's scroll bars appear only when there is something to scroll.

0.8.0

7 October 2026Released

Settings is rebuilt as five toolbar panes with rules you can edit in a table, and the switch reminder appears about two seconds after a switch with a clear next step.

Changed

  • The reminder offers the next step instead of a dead end. When Jira may already hold the time as a hand-logged worklog, it says so once and its main button is Open Worklogs…, instead of two warnings over a disabled Log now. A post Jira refuses stays in the reminder with the reason and Open Worklogs…, instead of a modal alert, and a successful one confirms itself for two seconds ("Logged 1h 3m to DEMO-42").
  • The reminder's facts read plainly: Already in Jira for what the issue holds today, and Sessions for how many the worklog takes in. The end-of-day reminder leads with the time ("2h 12m not in Jira yet") and lists the worklogs and issues under it. A Jira title too long for the reminder shows in full on hover.
  • Settings is a toolbar of five panes, General, Jira, Reminders, Summary and Advanced, in place of seven tabs, and each pane is a form with its labels on the left and a short note under each choice. Spacing follows what belongs together: a note sits tight under the option it explains, the next option stands apart from it, and groups further still. The Jira pane names the site you are connected to. The sign-in service, which only teams hosting their own need, and diagnostics moved to Advanced. About TopTrack is the standard About window, and updates moved to General.
  • Description rules are a table in Settings → Jira, under the descriptions as they were typed rather than in lowercase; older rules get their spelling back from a matching tracked session. Double-click a rule to change its issue, turn its daily combining on or off after it was made (the column appears only while combining every issue is off), and delete it after a confirmation. The table shows whole rows, up to eight before it scrolls, and an empty one says where rules are made.
  • The hourly rate and its currency save as you commit them, like every other setting, instead of waiting for a Save rate button. Settings no longer posts a "Saved…" line after every change.
  • The custom sign-in address appears only while a custom server is chosen, and Apply only while there is a change to apply, right under the address. Settings → Reminders says reminders need Jira only while Jira is not connected. Updates read "Last checked today", not "Today".
  • The end-of-day reminder asks for one time, when it should come, instead of working hours whose start was never used.

Fixed

  • The reminder appears about two seconds after a switch in TopTracker, instead of three to five and sometimes over twenty. The two-second pause that keeps quick switches from prompting now counts from the switch, not from TopTracker's last write; Jira is checked during it; and a reminder that cannot show yet, because Jira is busy or another reminder is open, is tried again each second for a minute instead of being dropped until TopTracker next writes.
  • The reminder no longer jumps left and down a second after it opens. Rendering it again for the menu-bar tick moved its content to the corner of the popover.
  • Ask to log work and Fetch issue titles no longer flip back by themselves while Jira is busy; neither needs to wait for it. Short sessions and combining, which do, say why when they refuse.
  • Update Rate is off while conversion is off, and Settings opens with the sign-in service in use rather than a choice left unapplied when it was last closed. A sign-in still running in the browser stays on screen instead of reverting to "Not connected".
  • Settings no longer mentions a Refresh button, a Skip button or the "Jira review" window, none of which exist now. With combining off, each session posts on its own, as Settings now says, not each description.
  • The reminder popover lines up on two edges. The facts are a two-column grid whose values end where Log now ends, instead of floating mid-panel; their keys start where the title starts; and Later and Log now share one width.

0.7.2

6 October 2026Released

Activities that share a Jira issue post as separate worklogs with their own comments, and Worklogs opens from the Dock and checks new sessions by itself.

Changed

  • Activities that share a Jira issue post as separate worklogs. Sessions a description rule assigns to an issue ("Common issues", "Onboarding") combine per activity rather than all together: four 10-minute "Common issues" sessions and two 30-minute "Onboarding" sessions on one issue post as 40m "Common issues" and 1h "Onboarding". The activity's description is the worklog comment even when the Jira title is known, since it is what tells the two apart, and each session under the issue shows its activity in the Title column.

Fixed

  • Sessions that arrive or finish while Worklogs is open are checked against Jira by themselves instead of staying at "Not checked yet".
  • Clicking TopTrack in the Dock with no window open opens Worklogs, as in any Mac app. It did nothing.
  • The totals and the status line beside Post share the button's baseline. Their text sat a little higher than the button's title.

0.7.1

6 October 2026Released

Worklogs checks Jira by itself instead of offering a Compare button, says how fresh the last check is, and opens with the table focused.

Changed

  • There is no Compare button. Worklogs checks Jira by itself when it opens, when the day changes, after an edit, and when you come back to it more than a minute after the last check; Post checks again first if the last check is over five minutes old. View → Check Jira Again (Command-R) checks right now, and Try Again appears beside Post after a failure. When nothing else needs saying, the line beside Post reads "Checked 2 minutes ago · ⌘R to check again". What you ticked survives every check. The app now says "check Jira" throughout instead of "compare", and the Settings option reads "Check Jira automatically".

Fixed

  • Worklogs opens with the table focused. It opened with the date's year selected, one keystroke away from changing the day.

0.7.0

6 October 2026Released

A day's sessions on one Jira issue post as a single worklog while each keeps its own row, Worklogs gives its space to the worklogs, and comparing reads only the day under review from Jira.

Added

  • An end-of-working-day reminder. Set your working hours in Settings → Sessions and TopTrack names what the day tracked but never sent to Jira, which covers every worklog put off with Later as well as sessions that were never prompted. It opens Worklogs rather than posting: a timer-fired batch post, possibly while you are away from the desk, is not something to do in one click. It asks once a day, never while tracking is still running.
  • A day's sessions on one Jira issue post as a single worklog. Switching to the same issue five times is one piece of work to Jira, not five, so 4m, 3m and 10m on an issue post as one 17m worklog. Every session keeps its own row and checkbox; an issue tracked more than once that day becomes a group whose row says what Jira will get ("Posts as 1 worklog · 17m"), and each ticked session says which worklog it merges into. An issue tracked once is a single row. Settings → Sessions can turn combining off.
  • Sessions under a minute on an issue tracked again that day count toward its combined worklog instead of being dropped, so 40 seconds and 50 seconds next to 3 minutes post as 5 minutes. They never post on their own.
  • The reminder offers the whole day on an issue: "Log 17m to DEMO-42?", covering the sessions on it that are still unposted, posted as one worklog.
  • A combined worklog records the sessions it covers in its Jira worklog property, so another Mac sees each of them as posted without this Mac's receipts.

Changed

  • Worklogs gives its space to the worklogs. The tracking clock and description are gone from the window, since the menu-bar icon already shows tracking; the title bar names the tracked issue or what needs attention. The status strip above the table is gone: each row shows its own progress and result, and what is left to say (an operation under way, an error, a post's outcome) is one line beside Post, empty when all is well. The note about captured sessions became the tooltip of the totals line. With one Jira site there is no site picker.
  • Refresh is now Compare and sits next to the date it compares. Post is the default button and names what it sends ("Post 2 Worklogs · 2h 5m…"). Export History… moved to the File menu (Shift-Command-E). All columns fit at the smallest window size instead of the table scrolling sideways.
  • Columns in Worklogs can be shown or hidden: right-click any column header, or use View → Columns. Post, Jira Issue and Jira Status always show. Not logged and Comment start hidden, since the first equals To Post until edited and the second is empty once Jira titles are fetched. Which columns show, their widths and their order are remembered, and Reset Columns brings back the defaults.
  • Status icons separate done from to-do: a finished row has a quiet grey check, a row ready to post an accent arrow, and anything that needs a look an orange mark.
  • Comparing asks Jira only for your worklogs started on the day being reviewed. An issue used for years of meetings and support work took 32 requests of 100 worklogs each to compare one day; it now takes one, and so does the check made just before posting.
  • Groups in Worklogs stand apart from their neighbours with a little space, and the Post button and confirmation count worklogs, not ticked rows.
  • The reminder popover states the decision in its title, lists its facts as key and value rather than a paragraph, sizes itself to its content, and always says why Log now is unavailable instead of greying out silently.
  • Worklogs can be ticked while a comparison runs. Ticking is only a choice, so it no longer waits for Jira; Post still does. When the answer arrives your choice stands, and a ticked worklog Jira refuses is unticked, with a line beside Post saying how many.
  • A worklog that cannot be posted for a lasting reason (already complete, still tracking, excluded, or refused by the comparison) has no checkbox and reads faint, and so does an issue whose worklogs all cannot. A disabled checkbox looked almost the same as an enabled one. Jira Status stays at full strength because it says why. Waiting for a comparison changes nothing: that wait belongs to the window.
  • Skip is gone from the reminder. It wrote a durable Jira exclusion from a transient popover that looked identical to Later, which writes nothing. Excluding a session stays in the Worklogs window, where it is visible and undoable.

Fixed

  • "Existing time — review before including" no longer appears because of TopTrack's own worklogs for other sessions that day; only time logged some other way raises it.
  • An issue row's Post checkbox now reads what is selected beneath it: every worklog selected means the issue is selected, some means mixed, none means off. It always read off before: after the view was configured, AppKit pushed the data source's value for the column into it, and that value was a blank string. The data source now answers with the same state the view shows.
  • Issue rows keep the same identity across reloads. They were rebuilt on every refresh, which left the table holding rows that pointed at the worklogs from before the last comparison.
  • The Post checkbox on an issue row could not be clicked after the previous fix: the checkbox asked the table for its row before the cell was associated with one, and gave up when the answer was "nowhere". It now falls back to the row under the pointer.

0.6.0

6 October 2026Released

History and Review Worklogs became one window, named Worklogs, where the period decides whether you are reading the record or posting a day.

Changed

  • History and Review Worklogs are one window, named Worklogs. They listed the same sessions with the same five commands. The period control decides what the window is: Day shows worklog drafts that can be compared and posted, while Last 7 Days and a Custom Range show the captured sessions as a record, under the same issue rows, with posting off because a Jira worklog carries a single date. The live tracking state and the history export moved across unchanged.

Fixed

  • Checking a worklog no longer clears the checkbox of an unrelated issue. The Post checkboxes acted on the row they were built for, but table cells are recycled, so after a reload a cell could act on another row.

0.5.0

6 October 2026Released

Review Worklogs is organised by Jira issue, reports what Jira itself holds as the estimate, and no longer shifts under the pointer while it works.

Added

  • Review Worklogs groups the day by Jira issue: each issue is a row stating its tracked, logged, not-logged and to-post totals, with that day's worklogs underneath it. Issues open expanded and remember what has been collapsed. Checking an issue checks every worklog under it that can be posted, and the issue's checkbox reads all, some or none.
  • Review Worklogs shows the issue's Jira estimate and the remaining estimate Jira itself holds, refreshed with every comparison. An issue without an estimate reads as unknown rather than as zero.
  • A Settings option to reduce each issue's remaining estimate in Jira by the time posted, the way Jira's own Log work dialog does. Off by default: the estimate is a figure other people plan against, and TopTrack cannot undo the change.

Changed

  • The Review Worklogs column that showed what today's tracking had not yet logged is named Not logged. Remaining now belongs to Jira's own remaining estimate, which was the source of the confusion.
  • Review Worklogs has one status area of fixed height instead of a progress panel that appeared and disappeared: the table and the footer below it no longer jump when a comparison or a post starts and ends, and the area keeps a short result such as 12 issues checked once the work is done.
  • The Review Worklogs header groups what you are looking at — site and review date — on the left, with Refresh on the right, instead of spreading both across the window.

Fixed

  • The status line and the progress panel no longer state the same operation twice, and the spinner sits on the same baseline as the text beside it.

0.4.0

6 October 2026Released

Review Worklogs now shows what Jira is doing while it works, and several worklogs can be selected in one sweep.

Added

  • Review Worklogs now shows the live Jira queue while comparing or posting: a determinate batch progress bar identifies the current issue and page, while each row shows whether it is active, waiting, checked, posted or failed.
  • Worklogs can be selected or cleared in a sweep by dragging through the Post checkboxes.

Changed

  • Every worklog that can be posted is selected by default, including possible manual Jira matches that remain available for review before posting.

Fixed

  • The Review Worklogs summary now stays in the footer when the window is resized instead of moving into the scrollable table.
  • Jira requests now have a hard timeout, so a transport callback that never arrives reports an actionable error instead of leaving Review Worklogs busy indefinitely.

0.3.2

2 October 2026Released

Corrective release that restores the clean-build interface test gate.

Fixed

  • The clean-build interface test now validates the expanded nine-column Review Worklogs table, restoring the release CI gate after the tracked, logged, remaining and proposed time columns were added.

0.3.1

2 October 2026Released

Corrective source release for reliable CI and Xcode archive builds.

Fixed

  • The Xcode project now includes the comparison-cache source files used by Review Worklogs, restoring CI and Xcode archive builds from the tagged source.

0.3.0

2 October 2026Released

Jira review is faster and supports partial worklogs and daily aggregation of matching sessions.

Added

  • Review Worklogs now caches Jira comparison results and local submission receipts, so reopening or refreshing a changing history usually checks only new or stale rows.
  • Each worklog shows tracked, logged, remaining and proposed time. Proposed time can be reduced for a partial post, and the uncovered remainder stays available for another Jira issue later.
  • Repeated sessions with the same description can be combined into one daily worklog. The combined duration includes short fragments, rounds only once for Jira, and can be expanded to show every source session before posting.

Changed

  • A manual Jira worklog match now covers only its matched duration instead of treating the entire local session as posted.
  • Posting a combined worklog records coverage for every source session, so future reviews restore the correct logged and remaining totals without rechecking unchanged work.

Fixed

  • A locally completed or uncertain submission remains visible with its saved state while Jira is temporarily unavailable. A live duplicate check still runs immediately before every new post.

0.2.1

15 September 2026Released

The direct download now launches on the macOS versions and Mac architectures advertised on the website.

Fixed

  • The direct-download app now runs on macOS 12 and later on both Intel and Apple silicon Macs. Previous direct releases advertised macOS 12 support but their main executable was accidentally linked for macOS 26, so macOS rejected them before launch.
  • Direct builds and CI now inspect the deployment target in every architecture before signing, preventing the bundle metadata and executable requirements from disagreeing.

0.2.0

11 September 2026Released

The direct download now updates itself, the task-switch reminder points at the menu-bar icon, and tracking is confirmed within a minute of launch.

Added

  • The direct-download build updates itself. Settings → About shows the installed version, when updates were last checked, a Check for Updates… button and a box for automatic checks, which stays off until you agree the first time Sparkle asks. Updates are downloaded over HTTPS, verified against the signature baked into the app, and installed in place; an install waits for any Jira submission still in progress before the app relaunches. The Mac App Store build keeps updating through the App Store.

Changed

  • The menu shows Tracking with a running duration within a minute of launch, wake or a TopTracker relaunch instead of waiting for the next start or stop. TopTracker writes a heartbeat to its log every minute while its timer runs; a heartbeat from the last minute and a half confirms the start recovered from the log. Until then the line reads Last reported: tracking · confirming it is still running. A missing stop is still never taken as proof the timer runs, and a heartbeat after a stop changes nothing.
  • The task-switch reminder is a popover pointing at the menu-bar icon instead of a floating window. Clicking elsewhere in TopTrack dismisses it as Later; working in other apps leaves it open. On a crowded menu bar that hides the icon, the popover hangs from the top of the screen instead.

0.1.1

11 September 2026Released

Connecting Jira moves into Settings, and a first launch always introduces itself.

Added

  • Settings → Connection connects Jira as well as disconnecting it. The Jira row’s one button reads Connect in Browser… while disconnected and Disconnect while connected, waits out the browser flow, and shows a failed attempt where the button was pressed. Connecting no longer requires opening Review Worklogs.

Fixed

  • First launch shows the setup steps even when TopTracker’s folder is found automatically. The direct download used to start as a bare menu-bar icon on such a Mac, with no welcome and no offer to connect Jira; the folder step now simply arrives already completed.

0.1.0

11 September 2026Released

First public release, as a direct download: Developer ID signed and notarized, universal for Apple silicon and Intel. The Mac App Store variant is built and sandboxed but not yet submitted.

Added

  • Developer ID signing and notarization with Hardened Runtime, secure timestamps, ticket stapling, Gatekeeper verification, and a checksummed distribution archive.
  • A sandboxed Mac App Store build that asks for the TopTracker data folder once and keeps access through an app-scoped security bookmark.
  • A reproducible App Store archive and export script, with a submission checklist.

Changed

  • Custom calendar popovers in History and Review Worklogs are replaced by native macOS date fields with the system calendar. Custom ranges apply immediately and keep start and end in order.
  • The Mac App Store build’s folder picker opens on TopTracker’s own folder instead of the app’s sandbox container, and the setup step says why macOS asks.
  • Review Worklogs is built around automatic Jira comparison, row-level editing and one count-aware posting action, and shows activity while Jira data loads.
  • The menu carries tracking status, time and earnings, Review, History, Settings and Quit. Holding Option swaps a Today summary to the week, and a week or month summary to Today.
  • Commands the menu no longer carries moved into Settings: a TopTracker pane for the data folder, Export Diagnostics beside the log controls, and Jira Disconnect beside the authorization service. Read Invoice moved to the File menu.
  • First launch opens a three-step setup — welcome, TopTracker folder, Jira — instead of a bare folder picker. Jira can wait.
  • Direct release archives are universal binaries for Apple silicon and Intel.

Fixed

  • A Jira title that arrives after the review window opened now removes the generated TopTracker description from the draft comment. Comments you typed are kept.
  • Review Worklogs advances its work date after midnight while the app stays running, so yesterday’s posted sessions no longer appear as today’s.
  • CI uses a pinned clang-format and current Node 24 actions, so the formatting check no longer depends on a runner’s Xcode version.

0.0.6

7 September 2026Development build — never published

Development build. Unsigned for distribution: no Developer ID, no notarization, no public download.

Changed

  • Worklogs are identified by a private Jira worklog property instead of a marker appended to the comment, so nothing extra appears in the issue view or in worklog reports. Entries posted earlier keep their tag and are still recognised. A worklog with nothing to say is posted without a comment at all.

0.0.5

7 September 2026Development build — never published

Development build. Unsigned for distribution: no Developer ID, no notarization, no public download.

Changed

  • Worklog time is rounded to the nearest minute before it is shown or posted, because Jira stores whole minutes only. The review column is Time and reads in Jira’s format (1h 3m), accepting the same format when edited.
  • A worklog whose issue title has been fetched no longer repeats the captured TopTracker description as its comment. Comments written by hand are still posted.

Fixed

  • Posting several entries no longer stops after the first one when its tracked time is not a whole number of minutes. The batch counted the seconds it had requested rather than the whole minutes Jira kept, decided somebody else had changed the day total, and left the rest unposted.

0.0.4

7 September 2026Development build — never published

Development build. Unsigned for distribution: no Developer ID, no notarization, no public download.

Added

  • Optional worklog prompts after a live Jira issue switch or a TopTracker stop. Log reuses the existing comparison, receipt and duplicate checks; Later dismisses the reminder and Skip excludes the session. Off by default.
  • Jira issue titles for parsed keys, with browse links in the menu, history, review and prompts. Titles are cached per site for 24 hours, with bounded refreshes and backoff after failures. Original descriptions and comments are preserved.
  • Hourly rate and currency settings, with captured hours and estimated earnings in the menu. Today, this week and this month are available as summary periods, and a Week starts setting follows the system region, Monday, Sunday or Saturday.
  • Optional cached currency conversion through the European Central Bank’s published rates.
  • Tracking history date presets and inclusive custom date fields, a resizable review window that remembers its size, Open Item in Jira, and Command-W to close a window.
  • Bounded local diagnostic logs for network failures, tracking availability and Jira outcomes — no task content, no credentials — with a previewed, sanitized Export Diagnostics and no automatic upload.

Changed

  • Opening the review window compares with Jira on its own, reusing a comparison from the last five minutes. Posting still needs Post and its confirmation.
  • Summary totals use retained period history beyond the 1,000-row display limit.

Fixed

  • Currency conversion works for pairs the ECB does not publish, such as USD/RUB: the request is retried without the ECB pin and the rate details name the source used.
  • The Settings window opens at the height the Summary tab needs, instead of part-scrolled.
  • The live timer refreshes each second while the menu is open.

0.0.2

6 September 2026Development build — never published

Development build, prepared for a first week of real use. Unsigned: no Developer ID, no notarization, no public download.

Added

  • The menu shows what the tracker is doing and the task it is on. Holding Option reveals the commands it no longer lists.
  • Double-clicking a session row opens its Jira issue assignment.
  • An option to keep short sessions out of the history window as well as out of Jira. It applies only while the Jira filter is on, the window says how many sessions it is leaving out, and export always writes every captured session.

Changed

  • The history window gives its space to the table; all six columns fit without scrolling sideways.
  • The context menus offer the exclusion that applies rather than all of them, and excluded rows are drawn in the system’s disabled colour.
  • The app no longer opens a window at launch. It starts in the menu bar and enters the Dock only once a window is opened.

Fixed

  • Row text was drawn against the top edge of its row.
  • Refusing Mark as Already Logged said only that no worklogs were available, whichever of four unrelated causes applied. Each now names itself and what to do.

0.0.1

6 September 2026Development build — never published

First tagged alpha, verified by tests and synthetic data only. No public download: the app was not signed or notarized, so builds remained development builds.

Added

  • A menu-bar status item with a live tracking indicator, and a history window listing observed sessions.
  • Read-only observation of TopTracker’s log and database, including its write-ahead log, with coalesced file events and a metadata fallback.
  • Jira issue keys recognised from session descriptions and Jira URLs. A description without a key stays unassigned rather than being guessed at.
  • Jira connection: browser authorization, credentials in the macOS Keychain, site selection, an editable worklog preview, comparison against your own existing worklogs, and confirmed submission.
  • Reading a TopTracker invoice PDF for the week’s billed total and its deduplicated activity list.

Where this comes from

These notes are copied from the app's own changelog, which is where they are written. Download details — version, size and checksum — come from the published release manifest instead, so this page can never offer a build that does not exist.