How indkhan/fieldnote works
Fieldnote is a local desktop notebook for interview projects, questionnaires, sessions, custom project fields, and recordings. Users choose a project, capture session details and answers, manage recordings, then export selected or matching sessions—or prepare a folder handoff for an external coding agent. The frontend invokes Tauri commands; the Rust backend provides domain operations over local SQLite and media files. The graph preserves documented capabilities, but several backend command implementations and frontend views were not excerpted, so those internal links are omitted where their call paths are not evidenced.
Main entry points: main.ts Desktop UI · lib.rs Tauri command layer · store.rs SQLite workspace · export.rs Session export
Components 18
Desktop experience
- Desktop UI
src/main.ts - Project overview
src/overview-ui.ts - Field controls
src/property-ui.ts - Save queue
src/save-queue.mjs - Field save queue
src/property-queue.mjs - Update policy
src/update-policy.mjs
Projects and sessions
- Notebook data model
src-tauri/src/model.rs - Project fields
src-tauri/src/properties.rs
Recordings and exports
- Session attachments
src-tauri/src/attachments.rs - Audio recording
src-tauri/src/recorder.rs - Session export
src-tauri/src/export.rs - Agent folder handoff
src-tauri/src/handoff.rs
Local platform
- Tauri command layer
src-tauri/src/lib.rs - SQLite workspace
src-tauri/src/store.rs - Workspace migration
src-tauri/src/migrate.rs
Other components
- Researcher
- External coding agent
- Release service
Connections 21
- Researcher → Desktop UI: uses
README.md - Desktop UI → Project overview: renders
src/main.ts - Project overview → Field controls: uses controls
src/overview-ui.ts - Desktop UI → Save queue: queues saves
src/main.ts - Desktop UI → Field save queue: queues field saves
src/main.ts - Desktop UI → Tauri command layer: invokes commands
src/main.ts - Desktop UI → Update policy: applies policy
src/main.ts - Tauri command layer → SQLite workspace: runs database operations
src-tauri/src/lib.rs - Tauri command layer → Notebook data model: uses data types
src-tauri/src/lib.rs - Tauri command layer → Workspace migration: moves legacy data
src-tauri/src/lib.rs - Tauri command layer → Audio recording: recovers recordings
src-tauri/src/lib.rs - Tauri command layer → Session export: exports sessions
src-tauri/src/lib.rs - SQLite workspace → Notebook data model: stores records
src-tauri/src/store.rs - SQLite workspace → Project fields: stores field data
- SQLite workspace → Session attachments: tracks attachments
- SQLite workspace → Audio recording: tracks audio metadata
- Session export → SQLite workspace: collects session data
src-tauri/src/export.rs - Agent folder handoff → Session export: formats session content
src-tauri/src/handoff.rs - Tauri command layer → Agent folder handoff: prepares handoff
src-tauri/src/lib.rs - Researcher → External coding agent: pastes message
README.md - Desktop UI → Release service: checks releases
README.md