# Session capture Active contributors: Douwe de Vries, vriesd ## Purpose Session capture lets testers create a bounded Session, write notes, preserve context, and build structured records from the testing timeline. The feature spans frontend views, Tauri commands, `SessionService`, and SQLite tables. ## Key source files | File | Purpose | | --- | --- | | `frontend/src/views/SessionEditorView.tsx` | Notes editor UI and note actions. | | `frontend/src/app/sessionActions.ts` | Create/open/save/delete Session and note operations. | | `frontend/src/app/useAppController.ts` | Boot, active Session state, autosave, and view state. | | `src-tauri/src/commands/sessions.rs` | Session command handlers. | | `src-tauri/src/commands/entries.rs` | Entry command handlers. | | `crates/qa-scribe-core/src/domain/session.rs` | Session DTOs and patches. | | `crates/qa-scribe-core/src/domain/entry.rs` | Entry DTOs, drafts, and types. | | `crates/qa-scribe-core/src/services/session_service/sessions.rs` | Session service operations. | | `crates/qa-scribe-core/src/services/session_service/entries.rs` | Entry service operations. | ## How it works The frontend boots with `getSettings()` and `listSessions()`, opens the first Session when present, and ensures the active note Entry exists. Title and body autosave are debounced in `frontend/src/app/useAppController.ts`, while `saveNoteNow()` flushes pending changes before navigation, generation, or record creation. ```mermaid graph LR Editor[SessionEditorView] --> Actions[sessionActions] Actions --> Bridge[tauri.ts] Bridge --> Commands[sessions.rs and entries.rs] Commands --> Service[SessionService] Service --> SQLite[(SQLite sessions and entries)] ``` ## Integration points Session capture feeds [Rich record editing](features--rich-record-editing.md), [Managed attachments](features--managed-attachments.md), and [AI-assisted Testware](features--ai-assisted-testware.md). It relies on [Rust core](systems--rust-core.md) for validation and storage. ## Entry points for modification Change UI copy or controls in `frontend/src/views/SessionEditorView.tsx`, workflow state in `frontend/src/app/sessionActions.ts`, and persistence rules under `crates/qa-scribe-core/src/services/session_service`.