Match the OpenAI API key placeholders to the actual lowercase sk- prefix in the settings UI.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Upgrade the GitHub Actions versions used in CI and release workflows so they run on
Node 24 before the hosted runner default changes.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(ui): align settings review follow-ups
Standardize remaining runtime settings copy to English, namespace provider settings selectors,
and apply the sentence-case cleanup flagged in review.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(ui): align sentence case for settings copy (#75)
Normalize the settings UI strings flagged by the review bot to plain sentence case
and remove emoji-prefixed labels from the affected headings and options.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Standardize remaining runtime settings copy to English, namespace provider settings selectors,
and apply the sentence-case cleanup flagged in review.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Standardize reviewed UI copy to English, namespace plugin CSS selectors,
and replace ad hoc SVG creation with shared Obsidian-friendly icons.
Also remove the empty fundingUrl field and start tracking styles.css
so the review fixes ship with the plugin.
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor(ui): consolidate settings architecture and review fixes
Remove redundant settings/provider implementations to reduce maintenance overhead and align the UI with Obsidian helpers and English-only labels. Also ignore local review docs and update the release guide header section to English.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore(repo): ignore local claude and changelog docs
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Normalize stringification of status/validation values and apply sentence-case UI text to satisfy review requirements. Update the review documentation to the latest comment.
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: address reviewbot feedback and update tests
Align request handling with Obsidian requestUrl and clean up UI text/lint directives while updating tests for the new mocks.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: ignore release_log.txt
Add release_log.txt to gitignore to keep local release logs out of version control.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: align requesturl handling with review feedback
centralize requesturl availability errors, bind provider defaults once, and stabilize timeout test.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: address reviewbot required issues
Normalize UI sentence case and tighten error/string handling to satisfy Obsidian reviewbot checks.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix(ui): restore brand casing in settings
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix(ui): apply sentence case to provider labels
Align provider labels and descriptions with sentence case rules and add updated Obsidian review notes.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix(ui): align emoji labels with sentence case
Normalize emoji-led provider labels to sentence case and add latest Obsidian review notes.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: address reviewbot feedback and update tests
Align request handling with Obsidian requestUrl and clean up UI text/lint directives while updating tests for the new mocks.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: ignore release_log.txt
Add release_log.txt to gitignore to keep local release logs out of version control.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: align requesturl handling with review feedback
centralize requesturl availability errors, bind provider defaults once, and stabilize timeout test.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: address reviewbot required issues
Normalize UI sentence case and tighten error/string handling to satisfy Obsidian reviewbot checks.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix(ui): restore brand casing in settings
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix(ui): apply sentence case to provider labels
Align provider labels and descriptions with sentence case rules and add updated Obsidian review notes.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: address reviewbot feedback and update tests
Align request handling with Obsidian requestUrl and clean up UI text/lint directives while updating tests for the new mocks.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: ignore release_log.txt
Add release_log.txt to gitignore to keep local release logs out of version control.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: align requesturl handling with review feedback
centralize requesturl availability errors, bind provider defaults once, and stabilize timeout test.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: address reviewbot required issues
Normalize UI sentence case and tighten error/string handling to satisfy Obsidian reviewbot checks.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix(ui): restore brand casing in settings
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: address reviewbot feedback and update tests
Align request handling with Obsidian requestUrl and clean up UI text/lint directives while updating tests for the new mocks.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* chore: ignore release_log.txt
Add release_log.txt to gitignore to keep local release logs out of version control.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* fix: align requesturl handling with review feedback
centralize requesturl availability errors, bind provider defaults once, and stabilize timeout test.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
- add GitHub App token generation step
- use app token in checkout and semantic-release steps
- this allows semantic-release to push to protected main branch
- add eslint-enable directive to SettingsTab.ts
- replace console.group/time with debug-based alternatives
- fix deprecated substr with slice
- fix function order for DOM_AVAILABLE check
- replace style.setProperty with setAttribute
- change settings error heading
## [4.0.0](https://github.com/asyouplz/SpeechNote/compare/v3.0.14...v4.0.0) (2026-01-26)
### ⚠ BREAKING CHANGES
* Manual version updates via version-bump.mjs will be deprecated.
Use Conventional Commits format for all commits going forward.
* fix: address code review feedback from Claude bot
Addressing 8 issues identified in PR #54:
- [P0/Critical] Disable version-bump.yml to prevent workflow conflicts
- [P0/Critical] Remove persist-credentials: false from release-auto.yml
- [P0/Critical] Remove deprecated version lifecycle hook in package.json
- [P1/Important] Add semver and manifest validation to update-version.mjs
- [P1/Important] Fix JSON formatting consistency in scripts
- [P2/Optional] Enhance build artifact verification with file size checks
- [P2/Optional] Rename release.sh to release-emergency.sh and add warning
* fix: address final code review points and documentation updates
* fix: address third round of code review feedback
- Revert pre-commit hook to use lint-staged
- Add file existence checks to update-version.mjs
- Remove unnecessary npm override in package.json
- Add syntax verification for build artifacts in release workflow
### 🚀 Features
* implement semantic-release automation ([#54](https://github.com/asyouplz/SpeechNote/issues/54)) ([240e125](240e125df5))
### 🐛 Bug Fixes
* make lint step resilient to eslint crashes ([2e3adc8](2e3adc8a53))
* upgrade nodejs to v20 for semantic-release ([4dc3ae9](4dc3ae9abd))
* upgrade nodejs to v22 for semantic-release v24 ([8c5ec24](8c5ec24f1b))
* chore: help release automation and bump version to 3.0.13 (#51)
* test: verify Claude Code Review with new OAuth token
* chore: remove dev artifacts and update .gitignore
- Remove lint output files from tracking
- Remove Claude Code local settings
- Remove agent documentation files
- Update .gitignore to prevent future tracking
* chore: bump version to 3.0.12 for release
* chore: bump version to 3.0.13 and automate styles.css generation
* fix: address code review feedback
- Improved CSS build script for cross-platform compatibility
- Removed test comment from README
- Added EOF newlines to JSON files per POSIX standards
Co-authored-by: chatgpt-codex-connector <codex@chatgpt.com>
---------
Co-authored-by: chatgpt-codex-connector <codex@chatgpt.com>
* test: verify Claude Code Review with new OAuth token
* chore: remove dev artifacts and update .gitignore
- Remove lint output files from tracking
- Remove Claude Code local settings
- Remove agent documentation files
- Update .gitignore to prevent future tracking
* chore: bump version to 3.0.12 for release
* chore: bump version to 3.0.13 and automate styles.css generation
* refactor: address PR #8004 review comments and fix lint errors
* fix: address CI failures and code review feedback
* Refactor: comprehensive fix for lint errors and type safety regressions
* chore: trigger CI and Claude Code Review workflows
* fix: address PR #8004 review feedback and improve type safety
* fix: restore legacy password factors and fix formatting
* fix: finalize PR feedback following Obsidian review compliance
* fix: finalize PR feedback with technical refinements and obsidian compliance
* fix: finalize PR refinements following Claude Code feedback and repo cleanup
* fix: remove legacy migration logic and further simplify codebase for obsidian compliance
* refactor: final cleanup of unused variables and improved type safety for PR #44
* style: fix formatting issues to resolve CI pipeline error
- SettingsTab.ts: Convert 10 heading elements to Setting API
- EnhancedSettingsTab.ts: Convert 17 heading elements to Setting API
- Add eslint-disable for legacy async/await patterns
This follows Obsidian plugin review guidelines for settings UI construction.
- Add file-level eslint-disable for no-unsafe-assignment, no-unsafe-member-access,
no-unsafe-argument, no-unsafe-return, and no-explicit-any
- These are required because Obsidian's loadLocalStorage API returns 'any'
- Replace invalid obsidianmd/platform rule with descriptive comment
- Add explanation for legacy navigator/screen API usage
- Create SimpleEventEmitter.ts as a browser-compatible EventEmitter replacement
- Update AsyncTaskCoordinator.ts to use SimpleEventEmitter
- Update NotificationManager.ts to use SimpleEventEmitter
- Update ProgressTracker.ts to use SimpleEventEmitter
- Add eslint-plugin-obsidianmd to devDependencies
Fixes ObsidianReviewBot error: 'Do not import Node.js builtin module events'