diff --git a/.claude/settings.local.json b/.claude/settings.local.json index c803f5d..6f0307b 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -3,7 +3,8 @@ "allow": [ "Bash(npm run *)", "WebSearch", - "WebFetch(domain:docs.obsidian.md)" + "WebFetch(domain:docs.obsidian.md)", + "WebFetch(domain:raw.githubusercontent.com)" ] } } diff --git a/CLAUDE.md b/CLAUDE.md index fdb6caf..53720bd 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co This is the **ReWrite (Voice Notes) plugin for Obsidian**: record or paste speech, transcribe via a user-configured provider, clean and structure via an LLM, insert per a chosen template. Desktop and mobile. -The v1 implementation is feature-complete against [obsidian-voice-notes-spec.md](obsidian-voice-notes-spec.md) and [docs/IMPLEMENTATION_PLAN.md](docs/IMPLEMENTATION_PLAN.md). The spec is still the source of truth for behavior; the implementation plan resolves the spec's internal discrepancies (notably manifest id, base URL handling for `openai-compatible`, and mobile `safeStorage` unavailability). [docs/claude-scratch/STATUS.md](docs/claude-scratch/STATUS.md) tracks per-phase commit state and the running list of architectural decisions made during implementation; consult it when picking up work or before changing anything cross-cutting. +The v1 implementation is feature-complete against [obsidian-voice-notes-spec.md](obsidian-voice-notes-spec.md) and [docs/IMPLEMENTATION_PLAN.md](docs/IMPLEMENTATION_PLAN.md). The spec is still the source of truth for behavior; the implementation plan resolves the spec's internal discrepancies (notably manifest id, base URL handling for `openai-compatible`, and mobile `safeStorage` unavailability). [docs/ROADMAP.md](docs/ROADMAP.md) is the live lifecycle tracker (Planned / Unreleased / Released, one entry per feature and fix); consult it when picking up work or before changing anything cross-cutting. It replaced the old per-phase `docs/claude-scratch/STATUS.md` build tracker, which has been retired. When extending the plugin, follow the file layout the spec prescribes: provider adapters under `src/transcription/` and `src/llm/`, factories in each `index.ts`, no provider-specific logic leaking outside its own file. diff --git a/docs/IMPLEMENTATION_PLAN.md b/docs/IMPLEMENTATION_PLAN.md index bc757b5..3b6bb43 100644 --- a/docs/IMPLEMENTATION_PLAN.md +++ b/docs/IMPLEMENTATION_PLAN.md @@ -80,7 +80,7 @@ src/ Every phase ends with the same two doc touches before it counts as done: -1. **Update [docs/claude-scratch/STATUS.md](claude-scratch/STATUS.md)**: bump the "Updated" date, flip the phase row to committed/uncommitted, list uncommitted files, and trim the "What's left" section. This is the live tracker, so a future Claude can resume without re-reading the world. +1. **Update the live tracker**: bump the "Updated" date, flip the phase row to committed/uncommitted, list uncommitted files, and trim the "What's left" section, so a future Claude can resume without re-reading the world. (Historical: this was `docs/claude-scratch/STATUS.md`, now retired; [docs/ROADMAP.md](ROADMAP.md) is the live lifecycle tracker.) 2. **Update [CLAUDE.md](../CLAUDE.md)** if the phase changed anything CLAUDE.md describes (architecture, commands, gotchas, conventions). Per CLAUDE.md's own Documentation Maintenance rule. Phase 13 is the dedicated full refresh; phases before it should at minimum keep the doc from going stale (e.g. drop a pointer to STATUS.md if "Project state" is now wrong). Treat both as part of the phase, not follow-ups. The user has already had to remind once. diff --git a/docs/REMOVE_PLAINTEXT_SECRETS_MODE.md b/docs/REMOVE_PLAINTEXT_SECRETS_MODE.md index fc54663..e95a02e 100644 --- a/docs/REMOVE_PLAINTEXT_SECRETS_MODE.md +++ b/docs/REMOVE_PLAINTEXT_SECRETS_MODE.md @@ -39,7 +39,7 @@ Decisions taken: ### 4. Docs - [CLAUDE.md](../CLAUDE.md) "Secrets encryption" section: reduce the mode list to two, update the envelope description, rewrite the first-run-fallback note (now passphrase-unconfigured, not plaintext), and note that existing dev installs in plaintext lose stored keys (re-enter; per the pre-release no-migration rule). -- [docs/claude-scratch/STATUS.md](claude-scratch/STATUS.md): add a future-work / decision entry: "Adopt Obsidian SecretStorage (`app.secretStorage`, 1.11.4+) as an encryption mode once GA and available on mobile. Deferred 2026-05-28 (early-access). Would become the zero-config option that plaintext used to provide." +- Tracker (historical: `docs/claude-scratch/STATUS.md`, now retired in favor of [docs/ROADMAP.md](ROADMAP.md)): add a future-work / decision entry: "Adopt Obsidian SecretStorage (`app.secretStorage`, 1.11.4+) as an encryption mode once GA and available on mobile. Deferred 2026-05-28 (early-access). Would become the zero-config option that plaintext used to provide." - Sweep `plaintext` across the repo (docs + `styles.css`) and update any user-facing copy. `styles.css` `.is-warning` stays used (reassigned to the unconfigured-passphrase banner). ## Reuse (do not write new)