Release Notes

2026-08-22

Time Tracking Lock: close an accounting period and the hours stop moving — configurable periods, grace windows, and uniform enforcement everywhere time is tracked.

🔒 Time Tracking Lock

When payroll or invoicing depends on logged time, the books need to close. Time Tracking Lock lets an organization declare that once an accounting period plus a grace window ends, every time entry dated inside it becomes locked — no creating, editing, or deleting, by anyone, through any surface.

  • Pick your cadence. Weekly, bi-weekly (fixed 14-day blocks from an automatic anchor), or monthly periods, computed in your organization's timezone — daylight-saving transitions included.
  • A grace window that fits how you close. 1–7 days after each period ends, counted as calendar or business days, with a configurable work-week start day and working-days-per-week.
  • Honest, everywhere. The date picker greys out locked dates and flags grace dates before you log; locked entries turn read-only in tables; and the server enforces the same rule for API and integration writes — with no admin bypass. Running timers stay stoppable: an entry has no lockable date until it ends.
  • One period at a time, when you need it. A per-period grace override (API) can extend just one close — say, December — without touching the organization default.
  • For every organization. Lock has no plugin requirement. Find it under Settings → Organization → Time Tracking; configuring it is guarded by a new Configure Time Tracking permission, included in the default Admin and Owner roles.

Lock is off until an admin turns it on, and settings are enforcement-time only — disabling it immediately restores editability everywhere.

📚 Time Tracking Lock

🛡️ Plugin access hardened

The credential DevStride uses to talk to the plugin marketplace no longer ships in the browser: plugin listings and configuration now flow through DevStride's own backend, authenticated by your normal session and scoped to your organization. No action is needed — the plugin experience is unchanged.