Commit graph

5 commits

Author SHA1 Message Date
WiseGuru
42f0a43c62 Resolve the 1.2.1 review-bot no-unsafe-* warnings at the root (type parity)
All ~30 warnings traced to the bot's lint environment resolving types
differently from local, not to unsafe code (DEVCONFLICTS.md finding 10):

- tsconfig lib was ES2016 while the code uses ES2017-ES2019 APIs
  (Object.entries/values/fromEntries, padStart, Promise.finally); the
  test suite's auto-included @types/node masked it locally. lib is now
  ["DOM", "ES2019"] with types: [] so a mismatch fails npm run build.
- moment's typings don't resolve in the bot's environment (obsidian's
  re-export types via the moment package). All calls now go through
  formatMoment in src/time.ts, a narrow structural alias.
- secrets.ts needed as-BufferSource assertions on TS 5.7+ that older TS
  flags as unnecessary; restructured (inferred ArrayBuffer-backed byte
  helpers, BufferSource param, one 32-byte copy) to need none on any
  TS version. Crypto behavior unchanged.
- The two flagged as-Record casts became an isRecord type predicate.

Docs: CLAUDE.md "Review-bot type environment" gotcha, RELEASING.md
parity section (plus the pre-release docs from the workflow change),
DEVCONFLICTS.md finding 10, ROADMAP.md Unreleased entry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-09 20:55:52 -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
f6e6f46959 identified conflicts between dev docs and production 2026-06-14 21:44:49 -07:00