diff --git a/.agents/AGENTS.md b/.agents/AGENTS.md index 89686e8..404f93b 100644 --- a/.agents/AGENTS.md +++ b/.agents/AGENTS.md @@ -19,4 +19,4 @@ ## Scope & Workflows - **Focused PRs**: Don't refactor and add features in the same PR. - **Performance Reporting**: Performance changes require a before/after bundle size comparison in the PR description (just paste the Vite build output). -- **Audit Logging**: Every change or significant update made must also be documented in `AUDIT_LOG.md`. Log what was done, when it was done, and why. +- **Audit Logging**: Every change or significant update made must also be documented in `AUDIT_LOG.md`. Log what was done, when it was done, and why. Additionally, any user-facing changes (Added, Changed, Fixed, Performance, Security) must be documented in `CHANGELOG.md` under the appropriate release section. diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..288ba8f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,104 @@ +# Changelog + +All notable, user-facing changes to PaperCache will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v0.5.0-beta] - 2026-06-23 + +### Highlights +- 🚀 Migrated from Electron to Tauri +- ⚡ Automatic updates +- 🪟 Improved window behavior +- 🐞 Major stability improvements + +### Added +- **Auto-Updates**: The app now checks for updates silently in the background on startup. A "Check for Updates Now" button was also added to the Settings menu. + +### Changed +- **Tauri Migration**: PaperCache has been fully migrated from Electron to Tauri, reducing memory usage, startup time, and application size while preserving existing workflows. +- The macOS distribution format is now `.tar.gz` and `.app` to circumvent strict macOS 14 runner restrictions with `osascript`. The Homebrew Cask automation pulls the `.tar.gz` bundle. + +### Fixed +- Addressed multiple edge-cases with `CodeMirror` state overwrites causing typed text to disappear or duplicate. +- Fixed a bug where entering an empty string for the OpenAI API Key would incorrectly register as a valid key. The system now safely deletes the credentials. +- Improved window behavior and consistency across Windows, macOS, and Linux. +- The `Quit` action now gracefully emits the proper shutdown events rather than force-killing the process, preventing data loss. + +### Performance +- Eliminated scroll jank across the app by replacing broad CSS `transition: all` rules with targeted color and opacity transitions. +- Abstracted redundant window focus and visibility checks to speed up global shortcut responsiveness. + +--- + +## [v0.4.0] - 2026-06-22 + +### Highlights +- ⌨️ Global Shortcut Recorder +- ✅ Tasks Integration +- 🧠 State Management Refactor +- 🏎️ MathJS Optimization + +### Added +- **Global Shortcut Recorder**: Added a UI in Settings to record custom keybindings for toggling the app and creating new notes. +- **Tasks Integration**: Support for inline checkboxes and a dedicated Tasks view. +- Added support for interactive hex color pills and currency formatting. +- The application now persists and reopens the last active note on startup. + +### Changed +- **State Management**: Migrated the core frontend architecture to `Zustand` for cleaner, slice-based state management. +- Normalized font stacks and refined typography weights for improved readability across themes. + +### Fixed +- Fixed an issue where internal wiki links (`[[link]]`) would accidentally overwrite adjacent text on auto-complete. +- Resolved race conditions in variable evaluation (`useVariables`). +- Fixed the Settings window so that it properly tracks the bounds of the main window. + +### Performance +- **MathJS Optimization**: Implemented dynamic lazy-loading and debounced evaluations, dramatically reducing idle CPU usage and startup overhead. +- Fixed a memory leak involving power state IPC listeners that drained battery on macOS. + +### Security +- **Production Hardening**: Removed unsafe `eval` usage in math processing. +- Restricted Tauri IPC scopes to only authorized directories (e.g. `~/.papercache`). + +--- + +## [v0.3.0] - Skipped + +_This version was not released._ + +--- + +## [v0.2.0] - 2026-06-20 + +### Highlights +- 🧮 Core mathematical evaluation logic +- 📏 Horizontal rules and styling + +### Added +- Implemented core mathematical evaluation logic and inline widgets. +- Added horizontal rules (`---`) styling and custom colors for math results. + +### Changed +- Improved the default onboarding tutorial notes with deeper feature explanations. + +### Fixed +- Fixed Prettier formatting mismatches that were breaking the CI pipeline. +- Fixed an issue with window spawning on the wrong active workspace. + +--- + +## [v0.1.0] - 2026-05-31 + +### Highlights +- 🎉 Initial Release of PaperCache! + +### Added +- **Initial Release** of PaperCache. +- Global hotkey launcher with floating markdown editor. +- Live markdown rendering with inline math and variables. +- System tray integration. +- Auto-hide on blur. +- Cross-platform desktop support. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8e89e57..939e9e3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -26,6 +26,6 @@ First of all, thank you for considering contributing to PaperCache! - **Pull Requests Required**: Never push new features directly to the `main` branch. Always create a new branch and push your changes as a Pull Request (PR) for review. - **Pre-PR Checks**: Run `npm run lint`, `npm run typecheck`, `npm run format:check`, and `npm run test` before opening any PR — don't open a PR with failing checks. - **Performance Reporting**: Performance changes require a before/after bundle size comparison in the PR description (just paste the Vite build output). -- **Audit Logging**: Every change or significant update made must also be documented in `AUDIT_LOG.md`. Log what was done, when it was done, and why. +- **Audit Logging**: Every change or significant update made must also be documented in `AUDIT_LOG.md`. Log what was done, when it was done, and why. Additionally, any user-facing changes (Added, Changed, Fixed, Performance, Security) must be documented in `CHANGELOG.md` under the appropriate release section. Thank you for your contributions!