59 lines
3.0 KiB
Markdown
59 lines
3.0 KiB
Markdown
# Thinkloom
|
||
|
||
Thinkloom is a desktop-first, local-first writing studio that helps one writer move from conversation to ideas, draft, revision, and a versioned release while preserving an inspectable creative-process record.
|
||
|
||
This repository contains two builds of the same React interface:
|
||
|
||
- a Tauri 2 desktop application backed by Rust, SQLite, canonical Markdown/JSON/JSONL files, hidden Git checkpoints, operating-system credentials, and atomic exports;
|
||
- a Sites companion build for product preview and browser-based evaluation.
|
||
|
||
## Implemented workflow
|
||
|
||
- Reversible Ideation, Drafting, and Finalization phases
|
||
- Typed conversation, challenge levels, push-to-talk browser transcription, and optional visible speech output
|
||
- Suggested ideas with explicit accept/reject, editing, variants, archiving, source links, drafting sets, and merges
|
||
- TipTap/ProseMirror structured manuscript editor with canonical Markdown round-tripping, undo/redo, headings, lists, selection replacement, and cursor insertion
|
||
- Persisted preview-first generation states with retry-safe provider errors and partial acceptance
|
||
- Ollama, OpenAI, and OpenAI-compatible provider profiles; credentials use the operating-system vault
|
||
- Local/Cloud/Mixed status and project-scoped cloud approval
|
||
- SQLite live state, atomic canonical files, seven rotating recovery snapshots, and a hidden Git repository per project
|
||
- Append-only SHA-256 provenance journal with chain-head verification and a contribution relationship view
|
||
- Named versions, restore controls, release checkpoints, and tags using non-Git language in the UI
|
||
- Markdown, HTML, PDF, plain text, sanitized evidence ZIP, and complete project backup ZIP generation
|
||
- ZIP import path, symlink, file-count, and expanded-size validation
|
||
- Responsive, keyboard-navigable, screen-reader-labeled UI with reduced-motion and dark-mode support
|
||
|
||
## Development
|
||
|
||
Requirements: Node.js 22.13 or newer, Rust 1.77.2 or newer, Git, and the Windows WebView2 runtime for the primary desktop target.
|
||
|
||
```powershell
|
||
npm install
|
||
npm run dev
|
||
npm run desktop:dev
|
||
npm run build
|
||
npm run desktop:build
|
||
npm run tauri -- build
|
||
```
|
||
|
||
Quality checks:
|
||
|
||
```powershell
|
||
npm run typecheck
|
||
npm run lint
|
||
npm test
|
||
cd src-tauri
|
||
cargo fmt --check
|
||
cargo test
|
||
```
|
||
|
||
## Project storage
|
||
|
||
A desktop project is self-contained. Canonical files live under `manuscript/`, `ideas/`, `conversations/`, `provenance/`, and `style/`. Live SQLite state and rotating snapshots are under `.thinkloom/` and are excluded from the project’s hidden Git history. Audio retention is always false; no audio file extension is created by the native service.
|
||
|
||
## Provider setup
|
||
|
||
Ollama defaults to `http://127.0.0.1:11434` and model `llama3.2`. OpenAI and compatible credentials are entered in Settings and saved through Windows Credential Manager, macOS Keychain, or Linux Secret Service. The first cloud operation in each project requires explicit approval.
|
||
|
||
See [IMPLEMENTATION_STATUS.md](IMPLEMENTATION_STATUS.md) for release gates that require external models, signing credentials, or additional platform validation.
|