This issue has been resolved. Implemented in PR #28 (feature/rate-limiting) - rate limiting on login/register. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #31 (feature/p2-docs-and-lockfile) - patent PDF storage docs and S3 option in PR #58. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #55 (feature/fix-single-patent-download) - auto-download PDF before read. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #66 (feature/webhooks) - webhook notification support. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #65 (feature/scheduled-analysis) - scheduled/recurring analysis with alerting. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #32 and #53 - ruff and tsc --noEmit linting in CI. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #32 (feature/ci-testing-linting) - pytest job added to CI. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #61 (feature/compare-view) - side-by-side portfolio comparison. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #171 (feature/export-pdf) and PR #60 (feature/export-csv) - PDF and CSV export. All changes are merged into main. Closing as completed.
This issue has been resolved. Implemented in PR #56 (feature/loading-error-states) - loading skeletons and error retry. All changes are merged into main. Closing as completed.