Changelog

What we've shipped

Every release that touches the product, with the reasoning behind the change.

  1. v2.5.0New

    Screenshots now redact sensitive UI by default

    Password fields, credit card inputs, and anything matching the platform-default sensitive-data regex set are now blurred on the device before the screenshot uploads. The setting is on by default for every new team; existing teams keep their current preference but get a one-click toggle in Activity Settings.

    You can still extend the redaction patterns per team — useful if you have an internal app where, say, salary numbers should never leave a frame.

  2. v2.4.0Improvement

    Monthly view rewrite — 3x faster

    The dashboard monthly view used to fan out one query per project per day. For 50-project orgs this hit the database hard and made the page load in 4-5 seconds. We rewrote the data path to materialize a single rollup query per team, paginated by week.

    Page load for the same view is now consistently under 1.2s on a 100-project tenant. Smaller orgs see less dramatic improvements but everyone gets at least a 2x speedup.

  3. v2.3.0New

    Linear and Jira task sync

    Two-way sync between Huble tasks and Linear / Jira issues. Status changes flow in both directions. Time tracked against a synced task automatically posts to the linked issue's tracker. ClickUp and GitHub Issues sync are already live — Linear and Jira complete the set.

  4. v2.2.0New

    Project budget alerts

    Set an hour budget per project; get a Slack / email ping when the team is at 70%, 90%, and 100% of the budget. Customizable thresholds. The 70% default came from internal data: by the time most teams hit 70%, they have enough information to course-correct, and not enough teams ever do.

  5. v2.1.3Fix

    Fix: timesheet edit history sometimes lost on Safari

    Safari users on macOS 14 occasionally saw their last 24 hours of timesheet edits disappear after a tab refresh. The cause was a stale IndexedDB schema migration that ran asynchronously on tab init. Fixed by gating the migration on the existing-store readiness signal.