Commit graph

13 commits

Author SHA1 Message Date
WiseGuru
f94856eae3 1.2.1
Community-review remediation (no behavior change):
- Remove eslint-disable in realtime/pcm.ts; reach the deprecated ScriptProcessor
  API through local type-aliases so no-deprecated never fires.
- Raise minAppVersion to 1.6.6 for FileManager.trashFile (@since 1.6.6).
- Enable the reviewer's type-checked lint rules locally for src/.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 22:35:06 -07:00
WiseGuru
8657bc53b3 1.2.0
Real-time dictation (AssemblyAI/Deepgram, own provider/key/model), auto-ingest
folders, record-in-background, per-invocation diarization, manage built-in
templates (enable/track), local whisper.cpp auto-start/idle-stop, and dev tooling
(local review + release-checklist skill).

Voxtral realtime was reverse-engineered but pulled (not WebView-reachable); its
adapter is kept on disk, unwired.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 21:38:30 -07:00
WiseGuru
cb1b0dcede 1.1.1
Roll ROADMAP Unreleased items (modal record-flow + secrets bootstrap fixes) into the 1.1.1 release heading.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 22:36:42 -07:00
WiseGuru
4f2c4d796e Decouple encryption-mode switch from key transfer (Copy/Clear), bump to 1.1.0
Switching the API-key encryption mode no longer moves keys. The on-disk
envelope now retains passphrase material (kdf/verifier/keys) even while
Obsidian secret storage is active, so the two stores coexist and `mode` is
just the active-store flag.

Key transfer is now an explicit, separate action presented as Copy (the
source is kept, so it is a copy, not a move):
- setEncryptionMode: switch active method only, no transfer
- copyKeys: duplicate inactive -> active, source untouched
- clearKeys(mode): wipe one method's saved keys
- unlockPassphraseStore: unlock the snapshot regardless of active mode
- countStoredKeys / EncryptionStatus.passphraseConfigured for the UI

Settings tab: the mode dropdown is now a pure switch; new Copy and Clear
buttons (behind a new generic ConfirmModal) handle key material with a
copied/cleared count Notice. changePassphrase is a direct within-passphrase
re-key. Docs updated (SECRETS.md, CLAUDE.md, wiki).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 12:50:23 -07:00
WiseGuru
f9c2450a8c 1.0.3
Fix Obsidian secret storage detection failing on all platforms.

app.secretStorage.setSecret rejects any id that is not lowercase
alphanumeric + dashes, so the colon-namespaced ids and the
underscore self-test id made the availability probe throw and report
secretStorage unavailable on every platform. Switch all secret ids
(namespace separator, self-test id, per-profile key ids) to
dash-joined form.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 14:46:08 -07:00
WiseGuru
f0e142f8e2 1.0.2
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 08:58:49 -07:00
WiseGuru
058b882bf7 1.0.1
Version bump; no functional change since 1.0.0 (whisper.cpp auto-lookup) so Obsidian's review tracks a new version.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 21:17:10 -07:00
WiseGuru
c74f74abc9 Remediate Obsidian community-submission lint
Errors: bump minAppVersion 1.4.0 to 1.4.4 (FileManager.processFrontMatter is since 1.4.4) and update versions.json; remove the disallowed eslint-disable in passphrase-modal and pass the random-string example via a variable to satisfy sentence-case.

Popout/compat warnings: setTimeout/clearTimeout to window.*; document to activeDocument, capturing the document ref for paired add/removeEventListener (recorder wake-lock, quick-record popover, settings, floater); globalThis to window for require/process in getNodeApi; replace the rewrite-hidden display-none important rule with el.toggle/hide/show; register activeDocument/activeWindow as eslint globals for no-undef.

Attestations: add .github/workflows/release.yml (build, actions/attest-build-provenance, softprops/action-gh-release on tag push).

Docs: CLAUDE.md minAppVersion rationale plus CI release/attestation and display() deferral notes; README Vault access disclosure and License corrected to 0BSD; DEVCONFLICTS refreshed.

Deferred recommendations: display() to getSettingDefinitions (1.13.0+ rewrite) and vault enumeration (necessary, disclosed).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 22:56:54 -07:00
WiseGuru
187264ff55 Rename plugin id to satisfy Obsidian manifest rules
The id rewrite-plugin is rejected on submission because an id may not
end in plugin. Rename to rewrite-voice-notes (lowercase + hyphens,
no obsidian, does not end in plugin). Pre-release, no installed users.

- manifest.json: id -> rewrite-voice-notes
- package.json / package-lock.json: name -> rewrite-voice-notes
- README.md, CLAUDE.md, docs/DEVCONFLICTS.md: update install-folder paths,
  command-id examples, and the id-locked note
- src/ needs no change (uses this.manifest.id dynamically)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 21:26:48 -07:00
WiseGuru
400ceeafa6 Fix Obsidian developer-guideline conflicts
- LICENSE: correct copyright holder (was sample-plugin's Dynalist Inc.)
- package.json: use valid SPDX id 0BSD (was 0-BSD)
- manifest.json: add author, authorUrl, fundingUrl
- Use Vault.process instead of Vault.modify for atomic read-modify-write
  (insert append, template update, update-report writing)
- docs/DEVCONFLICTS.md: record resolutions; document accepted items

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 22:56:49 -07:00
WiseGuru
05dce6184e Release 1.0.0
Bump manifest, versions, and package to 1.0.0 for the first GA release.
Drop the pre-release no-migration rule from CLAUDE.md now that v1.0.0 ships.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-14 15:00:29 -07:00
WiseGuru
e6328e5ae5 Phases 0-2 2026-05-24 11:00:49 -07:00
Maxwell McGuire
9cc469413a
Initial commit 2026-05-24 09:48:48 -07:00