-
Notifications
You must be signed in to change notification settings - Fork 0
features managed attachments
Active contributors: Douwe de Vries, vriesd
Managed attachments import screenshots and files into app-data storage, store metadata in SQLite, and keep rich editor image references stable. They support paste/upload, preview hydration, clipboard copy, and cleanup when Sessions are deleted.
| File | Purpose |
|---|---|
crates/qa-scribe-core/src/attachments/mod.rs |
File import, path sanitization, hashing, previews, reconciliation, deletion. |
crates/qa-scribe-core/src/domain/attachment.rs |
Attachment DTOs. |
crates/qa-scribe-core/src/services/session_service/attachments.rs |
Attachment persistence operations. |
src-tauri/src/commands/files.rs |
File and clipboard command handlers. |
frontend/src/app/attachmentActions.ts |
Paste/upload and materialization workflow. |
frontend/src/editor/editorHtml.ts |
Managed attachment image HTML and preview hydration. |
frontend/src/editor/clipboardExport.ts |
Finds screenshot references for clipboard export. |
graph TD
Paste[Paste or upload image] --> Frontend[attachmentActions]
Frontend --> Files[src-tauri files command]
Files --> Core[attachments module]
Core --> Disk[attachments/session-id]
Core --> DB[attachments table]
DB --> Preview[getAttachmentPreviewDataUrl]
Preview --> Editor[hydrated rich editor image]
The core stores files under attachments/<session-id>/ using sanitized relative paths and SHA-256 hashes. Preview reads verify integrity before returning data URLs. Session deletion removes managed attachment files after database rows are cascaded.
Managed attachments appear inside Rich record editing, support Session capture, and are referenced by generation prompt material in AI-assisted Testware.
Change storage behavior in crates/qa-scribe-core/src/attachments/mod.rs, command behavior in src-tauri/src/commands/files.rs, and editor/paste behavior in frontend/src/app/attachmentActions.ts.
- QA Scribe
- Download overview video (MP4)
- Architecture
- Getting started
- Glossary
- By the numbers
- Lore
- Fun facts
- Video overview
- How to contribute
- Development workflow
- Testing
- Debugging
- Patterns and conventions
- Tooling
- Applications
- Desktop app
- Smoke harness
- Systems
- Rust core
- Tauri command bridge
- Frontend shell
- Generation jobs
- Provider detection
- Release tooling
- Features
- Session capture
- Rich record editing
- Managed attachments
- AI-assisted Testware
- Settings and provider setup
- Crates
- qa-scribe-core
- qa-scribe-app
- Primitives
- Session
- Entry
- Finding
- Draft
- Evidence
- API
- Tauri commands
- Deployment
- Security
- Background
- Architecture decisions
- Migration context
- Cleanup opportunities
- TODOs and FIXMEs
- Complexity hotspots
- Reference
- Configuration
- Data models
- Dependencies