Windshift v0.8.6
·
23 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Windshift 0.8.6
Windshift 0.8.6 is a reliability release focused on consistent date and time
handling, dependable CQL-backed reporting, and safer item creation and listing.
Correct dates, trustworthy analytics, and more resilient work-item operations
Upgrade and compatibility
- Installations older than 0.8.5 must upgrade to 0.8.5 or 0.8.5-2 before
moving to 0.8.6. Back up the database, upgrade to one of those releases,
and allow Windshift to start successfully and record the 0.8.5 schema
checkpoint before installing 0.8.6. - Installations already running 0.8.5 or 0.8.5-2 can upgrade directly. This
release removes the legacy migration path and requires the recorded 0.8.5
checkpoint; direct upgrades from 0.8.4 or earlier are not supported.
Dates, time, and recurring work
- Windshift now applies one temporal contract across authenticated views,
public portal views, worklogs, recurring work, and scheduling. Instants use
the authenticated user's validated timezone, date-only values retain their
calendar date, and public surfaces use an explicit UTC default. Invalid
legacy timezone values safely fall back to UTC. (WI-999, WI-1006, WI-1007,
WI-1008, WI-1012) - REST v1 and MCP worklogs now use the acting user's timezone when none is
supplied. Worklog editing and timesheet grouping preserve the selected date,
and duration-only worklogs have the same start-time semantics across cookie,
REST, and MCP APIs. (WI-1004, WI-1005, WI-1013) - Recurring work validates requested IANA timezones and no longer accepts the
server-localLocalzone. Stored schedule timezones retain a safe fallback
for older data. (WI-1011) - Date filters cover complete civil days, including the final fractional
second returned by CQLendofday(). Additional date displays, worklog
ranges, scheduler boundaries, and server-clock comparisons now use the same
shared rules. (WI-1014, WI-1032)
CQL, analytics, and reporting
- Workspace statistics, milestone progress, and analytics now support CQL and
saved-collection filters that reference joined fields such as status,
priority, item type, iteration, project, completion state, workspace, and
user names. These filters return the correct dataset instead of zeroed
statistics or an HTTP 500 response. (WI-1026, WI-1027) - Workspace statistics now fail explicitly with
INTERNAL_ERRORwhen a core
aggregation cannot be computed, instead of returning a successful but
misleading empty or partial result. (WI-1031) - CQL item-type names are case-insensitive for equality, inequality, and
IN
filters. Thetypealias is retained and follows the same behavior as
itemtypename, including bare and quoted names; numeric item-type IDs remain
numeric comparisons. (WI-1028, WI-1030) - Concurrent asset CQL evaluation no longer mutates shared SQL-generator
state. (WI-1033)
Work-item reliability and performance
- Item creation now retries fractional-rank, workspace item-number, and
PostgreSQL serialization conflicts at the transaction boundary. Standard
creation, copying, recurrence generation, SCM sync, and template cloning use
the same collision-safe behavior. (WI-955) - Creating an item with an inactive or unknown assignee is rejected
consistently across the application API, REST v1, and MCP before anything is
persisted. (WI-1029) - Default-ranked item lists can use the workspace rank index efficiently on
SQLite, avoiding a scan whose cost grew with the total number of items on the
instance. (WI-954) - Item-list totals are invalidated only after committed count-changing
operations and are scoped to the affected workspaces. Concurrent readers no
longer inherit another request's cancellation, and workspace moves update
source and destination totals immediately. (WI-946, WI-956)
APIs and integrations
- Partial collection updates preserve an omitted description. Public
collection updates also validate slug requirements consistently and report
duplicate slugs as conflicts. (WI-1009, WI-1014) - GitHub status synchronization continues after the initiating HTTP request
completes, so updates made through item edit and item-type change paths reach
GitHub reliably. (WI-1010) - Jira readiness and analysis queries now escape project keys, shutdown
requests cannot block on an already-full channel, and remaining low-severity
temporal and scheduling issues identified during the release review have
been corrected. (WI-1014)