v0.22.0

solidtime-io/solidtimev0.22.0Oct 19, 2026by Onatcer

Upgrading?

AI Summary

This release introduces a new Goals feature allowing users to track time targets against specific periods and filters. It also includes consistency improvements for the API and self-hosted deployments, particularly regarding database environment variables and report handling.

Key Highlights

  • New Goals feature to track time targets (e.g., daily/weekly hours) with configurable thresholds and filters.
  • Fixed API inconsistency where updating only a project_id without a task_id could cause mismatches.
  • Renamed DB_SSLMODE to DB_SSL_MODE to correctly pick up SSL configuration in deployments.
  • Fixed broken reports that used an empty member_ids filter to now display data correctly.
  • Added validation to prevent multiple running time entries and invalid time entry ranges.

Breaking Changes

  • Renamed DB_SSLMODE environment variable to DB_SSL_MODE (requires update to instance configuration).
  • Saving new reports with an empty member_ids filter is now prohibited (previously allowed but broken).

New Features

  • Goals tracking with customizable targets (daily/weekly/monthly) and thresholds (minimum/maximum).
  • Goals support filtering by project, task, client, tag, billability, and type.
  • New extension auditing capabilities.
  • Improved API documentation.
  • 1Password integration support for time tracker inputs.

Full Release Notes

## Goals
You can now add and track **Goals** for yourself inside of solidtime! 

<img width="1000" alt="image" src="https://github.com/user-attachments/assets/e7a2964b-e486-4194-9b0f-1aa495b33efa" />


Goals let you set yourself a time target and follow your progress towards it, for example:
* track at least **6 hours per day**
* spend **20 hours per week on a project**
* or keep **meetings under 5 hours per week**. 

They have a **target amount of hours** within a **specified period (day, week, month)** and can be configured to be achieved if you surpass the target (e.g., a minimum of 20 hours worked per week on project X) or stay below the threshold (e.g., a maximum 10 hours with the tag meeting). 

Goals support a wide range of filters including: projects, tasks, clients, tags, billability and type (work/break). To learn more about them check out our [Goals Documentation](https://docs.solidtime.io/user-guide/goals). 

**We plan to bring more features & improvements to Goals soon!**

## Consistency changes/improvements

We made some changes to how reports are stored that only affect API users, this path was never achievable via the UI. If saved reports were stored with a member_ids filter of [] it never showed any data and was effectively broken. If any such reports exist they will now show like no member filter is applied. Additionally, saving new reports with a member filter of `[]` will be prohibited to make sure that there is only one state for "no filter applied". You can find the changes in https://github.com/solidtime-io/solidtime/pull/1287

Sending only a project_id update to a time entry via the API without setting the task_id back to null, could cause the project_id and task_id to be mismatched, this is fixed in https://github.com/solidtime-io/solidtime/pull/1290

`DB_SSLMODE` env variables were not picked up correctly by the deployments in recent versions. We therefore changed the env variable name to `DB_SSL_MODE` to potentially break existing instance configurations. If you want to force SSL_MODE for your database make sure to set `DB_SSL_MODE`. We updated our [docs](https://github.com/solidtime-io/docs/pull/84) and [examples](https://github.com/solidtime-io/self-hosting-examples/pull/41) to reflect that change. 

## Minor changes/improvements
* Updated composer dependencies by @korridor in https://github.com/solidtime-io/solidtime/pull/1262
* Add new extension auditing by @korridor in https://github.com/solidtime-io/solidtime/pull/1261
* Prevent non-primary mouse buttons from resizing events by @korridor in https://github.com/solidtime-io/solidtime/pull/1275
* add 1password ignore attributes for time tracker component inputs by @Onatcer in https://github.com/solidtime-io/solidtime/pull/1277
* improve API docs by @Onatcer in https://github.com/solidtime-io/solidtime/pull/1293
* Rename DB_SSLMODE env to DB_SSL_MODE and add DATABASE_URL fallback by @korridor in https://github.com/solidtime-io/solidtime/pull/1300
* Add owner organization and owner user to audits by @korridor in https://github.com/solidtime-io/solidtime/pull/1298
* Run core PHPUnit tests with extensions enabled in CI and fix IbanServiceTest namespace by @korridor in https://github.com/solidtime-io/solidtime/pull/1312
* Updated auditing extension to v0.0.5 by @korridor in https://github.com/solidtime-io/solidtime/pull/1317
* Import hardening and fixes by @korridor in https://github.com/solidtime-io/solidtime/pull/1322
* Prevent time entries with end before start by @korridor in https://github.com/solidtime-io/solidtime/pull/1315
* Prevent multiple running time entries per user by @korridor in https://github.com/solidtime-io/solidtime/pull/1314
* add billable rate restriction interfaces for billing extension by @Onatcer in https://github.com/solidtime-io/solidtime/pull/1296

**Full Changelog**: https://github.com/solidtime-io/solidtime/compare/v0.21.0...v0.22.0

Related Repositories