Long-running AI UX - streaming progress + background job + completion notifications¶
| Stage | Building |
|---|---|
| Status | Partial |
| Design status | In progress |
| Estimate | 2w (M-L) |
| Confidence | Medium |
| Linear | PIN-617 ↗ PIN-317 ↗ PIN-618 ↗ |
| Linear status | Done · +1 backlog |
| Design | Design ↗ |
| Linear epic | Platform Foundation |
| Module | Settings & Admin ↗ |
Priority: Medium
Scope¶
Long-running AI/import operations (large drawing imports, SharePoint + BuildingConnected sync) run as a server-side background job that survives the user navigating away, with a non-blocking "running in background" toast and an in-app notification on completion that redirects to the filtered results. Token-level streaming of Cara's own responses remains a deferred placeholder, scheduled only if user feedback flags response latency. (Source: PIN-617, PIN-618, PIN-317.)
Acceptance criteria¶
- Import/sync job runs server-side and continues if the user leaves and returns
- Non-blocking start toast: "running in background — you'll be notified when done"
- In-app completion notification, reusing the existing notification fan-out
- On completion, redirect to the source-filtered Bids/Projects list
- Identical background-job UX for SharePoint and BuildingConnected imports
- Job state is durable (survives a server restart), not held only in memory
- Cara response streaming stays a deferred placeholder pending user-feedback signal on latency
Notes¶
White-label-critical; large files via Redis queue + notify-when-done. Spinner only now
Open question for Conor¶
-