How lucas-spink/research-notebook works
The repository is a desktop computational research notebook: users create or open a project folder, manage experiment records and evidence in its table-based editor, and inspect results and file previews. The README identifies plain Markdown, YAML and CSL-JSON in _notebook/ as the durable record; the format package parses and serializes it. The graph also includes external-change reconciliation, citations, and the VS Code capture extension as documented product capabilities. Sampled source supports project and notebook orchestration, preview loading, and file watching; links for unsampled subsystems are limited to documented scope and tree paths.
Main entry points: mod.rs Tauri commands · useNotebook.ts Notebook editor · flows.ts Project flows · useExternalChanges.ts Change conflicts
Components 20
Desktop experience
- Desktop UI
apps/desktop/src/App.tsx - Project flows
apps/desktop/src/features/projects/model/flows.ts - Notebook editor
apps/desktop/src/features/notebook/useNotebook.ts - Results tree
apps/desktop/src/features/results/useResultsTree.ts - File preview
apps/desktop/src/features/preview/usePreview.ts - Change conflicts
apps/desktop/src/features/conflicts/useExternalChanges.ts
Notebook records
- Format and domain
packages/format/src/index.ts - Project files
apps/desktop/src-tauri/crates/nb-fs/src/lib.rs - Version history
apps/desktop/src-tauri/crates/nb-fs/src/history/mod.rs - Notebook search
apps/desktop/src-tauri/crates/nb-index/src/lib.rs - Citation handling
packages/citations/src/index.ts
Native services
- Tauri commands
apps/desktop/src-tauri/src/commands/mod.rs - Preview rendering
apps/desktop/src-tauri/crates/nb-preview/src/lib.rs - Git provenance
apps/desktop/src-tauri/crates/nb-git/src/lib.rs
Capture and citations
- VS Code capture
extensions/vscode/src/extension.ts - Citeproc engine
packages/citations/src/spikes/citeproc-engine.ts
Other components
- Researcher
- External applications
- Notebook folder
- Local filesystem
Connections 25
- Researcher → Desktop UI: uses
- Desktop UI → Project flows: presents
- Project flows → Tauri commands: invokes
- Project flows → Change conflicts: starts watch
- Project flows → Notebook editor: opens project
- Notebook editor → Format and domain: edits records
- Notebook editor → Tauri commands: reads and writes
- Results tree → Notebook editor: requests actions
- File preview → Tauri commands: requests preview
- Tauri commands → Preview rendering: renders
- Tauri commands → Project files: accesses
- Tauri commands → Version history: manages versions
- Tauri commands → Notebook search: searches
- Tauri commands → Notebook folder: reads and writes
- Project files → Local filesystem: reads and writes
- Version history → Local filesystem: stores snapshots
- Notebook search → Notebook folder: indexes records
- Change conflicts → Tauri commands: polls changes
- Change conflicts → Notebook editor: reports changes
- VS Code capture → Tauri commands: submits capture
- VS Code capture → Notebook folder: writes requests
- Notebook editor → Citation handling: uses citation data
- Citation handling → Citeproc engine: formats citations
- File preview → External applications: opens files
- Tauri commands → Git provenance: gets provenance