Windshift v0.8.1 — "Shiplaunch"
Windshift 0.8.1 puts your workspace in your pocket. The headline is a purpose-built mobile surface — a PWA you install to your home screen and use one-handed, with push notifications, search and create, full item detail, and an AI chat that knows what you're looking at. Underneath, this release is also a serious performance and stability pass: we hunted down the request fan-outs that made busy boards feel sluggish, replaced them with batched endpoints, and closed a cluster of Postgres concurrency bugs that could surface as 500s under load.
Highlights
Windshift on your phone
0.8.1 adds a dedicated mobile experience at /m, built for touch instead of squeezing the desktop UI onto a small screen:
- Install it like an app. An Add to Home Screen affordance uses the native install prompt where the browser supports it and walks you through it on iOS. On a phone, signing in drops you straight onto the mobile surface.
- Push notifications. Web Push means you get notified about comments, mentions, and assignments even when the app isn't open.
- Find and create from anywhere. Search your tickets, and create new ones from a floating action button and create dialog — no detour through the desktop layout.
- Real item detail. The mobile item view shows status and assignee pickers, sub-items, a parent breadcrumb to navigate up from a sub-task, the worklog timer with the full worklog dialog, and the commits/PRs and coding-agent panels. Pull to refresh to pick up the latest, and it reloads live as things change.
- AI chat that knows the context. The in-product AI chat runs full-height on mobile with the composer pinned to the bottom, and understands the work item you're viewing.
Snappier under load
Busy boards and dashboards made far too many small requests — one per card, per row, per level. 0.8.1 replaces those with batched endpoints, so a heavily populated workspace loads with a handful of requests instead of hundreds:
- Batch item fetch. A new
/items/batchendpoint kills the per-id load behindgetMany(). - Batch links. Board cards no longer fire one links request each — a single batched links endpoint (with fewer DB round-trips, and test-case links folded in) covers the whole board.
- Breadcrumbs in one call. The map builds breadcrumbs from an
/items/{id}/ancestorsendpoint instead of walking parents level by level. - Board transitions preloaded. A workspace transition-matrix endpoint loads every board's allowed transitions in one request.
- Fewer redundant loads. Collections are fetched once per load, item-type and config-set lookups are de-duplicated when an item opens, dashboard iteration progress is batched, and the portal returns field counts inline.
Steadier under pressure
A set of fixes makes Windshift hold up when several people — or several agents — hit it at once, especially on Postgres:
- No more concurrent-create 500s. Workspace item-number and fractional-index allocation are now serialized, so two people creating items at the same moment can't collide.
- Bounded connection pool. The Postgres pool is bounded and each user gets an in-flight concurrency cap, so a burst of requests can't exhaust the database with "too many clients already."
- Off-thread maintenance. Custom-field option cleanup and Postgres index builds moved off the request thread, so they no longer block the response.
- Resilient agent PRs. Opening a pull request now retries on transient failures instead of giving up.
Also in 0.8.1
- New CLI search.
ws task searchandws page searchsubcommands. - Action editor config gaps closed — the editor now exposes the backend-supported configuration fields it was missing.
- Item-attachment upload over bearer tokens — the v1 surface gained attachment upload and delete (WI-72).
Bug fixes
- The milestone status picker shows its options again when a value is pre-selected.
- Comboboxes filter on the visible label, keep their testids, and no longer close on hover or mid-transition.
- The setup flow no longer caches
setup_completedin session storage, and the post-login redirect on mobile lands on the right place.
Upgrade notes
0.8.1 is a drop-in upgrade from 0.8.0 — no new required configuration. The mobile surface is served at /m and needs no setup; Web Push uses the browser's standard notification permission. If you front Windshift with a reverse proxy, make sure it passes the PWA assets (manifest and service worker) through unchanged.