|
| 1 | +# Assistant |
| 2 | + |
| 3 | +Orbyn combines personal and project chats with durable Background and Overnight |
| 4 | +work. The backend owns orchestration, provider calls, permissions and execution; |
| 5 | +clients display retained messages and current work state. |
| 6 | + |
| 7 | +## Chats and Activity |
| 8 | + |
| 9 | +**Chats** groups the personal Orbyn conversation, project chats, pinned chats |
| 10 | +and recent chats. New project chats require a project before sending. **Activity** |
| 11 | +opens Background, Overnight and Upcoming work. Execution jobs remain independent |
| 12 | +of the conversation that receives their results. |
| 13 | + |
| 14 | +With unified conversations enabled, completed work, questions and summaries return |
| 15 | +to the captured conversation. Scheduled nights group results by delivery window |
| 16 | +and destination. They do not create a new sidebar chat for every run. When the |
| 17 | +flag is off, the existing chat/activity paths remain available. |
| 18 | + |
| 19 | +Messages offer Copy and Details. Details shows currently accessible sources and |
| 20 | +work state; Answer resumes an available waiting question, and Review opens the |
| 21 | +existing approval flow. Stop work is available through Details. Collapsed user |
| 22 | +messages retain their full text for expansion and copying. |
| 23 | + |
| 24 | +On web, selecting answer text offers **Ask Orbyn** after the selection settles. |
| 25 | +On mobile, Message options opens an excerpt-selection sheet. Both add a removable |
| 26 | +excerpt to the existing composer without sending it or discarding typed text. |
| 27 | +The excerpt names an exact authorized entry and is limited to 2,000 characters. |
| 28 | +Changed or unavailable source content cannot silently reuse that reply context. |
| 29 | + |
| 30 | +The web workspace uses Chats and detail panels around one conversation scroller. |
| 31 | +Narrow panes use local sheets/panels; mobile uses its own drawer and keyboard-aware |
| 32 | +composer. Panels retain drafts and reading state when opened or closed. |
| 33 | + |
| 34 | +## Background and Overnight |
| 35 | + |
| 36 | +Background and Overnight run in separate service processes with persisted jobs, |
| 37 | +checkpoints, leases, budgets and current-access checks. Interactive requests keep |
| 38 | +their own reserved runtime capacity. A result's conversation destination does not |
| 39 | +change which process owns its execution. |
| 40 | + |
| 41 | +Overnight is opt-in. Its schedule, quiet hours and review controls belong to the |
| 42 | +person's assistant settings. Upcoming can pause new Background or Overnight |
| 43 | +admissions independently; pausing does not stop already-admitted jobs. Muting |
| 44 | +conversation alerts is also separate from stopping execution or revoking access. |
| 45 | + |
| 46 | +Actions follow current assistant grants and team permissions. Unattended deletion, |
| 47 | +outside email, teammate notifications and publishing require Review. An answer or |
| 48 | +an excerpt is context for a request, never extra permission. |
| 49 | + |
| 50 | +## Configuration and rollout |
| 51 | + |
| 52 | +Select providers and models in **Admin → AI**. Configure service encryption keys, |
| 53 | +private service addresses and rollout flags in the server environment; see |
| 54 | +[setup](setup.md#ai-providers) and [environment](environment.md). Provider availability |
| 55 | +and personal-account transports have their own configuration and consent boundaries. |
| 56 | + |
| 57 | +`ASSISTANT_CONVERSATION_ENABLED` defaults to `false`. The retained timeline and |
| 58 | +associated UI are implemented in main, but a deployment must explicitly enable |
| 59 | +the flag consistently for API, AI, Background and Overnight. Required migrations, |
| 60 | +rollback behavior and history retention are documented in |
| 61 | +[deployment](deployment.md#unified-conversation-rollout-opt-in). |
| 62 | + |
| 63 | +The implementation records preserve local web/Expo-web qualification. They do not |
| 64 | +establish the configuration of a hosted instance, installed-native behavior or a |
| 65 | +live external provider's availability. See [verification](verification.md). |
| 66 | + |
| 67 | +## Contract owners |
| 68 | + |
| 69 | +| Contract | Source | |
| 70 | +| -------------------------------------------------------------- | ------------------------------------------------------------------------------------- | |
| 71 | +| Feed, source visibility, replies, read state and work controls | `backend/src/modules/assistant-workspace/` | |
| 72 | +| Interactive jobs and orchestration | `backend/src/modules/ai/` | |
| 73 | +| Shared retained-entry and reply schemas | `packages/core/src/assistant-conversation.ts`, `packages/core/src/schemas.ts` | |
| 74 | +| Web UI | `desktop/src/features/assistant/` | |
| 75 | +| Mobile UI | `mobile/src/screens/AssistantScreen.tsx`, `mobile/src/components/AssistantDrawer.tsx` | |
| 76 | + |
| 77 | +See the [API contract](api.md#retained-assistant-conversations), |
| 78 | +[architecture](architecture.md#assistant-conversations-and-execution) and |
| 79 | +[mobile guide](mobile.md). |
0 commit comments