2025-12-19 - 2026-06-19

Overview

55 Active Pull Requests
1641 Active Issues
Excluding merges, 1 author has pushed 60 commits to main and 141 commits to all branches. On main, 35 files have changed and there have been 5131 additions and 1054 deletions.

46 Pull requests merged by 1 user

Merged #1682 Add rate limit stats to admin panel 2026-05-19 00:12:57 +00:00

Merged #1681 Add cursor-based pagination to /analyze/batch and /jobs 2026-05-19 00:12:50 +00:00

Merged #1680 Add stricter input validation for company names 2026-05-19 00:12:43 +00:00

Merged #1679 Update ROADMAP.md: mark completed P1 and P2 items as done 2026-05-19 00:12:35 +00:00

Merged #1667 Add tests for tracked company admin endpoints and scheduler 2026-04-20 23:05:59 +00:00

Merged #1668 Add API tests for export endpoints (CSV and PDF) 2026-04-20 23:04:27 +00:00

Merged #1666 Add webhook integration tests for retry logic and payloads 2026-04-20 23:04:22 +00:00

Merged #1663 Add S3/MinIO storage backend tests for storage.py 2026-04-20 23:04:08 +00:00

Merged #1662 Add test coverage for analyze_single_patent auto-download path 2026-04-20 23:04:03 +00:00

Merged #1664 Update ROADMAP.md to reflect completed work and add next-horizon items 2026-04-20 23:03:58 +00:00

Merged #1665 Refactor scheduler.py to use pooled DatabaseClient 2026-04-20 23:03:46 +00:00

Merged #1628 Fix remaining dark mode issue in Analysis page prose block 2026-04-20 06:42:02 +00:00

Merged #1627 Expand JWT auth integration tests to 33 cases 2026-04-20 06:41:50 +00:00

Merged #1568 ci: enable ruff linting and pytest in CI pipeline 2026-04-19 23:08:09 +00:00

Merged #1374 docs: document patent PDF volume mount requirement 2026-03-30 17:03:39 +00:00

Merged #1348 feat: theme-aware chart colors for dark/light mode 2026-03-30 15:03:45 +00:00

Merged #1015 Add model allow-list validation to analysis endpoints 2026-03-29 17:03:27 +00:00

Merged #443 Generate TypeScript API client from OpenAPI spec 2026-03-27 20:42:21 +00:00

Merged #353 feat: add model picker UI and wire model param through backend 2026-03-27 16:45:08 +00:00

Merged #352 feat: add loading skeletons and error states to Batch page 2026-03-27 16:43:42 +00:00

Merged #269 CI: add tsc --noEmit TypeScript type checking to test job 2026-03-27 11:07:05 +00:00

Merged #270 Docs: document MODEL, SERP_CACHE_TTL_HOURS, LOG_LEVEL in .env.example 2026-03-27 11:06:59 +00:00

Merged #171 feat: add PDF export for analysis reports 2026-03-27 05:04:59 +00:00

Merged #64 feat: add multi-model support for per-analysis LLM selection 2026-03-26 12:14:27 +00:00

Merged #63 feat: add OpenAPI TypeScript client generation setup 2026-03-26 12:13:21 +00:00

Merged #62 feat: add patent trend charts to the Analytics page 2026-03-26 12:12:27 +00:00

Merged #61 feat: add side-by-side patent portfolio comparison view 2026-03-26 12:11:04 +00:00

Merged #58 feat: add S3/MinIO object storage support for patent PDFs 2026-03-26 12:09:52 +00:00

Merged #66 feat: add webhook notification support for job completion 2026-03-26 12:08:10 +00:00

Merged #65 feat: implement scheduled/recurring analysis with change alerting 2026-03-26 12:07:48 +00:00

Merged #60 feat: add CSV export for company analysis results 2026-03-26 12:07:02 +00:00

Merged #57 feat: add dark/light mode toggle with localStorage persistence 2026-03-26 12:06:38 +00:00

Merged #59 feat: add cursor-based pagination to /jobs endpoint 2026-03-26 12:06:15 +00:00

Merged #56 feat: add loading skeletons and error retry to Batch and Analytics 2026-03-26 12:05:55 +00:00

Merged #55 fix: auto-download patent PDF in analyze_single_patent 2026-03-26 12:05:47 +00:00

Merged #54 feat: add structured logging to serp_api.py 2026-03-26 12:05:21 +00:00

Merged #53 ci: add tsc --noEmit TypeScript type checking to CI pipeline 2026-03-26 12:04:42 +00:00

Merged #32 ci: add pytest and ruff linting to CI workflow 2026-03-26 07:04:33 +00:00

Merged #29 feat: configurable LLM model, SERP cache TTL, structured logging, fix type 2026-03-26 07:03:10 +00:00

Merged #30 refactor(db): shared pooled DatabaseClient singleton 2026-03-26 07:02:48 +00:00

Merged #28 feat(auth): add rate limiting to login and register endpoints 2026-03-26 05:04:49 +00:00

Merged #34 feat(jobs): persist async batch job state in PostgreSQL 2026-03-26 05:04:28 +00:00

Merged #31 docs: patent PDF storage docs, FileNotFoundError, frontend lockfile 2026-03-26 05:04:03 +00:00

Merged #35 test(auth): add comprehensive JWT authentication test suite 2026-03-26 05:03:33 +00:00

Merged #27 feat(security): JWT startup guard, configurable CORS, externalize DB creds 2026-03-26 05:03:18 +00:00

Merged #3 chore: add ROADMAP.md for SPARC application development 2026-03-26 02:47:55 +00:00

9 Pull requests proposed by 1 user

Proposed #1687 Add user-level API key generation for programmatic access 2026-05-19 15:20:15 +00:00

Proposed #1688 fix: enforce max_length=128 and validate GET /analyze/batch company_name filter 2026-05-19 15:24:18 +00:00

Proposed #1689 Add POST /export/batch endpoint for multi-company ZIP download 2026-05-19 15:25:42 +00:00

Proposed #1690 Move webhook delivery to background task queue 2026-05-19 15:26:30 +00:00

Proposed #1692 Add LLM-based patent classification tagging by technology domain 2026-05-19 15:34:57 +00:00

Proposed #1693 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-05-19 15:38:50 +00:00

Proposed #1694 Add rate limiting dashboard to admin panel 2026-05-19 15:44:39 +00:00

Proposed #1695 Add historical analysis diffing between runs for same company 2026-05-19 15:46:00 +00:00

Proposed #1696 Add multi-tenant support with owner_id isolation 2026-05-19 16:05:59 +00:00

1631 Issues closed from 2 users

Closed #1683 Persist async job state to PostgreSQL so batch results survive API restarts 2026-05-19 10:28:42 +00:00

Closed #1675 Add rate limit status and usage statistics to the admin panel 2026-05-19 00:12:57 +00:00

Closed #1669 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-05-19 00:12:50 +00:00

Closed #1670 Add stricter input validation for company names on analysis endpoints 2026-05-19 00:12:43 +00:00

Closed #1678 Update ROADMAP.md to mark completed P1 and P2 items as done 2026-05-19 00:12:35 +00:00

Closed #1656 Add tests for tracked company admin endpoints and scheduler integration 2026-04-20 23:05:59 +00:00

Closed #1655 Add API tests for export endpoints (/export/{company_name} and /export/{company_name}/pdf) 2026-04-20 23:04:27 +00:00

Closed #1657 Add webhook integration tests covering retry logic and Slack/Discord payload format 2026-04-20 23:04:22 +00:00

Closed #1660 Add S3/MinIO storage backend tests for storage.py 2026-04-20 23:04:09 +00:00

Closed #1661 Add test coverage for analyze_single_patent auto-download path 2026-04-20 23:04:03 +00:00

Closed #1659 Update ROADMAP.md to reflect completed work and add next-horizon items 2026-04-20 23:03:59 +00:00

Closed #1658 Refactor scheduler.py to use the application-level pooled DatabaseClient 2026-04-20 23:03:46 +00:00

Closed #1652 Add patent trend charts to Analytics page (filing frequency and tech category distribution) 2026-04-20 14:25:35 +00:00

Closed #1653 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-20 14:25:35 +00:00

Closed #1654 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-04-20 14:25:35 +00:00

Closed #1649 Implement scheduled/recurring analysis with change alerting 2026-04-20 14:25:34 +00:00

Closed #1650 Add webhook/notification support for batch job completion and score changes 2026-04-20 14:25:34 +00:00

Closed #1651 Add multi-model LLM support so users can choose provider per analysis 2026-04-20 14:25:34 +00:00

Closed #1646 Add ruff linting and tsc type checking to CI pipeline 2026-04-20 14:25:33 +00:00

Closed #1647 Export analysis reports as PDF or CSV from the dashboard 2026-04-20 14:25:33 +00:00

Closed #1648 Add side-by-side patent portfolio comparison view 2026-04-20 14:25:33 +00:00

Closed #1642 Add loading skeleton and error states to Batch and Analytics pages 2026-04-20 14:25:32 +00:00

Closed #1643 Add dark mode support using Tailwind dark variant 2026-04-20 14:25:32 +00:00

Closed #1644 Add and commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-04-20 14:25:32 +00:00

Closed #1645 Add pytest test stage to CI workflow that gates the image build 2026-04-20 14:25:32 +00:00

Closed #1640 Fix analyze_single_patent to download PDF before reading from disk 2026-04-20 14:25:31 +00:00

Closed #1641 Fix Patent.patent_id type annotation from int to str in types.py 2026-04-20 14:25:31 +00:00

Closed #1637 Make LLM model configurable via MODEL environment variable 2026-04-20 14:25:30 +00:00

Closed #1638 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-04-20 14:25:30 +00:00

Closed #1639 Document patent PDF volume mount requirement and consider object storage for containerized deployments 2026-04-20 14:25:30 +00:00

Closed #1634 Add rate limiting middleware to auth endpoints 2026-04-20 14:25:29 +00:00

Closed #1635 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-04-20 14:25:29 +00:00

Closed #1636 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-20 14:25:29 +00:00

Closed #1629 Refuse startup with default JWT secret in non-development environments 2026-04-20 14:25:28 +00:00

Closed #1630 Make CORS allowed origins configurable via environment variable 2026-04-20 14:25:28 +00:00

Closed #1631 Remove hardcoded database credentials from docker-compose.yml 2026-04-20 14:25:28 +00:00

Closed #1632 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-04-20 14:25:28 +00:00

Closed #1633 Persist job state in PostgreSQL so batch results survive API restarts 2026-04-20 14:25:28 +00:00

Closed #1605 Add Tailwind dark mode support across the frontend 2026-04-20 06:42:02 +00:00

Closed #1624 Add JWT auth integration tests covering registration, login, protected routes, and admin endpoints 2026-04-20 06:41:50 +00:00

Closed #1625 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-20 05:08:19 +00:00

Closed #1626 Make LLM model configurable via MODEL environment variable 2026-04-20 05:08:19 +00:00

Closed #1622 Persist async job state to PostgreSQL so job results survive API restarts 2026-04-20 05:08:18 +00:00

Closed #1623 Add rate limiting to /auth/login and /auth/register endpoints 2026-04-20 05:08:18 +00:00

Closed #1621 Refactor auth.py to use a shared pooled DatabaseClient instead of per-call instantiation 2026-04-20 05:08:17 +00:00

Closed #1619 Make CORS allowed origins configurable via environment variable 2026-04-20 05:08:16 +00:00

Closed #1620 Remove hardcoded database credentials from docker-compose.yml 2026-04-20 05:08:16 +00:00

Closed #1618 Add startup check to reject default JWT secret in non-development environments 2026-04-20 05:08:15 +00:00

Closed #1610 Add side-by-side company patent portfolio comparison view 2026-04-20 04:10:21 +00:00

Closed #1609 Export analysis reports as PDF or CSV from the dashboard 2026-04-20 04:10:20 +00:00

Closed #1614 Add patent filing trend charts to the Analytics page 2026-04-20 04:10:20 +00:00

Closed #1611 Add scheduled/recurring analysis with alerting on significant changes 2026-04-20 04:10:19 +00:00

Closed #1612 Add webhook/notification support for batch job completion and score changes 2026-04-20 04:10:19 +00:00

Closed #1604 Add skeleton loaders and user-friendly error states to Batch and Analytics pages 2026-04-20 04:10:18 +00:00

Closed #1613 Add per-analysis LLM provider selection (multi-model support) 2026-04-20 04:09:44 +00:00

Closed #1615 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-20 04:09:43 +00:00

Closed #1616 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-04-20 04:09:43 +00:00

Closed #1617 Evaluate object storage (S3/MinIO) for patent PDF persistence in containerized deployments 2026-04-20 04:09:00 +00:00

Closed #1607 Add pytest test stage to Gitea Actions build workflow 2026-04-20 04:08:36 +00:00

Closed #1608 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-04-20 04:08:36 +00:00

Closed #1603 Integrate PDF download step in analyze_single_patent and document volume mount requirement 2026-04-20 04:08:35 +00:00

Closed #1606 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-04-20 04:08:35 +00:00

Closed #1602 Fix Patent.patent_id type annotation: change int to str in types.py 2026-04-20 04:08:34 +00:00

Closed #1600 Make LLM model configurable via MODEL environment variable 2026-04-20 04:08:33 +00:00

Closed #1601 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-04-20 04:08:33 +00:00

Closed #1598 Add JWT flow tests: registration, login, protected routes, token refresh, and admin endpoints 2026-04-20 04:08:32 +00:00

Closed #1599 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-20 04:08:32 +00:00

Closed #1597 Add rate limiting to /auth/login and /auth/register endpoints 2026-04-20 04:08:31 +00:00

Closed #1594 Remove hardcoded database credentials from docker-compose.yml 2026-04-20 04:08:30 +00:00

Closed #1595 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-04-20 04:08:30 +00:00

Closed #1596 Persist async job state in PostgreSQL to survive API restarts 2026-04-20 04:08:30 +00:00

Closed #1592 Add startup check to refuse default JWT secret in non-dev environments 2026-04-20 04:08:29 +00:00

Closed #1593 Make CORS allowed origins configurable via environment variable 2026-04-20 04:08:29 +00:00

Closed #1559 Add pytest test stage to Gitea Actions build workflow 2026-04-19 23:07:59 +00:00

Closed #1560 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-04-19 23:07:59 +00:00

Closed #1591 Add multi-model support: let users choose LLM provider per analysis 2026-04-19 23:07:58 +00:00

Closed #1589 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-19 23:07:57 +00:00

Closed #1590 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-04-19 23:07:57 +00:00

Closed #1588 Add patent filing trend charts to the Analytics page 2026-04-19 23:07:56 +00:00

Closed #1586 Add scheduled/recurring analysis with alerting on significant changes 2026-04-19 23:07:55 +00:00

Closed #1587 Add webhook/notification support for batch job completion and score changes 2026-04-19 23:07:55 +00:00

Closed #1584 Export analysis reports as PDF or CSV from the dashboard 2026-04-19 23:07:54 +00:00

Closed #1585 Add side-by-side company patent portfolio comparison view 2026-04-19 23:07:54 +00:00

Closed #1581 Add loading/error states (skeleton loaders) to Batch and Analytics pages 2026-04-19 23:07:32 +00:00

Closed #1583 Add Tailwind dark mode support across the frontend 2026-04-19 23:07:32 +00:00

Closed #1580 Document patent PDF storage volume mount and integrate download step in analyze_single_patent 2026-04-19 23:07:31 +00:00

Closed #1582 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-04-19 23:07:31 +00:00

Closed #1573 Persist async job state in PostgreSQL to survive API restarts 2026-04-19 23:07:30 +00:00

Closed #1574 Add rate limiting to /auth/login and /auth/register endpoints 2026-04-19 23:07:29 +00:00

Closed #1575 Add JWT flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-04-19 23:07:29 +00:00

Closed #1576 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-19 23:07:11 +00:00

Closed #1578 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-04-19 23:07:11 +00:00

Closed #1577 Make LLM model configurable via MODEL environment variable 2026-04-19 23:07:10 +00:00

Closed #1572 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-04-19 23:07:09 +00:00

Closed #1570 Make CORS allowed origins configurable via environment variable 2026-04-19 23:07:08 +00:00

Closed #1571 Remove hardcoded database credentials from docker-compose.yml 2026-04-19 23:07:08 +00:00

Closed #1579 Fix Patent.patent_id type annotation: change int to str in types.py 2026-04-19 23:07:08 +00:00

Closed #1569 Add startup check to refuse default JWT secret in non-dev environments 2026-04-19 23:06:51 +00:00

Closed #1557 Add skeleton loaders and error states to Batch and Analytics pages 2026-04-19 20:03:50 +00:00

Closed #1556 Fix analyze_single_patent to download PDF before reading from disk 2026-04-19 20:03:49 +00:00

Closed #1549 Persist async job state in PostgreSQL to survive API restarts 2026-04-19 20:03:48 +00:00

Closed #1562 Add side-by-side patent portfolio comparison view 2026-04-19 20:03:48 +00:00

Closed #1563 Implement scheduled/recurring analysis with change alerts 2026-04-19 20:03:48 +00:00

Closed #1552 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-19 20:03:47 +00:00

Closed #1565 Add patent trend charts to Analytics page 2026-04-19 20:03:47 +00:00

Closed #1545 Add startup check to refuse default JWT secret in non-dev environments 2026-04-19 20:03:46 +00:00

Closed #1553 Make LLM model selection configurable via MODEL environment variable 2026-04-19 20:03:46 +00:00

Closed #1564 Add webhook/notification support for batch job completion and score changes 2026-04-19 20:03:45 +00:00

Closed #1567 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-04-19 20:03:45 +00:00

Closed #1546 Make CORS allowed origins configurable via environment variable 2026-04-19 20:03:44 +00:00

Closed #1550 Add rate limiting to /auth/login and /auth/register endpoints 2026-04-19 20:03:44 +00:00

Closed #1558 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-04-19 20:03:44 +00:00

Closed #1561 Export analysis reports as PDF or CSV from the dashboard 2026-04-19 20:03:44 +00:00

Closed #1566 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-19 20:03:44 +00:00

Closed #1547 Remove hardcoded database credentials from docker-compose.yml 2026-04-19 20:03:43 +00:00

Closed #1551 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-04-19 20:03:43 +00:00

Closed #1554 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-04-19 20:03:43 +00:00

Closed #1555 Fix Patent.patent_id type annotation: change int to str in types.py 2026-04-19 20:03:43 +00:00

Closed #1548 Refactor get_db_client() in auth.py to use a shared connection pool 2026-04-19 20:03:41 +00:00

Closed #1544 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-31 02:10:56 +00:00

Closed #1543 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-31 02:10:50 +00:00

Closed #1542 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-31 02:10:45 +00:00

Closed #1541 Add webhook/notification support for batch job completion and score changes 2026-03-31 02:10:40 +00:00

Closed #1540 Implement scheduled/recurring analysis with change alerts 2026-03-31 02:10:34 +00:00

Closed #1539 Add side-by-side patent portfolio comparison view 2026-03-31 02:10:29 +00:00

Closed #1538 Export analysis reports as PDF or CSV from the dashboard 2026-03-31 02:10:23 +00:00

Closed #1537 Add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI 2026-03-31 02:09:37 +00:00

Closed #1536 Add pytest test stage to Gitea Actions CI workflow that gates the build 2026-03-31 02:09:32 +00:00

Closed #1535 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-31 02:09:26 +00:00

Closed #1534 Add loading and error states to Batch and Analytics pages 2026-03-31 02:09:21 +00:00

Closed #1533 Document patent PDF volume mount requirement and integrate download step in analyze_single_patent 2026-03-31 02:09:15 +00:00

Closed #1532 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-31 02:09:10 +00:00

Closed #1531 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-31 02:09:04 +00:00

Closed #1530 Make LLM model configurable via MODEL environment variable 2026-03-31 02:08:59 +00:00

Closed #1529 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-31 02:08:53 +00:00

Closed #1527 Add rate limiting middleware to auth endpoints 2026-03-31 02:07:31 +00:00

Closed #1525 Refactor auth.py to use a shared pooled DatabaseClient instead of creating one per call 2026-03-31 02:07:24 +00:00

Closed #1522 Refuse to start with default JWT secret in non-development environments 2026-03-31 02:07:16 +00:00

Closed #1523 Make CORS allowed origins configurable via environment variable 2026-03-31 02:06:55 +00:00

Closed #1528 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-31 02:06:26 +00:00

Closed #1526 Persist job status in PostgreSQL so batch results survive API restarts 2026-03-31 02:06:12 +00:00

Closed #1524 Remove hardcoded database credentials from docker-compose.yml 2026-03-31 02:06:04 +00:00

Closed #1518 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-31 01:06:18 +00:00

Closed #1520 Implement dark mode using Tailwind dark variant across all frontend pages 2026-03-31 01:06:16 +00:00

Closed #1513 Add side-by-side patent portfolio comparison view 2026-03-31 01:05:46 +00:00

Closed #1516 Add patent trend charts to the Analytics page (filing frequency and technology categories over time) 2026-03-31 01:05:43 +00:00

Closed #1521 Allow users to choose LLM provider per analysis (multi-model support) 2026-03-31 01:05:29 +00:00

Closed #1508 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-31 01:05:12 +00:00

Closed #1502 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-31 01:04:59 +00:00

Closed #1519 Document patent PDF storage volume requirement or migrate to object storage (S3/MinIO) 2026-03-31 01:04:31 +00:00

Closed #1517 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-31 01:04:28 +00:00

Closed #1515 Add webhook/notification support for batch job completion and score changes 2026-03-31 01:04:27 +00:00

Closed #1514 Implement scheduled/recurring analysis with change alerting 2026-03-31 01:04:24 +00:00

Closed #1512 Add PDF and CSV export for analysis reports from the dashboard 2026-03-31 01:04:22 +00:00

Closed #1511 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-31 01:04:20 +00:00

Closed #1510 Add pytest test job to Gitea Actions build workflow 2026-03-31 01:04:17 +00:00

Closed #1509 Add frontend lockfile (package-lock.json or pnpm-lock.yaml) to repository 2026-03-31 01:04:15 +00:00

Closed #1506 Fix analyze_single_patent to download PDF before reading from disk 2026-03-31 01:04:14 +00:00

Closed #1507 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-31 01:03:56 +00:00

Closed #1505 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-31 01:03:54 +00:00

Closed #1504 Make LLM model configurable via MODEL environment variable 2026-03-31 01:03:53 +00:00

Closed #1503 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-31 01:03:50 +00:00

Closed #1501 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-31 01:03:49 +00:00

Closed #1500 Persist async job state in PostgreSQL so job results survive API restarts 2026-03-31 01:03:45 +00:00

Closed #1499 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-31 01:03:44 +00:00

Closed #1498 Move database credentials out of docker-compose.yml into .env / Docker secrets 2026-03-31 01:03:41 +00:00

Closed #1497 Make CORS allowed origins configurable via environment variable 2026-03-31 01:03:38 +00:00

Closed #1496 Add startup check to reject default JWT secret in non-development environments 2026-03-31 01:03:37 +00:00

Closed #1491 Feature: Patent trend charts showing filing frequency and technology category distribution over time 2026-03-31 00:05:09 +00:00

Closed #1490 Feature: Webhook/notification support for batch job completion and score change alerts 2026-03-31 00:05:08 +00:00

Closed #1487 Feature: Export analysis reports as PDF or CSV from the dashboard 2026-03-31 00:05:05 +00:00

Closed #1488 Feature: Side-by-side comparison view for two companies patent portfolios 2026-03-31 00:05:05 +00:00

Closed #1489 Feature: Scheduled/recurring analysis with alerting on significant changes 2026-03-31 00:05:04 +00:00

Closed #1492 Feature: Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-31 00:05:04 +00:00

Closed #1493 Feature: Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-31 00:05:04 +00:00

Closed #1494 Frontend: Implement dark mode using Tailwind dark variant 2026-03-31 00:05:04 +00:00

Closed #1495 Feature: Multi-model support — let users choose LLM provider per analysis 2026-03-31 00:05:04 +00:00

Closed #1485 CI: Add pytest test job to build.yaml that gates the Docker image build 2026-03-31 00:04:44 +00:00

Closed #1481 Bug: analyze_single_patent reads PDF from disk without downloading it first 2026-03-31 00:04:43 +00:00

Closed #1479 Backend: Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-31 00:04:38 +00:00

Closed #1477 Backend: Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-31 00:04:37 +00:00

Closed #1486 CI: Add ruff (Python) and tsc --noEmit (TypeScript) linting/type-checking to CI 2026-03-31 00:04:36 +00:00

Closed #1478 Backend: Make LLM model configurable via MODEL environment variable 2026-03-31 00:04:35 +00:00

Closed #1480 Docs: Document patent PDF volume mount requirement for containerized deployments 2026-03-31 00:04:35 +00:00

Closed #1482 Bug: Fix Patent.patent_id type annotation — should be str, not int 2026-03-31 00:04:35 +00:00

Closed #1483 Frontend: Add skeleton loaders and error states to Batch and Analytics pages 2026-03-31 00:04:35 +00:00

Closed #1484 Frontend: Commit a package-lock.json or pnpm-lock.yaml for reproducible builds 2026-03-31 00:04:35 +00:00

Closed #1470 Security: Refuse to start with default JWT secret in non-dev environments 2026-03-31 00:04:16 +00:00

Closed #1471 Security: Make CORS allowed origins configurable via environment variable 2026-03-31 00:04:16 +00:00

Closed #1472 Security: Replace hardcoded DB credentials in docker-compose.yml with .env file 2026-03-31 00:04:12 +00:00

Closed #1473 Refactor: Share a single pooled DatabaseClient instead of creating one per request in auth.py 2026-03-31 00:04:12 +00:00

Closed #1474 Reliability: Persist batch job state in PostgreSQL so it survives API restarts 2026-03-31 00:04:12 +00:00

Closed #1476 Test: Add JWT auth flow tests (registration, login, protected routes, token refresh, admin endpoints) 2026-03-31 00:04:12 +00:00

Closed #1475 Security: Add rate limiting to /auth/login and /auth/register endpoints 2026-03-31 00:04:11 +00:00

Closed #1469 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 21:07:44 +00:00

Closed #1468 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 21:07:41 +00:00

Closed #1467 Add patent trend charts to the Analytics page (filing frequency and category distribution over time) 2026-03-30 21:07:39 +00:00

Closed #1466 Let users choose LLM provider per analysis and compare outputs (multi-model support) 2026-03-30 21:07:36 +00:00

Closed #1465 Add webhook/notification support for job completion and score change events 2026-03-30 21:07:34 +00:00

Closed #1464 Implement scheduled/recurring analysis with change alerting 2026-03-30 21:07:30 +00:00

Closed #1463 Add side-by-side patent portfolio comparison view 2026-03-30 21:07:29 +00:00

Closed #1462 Allow users to export analysis reports as PDF or CSV from the dashboard 2026-03-30 21:07:26 +00:00

Closed #1461 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 21:07:05 +00:00

Closed #1460 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-30 21:07:04 +00:00

Closed #1459 Commit a package-lock.json or pnpm-lock.yaml to ensure reproducible frontend builds 2026-03-30 21:07:01 +00:00

Closed #1458 Add dark mode support using Tailwind dark: variant 2026-03-30 21:06:58 +00:00

Closed #1457 Add loading skeletons and error states to Batch and Analytics pages 2026-03-30 21:06:56 +00:00

Closed #1456 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 21:06:52 +00:00

Closed #1455 Fix analyze_single_patent to download PDF before reading it from disk 2026-03-30 21:06:51 +00:00

Closed #1454 Document patents/ volume mount requirement and evaluate object storage path 2026-03-30 21:06:48 +00:00

Closed #1453 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 21:06:45 +00:00

Closed #1452 Make LLM model configurable via MODEL environment variable 2026-03-30 21:06:44 +00:00

Closed #1451 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 21:06:41 +00:00

Closed #1450 Add JWT flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 21:06:17 +00:00

Closed #1449 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 21:06:15 +00:00

Closed #1448 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-30 21:06:12 +00:00

Closed #1447 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 21:06:11 +00:00

Closed #1446 Move database credentials out of docker-compose.yml into .env or Docker secrets 2026-03-30 21:06:09 +00:00

Closed #1445 Make CORS allowed origins configurable via environment variable 2026-03-30 21:06:06 +00:00

Closed #1443 Refuse to start with default JWT secret in non-dev environments 2026-03-30 21:06:05 +00:00

Closed #1444 Make CORS allowed origins configurable via environment variable 2026-03-30 20:28:08 +00:00

Closed #1442 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 20:04:36 +00:00

Closed #1441 Add API cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 20:04:33 +00:00

Closed #1440 Add webhook/notification support for job completion and score changes 2026-03-30 20:04:28 +00:00

Closed #1439 Implement scheduled/recurring analysis with change alerts 2026-03-30 20:04:24 +00:00

Closed #1438 Add side-by-side comparison view for two companies patent portfolios 2026-03-30 20:04:21 +00:00

Closed #1437 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 20:04:17 +00:00

Closed #1436 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 20:04:13 +00:00

Closed #1435 Add pytest test job to Gitea Actions workflow before image build 2026-03-30 20:04:10 +00:00

Closed #1434 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 20:04:08 +00:00

Closed #1433 Add loading and error states to Batch and Analytics pages 2026-03-30 20:04:05 +00:00

Closed #1432 Document patent PDF storage volume mount requirement and evaluate object storage 2026-03-30 20:04:02 +00:00

Closed #1431 Fix Patent.patent_id type annotation from int to str 2026-03-30 20:03:59 +00:00

Closed #1430 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 20:03:57 +00:00

Closed #1429 Expose SERP cache TTL as a configurable environment variable 2026-03-30 20:03:54 +00:00

Closed #1428 Make LLM model configurable via MODEL environment variable 2026-03-30 20:03:50 +00:00

Closed #1427 Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-30 20:03:46 +00:00

Closed #1426 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 20:03:41 +00:00

Closed #1425 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 20:03:37 +00:00

Closed #1424 Persist async job state in PostgreSQL to survive API restarts 2026-03-30 20:03:32 +00:00

Closed #1423 Refactor get_db_client() to use a shared pooled DatabaseClient 2026-03-30 20:03:29 +00:00

Closed #1422 Replace plain-text database credentials in docker-compose.yml with env file or secrets 2026-03-30 20:03:25 +00:00

Closed #1421 Make CORS allowed origins configurable via environment variable 2026-03-30 20:03:22 +00:00

Closed #1420 Refuse startup with default JWT secret in non-development environments 2026-03-30 20:03:18 +00:00

Closed #1419 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 19:06:51 +00:00

Closed #1418 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 19:06:47 +00:00

Closed #1417 Add side-by-side patent portfolio comparison view 2026-03-30 19:06:42 +00:00

Closed #1416 Add PDF and CSV export for analysis reports 2026-03-30 19:06:24 +00:00

Closed #1415 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 19:05:42 +00:00

Closed #1414 Add pytest test job to Gitea Actions CI workflow 2026-03-30 19:05:37 +00:00

Closed #1413 Commit a frontend lockfile to ensure reproducible builds 2026-03-30 19:05:33 +00:00

Closed #1412 Add loading states and error messages to Batch and Analytics pages 2026-03-30 19:05:30 +00:00

Closed #1411 Fix analyze_single_patent to download PDF before attempting to read it 2026-03-30 19:05:24 +00:00

Closed #1410 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 19:05:20 +00:00

Closed #1409 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 19:05:18 +00:00

Closed #1408 Make LLM model configurable via MODEL environment variable 2026-03-30 19:05:14 +00:00

Closed #1407 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 19:05:11 +00:00

Closed #1406 Add JWT authentication tests covering registration, login, and protected routes 2026-03-30 19:05:06 +00:00

Closed #1405 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 19:05:01 +00:00

Closed #1404 Persist async job state in PostgreSQL so jobs survive API restarts 2026-03-30 19:04:57 +00:00

Closed #1403 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 19:04:53 +00:00

Closed #1402 Move database credentials out of docker-compose.yml into .env file 2026-03-30 19:04:49 +00:00

Closed #1401 Make CORS allowed origins configurable via environment variable 2026-03-30 19:04:46 +00:00

Closed #1400 Refuse to start when default JWT secret is used in non-dev environments 2026-03-30 19:04:41 +00:00

Closed #1399 Allow per-analysis LLM provider selection and output comparison (multi-model support) 2026-03-30 18:05:44 +00:00

Closed #1397 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 18:05:42 +00:00

Closed #1396 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 18:05:39 +00:00

Closed #1395 Add patent trend charts to Analytics page (filing frequency and technology categories over time) 2026-03-30 18:05:37 +00:00

Closed #1394 Add webhook/notification support for batch job completion and score changes 2026-03-30 18:05:35 +00:00

Closed #1393 Implement scheduled/recurring analysis with change alerting 2026-03-30 18:05:32 +00:00

Closed #1392 Add side-by-side patent portfolio comparison view for two companies 2026-03-30 18:05:30 +00:00

Closed #1391 Export analysis results as PDF or CSV from the dashboard 2026-03-30 18:05:28 +00:00

Closed #1398 Add dark mode support to the frontend using Tailwind dark variant 2026-03-30 18:05:25 +00:00

Closed #1390 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 18:05:12 +00:00

Closed #1389 Add pytest test job to Gitea Actions CI workflow 2026-03-30 18:05:08 +00:00

Closed #1388 Commit frontend package lockfile to ensure reproducible builds 2026-03-30 18:05:06 +00:00

Closed #1387 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-30 18:05:03 +00:00

Closed #1386 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 18:05:02 +00:00

Closed #1385 Document patents/ volume mount requirement and fix analyze_single_patent missing download step 2026-03-30 18:04:58 +00:00

Closed #1384 Expose SERP_CACHE_TTL_HOURS as a configurable environment variable 2026-03-30 18:04:55 +00:00

Closed #1383 Make LLM model selection configurable via MODEL environment variable 2026-03-30 18:04:52 +00:00

Closed #1382 Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-30 18:04:48 +00:00

Closed #1381 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 18:04:30 +00:00

Closed #1379 Persist async batch job state to PostgreSQL instead of in-memory dict 2026-03-30 18:04:26 +00:00

Closed #1378 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 18:04:22 +00:00

Closed #1380 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 18:04:18 +00:00

Closed #1377 Remove plain-text database credentials from docker-compose.yml 2026-03-30 18:04:16 +00:00

Closed #1376 Make CORS allowed-origins configurable via environment variable 2026-03-30 18:04:13 +00:00

Closed #1375 Add startup check to reject default JWT secret in non-dev environments 2026-03-30 18:04:10 +00:00

Closed #1360 Document patent PDF volume mount requirement for containerized deployments 2026-03-30 17:03:40 +00:00

Closed #1367 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 16:06:24 +00:00

Closed #1368 Side-by-side comparison view for two companies patent portfolios 2026-03-30 16:06:22 +00:00

Closed #1369 Scheduled/recurring analysis with alerting on significant changes 2026-03-30 16:06:20 +00:00

Closed #1370 Webhook/notification support for batch job completion and score changes 2026-03-30 16:06:18 +00:00

Closed #1371 Patent trend charts: filing frequency and technology category distribution over time 2026-03-30 16:06:16 +00:00

Closed #1372 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 16:06:13 +00:00

Closed #1373 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 16:06:11 +00:00

Closed #1357 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 16:06:04 +00:00

Closed #1358 Make LLM model configurable via MODEL environment variable 2026-03-30 16:06:01 +00:00

Closed #1359 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 16:05:58 +00:00

Closed #1361 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 16:05:57 +00:00

Closed #1362 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 16:05:54 +00:00

Closed #1363 Add loading and error states to Batch and Analytics pages 2026-03-30 16:05:52 +00:00

Closed #1364 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 16:05:49 +00:00

Closed #1365 Add pytest test job to CI workflow that gates the image build 2026-03-30 16:05:46 +00:00

Closed #1366 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 16:05:43 +00:00

Closed #1354 Persist job state to PostgreSQL so batch results survive API restarts 2026-03-30 16:05:34 +00:00

Closed #1356 Add JWT auth flow tests for registration, login, protected routes, and admin endpoints 2026-03-30 16:05:31 +00:00

Closed #1355 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 16:05:30 +00:00

Closed #1350 Refuse to start with default JWT secret in non-development environments 2026-03-30 16:05:27 +00:00

Closed #1351 Make CORS allowed origins configurable via environment variable 2026-03-30 16:05:24 +00:00

Closed #1352 Replace plaintext database credentials in docker-compose.yml with .env file reference 2026-03-30 16:05:23 +00:00

Closed #1353 Fix get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-30 16:05:20 +00:00

Closed #1324 Frontend: apply Tailwind dark mode variants across the dashboard 2026-03-30 15:03:46 +00:00

Closed #1349 Repo Manager: triage summary for 25 agent-ready issues (2026-03-30) 2026-03-30 14:22:03 +00:00

Closed #1345 Docs: document patent PDF volume mount requirement (and evaluate object storage path) 2026-03-30 14:07:54 +00:00

Closed #1332 Feature: patent trend charts on Analytics page (filing frequency and technology categories over time) 2026-03-30 14:06:50 +00:00

Closed #1327 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-30 14:06:47 +00:00

Closed #1328 Feature: side-by-side patent portfolio comparison view 2026-03-30 14:06:45 +00:00

Closed #1329 Feature: scheduled/recurring analysis with change alerts 2026-03-30 14:06:43 +00:00

Closed #1330 Feature: webhook/notification support for batch job completion and score changes 2026-03-30 14:06:41 +00:00

Closed #1331 Feature: multi-model support — let users select LLM provider per analysis 2026-03-30 14:06:38 +00:00

Closed #1334 Feature: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 14:06:37 +00:00

Closed #1333 Feature: cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-30 14:06:34 +00:00

Closed #1322 Frontend: add skeleton loaders and error states to Batch and Analytics pages 2026-03-30 14:06:31 +00:00

Closed #1325 CI: add pytest test job to Gitea Actions build.yaml that gates image builds 2026-03-30 14:06:28 +00:00

Closed #1326 CI: add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI 2026-03-30 14:06:25 +00:00

Closed #1341 Test: add JWT auth flow tests (registration, login, protected routes, token refresh, admin endpoints) 2026-03-30 14:06:24 +00:00

Closed #1340 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 14:06:21 +00:00

Closed #1339 Bug: persist async job state to PostgreSQL so job results survive API restarts 2026-03-30 14:06:19 +00:00

Closed #1338 Bug: fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-30 14:06:16 +00:00

Closed #1335 Security: refuse to start with default JWT secret in non-development environments 2026-03-30 14:06:15 +00:00

Closed #1336 Security: make CORS allowed origins configurable via environment variable 2026-03-30 14:06:12 +00:00

Closed #1337 Security: remove hardcoded database credentials from docker-compose.yml 2026-03-30 14:06:10 +00:00

Closed #1342 Refactor: replace print() calls in analyzer.py, serp_api.py, and llm.py with structured logging 2026-03-30 14:05:51 +00:00

Closed #1343 Config: make LLM model selection configurable via MODEL environment variable 2026-03-30 14:05:47 +00:00

Closed #1344 Config: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 14:05:43 +00:00

Closed #1346 Bug: analyze_single_patent silently fails if PDF is not already downloaded 2026-03-30 14:05:39 +00:00

Closed #1347 Bug: fix Patent.patent_id type annotation in types.py (int -> str) 2026-03-30 14:05:34 +00:00

Closed #1321 Backend: document patent PDF storage and volume mount requirements for containerized deployments 2026-03-30 12:05:28 +00:00

Closed #1320 Backend: fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 12:05:07 +00:00

Closed #1319 Backend: document or fix analyze_single_patent assuming PDF already exists on disk 2026-03-30 12:05:06 +00:00

Closed #1323 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 12:04:12 +00:00

Closed #1318 Backend: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 12:04:10 +00:00

Closed #1317 Backend: make LLM model configurable via MODEL environment variable 2026-03-30 12:04:08 +00:00

Closed #1316 Backend: replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 12:04:07 +00:00

Closed #1315 Test: add JWT authentication flow tests to test_api.py 2026-03-30 12:04:05 +00:00

Closed #1314 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 12:04:03 +00:00

Closed #1313 Fix: persist job state to PostgreSQL so async batch results survive API restarts 2026-03-30 12:04:01 +00:00

Closed #1312 Fix: share a single pooled DatabaseClient instead of creating one per request in auth.py 2026-03-30 12:04:00 +00:00

Closed #1311 Security: remove plaintext database credentials from docker-compose.yml 2026-03-30 12:03:57 +00:00

Closed #1310 Security: make CORS allowed origins configurable via environment variable 2026-03-30 12:03:55 +00:00

Closed #1309 Security: refuse to start with default JWT secret in non-development environments 2026-03-30 12:03:26 +00:00

Closed #1307 Support multi-model LLM selection per analysis (GPT-4o, Gemini, Claude) 2026-03-30 11:10:16 +00:00

Closed #1306 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 11:10:14 +00:00

Closed #1305 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 11:10:11 +00:00

Closed #1304 Add patent trend charts to Analytics page (filing frequency and technology categories over time) 2026-03-30 11:10:09 +00:00

Closed #1303 Add webhook/notification support for batch job completion and score changes 2026-03-30 11:10:06 +00:00

Closed #1302 Implement scheduled/recurring patent analysis with change alerting 2026-03-30 11:10:04 +00:00

Closed #1301 Add side-by-side patent portfolio comparison view 2026-03-30 11:10:01 +00:00

Closed #1300 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 11:10:00 +00:00

Closed #1308 Implement dark mode using Tailwind dark variant 2026-03-30 11:09:18 +00:00

Closed #1299 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 11:09:17 +00:00

Closed #1298 Add pytest test job to Gitea Actions CI workflow 2026-03-30 11:09:14 +00:00

Closed #1297 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 11:09:11 +00:00

Closed #1296 Add loading states and error messages to Batch and Analytics pages 2026-03-30 11:09:10 +00:00

Closed #1295 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 11:08:40 +00:00

Closed #1294 Document patent PDF volume mount requirement and integrate download step in analyze_single_patent 2026-03-30 11:08:37 +00:00

Closed #1293 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 11:08:36 +00:00

Closed #1292 Make LLM model selection configurable via MODEL environment variable 2026-03-30 11:08:33 +00:00

Closed #1291 Replace print() calls with structured logging in analyzer, serp_api, and llm modules 2026-03-30 11:08:31 +00:00

Closed #1290 Add JWT authentication tests covering full auth flow 2026-03-30 11:08:04 +00:00

Closed #1289 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 11:08:02 +00:00

Closed #1288 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-30 11:07:59 +00:00

Closed #1287 Refactor get_db_client() in auth.py to use shared connection pool 2026-03-30 11:07:23 +00:00

Closed #1286 Remove plaintext database credentials from docker-compose.yml 2026-03-30 11:07:21 +00:00

Closed #1285 Make CORS allowed origins configurable via environment variable 2026-03-30 11:07:19 +00:00

Closed #1284 Enforce non-default JWT secret on startup 2026-03-30 11:07:16 +00:00

Closed #1283 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 10:06:26 +00:00

Closed #1282 Add patent trend charts to the Analytics page (filing frequency and category distribution) 2026-03-30 10:06:25 +00:00

Closed #1281 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-30 10:06:23 +00:00

Closed #1280 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 10:06:22 +00:00

Closed #1279 Add pytest test job to Gitea Actions CI workflow that gates image build 2026-03-30 10:06:21 +00:00

Closed #1278 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 10:05:47 +00:00

Closed #1277 Add loading and error states to Batch and Analytics pages 2026-03-30 10:05:46 +00:00

Closed #1276 Integrate PDF download step into analyze_single_patent or document the prerequisite clearly 2026-03-30 10:05:44 +00:00

Closed #1275 Fix Patent.patent_id type annotation from int to str 2026-03-30 10:05:43 +00:00

Closed #1274 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 10:05:42 +00:00

Closed #1272 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 10:05:40 +00:00

Closed #1273 Make LLM model configurable via MODEL environment variable 2026-03-30 10:05:40 +00:00

Closed #1270 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 10:05:00 +00:00

Closed #1271 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 10:05:00 +00:00

Closed #1269 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-30 10:04:58 +00:00

Closed #1268 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 10:04:55 +00:00

Closed #1267 Replace hardcoded database credentials in docker-compose.yml with .env file 2026-03-30 10:04:23 +00:00

Closed #1266 Make CORS allowed origins configurable via environment variable 2026-03-30 10:04:14 +00:00

Closed #1265 Refuse to start with default JWT secret in non-development environments 2026-03-30 10:04:05 +00:00

Closed #1239 Refuse startup with default JWT secret in non-dev environments 2026-03-30 09:08:35 +00:00

Closed #1258 Add patent trend charts to the Analytics page (filing frequency and category distribution) 2026-03-30 09:08:33 +00:00

Closed #1259 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 09:08:31 +00:00

Closed #1250 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 09:08:29 +00:00

Closed #1251 Add loading states and error messages to Batch and Analytics pages 2026-03-30 09:08:26 +00:00

Closed #1252 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 09:08:25 +00:00

Closed #1253 Add pytest test stage to Gitea Actions CI workflow 2026-03-30 09:08:23 +00:00

Closed #1254 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 09:08:20 +00:00

Closed #1255 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 09:08:19 +00:00

Closed #1256 Add side-by-side patent portfolio comparison view 2026-03-30 09:08:16 +00:00

Closed #1257 Add webhook/notification support for job completion and score change alerts 2026-03-30 09:08:13 +00:00

Closed #1249 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 09:08:11 +00:00

Closed #1248 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 09:08:08 +00:00

Closed #1243 Persist async job state to PostgreSQL so jobs survive API restarts 2026-03-30 09:08:06 +00:00

Closed #1242 Fix DatabaseClient connection leak in auth.py get_db_client() 2026-03-30 09:08:04 +00:00

Closed #1241 Remove hardcoded database credentials from docker-compose.yml 2026-03-30 09:08:01 +00:00

Closed #1240 Make CORS allowed origins configurable via environment variable 2026-03-30 09:07:56 +00:00

Closed #1247 Make LLM model selectable via MODEL environment variable 2026-03-30 09:07:54 +00:00

Closed #1246 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 09:07:52 +00:00

Closed #1245 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 09:07:49 +00:00

Closed #1244 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 09:07:48 +00:00

Closed #1264 Add multi-model support: let users choose LLM provider per analysis 2026-03-30 09:07:45 +00:00

Closed #1261 Add Tailwind dark mode support to the frontend 2026-03-30 09:07:43 +00:00

Closed #1260 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 09:07:40 +00:00

Closed #1263 Add scheduled/recurring analysis with change alerting 2026-03-30 09:07:37 +00:00

Closed #1262 Document patent PDF volume mount or add S3/MinIO storage backend 2026-03-30 09:07:35 +00:00

Closed #1237 Implement dark mode using Tailwind dark variant 2026-03-30 07:09:29 +00:00

Closed #1238 Add per-analysis multi-model support: let users choose LLM provider in the UI 2026-03-30 07:08:47 +00:00

Closed #1236 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 07:08:46 +00:00

Closed #1235 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 07:08:44 +00:00

Closed #1234 Add patent trend charts: filing frequency and technology category distribution over time 2026-03-30 07:08:41 +00:00

Closed #1233 Add webhook/notification support for batch job completion and score changes 2026-03-30 07:08:39 +00:00

Closed #1232 Implement scheduled/recurring patent analysis with alerts on significant changes 2026-03-30 07:08:35 +00:00

Closed #1231 Add side-by-side comparison view for two companies patent portfolios 2026-03-30 07:08:34 +00:00

Closed #1230 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-30 07:08:32 +00:00

Closed #1226 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-30 07:08:29 +00:00

Closed #1223 Document patents/ directory volume mount requirement for containerised deployments 2026-03-30 07:08:26 +00:00

Closed #1219 Add auth test coverage: JWT registration, login, protected routes, and admin endpoints 2026-03-30 07:06:29 +00:00

Closed #1228 Add pytest test stage to Gitea Actions build.yaml that gates the image build 2026-03-30 07:05:36 +00:00

Closed #1229 Add ruff (Python) and tsc --noEmit (TypeScript) linting/type-check jobs to CI 2026-03-30 07:05:31 +00:00

Closed #1227 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 07:05:28 +00:00

Closed #1224 Fix analyze_single_patent to download PDF before reading, or document prerequisite clearly 2026-03-30 07:05:27 +00:00

Closed #1225 Fix Patent.patent_id type annotation in types.py from int to str 2026-03-30 07:05:24 +00:00

Closed #1220 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 07:05:21 +00:00

Closed #1221 Make LLM model configurable via MODEL environment variable in llm.py 2026-03-30 07:05:16 +00:00

Closed #1222 Expose SERP_CACHE_TTL_HOURS as an environment variable in config.py 2026-03-30 07:05:15 +00:00

Closed #1218 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-30 07:04:46 +00:00

Closed #1217 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-30 07:04:45 +00:00

Closed #1216 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-30 07:04:43 +00:00

Closed #1213 Add startup check to refuse default JWT secret in non-dev environments 2026-03-30 07:04:40 +00:00

Closed #1214 Make CORS allowed origins configurable via environment variable 2026-03-30 07:04:37 +00:00

Closed #1215 Remove hardcoded PostgreSQL credentials from docker-compose.yml 2026-03-30 07:04:35 +00:00

Closed #1188 Add webhook/notification support for batch job completion and innovation score changes 2026-03-30 05:05:13 +00:00

Closed #1212 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 05:05:11 +00:00

Closed #1211 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 05:05:08 +00:00

Closed #1210 Add export to PDF/CSV for analysis reports from the dashboard 2026-03-30 05:05:06 +00:00

Closed #1209 Document patent PDF volume mount requirement and add S3/MinIO storage option 2026-03-30 05:05:04 +00:00

Closed #1208 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 05:05:01 +00:00

Closed #1207 Add pytest test job to Gitea Actions CI workflow 2026-03-30 05:05:00 +00:00

Closed #1206 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 05:04:58 +00:00

Closed #1205 Add loading skeletons and error states to Batch and Analytics pages 2026-03-30 05:04:55 +00:00

Closed #1204 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 05:04:52 +00:00

Closed #1203 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 05:04:50 +00:00

Closed #1202 Expose SERP cache TTL as a configurable environment variable 2026-03-30 05:04:48 +00:00

Closed #1201 Make LLM model configurable via MODEL environment variable 2026-03-30 05:04:45 +00:00

Closed #1200 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 05:04:42 +00:00

Closed #1199 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-30 05:04:40 +00:00

Closed #1198 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 05:04:37 +00:00

Closed #1197 Persist async job state in PostgreSQL so results survive API restarts 2026-03-30 05:04:34 +00:00

Closed #1196 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 05:04:33 +00:00

Closed #1195 Remove hardcoded database credentials from docker-compose.yml 2026-03-30 05:04:31 +00:00

Closed #1194 Make CORS allowed origins configurable via environment variable 2026-03-30 05:04:27 +00:00

Closed #1193 Refuse to start with default JWT secret in non-development environments 2026-03-30 05:04:25 +00:00

Closed #1181 Add dark mode support using Tailwind dark variant 2026-03-30 03:09:42 +00:00

Closed #1180 Add loading states and error messages to Batch and Analytics pages 2026-03-30 03:09:13 +00:00

Closed #1171 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-30 03:08:48 +00:00

Closed #1192 Add multi-model support to allow per-analysis LLM provider selection 2026-03-30 03:08:46 +00:00

Closed #1191 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 03:08:44 +00:00

Closed #1190 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 03:08:43 +00:00

Closed #1189 Add patent filing trend charts to the Analytics page 2026-03-30 03:08:40 +00:00

Closed #1187 Add scheduled/recurring analysis for tracked companies 2026-03-30 03:08:38 +00:00

Closed #1186 Add side-by-side patent portfolio comparison view 2026-03-30 03:08:36 +00:00

Closed #1185 Export analysis results as PDF or CSV from the dashboard 2026-03-30 03:08:33 +00:00

Closed #1184 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 03:08:31 +00:00

Closed #1183 Add pytest test job to Gitea Actions CI workflow 2026-03-30 03:08:29 +00:00

Closed #1182 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 03:08:27 +00:00

Closed #1179 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 03:08:25 +00:00

Closed #1178 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-30 03:08:22 +00:00

Closed #1177 Document patent PDF volume mount requirement and evaluate object storage option 2026-03-30 03:08:20 +00:00

Closed #1176 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 03:08:17 +00:00

Closed #1175 Make LLM model configurable via MODEL environment variable 2026-03-30 03:08:16 +00:00

Closed #1174 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 03:08:14 +00:00

Closed #1173 Add JWT auth tests covering registration, login, protected routes, and admin endpoints 2026-03-30 03:08:11 +00:00

Closed #1172 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 03:08:10 +00:00

Closed #1170 Fix get_db_client() in auth.py to use a shared connection pool 2026-03-30 03:08:07 +00:00

Closed #1169 Remove hardcoded database credentials from docker-compose.yml 2026-03-30 03:08:05 +00:00

Closed #1168 Make CORS allowed origins configurable via environment variable 2026-03-30 03:08:03 +00:00

Closed #1167 Refuse startup with default JWT secret in non-development environments 2026-03-30 03:08:00 +00:00

Closed #1166 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 02:08:43 +00:00

Closed #1165 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 02:08:42 +00:00

Closed #1164 Add patent trend charts to the Analytics page 2026-03-30 02:08:39 +00:00

Closed #1163 Add per-analysis LLM provider selection (GPT-4o, Gemini, Claude) 2026-03-30 02:08:37 +00:00

Closed #1162 Add webhook/notification support for batch job completion and score changes 2026-03-30 02:08:34 +00:00

Closed #1161 Implement scheduled/recurring analysis for tracked companies 2026-03-30 02:08:32 +00:00

Closed #1160 Add side-by-side patent portfolio comparison view 2026-03-30 02:08:30 +00:00

Closed #1159 Export analysis results as PDF or CSV from the dashboard 2026-03-30 02:08:28 +00:00

Closed #1158 Add Tailwind dark mode variant to the frontend 2026-03-30 02:08:26 +00:00

Closed #1157 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 02:08:24 +00:00

Closed #1156 Document or implement patent PDF storage for containerized deployments 2026-03-30 02:08:21 +00:00

Closed #1155 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 02:08:20 +00:00

Closed #1154 Add loading states and error messages to Batch and Analytics pages 2026-03-30 02:08:18 +00:00

Closed #1153 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 02:08:15 +00:00

Closed #1152 Make LLM model and SERP cache TTL configurable via environment variables 2026-03-30 02:08:14 +00:00

Closed #1151 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 02:08:11 +00:00

Closed #1150 Add ruff linting and tsc type-checking to CI 2026-03-30 02:08:09 +00:00

Closed #1149 Add pytest job to CI workflow that gates image builds 2026-03-30 02:08:06 +00:00

Closed #1148 Add JWT flow tests covering registration, login, protected routes, and admin endpoints 2026-03-30 02:08:04 +00:00

Closed #1147 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 02:08:03 +00:00

Closed #1146 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-30 02:08:00 +00:00

Closed #1145 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-30 02:07:56 +00:00

Closed #1144 Move database credentials out of docker-compose.yml into .env 2026-03-30 02:07:54 +00:00

Closed #1143 Make CORS allowed origins configurable via environment variable 2026-03-30 02:07:52 +00:00

Closed #1142 Refuse startup with default JWT secret in non-development environments 2026-03-30 02:07:50 +00:00

Closed #1139 Add patent trend charts to Analytics page (filing frequency and technology category distribution) 2026-03-29 23:07:58 +00:00

Closed #1138 Add per-analysis LLM provider selection (multi-model support) 2026-03-29 23:07:56 +00:00

Closed #1135 Add side-by-side patent portfolio comparison view for two companies 2026-03-29 23:07:53 +00:00

Closed #1134 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-29 23:07:50 +00:00

Closed #1137 Add webhook/notification support for batch job completion and significant score changes 2026-03-29 23:07:48 +00:00

Closed #1136 Implement scheduled/recurring analysis for tracked companies with change alerts 2026-03-29 23:07:45 +00:00

Closed #1140 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 23:07:44 +00:00

Closed #1141 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 23:07:42 +00:00

Closed #1131 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 23:07:19 +00:00

Closed #1130 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-29 23:07:17 +00:00

Closed #1133 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 23:07:14 +00:00

Closed #1132 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-29 23:07:12 +00:00

Closed #1126 Make LLM model configurable via MODEL environment variable 2026-03-29 23:07:10 +00:00

Closed #1127 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 23:07:08 +00:00

Closed #1125 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 23:07:05 +00:00

Closed #1128 Fix analyze_single_patent to download PDF before reading from disk, or document prerequisite 2026-03-29 23:07:02 +00:00

Closed #1129 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 23:07:01 +00:00

Closed #1124 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 23:06:35 +00:00

Closed #1122 Persist async batch job state to PostgreSQL so it survives API restarts 2026-03-29 23:06:32 +00:00

Closed #1123 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 23:06:29 +00:00

Closed #1120 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 23:06:27 +00:00

Closed #1121 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 23:06:25 +00:00

Closed #1119 Make CORS allowed origins configurable via environment variable 2026-03-29 23:06:22 +00:00

Closed #1118 Add startup check to reject default JWT secret in non-dev environments 2026-03-29 23:06:20 +00:00

Closed #1111 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 22:06:33 +00:00

Closed #1112 Add side-by-side patent portfolio comparison view 2026-03-29 22:06:33 +00:00

Closed #1113 Add scheduled/recurring analysis with change alerting 2026-03-29 22:06:32 +00:00

Closed #1114 Add webhook/notification support for batch job completion and score changes 2026-03-29 22:06:32 +00:00

Closed #1115 Add patent trend charts (filing frequency and tech category distribution) to Analytics page 2026-03-29 22:06:32 +00:00

Closed #1116 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 22:06:32 +00:00

Closed #1097 Refactor get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 22:05:44 +00:00

Closed #1095 Make CORS allowed origins configurable via environment variable 2026-03-29 22:05:42 +00:00

Closed #1104 Document patent PDF volume mount requirement and consider object storage path 2026-03-29 22:05:42 +00:00

Closed #1109 Add pytest test job to Gitea Actions CI workflow 2026-03-29 22:05:42 +00:00

Closed #1110 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 22:05:36 +00:00

Closed #1105 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 22:05:34 +00:00

Closed #1102 Make LLM model configurable via MODEL environment variable 2026-03-29 22:05:32 +00:00

Closed #1117 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 22:05:31 +00:00

Closed #1106 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 22:05:30 +00:00

Closed #1099 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 22:05:29 +00:00

Closed #1101 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 22:05:29 +00:00

Closed #1103 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 22:05:29 +00:00

Closed #1100 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 22:05:28 +00:00

Closed #1096 Move database credentials out of docker-compose.yml into .env file 2026-03-29 22:05:27 +00:00

Closed #1094 Refuse startup with default JWT secret in non-development environments 2026-03-29 22:05:26 +00:00

Closed #1098 Persist async job state in PostgreSQL so it survives API restarts 2026-03-29 22:05:26 +00:00

Closed #1107 Add loading and error states to Batch and Analytics frontend pages 2026-03-29 22:05:26 +00:00

Closed #1108 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 22:05:26 +00:00

Closed #1092 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 21:04:46 +00:00

Closed #1093 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 21:04:44 +00:00

Closed #1090 Add multi-model support to let users choose LLM provider per analysis 2026-03-29 21:04:42 +00:00

Closed #1091 Add patent trend charts to Analytics page (filing frequency and technology distribution) 2026-03-29 21:04:39 +00:00

Closed #1074 Add JWT auth tests covering registration, login, protected routes, and admin endpoints 2026-03-29 21:04:37 +00:00

Closed #1075 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 21:04:35 +00:00

Closed #1076 Make LLM model configurable via MODEL environment variable 2026-03-29 21:04:32 +00:00

Closed #1077 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 21:04:30 +00:00

Closed #1070 Replace hardcoded DB credentials in docker-compose.yml with .env file references 2026-03-29 21:04:28 +00:00

Closed #1071 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 21:04:26 +00:00

Closed #1072 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 21:04:23 +00:00

Closed #1073 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-29 21:04:21 +00:00

Closed #1078 Document patent PDF volume mount requirement and evaluate object storage (S3/MinIO) 2026-03-29 21:04:19 +00:00

Closed #1079 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 21:04:16 +00:00

Closed #1089 Add webhook/notification support for batch job completion and score change alerts 2026-03-29 21:04:15 +00:00

Closed #1088 Add scheduled/recurring analysis with change alerting 2026-03-29 21:04:12 +00:00

Closed #1085 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 21:04:09 +00:00

Closed #1084 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-29 21:04:07 +00:00

Closed #1087 Add side-by-side patent portfolio comparison view 2026-03-29 21:04:06 +00:00

Closed #1086 Add PDF and CSV export for analysis reports from the dashboard 2026-03-29 21:04:03 +00:00

Closed #1081 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-29 21:04:00 +00:00

Closed #1080 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 21:03:58 +00:00

Closed #1083 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 21:03:56 +00:00

Closed #1082 Add dark mode support using Tailwind dark variant 2026-03-29 21:03:53 +00:00

Closed #1069 Make CORS allowed origins configurable via environment variable 2026-03-29 21:03:51 +00:00

Closed #1068 Add startup check to reject default JWT secret in non-dev environments 2026-03-29 21:03:13 +00:00

Closed #1052 Document patent PDF volume mount requirement and consider object storage for containerized deployments 2026-03-29 20:07:48 +00:00

Closed #1067 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 20:07:23 +00:00

Closed #1066 Implement cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-29 20:07:20 +00:00

Closed #1065 Add patent trend charts to the Analytics page (filing frequency and technology category over time) 2026-03-29 20:07:18 +00:00

Closed #1064 Support multiple LLM providers per analysis with per-request model selection 2026-03-29 20:07:16 +00:00

Closed #1063 Add webhook/notification support for job completion and score change events 2026-03-29 20:07:14 +00:00

Closed #1062 Implement scheduled/recurring analysis with change alerts 2026-03-29 20:07:11 +00:00

Closed #1061 Add side-by-side comparison view for two companies patent portfolios 2026-03-29 20:07:09 +00:00

Closed #1060 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 20:07:07 +00:00

Closed #1059 Add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI 2026-03-29 20:06:50 +00:00

Closed #1058 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-29 20:06:48 +00:00

Closed #1057 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 20:06:46 +00:00

Closed #1056 Implement dark mode using Tailwind dark variant across the frontend 2026-03-29 20:06:44 +00:00

Closed #1055 Add loading skeleton and error states to Batch and Analytics pages 2026-03-29 20:06:42 +00:00

Closed #1054 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 20:06:27 +00:00

Closed #1053 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 20:06:26 +00:00

Closed #1051 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 20:06:23 +00:00

Closed #1050 Make LLM model configurable via MODEL environment variable 2026-03-29 20:06:21 +00:00

Closed #1049 Replace print() calls in analyzer.py, serp_api.py, and llm.py with structured logging 2026-03-29 20:06:19 +00:00

Closed #1048 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-29 20:06:03 +00:00

Closed #1047 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 20:06:00 +00:00

Closed #1046 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 20:05:58 +00:00

Closed #1045 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 20:05:56 +00:00

Closed #1044 Move database credentials out of docker-compose.yml and into .env 2026-03-29 20:05:40 +00:00

Closed #1043 Make CORS allowed origins configurable via environment variable 2026-03-29 20:05:38 +00:00

Closed #1042 Refuse to start with default JWT secret in non-development environments 2026-03-29 20:05:36 +00:00

Closed #1041 Multi-model support: let users choose LLM provider per analysis and compare outputs 2026-03-29 18:04:41 +00:00

Closed #1038 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 18:04:37 +00:00

Closed #1037 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 18:04:34 +00:00

Closed #1036 Add patent trend charts to Analytics page (filing frequency and category distribution) 2026-03-29 18:04:31 +00:00

Closed #1035 Add webhook/notification support for batch job completion and score changes 2026-03-29 18:04:28 +00:00

Closed #1034 Implement scheduled/recurring analysis with alerts on significant changes 2026-03-29 18:04:25 +00:00

Closed #1033 Add side-by-side patent portfolio comparison view for two companies 2026-03-29 18:04:22 +00:00

Closed #1032 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 18:04:19 +00:00

Closed #1039 Document or migrate patent PDF storage to object storage (S3/MinIO) 2026-03-29 18:04:16 +00:00

Closed #1031 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 18:04:13 +00:00

Closed #1030 Add pytest test job to CI workflow that gates image builds 2026-03-29 18:04:09 +00:00

Closed #1040 Add dark mode support to the frontend (Tailwind dark variant) 2026-03-29 18:04:06 +00:00

Closed #1029 Commit a frontend lockfile to ensure reproducible builds 2026-03-29 18:04:03 +00:00

Closed #1028 Add loading and error states to Batch and Analytics pages 2026-03-29 18:04:00 +00:00

Closed #1027 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 18:03:57 +00:00

Closed #1026 Fix analyze_single_patent: download PDF before attempting local file read 2026-03-29 18:03:54 +00:00

Closed #1025 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 18:03:51 +00:00

Closed #1024 Make LLM model configurable via MODEL environment variable 2026-03-29 18:03:48 +00:00

Closed #1023 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 18:03:45 +00:00

Closed #1022 Add JWT flow integration tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 18:03:41 +00:00

Closed #1021 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 18:03:38 +00:00

Closed #1020 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 18:03:34 +00:00

Closed #1019 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-29 18:03:30 +00:00

Closed #1018 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 18:03:27 +00:00

Closed #1017 Make CORS allowed origins configurable via environment variable 2026-03-29 18:03:19 +00:00

Closed #1016 Refuse startup with default JWT secret in non-development environments 2026-03-29 18:03:11 +00:00

Closed #1013 Add multi-model support: let users choose LLM provider per analysis 2026-03-29 17:03:28 +00:00

Closed #1014 Add dark mode support using Tailwind dark variant 2026-03-29 16:09:42 +00:00

Closed #1011 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 16:08:48 +00:00

Closed #1012 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 16:07:27 +00:00

Closed #1010 Add patent filing trend charts to the Analytics page 2026-03-29 16:07:20 +00:00

Closed #1009 Add webhook/notification support for job completion and score changes 2026-03-29 16:07:18 +00:00

Closed #1008 Implement scheduled/recurring analysis with change alerts 2026-03-29 16:07:17 +00:00

Closed #1007 Add side-by-side patent portfolio comparison view 2026-03-29 16:07:15 +00:00

Closed #1006 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 16:07:13 +00:00

Closed #1002 Add loading and error states to Batch and Analytics pages 2026-03-29 16:05:46 +00:00

Closed #1000 Document patent PDF volume mount and integrate download step in analyze_single_patent 2026-03-29 16:05:35 +00:00

Closed #1005 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 16:05:25 +00:00

Closed #1004 Add pytest test stage to Gitea Actions build workflow 2026-03-29 16:05:22 +00:00

Closed #1003 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-29 16:05:19 +00:00

Closed #1001 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 16:05:17 +00:00

Closed #999 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 16:05:15 +00:00

Closed #998 Make LLM model configurable via MODEL environment variable 2026-03-29 16:05:13 +00:00

Closed #997 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 16:05:11 +00:00

Closed #996 Add JWT flow and admin endpoint tests to test_api.py 2026-03-29 16:05:08 +00:00

Closed #995 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 16:05:07 +00:00

Closed #994 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-29 16:05:04 +00:00

Closed #993 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-29 16:05:01 +00:00

Closed #992 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 16:04:59 +00:00

Closed #991 Make CORS allowed origins configurable via environment variable 2026-03-29 16:04:56 +00:00

Closed #990 Refuse to start with default JWT secret in non-dev environments 2026-03-29 16:04:54 +00:00

Closed #989 Add multi-model support: let users choose LLM provider per analysis 2026-03-29 13:06:31 +00:00

Closed #988 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 13:06:29 +00:00

Closed #987 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 13:06:27 +00:00

Closed #986 Add patent trend charts to the Analytics page 2026-03-29 13:06:25 +00:00

Closed #985 Add webhook/notification support for batch job completion and score changes 2026-03-29 13:06:22 +00:00

Closed #984 Add scheduled/recurring analysis with change alerts 2026-03-29 13:06:20 +00:00

Closed #983 Add side-by-side patent portfolio comparison view 2026-03-29 13:06:18 +00:00

Closed #982 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 13:06:16 +00:00

Closed #981 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 13:06:14 +00:00

Closed #980 Add pytest test job to Gitea Actions CI workflow 2026-03-29 13:06:11 +00:00

Closed #979 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 13:06:08 +00:00

Closed #978 Add dark mode support using Tailwind dark variant 2026-03-29 13:06:06 +00:00

Closed #977 Add loading skeletons and error states to Batch and Analytics pages 2026-03-29 13:06:04 +00:00

Closed #976 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 13:06:01 +00:00

Closed #975 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 13:05:59 +00:00

Closed #974 Document patents/ volume mount requirement and evaluate object storage for PDF storage 2026-03-29 13:05:57 +00:00

Closed #973 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 13:05:55 +00:00

Closed #972 Make LLM model configurable via MODEL environment variable 2026-03-29 13:05:53 +00:00

Closed #971 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 13:05:51 +00:00

Closed #970 Add auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 13:05:49 +00:00

Closed #969 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 13:05:47 +00:00

Closed #968 Persist async job state in PostgreSQL so it survives API restarts 2026-03-29 13:05:43 +00:00

Closed #967 Refactor get_db_client() to use a shared pooled DatabaseClient 2026-03-29 13:05:41 +00:00

Closed #966 Move database credentials out of docker-compose.yml into .env 2026-03-29 13:05:39 +00:00

Closed #965 Make CORS allowed origins configurable via environment variable 2026-03-29 13:05:37 +00:00

Closed #964 Refuse startup with default JWT secret in non-dev environments 2026-03-29 13:05:36 +00:00

Closed #963 Multi-model support: let users choose LLM provider per analysis 2026-03-29 10:05:11 +00:00

Closed #962 Add scheduled/recurring analysis for tracked companies 2026-03-29 10:05:08 +00:00

Closed #961 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 10:05:06 +00:00

Closed #960 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 10:05:04 +00:00

Closed #959 Add patent filing trend charts to the Analytics page 2026-03-29 10:05:02 +00:00

Closed #958 Add webhook/notification support for job completion and score change alerts 2026-03-29 10:04:59 +00:00

Closed #957 Add side-by-side comparison view for two companies patent portfolios 2026-03-29 10:04:57 +00:00

Closed #956 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 10:04:55 +00:00

Closed #955 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 10:04:38 +00:00

Closed #954 Add pytest test job to Gitea Actions CI workflow 2026-03-29 10:04:37 +00:00

Closed #953 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-29 10:04:35 +00:00

Closed #952 Add loading and error states to Batch and Analytics frontend pages 2026-03-29 10:04:32 +00:00

Closed #951 Document or fix analyze_single_patent: PDF must be downloaded before analysis 2026-03-29 10:04:31 +00:00

Closed #950 Fix Patent.patent_id type annotation: str not int 2026-03-29 10:04:28 +00:00

Closed #949 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 10:04:25 +00:00

Closed #948 Make LLM model configurable via MODEL environment variable 2026-03-29 10:04:24 +00:00

Closed #947 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 10:04:21 +00:00

Closed #946 Add JWT auth tests: registration, login, protected routes, and admin endpoints 2026-03-29 10:04:00 +00:00

Closed #945 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 10:03:58 +00:00

Closed #944 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-29 10:03:56 +00:00

Closed #943 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-29 10:03:54 +00:00

Closed #942 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 10:03:37 +00:00

Closed #941 Make CORS allowed origins configurable via environment variable 2026-03-29 10:03:35 +00:00

Closed #940 Refuse to start with default JWT secret in non-development environments 2026-03-29 10:03:33 +00:00

Closed #921 Add Tailwind dark mode support to the frontend 2026-03-29 09:03:52 +00:00

Closed #939 Add ruff linting and tsc type-checking to CI 2026-03-29 09:03:32 +00:00

Closed #938 Add pytest test stage to Gitea Actions CI workflow 2026-03-29 09:03:31 +00:00

Closed #937 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 09:03:29 +00:00

Closed #935 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 09:03:28 +00:00

Closed #936 Add loading states and error messages to Batch and Analytics pages 2026-03-29 09:03:28 +00:00

Closed #934 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-29 09:03:26 +00:00

Closed #933 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 09:03:25 +00:00

Closed #931 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 09:03:22 +00:00

Closed #932 Make LLM model selection configurable via MODEL environment variable 2026-03-29 09:03:22 +00:00

Closed #930 Add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-29 09:03:21 +00:00

Closed #929 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 09:03:20 +00:00

Closed #928 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-29 09:03:19 +00:00

Closed #927 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 09:03:18 +00:00

Closed #926 Replace hardcoded DB credentials in docker-compose.yml with .env file reference 2026-03-29 09:03:16 +00:00

Closed #925 Make CORS allowed origins configurable via environment variable 2026-03-29 09:03:15 +00:00

Closed #924 Add startup check to reject default JWT secret in non-dev environments 2026-03-29 09:03:14 +00:00

Closed #923 Add per-analysis LLM provider selection and output comparison (multi-model support) 2026-03-29 08:05:35 +00:00

Closed #922 Document or migrate patent PDF storage to a volume mount or object storage 2026-03-29 08:05:34 +00:00

Closed #920 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 08:05:33 +00:00

Closed #919 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 08:05:32 +00:00

Closed #917 Add webhook/notification support for batch job completion and score change alerts 2026-03-29 08:05:30 +00:00

Closed #918 Add patent filing frequency and technology category trend charts to Analytics page 2026-03-29 08:05:30 +00:00

Closed #916 Add scheduled/recurring analysis with alerting on significant changes 2026-03-29 08:05:29 +00:00

Closed #915 Add side-by-side patent portfolio comparison view for two companies 2026-03-29 08:05:27 +00:00

Closed #914 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 08:05:26 +00:00

Closed #912 Add pytest test job to Gitea Actions CI workflow to gate image builds 2026-03-29 08:05:25 +00:00

Closed #913 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 08:05:25 +00:00

Closed #911 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 08:05:23 +00:00

Closed #910 Add loading states and user-friendly error messages to Batch and Analytics pages 2026-03-29 08:05:22 +00:00

Closed #909 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 08:05:21 +00:00

Closed #908 Fix analyze_single_patent to download PDF before attempting to read from disk 2026-03-29 08:05:19 +00:00

Closed #907 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 08:05:18 +00:00

Closed #906 Make LLM model name configurable via MODEL environment variable 2026-03-29 08:05:17 +00:00

Closed #905 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 08:05:16 +00:00

Closed #904 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 08:05:14 +00:00

Closed #903 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 08:05:13 +00:00

Closed #902 Persist async job state in PostgreSQL so job status survives API restarts 2026-03-29 08:05:12 +00:00

Closed #901 Fix get_db_client() in auth.py to reuse a shared connection pool 2026-03-29 08:05:11 +00:00

Closed #900 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 08:05:10 +00:00

Closed #898 Refuse startup with default JWT secret in non-development environments 2026-03-29 08:05:09 +00:00

Closed #899 Make CORS allowed origins configurable via environment variable 2026-03-29 08:05:09 +00:00

Closed #888 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 06:03:46 +00:00

Closed #889 CI: add pytest test job to Gitea Actions build.yaml that gates the image build 2026-03-29 06:03:44 +00:00

Closed #880 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 06:03:42 +00:00

Closed #881 Test: add JWT authentication flow tests (registration, login, protected routes, token refresh, admin endpoints) 2026-03-29 06:03:40 +00:00

Closed #882 Refactor: replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 06:03:38 +00:00

Closed #883 Config: make LLM model configurable via MODEL environment variable 2026-03-29 06:03:36 +00:00

Closed #884 Config: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 06:03:34 +00:00

Closed #885 Fix: integrate PDF download step into analyze_single_patent or document the prerequisite 2026-03-29 06:03:32 +00:00

Closed #886 Fix: correct Patent.patent_id type annotation from int to str in types.py 2026-03-29 06:03:30 +00:00

Closed #887 Frontend: add loading skeletons and error states to Batch and Analytics pages 2026-03-29 06:03:28 +00:00

Closed #879 Fix: persist job state in PostgreSQL so batch results survive API restarts 2026-03-29 06:03:26 +00:00

Closed #878 Fix: share a single pooled DatabaseClient instead of creating one per auth call 2026-03-29 06:03:24 +00:00

Closed #875 Security: refuse to start with default JWT secret in non-dev environments 2026-03-29 06:03:22 +00:00

Closed #877 Security: remove plaintext database credentials from docker-compose.yml 2026-03-29 06:03:20 +00:00

Closed #876 Security: make CORS allowed origins configurable via environment variable 2026-03-29 06:03:18 +00:00

Closed #893 Feature: scheduled/recurring patent analysis with change alerts 2026-03-29 06:03:16 +00:00

Closed #892 Feature: side-by-side comparison view for two companies patent portfolios 2026-03-29 06:03:14 +00:00

Closed #891 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-29 06:03:12 +00:00

Closed #890 CI: add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI pipeline 2026-03-29 06:03:10 +00:00

Closed #897 Feature: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 06:03:08 +00:00

Closed #896 Feature: cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-29 06:03:06 +00:00

Closed #895 Feature: patent trend charts on Analytics page (filing frequency, technology category distribution) 2026-03-29 06:03:03 +00:00

Closed #894 Feature: webhook and notification support for completed batch jobs and score changes 2026-03-29 06:03:02 +00:00

Closed #859 Document patent PDF volume mount requirement for containerized deployments 2026-03-29 05:06:46 +00:00

Closed #874 Add multi-model support: let users choose LLM provider per analysis 2026-03-29 05:06:10 +00:00

Closed #873 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 05:06:08 +00:00

Closed #872 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 05:06:05 +00:00

Closed #871 Add patent trend charts to the Analytics page 2026-03-29 05:06:03 +00:00

Closed #870 Add webhook/notification support for batch job completion and score changes 2026-03-29 05:06:02 +00:00

Closed #869 Add scheduled/recurring analysis with change alerting 2026-03-29 05:06:00 +00:00

Closed #868 Add side-by-side patent portfolio comparison view 2026-03-29 05:05:58 +00:00

Closed #867 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 05:05:55 +00:00

Closed #866 Add dark mode support to the React frontend using Tailwind dark variant 2026-03-29 05:05:54 +00:00

Closed #865 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 05:05:52 +00:00

Closed #864 Add pytest test job to Gitea Actions CI workflow 2026-03-29 05:05:50 +00:00

Closed #863 Add frontend lockfile (package-lock.json or pnpm-lock.yaml) to repository 2026-03-29 05:05:48 +00:00

Closed #862 Add skeleton loaders and error states to Batch and Analytics frontend pages 2026-03-29 05:05:46 +00:00

Closed #861 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 05:05:44 +00:00

Closed #860 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 05:05:42 +00:00

Closed #858 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 05:05:39 +00:00

Closed #857 Make LLM model configurable via MODEL environment variable 2026-03-29 05:05:37 +00:00

Closed #856 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 05:05:34 +00:00

Closed #855 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 05:05:31 +00:00

Closed #854 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 05:05:29 +00:00

Closed #853 Persist async job state in PostgreSQL so results survive API restarts 2026-03-29 05:05:26 +00:00

Closed #852 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-29 05:05:21 +00:00

Closed #849 Refuse to start with default JWT secret in non-development environments 2026-03-29 05:03:48 +00:00

Closed #851 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 05:03:09 +00:00

Closed #850 Make CORS allowed origins configurable via environment variable 2026-03-29 05:03:03 +00:00

Closed #848 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 04:03:51 +00:00

Closed #847 Add cursor-based pagination to batch and jobs list endpoints 2026-03-29 04:03:49 +00:00

Closed #846 Add patent trend charts (filing frequency and tech category distribution over time) 2026-03-29 04:03:47 +00:00

Closed #845 Add multi-model LLM support so users can choose provider per analysis 2026-03-29 04:03:46 +00:00

Closed #844 Add webhook and notification support for job completion and score changes 2026-03-29 04:03:44 +00:00

Closed #843 Add scheduled recurring analysis with change alerting 2026-03-29 04:03:41 +00:00

Closed #842 Add side-by-side comparison view for two companies patent portfolios 2026-03-29 04:03:40 +00:00

Closed #841 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 04:03:38 +00:00

Closed #840 Document or implement object storage for patent PDF files 2026-03-29 04:03:36 +00:00

Closed #839 Add Tailwind dark mode variant across frontend pages 2026-03-29 04:03:35 +00:00

Closed #838 Add ruff linting and tsc type-checking to CI workflow 2026-03-29 04:03:33 +00:00

Closed #837 Add pytest test job to Gitea Actions build.yaml that gates the image build 2026-03-29 04:03:31 +00:00

Closed #836 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 04:03:30 +00:00

Closed #835 Add loading states and error messages to Batch and Analytics pages 2026-03-29 04:03:28 +00:00

Closed #834 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 04:03:14 +00:00

Closed #833 Fix analyze_single_patent to download PDF before reading it from disk 2026-03-29 04:03:12 +00:00

Closed #832 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 04:03:11 +00:00

Closed #831 Make LLM model configurable via MODEL environment variable 2026-03-29 04:03:09 +00:00

Closed #830 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 04:03:07 +00:00

Closed #829 Add JWT authentication flow tests (registration, login, protected routes, token refresh, admin) 2026-03-29 04:03:05 +00:00

Closed #828 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-29 04:03:02 +00:00

Closed #827 Persist async job state in PostgreSQL so jobs survive API restarts 2026-03-29 04:03:00 +00:00

Closed #826 Refactor auth.py to use a shared pooled DatabaseClient instead of per-call instantiation 2026-03-29 04:02:58 +00:00

Closed #825 Move database credentials out of docker-compose.yml into .env file 2026-03-29 04:02:56 +00:00

Closed #824 Make CORS allowed origins configurable via environment variable 2026-03-29 04:02:52 +00:00

Closed #798 Refuse to start with default JWT secret in non-development environments 2026-03-29 04:02:40 +00:00

Closed #808 Document patent PDF storage volume requirement and add S3/MinIO option 2026-03-29 02:08:18 +00:00

Closed #801 Fix DatabaseClient connection pooling in auth.py 2026-03-29 02:08:15 +00:00

Closed #800 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 02:08:13 +00:00

Closed #799 Make CORS allowed origins configurable via environment variable 2026-03-29 02:08:10 +00:00

Closed #821 Add patent trend charts to the Analytics page 2026-03-29 02:07:49 +00:00

Closed #820 Add per-analysis multi-model selection (GPT-4o, Gemini, Claude) 2026-03-29 02:07:44 +00:00

Closed #817 Add side-by-side company patent portfolio comparison view 2026-03-29 02:07:32 +00:00

Closed #815 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 02:07:23 +00:00

Closed #813 Commit a frontend package lockfile for reproducible builds 2026-03-29 02:07:15 +00:00

Closed #810 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 02:07:06 +00:00

Closed #823 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 02:07:05 +00:00

Closed #822 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 02:07:02 +00:00

Closed #819 Add webhook and notification support for batch job completion 2026-03-29 02:06:56 +00:00

Closed #818 Add scheduled recurring analysis for tracked companies 2026-03-29 02:06:51 +00:00

Closed #816 Add export functionality for analysis reports (PDF and CSV) 2026-03-29 02:06:40 +00:00

Closed #814 Add pytest test job to Gitea Actions CI workflow 2026-03-29 02:06:25 +00:00

Closed #812 Add dark mode support using Tailwind dark variant 2026-03-29 02:05:58 +00:00

Closed #811 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-29 02:05:21 +00:00

Closed #809 Fix analyze_single_patent to download PDF before attempting to read it 2026-03-29 02:05:04 +00:00

Closed #807 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 02:04:48 +00:00

Closed #806 Make LLM model selection configurable via MODEL environment variable 2026-03-29 02:04:40 +00:00

Closed #805 Replace print() calls with structured Python logging 2026-03-29 02:04:36 +00:00

Closed #804 Add tests for JWT authentication flow and admin-only endpoints 2026-03-29 02:04:31 +00:00

Closed #803 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 02:04:04 +00:00

Closed #802 Persist async batch job state to PostgreSQL 2026-03-29 02:03:37 +00:00

Closed #797 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 01:15:39 +00:00

Closed #796 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-29 01:15:34 +00:00

Closed #795 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 01:15:30 +00:00

Closed #794 Add pytest test job to Gitea Actions build.yaml that gates image builds 2026-03-29 01:15:25 +00:00

Closed #793 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 01:15:21 +00:00

Closed #792 Add loading skeletons and error states to Batch and Analytics pages 2026-03-29 01:15:18 +00:00

Closed #791 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-29 01:15:13 +00:00

Closed #790 Fix Patent.patent_id type annotation: change int to str in types.py 2026-03-29 01:15:08 +00:00

Closed #789 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 01:15:06 +00:00

Closed #788 Make LLM model configurable via MODEL environment variable 2026-03-29 01:15:02 +00:00

Closed #787 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 01:14:59 +00:00

Closed #786 Add JWT authentication tests: registration, login, protected routes, and admin endpoints 2026-03-29 01:14:48 +00:00

Closed #785 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-29 01:14:43 +00:00

Closed #784 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 01:14:39 +00:00

Closed #783 Refactor get_db_client() in auth.py to use a shared pooled database connection 2026-03-29 01:14:35 +00:00

Closed #782 Move database credentials out of docker-compose.yml into .env / Docker secrets 2026-03-29 01:14:30 +00:00

Closed #781 Make CORS allowed origins configurable via environment variable 2026-03-29 01:14:27 +00:00

Closed #780 Refuse to start with default JWT secret in non-development environments 2026-03-29 01:14:23 +00:00

Closed #779 Add multi-model support to let users choose LLM provider per analysis 2026-03-28 22:06:02 +00:00

Closed #778 Add webhook/notification support for batch job completion and score change alerts 2026-03-28 22:06:00 +00:00

Closed #777 Add scheduled/recurring analysis with alerts on significant changes 2026-03-28 22:05:58 +00:00

Closed #776 Support object storage (S3/MinIO) for patent PDFs in containerized deployments 2026-03-28 22:05:56 +00:00

Closed #775 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 22:05:55 +00:00

Closed #774 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 22:05:53 +00:00

Closed #773 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-28 22:05:51 +00:00

Closed #772 Add side-by-side patent portfolio comparison view for two companies 2026-03-28 22:05:49 +00:00

Closed #771 Add export functionality to download analysis results as PDF or CSV 2026-03-28 22:05:48 +00:00

Closed #754 Implement dark mode using Tailwind dark variant 2026-03-28 22:05:21 +00:00

Closed #759 Persist async batch job state in PostgreSQL so job results survive API restarts 2026-03-28 22:05:17 +00:00

Closed #761 Add JWT authentication integration tests covering full auth flow 2026-03-28 22:04:55 +00:00

Closed #767 Add loading skeletons and error states to Batch and Analytics pages 2026-03-28 22:04:51 +00:00

Closed #770 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 22:04:47 +00:00

Closed #769 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-28 22:04:44 +00:00

Closed #762 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 22:04:39 +00:00

Closed #768 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 22:04:35 +00:00

Closed #766 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 22:04:32 +00:00

Closed #765 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-28 22:04:27 +00:00

Closed #764 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 22:04:24 +00:00

Closed #763 Make LLM model configurable via MODEL environment variable 2026-03-28 22:04:21 +00:00

Closed #760 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-28 22:04:18 +00:00

Closed #758 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-28 22:04:14 +00:00

Closed #757 Replace hardcoded database credentials in docker-compose.yml with .env file reference 2026-03-28 22:04:08 +00:00

Closed #756 Make CORS allowed origins configurable via environment variable 2026-03-28 22:04:05 +00:00

Closed #755 Add startup check to refuse default JWT secret in non-development environments 2026-03-28 22:04:00 +00:00

Closed #751 Add patent filing frequency and technology category trend charts to the Analytics page 2026-03-28 18:04:22 +00:00

Closed #746 Add loading skeletons and error states to Batch and Analytics pages 2026-03-28 18:04:20 +00:00

Closed #753 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 18:04:00 +00:00

Closed #752 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 18:03:59 +00:00

Closed #750 Allow users to download analysis results as PDF or CSV from the dashboard 2026-03-28 18:03:57 +00:00

Closed #749 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI pipeline 2026-03-28 18:03:55 +00:00

Closed #748 Add pytest test stage to Gitea Actions workflow to gate image builds 2026-03-28 18:03:54 +00:00

Closed #747 Commit a frontend package lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 18:03:52 +00:00

Closed #745 Fix analyze_single_patent to download PDF before reading from disk, or document the prerequisite 2026-03-28 18:03:51 +00:00

Closed #744 Fix Patent.patent_id type annotation in types.py from int to str 2026-03-28 18:03:49 +00:00

Closed #743 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 18:03:47 +00:00

Closed #742 Make LLM model selection configurable via MODEL environment variable 2026-03-28 18:03:46 +00:00

Closed #741 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 18:03:44 +00:00

Closed #740 Add test coverage for JWT auth flow: registration, login, protected routes, and admin endpoints 2026-03-28 18:03:43 +00:00

Closed #739 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 18:03:41 +00:00

Closed #738 Persist async batch job state in PostgreSQL instead of in-memory dict 2026-03-28 18:03:39 +00:00

Closed #737 Fix get_db_client() in auth.py to reuse a shared pooled database connection 2026-03-28 18:03:38 +00:00

Closed #736 Remove plaintext database credentials from docker-compose.yml 2026-03-28 18:03:36 +00:00

Closed #735 Make CORS allowed origins configurable via environment variable 2026-03-28 18:03:35 +00:00

Closed #734 Refuse to start with default JWT secret in non-development environments 2026-03-28 18:03:33 +00:00

Closed #733 Refuse to start with default JWT secret in non-development environments 2026-03-28 17:24:52 +00:00

Closed #732 Feature: Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 17:06:17 +00:00

Closed #731 Feature: Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 17:06:15 +00:00

Closed #730 Feature: Add patent trend charts to Analytics page (filing frequency and category distribution) 2026-03-28 17:06:14 +00:00

Closed #729 Feature: Webhook/notification support for batch job completion and score changes 2026-03-28 17:06:12 +00:00

Closed #728 Feature: Scheduled/recurring analysis with alerting on significant changes 2026-03-28 17:06:11 +00:00

Closed #727 Feature: Side-by-side comparison view for two companies patent portfolios 2026-03-28 17:06:09 +00:00

Closed #726 Feature: Export analysis reports as PDF or CSV from the dashboard 2026-03-28 17:06:07 +00:00

Closed #725 CI: Add ruff linting and tsc --noEmit type checking to CI pipeline 2026-03-28 17:06:05 +00:00

Closed #724 CI: Add pytest test job to Gitea Actions build workflow 2026-03-28 17:06:04 +00:00

Closed #723 Feature: Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 17:06:02 +00:00

Closed #722 Feature: Add loading states and error messages to Batch and Analytics pages 2026-03-28 17:06:01 +00:00

Closed #721 Bug: Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 17:05:59 +00:00

Closed #720 Bug: analyze_single_patent does not download PDF before reading from disk 2026-03-28 17:05:57 +00:00

Closed #719 Docs: Document patent PDF volume mount requirement and consider object storage path 2026-03-28 17:05:56 +00:00

Closed #718 Feature: Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 17:05:54 +00:00

Closed #717 Feature: Make LLM model selection configurable via MODEL environment variable 2026-03-28 17:05:53 +00:00

Closed #716 Refactor: Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 17:05:51 +00:00

Closed #715 Test: Add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-28 17:05:50 +00:00

Closed #714 Security: Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 17:05:48 +00:00

Closed #713 Bug: Persist async job state in PostgreSQL so results survive API restarts 2026-03-28 17:05:46 +00:00

Closed #712 Bug: Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 17:05:45 +00:00

Closed #711 Security: Remove hardcoded database credentials from docker-compose.yml 2026-03-28 17:04:54 +00:00

Closed #710 Security: Make CORS allowed origins configurable via environment variable 2026-03-28 17:04:53 +00:00

Closed #709 Security: Refuse to start with default JWT secret in non-dev environments 2026-03-28 17:04:52 +00:00

Closed #708 Add multi-model support: let users choose LLM provider per analysis 2026-03-28 16:04:32 +00:00

Closed #707 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 16:04:30 +00:00

Closed #706 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 16:04:28 +00:00

Closed #705 Add patent trend charts to the Analytics page 2026-03-28 16:04:27 +00:00

Closed #704 Add webhook/notification support for batch job completion and score changes 2026-03-28 16:04:25 +00:00

Closed #703 Add scheduled/recurring analysis with change alerting 2026-03-28 16:04:24 +00:00

Closed #702 Add side-by-side patent portfolio comparison view 2026-03-28 16:04:22 +00:00

Closed #701 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 16:04:12 +00:00

Closed #700 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 16:04:11 +00:00

Closed #699 Add pytest test job to CI workflow that gates the image build 2026-03-28 16:04:09 +00:00

Closed #698 Add and commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-28 16:04:08 +00:00

Closed #697 Add dark mode support using Tailwind dark variant 2026-03-28 16:04:06 +00:00

Closed #696 Add loading and error states to Batch and Analytics pages 2026-03-28 16:04:04 +00:00

Closed #695 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 16:03:53 +00:00

Closed #694 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 16:03:51 +00:00

Closed #693 Document patent PDF volume mount requirement and evaluate object storage path 2026-03-28 16:03:49 +00:00

Closed #692 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 16:03:48 +00:00

Closed #691 Make LLM model configurable via MODEL environment variable 2026-03-28 16:03:46 +00:00

Closed #690 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 16:03:44 +00:00

Closed #689 Add JWT auth flow tests: registration, login, protected routes, token refresh, and admin endpoints 2026-03-28 16:03:33 +00:00

Closed #688 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 16:03:31 +00:00

Closed #687 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 16:03:30 +00:00

Closed #686 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 16:03:28 +00:00

Closed #685 Remove hardcoded database credentials from docker-compose.yml 2026-03-28 16:03:18 +00:00

Closed #684 Make CORS allowed origins configurable via environment variable 2026-03-28 16:03:16 +00:00

Closed #683 Refuse startup with default JWT secret in non-development environments 2026-03-28 16:03:14 +00:00

Closed #682 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 15:06:18 +00:00

Closed #681 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 15:06:13 +00:00

Closed #680 Add patent filing trend charts to the Analytics page 2026-03-28 15:06:11 +00:00

Closed #679 Add webhook/notification support for batch job completion and score changes 2026-03-28 15:06:08 +00:00

Closed #678 Implement scheduled/recurring analysis for tracked companies 2026-03-28 15:06:06 +00:00

Closed #677 Add side-by-side patent portfolio comparison view 2026-03-28 15:06:03 +00:00

Closed #676 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 15:06:01 +00:00

Closed #675 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 15:05:54 +00:00

Closed #674 Add pytest test job to Gitea Actions CI workflow 2026-03-28 15:05:50 +00:00

Closed #673 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 15:05:47 +00:00

Closed #672 Add loading states and error messages to Batch and Analytics pages 2026-03-28 15:05:44 +00:00

Closed #671 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 15:05:40 +00:00

Closed #670 Fix analyze_single_patent to download PDF before attempting to read it 2026-03-28 15:05:38 +00:00

Closed #669 Expose SERP cache TTL as a SERP_CACHE_TTL_HOURS environment variable 2026-03-28 15:05:34 +00:00

Closed #668 Make LLM model configurable via MODEL environment variable 2026-03-28 15:05:31 +00:00

Closed #667 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 15:05:27 +00:00

Closed #666 Add JWT auth integration tests (registration, login, protected routes, admin endpoints) 2026-03-28 15:05:18 +00:00

Closed #665 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 15:05:15 +00:00

Closed #664 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-28 15:05:10 +00:00

Closed #663 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 15:05:06 +00:00

Closed #662 Remove plaintext database credentials from docker-compose.yml 2026-03-28 15:05:02 +00:00

Closed #661 Make CORS allowed origins configurable via environment variable 2026-03-28 15:04:59 +00:00

Closed #660 Add startup check to reject default JWT secret in non-dev environments 2026-03-28 15:04:50 +00:00

Closed #659 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 13:03:45 +00:00

Closed #658 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 13:03:43 +00:00

Closed #657 Add patent filing trend charts to the Analytics page 2026-03-28 13:03:42 +00:00

Closed #656 Add webhook/notification support for batch job completion and score changes 2026-03-28 13:03:40 +00:00

Closed #655 Implement scheduled/recurring patent analysis with change alerts 2026-03-28 13:03:38 +00:00

Closed #654 Add side-by-side patent portfolio comparison view 2026-03-28 13:03:37 +00:00

Closed #653 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 13:03:35 +00:00

Closed #652 Add ruff and tsc --noEmit linting/type checking to CI 2026-03-28 13:03:34 +00:00

Closed #651 Add pytest test stage to Gitea Actions CI workflow 2026-03-28 13:03:32 +00:00

Closed #650 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-28 13:03:31 +00:00

Closed #649 Add loading states and error messages to Batch and Analytics pages 2026-03-28 13:03:29 +00:00

Closed #648 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 13:03:28 +00:00

Closed #647 Document patent PDF volume mount requirement and path assumptions 2026-03-28 13:03:26 +00:00

Closed #646 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 13:03:24 +00:00

Closed #645 Make LLM model configurable via MODEL environment variable 2026-03-28 13:03:23 +00:00

Closed #644 Replace print() calls with structured logging in analyzer, serp_api, and llm modules 2026-03-28 13:03:21 +00:00

Closed #643 Add JWT auth integration tests (registration, login, protected routes, admin) 2026-03-28 13:03:20 +00:00

Closed #642 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 13:03:18 +00:00

Closed #641 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-28 13:03:17 +00:00

Closed #640 Refactor get_db_client() to use a shared pooled connection 2026-03-28 13:03:15 +00:00

Closed #639 Remove hardcoded database credentials from docker-compose.yml 2026-03-28 13:03:14 +00:00

Closed #638 Make CORS allowed origins configurable via environment variable 2026-03-28 13:03:13 +00:00

Closed #637 Add startup check to reject default JWT secret in production 2026-03-28 13:03:12 +00:00

Closed #636 Multi-model LLM support: let users select provider per analysis 2026-03-28 12:05:01 +00:00

Closed #635 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 12:04:59 +00:00

Closed #634 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 12:04:58 +00:00

Closed #633 Add patent trend charts to the Analytics page 2026-03-28 12:04:56 +00:00

Closed #632 Add webhook/notification support for completed jobs and score changes 2026-03-28 12:04:55 +00:00

Closed #631 Scheduled/recurring analysis with alerts on significant changes 2026-03-28 12:04:53 +00:00

Closed #630 Add side-by-side patent portfolio comparison view 2026-03-28 12:04:52 +00:00

Closed #629 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 12:04:50 +00:00

Closed #628 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 12:04:49 +00:00

Closed #627 Add pytest test job to Gitea Actions CI workflow 2026-03-28 12:04:47 +00:00

Closed #626 Add dark mode support using Tailwind dark variant 2026-03-28 12:04:45 +00:00

Closed #625 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 12:04:43 +00:00

Closed #624 Add loading/error states to Batch and Analytics frontend pages 2026-03-28 12:04:41 +00:00

Closed #623 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 12:04:39 +00:00

Closed #622 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 12:04:38 +00:00

Closed #621 Document patent PDF storage volume mount and consider object storage path 2026-03-28 12:04:36 +00:00

Closed #620 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 12:04:35 +00:00

Closed #619 Make LLM model configurable via MODEL environment variable 2026-03-28 12:04:33 +00:00

Closed #618 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 12:04:32 +00:00

Closed #617 Add JWT authentication tests (registration, login, protected routes, token refresh, admin) 2026-03-28 12:04:30 +00:00

Closed #616 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 12:04:29 +00:00

Closed #615 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 12:04:27 +00:00

Closed #614 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 12:04:26 +00:00

Closed #613 Remove hardcoded database credentials from docker-compose.yml 2026-03-28 12:04:24 +00:00

Closed #612 Make CORS allowed origins configurable via environment variable 2026-03-28 12:04:22 +00:00

Closed #611 Refuse startup with default JWT secret in non-dev environments 2026-03-28 12:04:20 +00:00

Closed #610 Add dark mode support to frontend using Tailwind dark: variants 2026-03-28 11:04:56 +00:00

Closed #607 Commit frontend lockfile for reproducible builds 2026-03-28 11:03:58 +00:00

Closed #594 Refuse to start with default JWT secret in non-dev environments 2026-03-28 11:03:57 +00:00

Closed #604 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 11:03:57 +00:00

Closed #605 Fix Patent.patent_id type annotation: change int to str in types.py 2026-03-28 11:03:57 +00:00

Closed #606 Add loading states and error messages to Batch and Analytics pages 2026-03-28 11:03:57 +00:00

Closed #609 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 11:03:57 +00:00

Closed #595 Make CORS allowed origins configurable via environment variable 2026-03-28 11:03:56 +00:00

Closed #596 Remove plain-text DB credentials from docker-compose.yml 2026-03-28 11:03:56 +00:00

Closed #597 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 11:03:56 +00:00

Closed #599 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 11:03:56 +00:00

Closed #600 Add JWT auth flow tests (registration, login, protected routes, token refresh, admin) 2026-03-28 11:03:56 +00:00

Closed #601 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 11:03:56 +00:00

Closed #602 Make LLM model configurable via MODEL environment variable 2026-03-28 11:03:56 +00:00

Closed #608 Add pytest test job to Gitea Actions CI workflow 2026-03-28 11:03:56 +00:00

Closed #598 Persist async job state to PostgreSQL so jobs survive API restarts 2026-03-28 11:03:55 +00:00

Closed #603 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 11:03:55 +00:00

Closed #574 Add JWT authentication tests: registration, login, protected routes, and admin endpoints 2026-03-28 09:03:28 +00:00

Closed #575 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 09:03:24 +00:00

Closed #576 Make LLM model configurable via MODEL environment variable 2026-03-28 09:03:22 +00:00

Closed #577 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 09:03:20 +00:00

Closed #570 Remove hardcoded postgres credentials from docker-compose.yml 2026-03-28 09:03:18 +00:00

Closed #571 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 09:03:16 +00:00

Closed #572 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 09:03:15 +00:00

Closed #573 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 09:03:13 +00:00

Closed #578 Document patent PDF volume mount and add object storage option for containerized deployments 2026-03-28 09:03:12 +00:00

Closed #579 Fix analyze_single_patent to download PDF before attempting to read from disk 2026-03-28 09:03:10 +00:00

Closed #589 Add webhook/notification support for batch job completion and score change alerts 2026-03-28 09:03:09 +00:00

Closed #588 Add scheduled/recurring analysis with alerting on significant score changes 2026-03-28 09:03:07 +00:00

Closed #585 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 09:03:05 +00:00

Closed #584 Add pytest test job to Gitea Actions CI workflow 2026-03-28 09:03:04 +00:00

Closed #587 Add side-by-side comparison view for two companies patent portfolios 2026-03-28 09:03:03 +00:00

Closed #586 Add PDF and CSV export for analysis reports from the dashboard 2026-03-28 09:03:01 +00:00

Closed #581 Add loading skeletons and error states to Batch and Analytics pages 2026-03-28 09:02:59 +00:00

Closed #580 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 09:02:58 +00:00

Closed #583 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 09:02:56 +00:00

Closed #582 Add dark mode support using Tailwind dark: variants 2026-03-28 09:02:55 +00:00

Closed #569 Make CORS allowed origins configurable via environment variable 2026-03-28 09:02:53 +00:00

Closed #568 Add startup check to reject default JWT secret in non-dev environments 2026-03-28 09:02:52 +00:00

Closed #592 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 09:02:50 +00:00

Closed #593 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 09:02:49 +00:00

Closed #590 Add per-analysis LLM provider selection and multi-model output comparison 2026-03-28 09:02:47 +00:00

Closed #591 Add patent filing frequency and technology category trend charts to Analytics page 2026-03-28 09:02:45 +00:00

Closed #562 Add dark mode support to frontend using Tailwind dark variant 2026-03-28 06:05:08 +00:00

Closed #567 Add patent trend charts to Analytics page (filing frequency and technology category over time) 2026-03-28 06:04:27 +00:00

Closed #566 Add per-analysis LLM provider selection (GPT-4o, Gemini, Claude) with output comparison 2026-03-28 06:04:11 +00:00

Closed #561 Document patent PDF volume mount requirement and evaluate S3/MinIO for containerized storage 2026-03-28 06:04:09 +00:00

Closed #565 Add webhook/notification support for batch job completion and score change events 2026-03-28 06:04:08 +00:00

Closed #564 Add scheduled/recurring analysis with change alerts for tracked companies 2026-03-28 06:04:07 +00:00

Closed #563 Add side-by-side patent portfolio comparison view for two companies 2026-03-28 06:04:05 +00:00

Closed #558 Add export functionality for analysis reports (PDF and CSV download) 2026-03-28 06:04:04 +00:00

Closed #546 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 06:04:03 +00:00

Closed #560 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 06:04:01 +00:00

Closed #559 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 06:04:00 +00:00

Closed #557 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 06:03:59 +00:00

Closed #556 Add pytest test job to Gitea Actions CI workflow that gates image builds 2026-03-28 06:03:58 +00:00

Closed #555 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 06:03:57 +00:00

Closed #554 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-28 06:03:55 +00:00

Closed #553 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 06:03:54 +00:00

Closed #552 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 06:03:52 +00:00

Closed #551 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 06:03:51 +00:00

Closed #550 Make LLM model configurable via MODEL environment variable 2026-03-28 06:03:50 +00:00

Closed #549 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 06:03:49 +00:00

Closed #548 Add JWT authentication integration tests covering login, protected routes, and admin endpoints 2026-03-28 06:03:48 +00:00

Closed #547 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-28 06:03:46 +00:00

Closed #545 Refactor auth.py to use a shared pooled DatabaseClient instead of per-call instantiation 2026-03-28 06:03:45 +00:00

Closed #544 Move database credentials out of docker-compose.yml into .env file 2026-03-28 06:03:44 +00:00

Closed #543 Make CORS allowed origins configurable via environment variable 2026-03-28 06:03:43 +00:00

Closed #542 Add startup check refusing default JWT secret in non-dev environments 2026-03-28 06:03:42 +00:00

Closed #541 Feature: multi-model support allowing users to choose LLM provider per analysis 2026-03-28 03:05:54 +00:00

Closed #540 Feature: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 03:05:53 +00:00

Closed #539 Feature: cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-28 03:05:52 +00:00

Closed #538 Feature: patent trend charts showing filing frequency and category distribution over time 2026-03-28 03:05:51 +00:00

Closed #537 Feature: webhook/notification support for batch job completion and score change alerts 2026-03-28 03:05:49 +00:00

Closed #536 Feature: scheduled/recurring patent analysis with alerts on significant changes 2026-03-28 03:05:48 +00:00

Closed #535 Feature: side-by-side comparison view for two companies patent portfolios 2026-03-28 03:05:47 +00:00

Closed #534 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-28 03:05:46 +00:00

Closed #533 CI: add ruff (Python) and tsc --noEmit (TypeScript) linting to Gitea Actions workflow 2026-03-28 03:05:30 +00:00

Closed #532 CI: add pytest test stage to Gitea Actions workflow that gates image builds 2026-03-28 03:05:29 +00:00

Closed #531 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 03:05:27 +00:00

Closed #530 Frontend: add dark mode support using Tailwind dark variant 2026-03-28 03:05:26 +00:00

Closed #529 Frontend: add loading skeletons and error states to Batch and Analytics pages 2026-03-28 03:05:25 +00:00

Closed #528 Bug: fix Patent.patent_id type annotation — change from int to str in types.py 2026-03-28 03:05:23 +00:00

Closed #527 Bug: analyze_single_patent does not download PDF before reading it from disk 2026-03-28 03:05:22 +00:00

Closed #526 Backend: document volume mount requirement for patents/ PDF storage directory 2026-03-28 03:05:20 +00:00

Closed #525 Backend: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 03:05:19 +00:00

Closed #524 Backend: make LLM model configurable via MODEL environment variable 2026-03-28 03:05:18 +00:00

Closed #523 Backend: replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 03:05:16 +00:00

Closed #522 Tests: add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-28 03:05:00 +00:00

Closed #521 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 03:04:59 +00:00

Closed #520 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-28 03:04:58 +00:00

Closed #519 Fix: share a single pooled DatabaseClient instead of creating one per request in auth.py 2026-03-28 03:04:56 +00:00

Closed #518 Security: remove hardcoded database credentials from docker-compose.yml 2026-03-28 03:04:55 +00:00

Closed #517 Security: make CORS allowed origins configurable via environment variable 2026-03-28 03:04:54 +00:00

Closed #516 Security: refuse to start with default JWT secret in non-dev environments 2026-03-28 03:04:53 +00:00

Closed #490 Add startup check to reject default JWT secret in non-dev environments 2026-03-28 01:05:00 +00:00

Closed #491 Make CORS allowed origins configurable via environment variable 2026-03-28 01:04:59 +00:00

Closed #492 Replace hardcoded database credentials in docker-compose.yml with .env file 2026-03-28 01:04:57 +00:00

Closed #493 Refactor auth.py to use a shared pooled DatabaseClient instead of creating one per call 2026-03-28 01:04:56 +00:00

Closed #494 Persist batch job state in PostgreSQL so job results survive API restarts 2026-03-28 01:04:55 +00:00

Closed #495 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-28 01:04:53 +00:00

Closed #496 Add JWT authentication tests covering the full auth flow 2026-03-28 01:04:52 +00:00

Closed #497 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 01:04:51 +00:00

Closed #498 Make LLM model configurable via MODEL environment variable 2026-03-28 01:04:49 +00:00

Closed #499 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 01:04:48 +00:00

Closed #500 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 01:04:47 +00:00

Closed #501 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 01:04:45 +00:00

Closed #502 Document patent PDF volume mount requirement and evaluate object storage options 2026-03-28 01:04:44 +00:00

Closed #503 Add loading states and error messages to Batch and Analytics pages 2026-03-28 01:04:43 +00:00

Closed #504 Commit a frontend lockfile to ensure reproducible builds 2026-03-28 01:04:42 +00:00

Closed #505 Add pytest test stage to Gitea Actions CI workflow 2026-03-28 01:04:40 +00:00

Closed #506 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 01:04:39 +00:00

Closed #507 Add export functionality: download analysis results as PDF or CSV 2026-03-28 01:04:38 +00:00

Closed #508 Add side-by-side patent portfolio comparison view 2026-03-28 01:04:36 +00:00

Closed #509 Implement scheduled/recurring patent analysis with change alerts 2026-03-28 01:04:35 +00:00

Closed #510 Add webhook/notification support for batch job completion and score changes 2026-03-28 01:04:34 +00:00

Closed #511 Add patent filing trend charts to the Analytics page 2026-03-28 01:04:32 +00:00

Closed #512 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 01:04:31 +00:00

Closed #513 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 01:04:30 +00:00

Closed #514 Add dark mode support to the frontend using Tailwind dark variant 2026-03-28 01:04:28 +00:00

Closed #515 Add per-analysis LLM provider selection (multi-model support) 2026-03-28 01:04:27 +00:00

Closed #489 Feature: Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 23:04:37 +00:00

Closed #488 Feature: Cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-27 23:04:35 +00:00

Closed #487 Feature: Patent trend charts in Analytics page (filing frequency and category distribution) 2026-03-27 23:04:34 +00:00

Closed #486 Feature: Webhook/notification support for batch job completion and score changes 2026-03-27 23:04:33 +00:00

Closed #485 Feature: Scheduled/recurring analysis with change alerts 2026-03-27 23:04:32 +00:00

Closed #484 Feature: Side-by-side patent portfolio comparison view 2026-03-27 23:04:17 +00:00

Closed #483 Feature: Export analysis reports as PDF or CSV from the dashboard 2026-03-27 23:04:16 +00:00

Closed #482 CI: Add ruff linting and tsc --noEmit type checking to CI pipeline 2026-03-27 23:04:15 +00:00

Closed #481 CI: Add pytest test stage to Gitea Actions build workflow 2026-03-27 23:04:14 +00:00

Closed #480 Frontend: Commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 23:04:12 +00:00

Closed #479 Frontend: Add loading skeletons and error states to Batch and Analytics pages 2026-03-27 23:04:11 +00:00

Closed #478 Backend: Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 23:03:58 +00:00

Closed #477 Backend: Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 23:03:56 +00:00

Closed #476 Backend: Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 23:03:55 +00:00

Closed #475 Backend: Make LLM model configurable via MODEL environment variable 2026-03-27 23:03:54 +00:00

Closed #474 Backend: Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-27 23:03:52 +00:00

Closed #473 Test: Add JWT authentication flow tests to test_api.py 2026-03-27 23:03:51 +00:00

Closed #472 Security: Add rate limiting middleware to /auth/login and /auth/register 2026-03-27 23:03:37 +00:00

Closed #471 Fix: Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-27 23:03:36 +00:00

Closed #470 Fix: Share a single pooled DatabaseClient instead of creating one per auth call 2026-03-27 23:03:35 +00:00

Closed #469 Security: Remove hardcoded database credentials from docker-compose.yml 2026-03-27 23:03:33 +00:00

Closed #468 Security: Make CORS allowed origins configurable via environment variable 2026-03-27 23:03:32 +00:00

Closed #467 Security: Add startup check to reject default JWT secret in non-dev environments 2026-03-27 23:03:31 +00:00

Closed #464 Add patent filing trend charts to the Analytics page 2026-03-27 22:05:37 +00:00

Closed #463 Add webhook/notification support for batch job completion and score changes 2026-03-27 22:05:36 +00:00

Closed #462 Implement scheduled/recurring analysis with change alerts 2026-03-27 22:05:35 +00:00

Closed #461 Add side-by-side patent portfolio comparison view for two companies 2026-03-27 22:05:33 +00:00

Closed #460 Allow users to export analysis reports as PDF or CSV from the dashboard 2026-03-27 22:05:32 +00:00

Closed #456 Add loading skeletons and error states to Batch and Analytics pages 2026-03-27 22:05:31 +00:00

Closed #455 Document patent PDF volume mount requirement and fix analyze_single_patent download step 2026-03-27 22:05:30 +00:00

Closed #466 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 22:04:44 +00:00

Closed #465 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 22:04:43 +00:00

Closed #459 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 22:04:42 +00:00

Closed #458 Add pytest test stage to CI workflow that gates the Docker image build 2026-03-27 22:04:41 +00:00

Closed #457 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 22:04:39 +00:00

Closed #454 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 22:04:38 +00:00

Closed #453 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 22:04:37 +00:00

Closed #452 Make LLM model configurable via MODEL environment variable 2026-03-27 22:04:36 +00:00

Closed #451 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 22:04:34 +00:00

Closed #450 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 22:04:33 +00:00

Closed #449 Add rate limiting middleware to auth endpoints 2026-03-27 22:04:32 +00:00

Closed #448 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-27 22:04:31 +00:00

Closed #447 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-27 22:04:30 +00:00

Closed #446 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 22:04:29 +00:00

Closed #445 Make CORS allowed origins configurable via environment variable 2026-03-27 22:04:27 +00:00

Closed #444 Add startup check to refuse default JWT secret in non-development environments 2026-03-27 22:04:26 +00:00

Closed #426 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 20:42:22 +00:00

Closed #442 Add ruff linting and tsc type checking to CI 2026-03-27 20:06:35 +00:00

Closed #441 Add pytest test job to Gitea Actions CI workflow 2026-03-27 20:06:30 +00:00

Closed #440 Commit a frontend lockfile to ensure reproducible builds 2026-03-27 20:06:25 +00:00

Closed #439 Add loading states and error messages to Batch and Analytics pages 2026-03-27 20:06:22 +00:00

Closed #438 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 20:06:17 +00:00

Closed #437 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 20:06:14 +00:00

Closed #436 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 20:06:09 +00:00

Closed #435 Make LLM model configurable via MODEL environment variable 2026-03-27 20:06:05 +00:00

Closed #434 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 20:06:01 +00:00

Closed #433 Add JWT authentication tests covering full auth flow 2026-03-27 20:05:56 +00:00

Closed #432 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 20:05:50 +00:00

Closed #431 Persist async batch job state to PostgreSQL to survive API restarts 2026-03-27 20:05:45 +00:00

Closed #430 Fix get_db_client() in auth.py to use a shared pooled database connection 2026-03-27 20:05:40 +00:00

Closed #429 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 20:05:35 +00:00

Closed #428 Make CORS allowed origins configurable via environment variable 2026-03-27 20:05:31 +00:00

Closed #427 Refuse startup with default JWT secret in non-development environments 2026-03-27 20:05:27 +00:00

Closed #414 Add loading/error states (skeleton loaders and error messages) to Batch and Analytics pages 2026-03-27 19:07:17 +00:00

Closed #425 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 19:06:55 +00:00

Closed #424 Add patent trend charts to Analytics page (filing frequency and technology categories over time) 2026-03-27 19:06:53 +00:00

Closed #423 Add multi-model LLM support: let users choose provider per analysis 2026-03-27 19:06:52 +00:00

Closed #422 Add webhook/notification support for batch job completion and score changes 2026-03-27 19:06:51 +00:00

Closed #421 Implement scheduled/recurring analysis with change alerting 2026-03-27 19:06:50 +00:00

Closed #420 Add side-by-side patent portfolio comparison view 2026-03-27 19:06:48 +00:00

Closed #419 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 19:06:47 +00:00

Closed #418 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 19:06:13 +00:00

Closed #417 Add pytest test job to Gitea Actions CI workflow to gate image builds 2026-03-27 19:06:12 +00:00

Closed #416 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 19:06:11 +00:00

Closed #415 Add dark mode support using Tailwind dark: variant 2026-03-27 19:06:10 +00:00

Closed #413 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 19:06:09 +00:00

Closed #412 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 19:06:07 +00:00

Closed #411 Document patent PDF storage volume mount and evaluate object storage options 2026-03-27 19:06:06 +00:00

Closed #410 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 19:06:05 +00:00

Closed #409 Make LLM model configurable via MODEL environment variable 2026-03-27 19:06:04 +00:00

Closed #408 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 19:06:03 +00:00

Closed #406 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 19:04:50 +00:00

Closed #407 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 19:04:50 +00:00

Closed #405 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-27 19:04:49 +00:00

Closed #402 Make CORS allowed origins configurable via environment variable 2026-03-27 19:04:48 +00:00

Closed #403 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 19:04:48 +00:00

Closed #404 Fix get_db_client() to use a shared pooled DatabaseClient instead of per-call instantiation 2026-03-27 19:04:48 +00:00

Closed #401 Add startup check to refuse default JWT secret in non-dev environments 2026-03-27 19:04:47 +00:00

Closed #370 Document patent PDF volume mount requirement and consider object storage path 2026-03-27 18:06:48 +00:00

Closed #400 Multi-model support: let users choose LLM provider per analysis and compare outputs 2026-03-27 18:06:11 +00:00

Closed #399 Add dark mode support using Tailwind dark variant 2026-03-27 18:06:10 +00:00

Closed #398 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 18:06:09 +00:00

Closed #396 Add patent trend charts to Analytics page (filing frequency and technology category over time) 2026-03-27 18:06:07 +00:00

Closed #397 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 18:05:43 +00:00

Closed #395 Add webhook/notification support for batch job completion and innovation score changes 2026-03-27 18:05:42 +00:00

Closed #394 Implement scheduled/recurring analysis for tracked companies 2026-03-27 18:05:40 +00:00

Closed #393 Add side-by-side comparison view for two companies patent portfolios 2026-03-27 18:05:39 +00:00

Closed #392 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 18:05:38 +00:00

Closed #388 Add loading and error states to Batch and Analytics pages 2026-03-27 18:05:19 +00:00

Closed #382 Add JWT auth integration tests: registration, login, protected routes, token refresh, admin-only endpoints 2026-03-27 18:05:01 +00:00

Closed #380 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-27 18:05:00 +00:00

Closed #391 Add ruff linting and tsc type checking to CI 2026-03-27 18:04:28 +00:00

Closed #390 Add pytest test stage to Gitea Actions build.yaml to gate image builds on passing tests 2026-03-27 18:04:27 +00:00

Closed #389 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 18:04:26 +00:00

Closed #387 Fix type annotation: Patent.patent_id should be str, not int 2026-03-27 18:04:25 +00:00

Closed #386 Fix: analyze_single_patent must download PDF before attempting to read it from disk 2026-03-27 18:04:23 +00:00

Closed #385 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 18:04:22 +00:00

Closed #384 Make LLM model configurable via MODEL environment variable 2026-03-27 18:04:21 +00:00

Closed #383 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 18:04:20 +00:00

Closed #381 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-27 18:03:37 +00:00

Closed #379 Security: remove plaintext database credentials from docker-compose.yml 2026-03-27 18:03:36 +00:00

Closed #378 Security: make CORS allowed origins configurable via environment variable 2026-03-27 18:03:34 +00:00

Closed #377 Security: refuse to start with default JWT secret in non-development environments 2026-03-27 18:03:33 +00:00

Closed #357 Fix: share a single pooled DatabaseClient instead of creating one per get_db_client() call 2026-03-27 18:03:32 +00:00

Closed #369 CI: add ruff (Python) and tsc --noEmit (TypeScript) linting to Gitea Actions 2026-03-27 17:06:24 +00:00

Closed #368 CI: add pytest test stage to Gitea Actions workflow that gates the image build 2026-03-27 17:06:23 +00:00

Closed #361 Add loading skeletons and error states to Analytics page 2026-03-27 17:06:21 +00:00

Closed #360 Add auth/JWT integration tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 17:06:20 +00:00

Closed #363 Make LLM model configurable via MODEL environment variable 2026-03-27 17:06:19 +00:00

Closed #362 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 17:06:18 +00:00

Closed #365 Fix: analyze_single_patent must download the PDF before attempting to read it from disk 2026-03-27 17:06:17 +00:00

Closed #364 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 17:06:16 +00:00

Closed #367 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) to ensure reproducible builds 2026-03-27 17:06:15 +00:00

Closed #366 Fix: correct Patent.patent_id type annotation from int to str in types.py 2026-03-27 17:06:13 +00:00

Closed #358 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-27 17:06:12 +00:00

Closed #359 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 17:06:11 +00:00

Closed #354 Security: refuse to start with default JWT secret in non-dev environments 2026-03-27 17:06:10 +00:00

Closed #355 Security: make CORS allowed origins configurable via environment variable 2026-03-27 17:06:09 +00:00

Closed #356 Security: remove plaintext database credentials from docker-compose.yml 2026-03-27 17:06:08 +00:00

Closed #376 Add scheduled/recurring analysis with alerts on significant score changes 2026-03-27 17:06:06 +00:00

Closed #374 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 17:06:05 +00:00

Closed #375 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 17:06:04 +00:00

Closed #372 Add side-by-side comparison view for two companies patent portfolios 2026-03-27 17:06:03 +00:00

Closed #373 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-27 17:06:02 +00:00

Closed #371 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 17:06:01 +00:00

Closed #348 Add webhook/notification support for batch job completion and score changes 2026-03-27 17:05:59 +00:00

Closed #351 Multi-model LLM support: let users choose provider per analysis and compare outputs 2026-03-27 16:45:08 +00:00

Closed #343 Add loading skeletons and error states to Batch processing page 2026-03-27 16:43:43 +00:00

Closed #347 Implement scheduled/recurring patent analysis with change alerts 2026-03-27 15:07:29 +00:00

Closed #350 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 15:06:25 +00:00

Closed #341 Document patent PDF volume mount and integrate download step in analyze_single_patent 2026-03-27 15:05:58 +00:00

Closed #338 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 15:05:27 +00:00

Closed #339 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 15:05:26 +00:00

Closed #332 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 15:05:25 +00:00

Closed #333 Add patent trend charts to Analytics page 2026-03-27 15:05:24 +00:00

Closed #330 Add loading skeletons and error states to Analytics page 2026-03-27 15:05:23 +00:00

Closed #331 Implement dark mode across all frontend pages 2026-03-27 15:05:21 +00:00

Closed #336 Make CORS allowed origins configurable via environment variable 2026-03-27 15:05:20 +00:00

Closed #337 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 15:05:19 +00:00

Closed #334 Add side-by-side company patent portfolio comparison view 2026-03-27 15:05:18 +00:00

Closed #335 Refuse startup with default JWT secret in non-development environments 2026-03-27 15:05:17 +00:00

Closed #329 Make LLM model configurable via MODEL environment variable 2026-03-27 15:05:16 +00:00

Closed #328 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 15:05:15 +00:00

Closed #327 Persist job state in PostgreSQL to survive API restarts 2026-03-27 15:05:14 +00:00

Closed #326 Fix get_db_client() in auth.py to use singleton pattern properly 2026-03-27 15:05:12 +00:00

Closed #349 Add cursor-based pagination to /analyze/batch and /jobs API endpoints 2026-03-27 15:05:11 +00:00

Closed #346 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 15:05:10 +00:00

Closed #345 Add pytest test job to Gitea Actions CI workflow 2026-03-27 15:05:09 +00:00

Closed #344 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 15:05:08 +00:00

Closed #342 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 15:05:06 +00:00

Closed #340 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 15:05:05 +00:00

Closed #325 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 13:03:53 +00:00

Closed #324 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 13:03:52 +00:00

Closed #323 Add patent filing trend charts to the Analytics page 2026-03-27 13:03:51 +00:00

Closed #322 Add side-by-side patent portfolio comparison view 2026-03-27 13:03:50 +00:00

Closed #321 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 13:03:49 +00:00

Closed #320 Add ruff linting and tsc type checking to CI 2026-03-27 13:03:47 +00:00

Closed #319 Add pytest test job to Gitea Actions CI workflow to gate image builds 2026-03-27 13:03:46 +00:00

Closed #318 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 13:03:45 +00:00

Closed #317 Add loading and error states to Batch and Analytics frontend pages 2026-03-27 13:03:44 +00:00

Closed #316 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 13:03:43 +00:00

Closed #315 Fix analyze_single_patent to download PDF before attempting local read 2026-03-27 13:03:42 +00:00

Closed #314 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 13:03:40 +00:00

Closed #313 Make LLM model configurable via MODEL environment variable 2026-03-27 13:03:39 +00:00

Closed #312 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 13:03:38 +00:00

Closed #311 Add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-27 13:03:37 +00:00

Closed #310 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 13:03:35 +00:00

Closed #309 Persist async job state to PostgreSQL so results survive API restarts 2026-03-27 13:03:34 +00:00

Closed #308 Fix get_db_client() in auth.py to use a shared connection pool 2026-03-27 13:03:33 +00:00

Closed #307 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 13:03:32 +00:00

Closed #306 Make CORS allowed origins configurable via environment variable 2026-03-27 13:03:30 +00:00

Closed #305 Add startup check to reject default JWT secret in non-dev environments 2026-03-27 13:03:29 +00:00

Closed #304 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 12:08:41 +00:00

Closed #303 Add API pagination to /analyze/batch and /jobs endpoints 2026-03-27 12:08:35 +00:00

Closed #302 Add side-by-side patent portfolio comparison view 2026-03-27 12:08:31 +00:00

Closed #301 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 12:08:28 +00:00

Closed #300 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 12:08:24 +00:00

Closed #299 Add pytest test job to Gitea Actions CI workflow 2026-03-27 12:08:20 +00:00

Closed #298 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 12:08:16 +00:00

Closed #297 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-27 12:08:13 +00:00

Closed #296 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 12:08:09 +00:00

Closed #295 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 12:08:06 +00:00

Closed #294 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 12:08:01 +00:00

Closed #293 Make LLM model configurable via MODEL environment variable 2026-03-27 12:07:58 +00:00

Closed #292 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 12:07:54 +00:00

Closed #291 Add JWT authentication tests (registration, login, protected routes, admin) 2026-03-27 12:07:46 +00:00

Closed #290 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 12:07:37 +00:00

Closed #289 Persist job state to PostgreSQL so batch results survive API restarts 2026-03-27 12:07:35 +00:00

Closed #288 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-27 12:07:33 +00:00

Closed #287 Remove plaintext DB credentials from docker-compose.yml 2026-03-27 12:07:27 +00:00

Closed #286 Make CORS allowed origins configurable via environment variable 2026-03-27 12:07:26 +00:00

Closed #285 Add startup check to reject default JWT secret in non-dev environments 2026-03-27 12:07:18 +00:00

Closed #260 CI: add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI workflow 2026-03-27 11:07:06 +00:00

Closed #283 Frontend: commit a package lockfile (package-lock.json or pnpm-lock.yaml) to ensure reproducible builds 2026-03-27 11:06:45 +00:00

Closed #284 CI: add pytest test job to Gitea Actions workflow that gates the image build 2026-03-27 11:06:45 +00:00

Closed #281 Bug: fix Patent.patent_id type annotation in types.py -- should be str, not int 2026-03-27 11:06:14 +00:00

Closed #277 Tests: add JWT authentication flow tests covering registration, login, protected routes, and admin endpoints 2026-03-27 11:06:13 +00:00

Closed #282 Bug: analyze_single_patent assumes PDF already exists locally -- integrate download step or document prerequisite 2026-03-27 11:06:13 +00:00

Closed #273 Security: move database credentials out of docker-compose.yml into .env or Docker secrets 2026-03-27 11:06:12 +00:00

Closed #275 Bug: persist async job state to PostgreSQL so batch results survive API restarts 2026-03-27 11:06:12 +00:00

Closed #271 Security: refuse to start with default JWT secret in non-development environments 2026-03-27 11:06:11 +00:00

Closed #272 Security: make CORS allowed-origins configurable via environment variable 2026-03-27 11:06:11 +00:00

Closed #274 Bug: get_db_client() in auth.py creates a new DatabaseClient on every call, exhausting the connection pool 2026-03-27 11:06:10 +00:00

Closed #276 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 11:06:10 +00:00

Closed #279 Backend: make LLM model configurable via MODEL environment variable instead of hardcoding claude-3.5-sonnet 2026-03-27 11:05:20 +00:00

Closed #280 Backend: expose SERP_CACHE_TTL_HOURS as a configurable environment variable 2026-03-27 11:05:20 +00:00

Closed #253 Docs: document patent PDF storage volume mount requirement (or add S3/MinIO support) 2026-03-27 11:05:03 +00:00

Closed #256 Frontend: add loading skeletons and error states to Batch and Analytics pages 2026-03-27 11:04:55 +00:00

Closed #257 Frontend: add dark mode support using Tailwind dark variant 2026-03-27 11:04:55 +00:00

Closed #278 Backend: replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 11:04:54 +00:00

Closed #261 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-27 11:04:12 +00:00

Closed #262 Feature: side-by-side patent portfolio comparison view for two companies 2026-03-27 11:04:11 +00:00

Closed #263 Feature: scheduled/recurring analysis with alerts on significant changes 2026-03-27 11:04:11 +00:00

Closed #264 Feature: webhook/notification support for batch job completion and score changes 2026-03-27 11:04:10 +00:00

Closed #265 Feature: multi-model support — let users choose LLM provider per analysis 2026-03-27 11:04:10 +00:00

Closed #266 Feature: patent trend charts — filing frequency and technology category distribution over time 2026-03-27 11:04:09 +00:00

Closed #267 Feature: add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 11:04:08 +00:00

Closed #268 DX: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 11:04:08 +00:00

Closed #254 Bug: analyze_single_patent does not download PDF before reading it from disk 2026-03-27 10:07:37 +00:00

Closed #259 CI: add pytest test job to Gitea Actions workflow that gates the build 2026-03-27 10:07:28 +00:00

Closed #258 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 10:07:25 +00:00

Closed #247 Bug: persist job state to PostgreSQL so batch results survive API restarts 2026-03-27 10:07:22 +00:00

Closed #245 Security: remove hardcoded database credentials from docker-compose.yml 2026-03-27 10:07:18 +00:00

Closed #255 Bug: fix Patent.patent_id type annotation — should be str not int 2026-03-27 10:07:08 +00:00

Closed #252 Backend: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 10:07:07 +00:00

Closed #251 Backend: make LLM model configurable via MODEL environment variable 2026-03-27 10:07:06 +00:00

Closed #250 Backend: replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 10:07:05 +00:00

Closed #249 Tests: add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-27 10:07:03 +00:00

Closed #248 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 10:07:02 +00:00

Closed #246 Bug: refactor get_db_client() in auth.py to use a shared connection pool 2026-03-27 10:07:01 +00:00

Closed #244 Security: make CORS allowed origins configurable via environment variable 2026-03-27 10:07:00 +00:00

Closed #243 Security: refuse startup with default JWT secret in non-dev environments 2026-03-27 10:06:59 +00:00

Closed #242 Add dark mode support using Tailwind dark variant 2026-03-27 09:06:12 +00:00

Closed #241 Document patent PDF volume mount or migrate storage to S3/MinIO for containerized deployments 2026-03-27 09:06:11 +00:00

Closed #240 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 09:06:09 +00:00

Closed #239 Add pytest test job to CI workflow that gates image build 2026-03-27 09:06:08 +00:00

Closed #238 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 09:06:07 +00:00

Closed #237 Add skeleton loaders and error states to Batch and Analytics frontend pages 2026-03-27 09:06:06 +00:00

Closed #236 Document or fix analyze_single_patent PDF download prerequisite 2026-03-27 09:06:04 +00:00

Closed #235 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 09:06:03 +00:00

Closed #234 Expose SERP cache TTL as a SERP_CACHE_TTL_HOURS environment variable 2026-03-27 09:06:02 +00:00

Closed #233 Make LLM model configurable via MODEL environment variable 2026-03-27 09:06:01 +00:00

Closed #232 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 09:06:00 +00:00

Closed #231 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-27 09:05:59 +00:00

Closed #230 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 09:05:57 +00:00

Closed #229 Persist async job state to PostgreSQL to survive API restarts 2026-03-27 09:05:56 +00:00

Closed #228 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-27 09:05:55 +00:00

Closed #227 Move database credentials out of docker-compose.yml into a .env file 2026-03-27 09:05:54 +00:00

Closed #226 Make CORS allowed origins configurable via environment variable 2026-03-27 09:05:53 +00:00

Closed #225 Add startup check to refuse default JWT secret in non-development environments 2026-03-27 09:05:51 +00:00

Closed #224 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 06:05:36 +00:00

Closed #223 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 06:05:33 +00:00

Closed #222 Add patent filing trend charts to Analytics page 2026-03-27 06:05:30 +00:00

Closed #221 Add webhook/notification support for batch job completion and score changes 2026-03-27 06:05:27 +00:00

Closed #220 Implement scheduled/recurring analysis with change alerts 2026-03-27 06:05:24 +00:00

Closed #219 Add side-by-side patent portfolio comparison view 2026-03-27 06:05:21 +00:00

Closed #218 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 06:05:18 +00:00

Closed #217 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 06:05:15 +00:00

Closed #216 Add pytest test job to Gitea Actions CI workflow 2026-03-27 06:05:12 +00:00

Closed #215 Commit a frontend lockfile to ensure reproducible builds 2026-03-27 06:05:08 +00:00

Closed #214 Add loading skeletons and error states to Batch and Analytics pages 2026-03-27 06:05:05 +00:00

Closed #213 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 06:05:01 +00:00

Closed #212 Fix analyze_single_patent to download PDF before attempting to read it from disk 2026-03-27 06:04:59 +00:00

Closed #211 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 06:04:55 +00:00

Closed #210 Make LLM model configurable via MODEL environment variable 2026-03-27 06:04:52 +00:00

Closed #209 Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-27 06:04:49 +00:00

Closed #208 Add JWT authentication tests covering full token lifecycle 2026-03-27 06:04:45 +00:00

Closed #207 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 06:04:43 +00:00

Closed #206 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-27 06:04:39 +00:00

Closed #205 Fix get_db_client() to use a shared connection pool instead of creating a new client per call 2026-03-27 06:04:36 +00:00

Closed #204 Move database credentials out of docker-compose.yml into .env 2026-03-27 06:04:32 +00:00

Closed #203 Make CORS allowed origins configurable via environment variable 2026-03-27 06:04:29 +00:00

Closed #202 Refuse startup with default JWT secret in non-dev environments 2026-03-27 06:04:26 +00:00

Closed #85 Add PDF export for analysis reports (CSV already implemented) 2026-03-27 05:04:59 +00:00

Closed #176 Persist async job state in PostgreSQL to survive API restarts 2026-03-27 05:04:16 +00:00

Closed #186 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 05:04:10 +00:00

Closed #172 Refuse to start with default JWT secret in non-development environments 2026-03-27 05:03:50 +00:00

Closed #173 Make CORS allowed origins configurable via environment variable 2026-03-27 05:03:49 +00:00

Closed #174 Move database credentials out of docker-compose.yml into .env file 2026-03-27 05:03:48 +00:00

Closed #175 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-27 05:03:46 +00:00

Closed #177 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 05:03:45 +00:00

Closed #181 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 05:03:44 +00:00

Closed #180 Make LLM model configurable via MODEL environment variable 2026-03-27 05:03:42 +00:00

Closed #184 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 05:03:40 +00:00

Closed #188 Add ruff linting and tsc type checking to CI 2026-03-27 05:03:07 +00:00

Closed #187 Add pytest test job to CI workflow that gates the image build 2026-03-27 05:03:06 +00:00

Closed #197 Add dark mode support using Tailwind dark variant 2026-03-27 05:02:39 +00:00

Closed #194 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 05:02:38 +00:00

Closed #190 Add scheduled/recurring analysis with alerts on significant changes 2026-03-27 05:02:37 +00:00

Closed #191 Add webhook/notification support for batch job completion and score changes 2026-03-27 05:02:36 +00:00

Closed #198 Add side-by-side comparison view for two companies' patent portfolios 2026-03-27 05:02:34 +00:00

Closed #199 Add multi-model support: let users choose LLM provider per analysis 2026-03-27 05:02:33 +00:00

Closed #178 Add JWT auth flow tests (registration, login, protected routes, admin) 2026-03-27 05:02:32 +00:00

Closed #179 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 05:02:31 +00:00

Closed #200 Add patent trend charts to Analytics page (filing frequency and tech category distribution) 2026-03-27 05:02:30 +00:00

Closed #201 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 05:02:29 +00:00

Closed #183 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 05:02:27 +00:00

Closed #182 Document or fix patent PDF storage for containerised deployments 2026-03-27 05:02:26 +00:00

Closed #185 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-27 05:02:25 +00:00

Closed #196 Implement dark mode using Tailwind dark variant 2026-03-27 03:02:33 +00:00

Closed #195 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 03:02:31 +00:00

Closed #193 Add patent trend charts (filing frequency and category distribution over time) 2026-03-27 03:02:30 +00:00

Closed #192 Add per-analysis model selection to allow comparing LLM provider outputs 2026-03-27 03:02:29 +00:00

Closed #189 Add side-by-side patent portfolio comparison view for two companies 2026-03-27 03:02:28 +00:00

Closed #90 Add cursor-based pagination to /analyze/batch endpoint (/jobs already done) 2026-03-27 01:55:11 +00:00

Closed #170 Add dark mode support using Tailwind dark variant 2026-03-27 01:55:10 +00:00

Closed #169 Document volume mount requirement for patents/ directory or add S3/MinIO storage backend 2026-03-27 01:55:09 +00:00

Closed #168 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 01:55:04 +00:00

Closed #167 Add patent filing frequency and technology category trend charts to Analytics page 2026-03-27 01:55:03 +00:00

Closed #166 Add per-analysis LLM provider selection and output comparison (multi-model support) 2026-03-27 01:54:59 +00:00

Closed #165 Add webhook/notification support for batch job completion and score changes 2026-03-27 01:54:57 +00:00

Closed #164 Add scheduled/recurring analysis with alerts on significant changes 2026-03-27 01:54:54 +00:00

Closed #163 Add side-by-side patent portfolio comparison view 2026-03-27 01:54:52 +00:00

Closed #162 Add ruff linting and tsc --noEmit type checking to CI 2026-03-27 01:54:49 +00:00

Closed #161 Add pytest test stage to Gitea Actions CI workflow before image build 2026-03-27 01:54:47 +00:00

Closed #160 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 01:54:45 +00:00

Closed #159 Add loading/error states to Batch and Analytics frontend pages 2026-03-27 01:54:43 +00:00

Closed #158 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 01:54:41 +00:00

Closed #157 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 01:54:38 +00:00

Closed #156 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 01:54:35 +00:00

Closed #155 Make LLM model configurable via MODEL environment variable 2026-03-27 01:54:34 +00:00

Closed #154 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 01:54:31 +00:00

Closed #153 Add JWT auth tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 01:53:26 +00:00

Closed #152 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 01:53:25 +00:00

Closed #150 Fix get_db_client() in auth.py to reuse a pooled DatabaseClient 2026-03-27 01:53:24 +00:00

Closed #151 Persist async job state to PostgreSQL so jobs survive API restarts 2026-03-27 01:53:24 +00:00

Closed #149 Move PostgreSQL credentials out of docker-compose.yml into .env file 2026-03-27 01:53:23 +00:00

Closed #147 Refuse startup with default JWT secret in non-development environments 2026-03-27 01:53:22 +00:00

Closed #148 Make CORS allowed origins configurable via environment variable 2026-03-27 01:53:22 +00:00

Closed #131 Refuse startup with default JWT secret in non-development environments 2026-03-26 18:03:29 +00:00

Closed #132 Make CORS allowed origins configurable via environment variable 2026-03-26 18:03:28 +00:00

Closed #133 Remove hardcoded database credentials from docker-compose.yml 2026-03-26 18:03:28 +00:00

Closed #134 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-26 18:03:27 +00:00

Closed #135 Persist async job state in PostgreSQL so results survive API restart 2026-03-26 18:03:27 +00:00

Closed #136 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 18:03:26 +00:00

Closed #137 Add JWT authentication tests: registration, login, protected routes, admin endpoints 2026-03-26 18:03:25 +00:00

Closed #138 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 18:03:25 +00:00

Closed #139 Make LLM model configurable via MODEL environment variable 2026-03-26 18:03:24 +00:00

Closed #140 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 18:03:24 +00:00

Closed #141 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 18:03:23 +00:00

Closed #142 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 18:03:23 +00:00

Closed #143 Add loading and error states to Batch and Analytics frontend pages 2026-03-26 18:03:22 +00:00

Closed #144 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 18:03:21 +00:00

Closed #145 Add pytest test job to Gitea Actions CI workflow 2026-03-26 18:03:21 +00:00

Closed #146 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-26 18:03:20 +00:00

Closed #129 Add pytest test job to Gitea Actions CI workflow 2026-03-26 17:03:39 +00:00

Closed #130 Add ruff linting and tsc type checking to CI 2026-03-26 17:03:39 +00:00

Closed #128 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 17:03:38 +00:00

Closed #126 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 17:03:37 +00:00

Closed #127 Add loading and error states to Batch and Analytics frontend pages 2026-03-26 17:03:37 +00:00

Closed #124 Make LLM model and SERP cache TTL configurable via environment variables 2026-03-26 17:03:36 +00:00

Closed #125 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 17:03:36 +00:00

Closed #122 Add JWT auth flow tests: registration, login, protected routes, token refresh, and admin endpoints 2026-03-26 17:03:35 +00:00

Closed #123 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 17:03:35 +00:00

Closed #120 Persist async job state in PostgreSQL so results survive API restarts 2026-03-26 17:03:34 +00:00

Closed #121 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 17:03:34 +00:00

Closed #119 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-26 17:03:33 +00:00

Closed #117 Make CORS allowed origins configurable via environment variable 2026-03-26 17:03:32 +00:00

Closed #118 Remove hardcoded database credentials from docker-compose.yml 2026-03-26 17:03:32 +00:00

Closed #116 Add startup check that refuses to boot with default JWT secret in production 2026-03-26 17:03:31 +00:00

Closed #115 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-26 15:43:40 +00:00

Closed #113 Add multi-model support: let users choose LLM provider per analysis 2026-03-26 15:43:39 +00:00

Closed #114 Add patent trend charts to Analytics page (filing frequency and technology category distribution) 2026-03-26 15:43:39 +00:00

Closed #111 Implement scheduled/recurring analysis with alerting on significant changes 2026-03-26 15:43:38 +00:00

Closed #112 Add webhook/notification support for batch job completion and score change alerts 2026-03-26 15:43:38 +00:00

Closed #110 Add side-by-side comparison view for two companies patent portfolios 2026-03-26 15:43:37 +00:00

Closed #108 Document patents/ volume mount requirement and evaluate object storage (S3/MinIO) for containerized deployments 2026-03-26 15:43:36 +00:00

Closed #109 Add dark mode support using Tailwind dark variant 2026-03-26 15:43:36 +00:00

Closed #106 Add pytest test stage to Gitea Actions CI workflow that gates image builds 2026-03-26 15:43:35 +00:00

Closed #107 Add ruff linting and tsc type checking to CI workflow 2026-03-26 15:43:35 +00:00

Closed #104 Add loading states and error messages to Batch and Analytics pages 2026-03-26 15:43:34 +00:00

Closed #105 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 15:43:34 +00:00

Closed #102 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 15:43:33 +00:00

Closed #103 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 15:43:33 +00:00

Closed #101 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 15:43:32 +00:00

Closed #99 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 15:43:31 +00:00

Closed #100 Make LLM model configurable via MODEL environment variable 2026-03-26 15:43:31 +00:00

Closed #97 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 15:43:30 +00:00

Closed #98 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-26 15:43:30 +00:00

Closed #95 Fix get_db_client() in auth.py to use a shared pooled database connection 2026-03-26 15:43:29 +00:00

Closed #96 Persist job state to PostgreSQL so batch results survive API restarts 2026-03-26 15:43:29 +00:00

Closed #93 Make CORS allowed origins configurable via environment variable 2026-03-26 15:43:28 +00:00

Closed #94 Move database credentials out of docker-compose.yml into .env file 2026-03-26 15:43:28 +00:00

Closed #92 Add startup check that refuses to run with default JWT secret in non-dev environments 2026-03-26 15:43:27 +00:00

Closed #91 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-26 15:06:32 +00:00

Closed #89 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-26 15:06:31 +00:00

Closed #88 Add webhook/notification support for batch job completion and score changes 2026-03-26 15:06:30 +00:00

Closed #87 Implement scheduled/recurring patent analysis with change alerts 2026-03-26 15:06:28 +00:00

Closed #86 Add side-by-side patent portfolio comparison view 2026-03-26 15:06:27 +00:00

Closed #84 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-26 15:06:26 +00:00

Closed #83 Add pytest test job to Gitea Actions CI workflow 2026-03-26 15:06:25 +00:00

Closed #82 Commit a frontend lockfile to ensure reproducible builds 2026-03-26 15:06:24 +00:00

Closed #81 Implement dark mode using Tailwind dark variant 2026-03-26 15:06:23 +00:00

Closed #80 Add loading skeletons and error states to Batch and Analytics pages 2026-03-26 15:06:21 +00:00

Closed #79 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 15:06:20 +00:00

Closed #78 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 15:06:19 +00:00

Closed #77 Document patents/ volume mount requirement and evaluate object storage for containerized deployments 2026-03-26 15:06:18 +00:00

Closed #76 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 15:06:00 +00:00

Closed #75 Make LLM model configurable via MODEL environment variable 2026-03-26 15:05:59 +00:00

Closed #74 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 15:05:58 +00:00

Closed #73 Add JWT auth integration tests covering registration, login, and protected routes 2026-03-26 15:05:57 +00:00

Closed #72 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 15:05:56 +00:00

Closed #71 Persist batch job status in PostgreSQL so job state survives API restarts 2026-03-26 15:05:54 +00:00

Closed #70 Refactor get_db_client() in auth.py to reuse a pooled DatabaseClient 2026-03-26 15:05:53 +00:00

Closed #69 Move database credentials out of docker-compose.yml into .env file 2026-03-26 15:05:52 +00:00

Closed #68 Make CORS allowed origins configurable via environment variable 2026-03-26 15:05:51 +00:00

Closed #67 Add startup check to refuse default JWT secret in non-dev environments 2026-03-26 15:05:50 +00:00

Closed #37 Add multi-model support: allow users to choose LLM provider per analysis 2026-03-26 12:14:28 +00:00

Closed #26 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-26 12:13:21 +00:00

Closed #24 Add patent trend charts to the Analytics page 2026-03-26 12:12:27 +00:00

Closed #21 Add side-by-side patent portfolio comparison view 2026-03-26 12:11:04 +00:00

Closed #38 Add S3/MinIO object storage support for patent PDF files 2026-03-26 12:09:52 +00:00

Closed #23 Add webhook/notification support for job completion and score changes 2026-03-26 12:08:11 +00:00

Closed #22 Implement scheduled/recurring analysis with change alerting 2026-03-26 12:07:49 +00:00

Closed #20 Export analysis results as PDF or CSV from the dashboard 2026-03-26 12:07:03 +00:00

Closed #33 Add dark mode support to the frontend using Tailwind dark variant 2026-03-26 12:06:39 +00:00

Closed #25 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-26 12:06:11 +00:00

Closed #16 Add loading and error states to Batch and Analytics frontend pages 2026-03-26 12:05:48 +00:00

Closed #36 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 12:05:17 +00:00

Closed #46 Add structured Python logging to serp_api.py (print() calls remain after PR #29) 2026-03-26 12:05:05 +00:00

Closed #52 Add tsc --noEmit TypeScript type checking to CI pipeline (ruff done in PR #32, tsc outstanding) 2026-03-26 12:04:42 +00:00

Closed #50 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) to ensure reproducible builds 2026-03-26 09:03:43 +00:00

Closed #51 Add pytest test job to Gitea Actions CI workflow to gate image builds on passing tests 2026-03-26 09:03:43 +00:00

Closed #48 Expose SERP_CACHE_TTL_HOURS as a configurable environment variable 2026-03-26 09:03:42 +00:00

Closed #49 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 09:03:42 +00:00

Closed #45 Add JWT auth flow tests covering registration, login, protected routes, token refresh, and admin endpoints 2026-03-26 09:03:41 +00:00

Closed #47 Make LLM model configurable via MODEL environment variable instead of hardcoding claude-3.5-sonnet 2026-03-26 09:03:41 +00:00

Closed #43 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-26 09:03:40 +00:00

Closed #44 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-26 09:03:40 +00:00

Closed #41 Replace hardcoded DB credentials in docker-compose.yml with .env file reference 2026-03-26 09:03:39 +00:00

Closed #42 Fix get_db_client() in auth.py to use a shared pooled connection instead of creating a new client per call 2026-03-26 09:03:39 +00:00

Closed #40 Make CORS allowed origins configurable via environment variable 2026-03-26 09:03:38 +00:00

Closed #39 Add startup check to refuse default JWT secret in non-dev environments 2026-03-26 09:03:37 +00:00

Closed #19 Add ruff linting and tsc type checking to CI workflow 2026-03-26 07:04:35 +00:00

Closed #18 Add pytest test stage to Gitea Actions CI workflow 2026-03-26 07:04:34 +00:00

Closed #13 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 07:03:12 +00:00

Closed #14 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 07:03:12 +00:00

Closed #11 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 07:03:11 +00:00

Closed #12 Make LLM model configurable via MODEL environment variable 2026-03-26 07:03:11 +00:00

Closed #7 Refactor get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-26 07:02:48 +00:00

Closed #9 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 05:04:50 +00:00

Closed #8 Persist async batch job state in PostgreSQL so it survives API restarts 2026-03-26 05:04:29 +00:00

Closed #17 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 05:04:04 +00:00

Closed #15 Document patent PDF storage volume mount requirement and clarify analyze_single_patent prerequisite 2026-03-26 05:04:03 +00:00

Closed #10 Add JWT authentication tests covering registration, login, protected routes, refresh, and admin access 2026-03-26 05:03:34 +00:00

Closed #6 Move database credentials out of docker-compose.yml and into .env / Docker secrets 2026-03-26 05:03:21 +00:00

Closed #5 Make CORS allowed origins configurable via environment variable 2026-03-26 05:03:20 +00:00

Closed #4 Add startup check to refuse default JWT secret in non-development environments 2026-03-26 05:03:19 +00:00

Closed #2 chore: add ROADMAP.md for SPARC application development 2026-03-26 02:47:56 +00:00

Closed #1 Deploy to Talos 2026-03-20 04:22:55 +00:00

1641 Issues created by 1 user

Opened #1 Deploy to Talos 2026-03-20 04:14:13 +00:00

Opened #2 chore: add ROADMAP.md for SPARC application development 2026-03-25 22:31:36 +00:00

Opened #4 Add startup check to refuse default JWT secret in non-development environments 2026-03-26 03:21:50 +00:00

Opened #5 Make CORS allowed origins configurable via environment variable 2026-03-26 03:21:59 +00:00

Opened #6 Move database credentials out of docker-compose.yml and into .env / Docker secrets 2026-03-26 03:22:09 +00:00

Opened #7 Refactor get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-26 03:22:18 +00:00

Opened #8 Persist async batch job state in PostgreSQL so it survives API restarts 2026-03-26 03:22:34 +00:00

Opened #9 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 03:22:43 +00:00

Opened #10 Add JWT authentication tests covering registration, login, protected routes, refresh, and admin access 2026-03-26 03:22:55 +00:00

Opened #11 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 03:23:06 +00:00

Opened #12 Make LLM model configurable via MODEL environment variable 2026-03-26 03:23:13 +00:00

Opened #13 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 03:23:21 +00:00

Opened #14 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 03:23:30 +00:00

Opened #15 Document patent PDF storage volume mount requirement and clarify analyze_single_patent prerequisite 2026-03-26 03:23:41 +00:00

Opened #16 Add loading and error states to Batch and Analytics frontend pages 2026-03-26 03:23:50 +00:00

Opened #17 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 03:23:59 +00:00

Opened #18 Add pytest test stage to Gitea Actions CI workflow 2026-03-26 03:24:09 +00:00

Opened #19 Add ruff linting and tsc type checking to CI workflow 2026-03-26 03:24:18 +00:00

Opened #20 Export analysis results as PDF or CSV from the dashboard 2026-03-26 03:24:28 +00:00

Opened #21 Add side-by-side patent portfolio comparison view 2026-03-26 03:24:36 +00:00

Opened #22 Implement scheduled/recurring analysis with change alerting 2026-03-26 03:24:45 +00:00

Opened #23 Add webhook/notification support for job completion and score changes 2026-03-26 03:24:56 +00:00

Opened #24 Add patent trend charts to the Analytics page 2026-03-26 03:25:03 +00:00

Opened #25 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-26 03:25:12 +00:00

Opened #26 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-26 03:25:20 +00:00

Opened #33 Add dark mode support to the frontend using Tailwind dark variant 2026-03-26 04:21:33 +00:00

Opened #36 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 05:21:48 +00:00

Opened #37 Add multi-model support: allow users to choose LLM provider per analysis 2026-03-26 05:21:58 +00:00

Opened #38 Add S3/MinIO object storage support for patent PDF files 2026-03-26 06:22:19 +00:00

Opened #39 Add startup check to refuse default JWT secret in non-dev environments 2026-03-26 08:21:38 +00:00

Opened #40 Make CORS allowed origins configurable via environment variable 2026-03-26 08:21:46 +00:00

Opened #41 Replace hardcoded DB credentials in docker-compose.yml with .env file reference 2026-03-26 08:21:54 +00:00

Opened #42 Fix get_db_client() in auth.py to use a shared pooled connection instead of creating a new client per call 2026-03-26 08:22:04 +00:00

Opened #43 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-26 08:22:14 +00:00

Opened #44 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-26 08:22:22 +00:00

Opened #45 Add JWT auth flow tests covering registration, login, protected routes, token refresh, and admin endpoints 2026-03-26 08:22:33 +00:00

Opened #46 Add structured Python logging to serp_api.py (print() calls remain after PR #29) 2026-03-26 08:22:43 +00:00

Opened #47 Make LLM model configurable via MODEL environment variable instead of hardcoding claude-3.5-sonnet 2026-03-26 08:22:51 +00:00

Opened #48 Expose SERP_CACHE_TTL_HOURS as a configurable environment variable 2026-03-26 08:22:59 +00:00

Opened #49 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 08:23:07 +00:00

Opened #50 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) to ensure reproducible builds 2026-03-26 08:23:17 +00:00

Opened #51 Add pytest test job to Gitea Actions CI workflow to gate image builds on passing tests 2026-03-26 08:23:28 +00:00

Opened #52 Add tsc --noEmit TypeScript type checking to CI pipeline (ruff done in PR #32, tsc outstanding) 2026-03-26 08:23:38 +00:00

Opened #67 Add startup check to refuse default JWT secret in non-dev environments 2026-03-26 14:21:20 +00:00

Opened #68 Make CORS allowed origins configurable via environment variable 2026-03-26 14:21:27 +00:00

Opened #69 Move database credentials out of docker-compose.yml into .env file 2026-03-26 14:21:35 +00:00

Opened #70 Refactor get_db_client() in auth.py to reuse a pooled DatabaseClient 2026-03-26 14:21:43 +00:00

Opened #71 Persist batch job status in PostgreSQL so job state survives API restarts 2026-03-26 14:21:51 +00:00

Opened #72 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 14:21:59 +00:00

Opened #73 Add JWT auth integration tests covering registration, login, and protected routes 2026-03-26 14:22:10 +00:00

Opened #74 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 14:22:20 +00:00

Opened #75 Make LLM model configurable via MODEL environment variable 2026-03-26 14:22:28 +00:00

Opened #76 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 14:22:35 +00:00

Opened #77 Document patents/ volume mount requirement and evaluate object storage for containerized deployments 2026-03-26 14:22:44 +00:00

Opened #78 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 14:22:53 +00:00

Opened #79 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 14:23:00 +00:00

Opened #80 Add loading skeletons and error states to Batch and Analytics pages 2026-03-26 14:23:10 +00:00

Opened #81 Implement dark mode using Tailwind dark variant 2026-03-26 14:23:19 +00:00

Opened #82 Commit a frontend lockfile to ensure reproducible builds 2026-03-26 14:23:26 +00:00

Opened #83 Add pytest test job to Gitea Actions CI workflow 2026-03-26 14:23:35 +00:00

Opened #84 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-26 14:23:44 +00:00

Opened #85 Add PDF export for analysis reports (CSV already implemented) 2026-03-26 14:23:52 +00:00

Opened #86 Add side-by-side patent portfolio comparison view 2026-03-26 14:23:59 +00:00

Opened #87 Implement scheduled/recurring patent analysis with change alerts 2026-03-26 14:24:08 +00:00

Opened #88 Add webhook/notification support for batch job completion and score changes 2026-03-26 14:24:16 +00:00

Opened #89 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-26 14:24:29 +00:00

Opened #90 Add cursor-based pagination to /analyze/batch endpoint (/jobs already done) 2026-03-26 14:24:38 +00:00

Opened #91 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-26 14:24:47 +00:00

Opened #92 Add startup check that refuses to run with default JWT secret in non-dev environments 2026-03-26 15:21:32 +00:00

Opened #93 Make CORS allowed origins configurable via environment variable 2026-03-26 15:21:41 +00:00

Opened #94 Move database credentials out of docker-compose.yml into .env file 2026-03-26 15:21:49 +00:00

Opened #95 Fix get_db_client() in auth.py to use a shared pooled database connection 2026-03-26 15:21:58 +00:00

Opened #96 Persist job state to PostgreSQL so batch results survive API restarts 2026-03-26 15:22:08 +00:00

Opened #97 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 15:22:17 +00:00

Opened #98 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-26 15:22:26 +00:00

Opened #99 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 15:22:35 +00:00

Opened #100 Make LLM model configurable via MODEL environment variable 2026-03-26 15:22:41 +00:00

Opened #101 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 15:22:51 +00:00

Opened #102 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 15:23:01 +00:00

Opened #103 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 15:23:08 +00:00

Opened #104 Add loading states and error messages to Batch and Analytics pages 2026-03-26 15:23:18 +00:00

Opened #105 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 15:23:27 +00:00

Opened #106 Add pytest test stage to Gitea Actions CI workflow that gates image builds 2026-03-26 15:23:36 +00:00

Opened #107 Add ruff linting and tsc type checking to CI workflow 2026-03-26 15:23:44 +00:00

Opened #108 Document patents/ volume mount requirement and evaluate object storage (S3/MinIO) for containerized deployments 2026-03-26 15:23:58 +00:00

Opened #109 Add dark mode support using Tailwind dark variant 2026-03-26 15:24:08 +00:00

Opened #110 Add side-by-side comparison view for two companies patent portfolios 2026-03-26 15:24:17 +00:00

Opened #111 Implement scheduled/recurring analysis with alerting on significant changes 2026-03-26 15:24:27 +00:00

Opened #112 Add webhook/notification support for batch job completion and score change alerts 2026-03-26 15:24:36 +00:00

Opened #113 Add multi-model support: let users choose LLM provider per analysis 2026-03-26 15:24:46 +00:00

Opened #114 Add patent trend charts to Analytics page (filing frequency and technology category distribution) 2026-03-26 15:24:55 +00:00

Opened #115 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-26 15:25:06 +00:00

Opened #116 Add startup check that refuses to boot with default JWT secret in production 2026-03-26 16:21:42 +00:00

Opened #117 Make CORS allowed origins configurable via environment variable 2026-03-26 16:21:50 +00:00

Opened #118 Remove hardcoded database credentials from docker-compose.yml 2026-03-26 16:21:58 +00:00

Opened #119 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-26 16:22:08 +00:00

Opened #120 Persist async job state in PostgreSQL so results survive API restarts 2026-03-26 16:22:20 +00:00

Opened #121 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 16:22:28 +00:00

Opened #122 Add JWT auth flow tests: registration, login, protected routes, token refresh, and admin endpoints 2026-03-26 16:22:39 +00:00

Opened #123 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 16:22:47 +00:00

Opened #124 Make LLM model and SERP cache TTL configurable via environment variables 2026-03-26 16:22:56 +00:00

Opened #125 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 16:23:11 +00:00

Opened #126 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 16:23:21 +00:00

Opened #127 Add loading and error states to Batch and Analytics frontend pages 2026-03-26 16:23:31 +00:00

Opened #128 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 16:23:39 +00:00

Opened #129 Add pytest test job to Gitea Actions CI workflow 2026-03-26 16:23:48 +00:00

Opened #130 Add ruff linting and tsc type checking to CI 2026-03-26 16:23:56 +00:00

Opened #131 Refuse startup with default JWT secret in non-development environments 2026-03-26 17:21:24 +00:00

Opened #132 Make CORS allowed origins configurable via environment variable 2026-03-26 17:21:32 +00:00

Opened #133 Remove hardcoded database credentials from docker-compose.yml 2026-03-26 17:21:40 +00:00

Opened #134 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-26 17:21:48 +00:00

Opened #135 Persist async job state in PostgreSQL so results survive API restart 2026-03-26 17:21:57 +00:00

Opened #136 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 17:22:05 +00:00

Opened #137 Add JWT authentication tests: registration, login, protected routes, admin endpoints 2026-03-26 17:22:15 +00:00

Opened #138 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 17:22:24 +00:00

Opened #139 Make LLM model configurable via MODEL environment variable 2026-03-26 17:22:31 +00:00

Opened #140 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 17:22:38 +00:00

Opened #141 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 17:22:47 +00:00

Opened #142 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 17:22:55 +00:00

Opened #143 Add loading and error states to Batch and Analytics frontend pages 2026-03-26 17:23:03 +00:00

Opened #144 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 17:23:12 +00:00

Opened #145 Add pytest test job to Gitea Actions CI workflow 2026-03-26 17:23:20 +00:00

Opened #146 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-26 17:23:29 +00:00

Opened #147 Refuse startup with default JWT secret in non-development environments 2026-03-26 18:21:40 +00:00

Opened #148 Make CORS allowed origins configurable via environment variable 2026-03-26 18:21:49 +00:00

Opened #149 Move PostgreSQL credentials out of docker-compose.yml into .env file 2026-03-26 18:22:02 +00:00

Opened #150 Fix get_db_client() in auth.py to reuse a pooled DatabaseClient 2026-03-26 18:22:10 +00:00

Opened #151 Persist async job state to PostgreSQL so jobs survive API restarts 2026-03-26 18:22:21 +00:00

Opened #152 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-26 18:22:32 +00:00

Opened #153 Add JWT auth tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-26 18:22:45 +00:00

Opened #154 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-26 18:22:54 +00:00

Opened #155 Make LLM model configurable via MODEL environment variable 2026-03-26 18:23:01 +00:00

Opened #156 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-26 18:23:08 +00:00

Opened #157 Fix analyze_single_patent to download PDF before reading from disk 2026-03-26 18:23:20 +00:00

Opened #158 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-26 18:23:28 +00:00

Opened #159 Add loading/error states to Batch and Analytics frontend pages 2026-03-26 18:23:38 +00:00

Opened #160 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-26 18:23:48 +00:00

Opened #161 Add pytest test stage to Gitea Actions CI workflow before image build 2026-03-26 18:23:58 +00:00

Opened #162 Add ruff linting and tsc --noEmit type checking to CI 2026-03-26 18:24:07 +00:00

Opened #163 Add side-by-side patent portfolio comparison view 2026-03-26 18:24:16 +00:00

Opened #164 Add scheduled/recurring analysis with alerts on significant changes 2026-03-26 18:24:24 +00:00

Opened #165 Add webhook/notification support for batch job completion and score changes 2026-03-26 18:24:33 +00:00

Opened #166 Add per-analysis LLM provider selection and output comparison (multi-model support) 2026-03-26 18:24:44 +00:00

Opened #167 Add patent filing frequency and technology category trend charts to Analytics page 2026-03-26 18:24:52 +00:00

Opened #168 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-26 18:25:00 +00:00

Opened #169 Document volume mount requirement for patents/ directory or add S3/MinIO storage backend 2026-03-26 19:22:19 +00:00

Opened #170 Add dark mode support using Tailwind dark variant 2026-03-26 19:22:30 +00:00

Opened #172 Refuse to start with default JWT secret in non-development environments 2026-03-27 02:21:57 +00:00

Opened #173 Make CORS allowed origins configurable via environment variable 2026-03-27 02:22:05 +00:00

Opened #174 Move database credentials out of docker-compose.yml into .env file 2026-03-27 02:22:12 +00:00

Opened #175 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-27 02:22:21 +00:00

Opened #176 Persist async job state in PostgreSQL to survive API restarts 2026-03-27 02:22:30 +00:00

Opened #177 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 02:22:38 +00:00

Opened #178 Add JWT auth flow tests (registration, login, protected routes, admin) 2026-03-27 02:22:47 +00:00

Opened #179 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 02:22:56 +00:00

Opened #180 Make LLM model configurable via MODEL environment variable 2026-03-27 02:23:03 +00:00

Opened #181 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 02:23:10 +00:00

Opened #182 Document or fix patent PDF storage for containerised deployments 2026-03-27 02:23:19 +00:00

Opened #183 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 02:23:27 +00:00

Opened #184 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 02:23:34 +00:00

Opened #185 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-27 02:23:42 +00:00

Opened #186 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 02:23:51 +00:00

Opened #187 Add pytest test job to CI workflow that gates the image build 2026-03-27 02:24:00 +00:00

Opened #188 Add ruff linting and tsc type checking to CI 2026-03-27 02:24:09 +00:00

Opened #189 Add side-by-side patent portfolio comparison view for two companies 2026-03-27 02:24:18 +00:00

Opened #190 Add scheduled/recurring analysis with alerts on significant changes 2026-03-27 02:24:26 +00:00

Opened #191 Add webhook/notification support for batch job completion and score changes 2026-03-27 02:24:34 +00:00

Opened #192 Add per-analysis model selection to allow comparing LLM provider outputs 2026-03-27 02:24:42 +00:00

Opened #193 Add patent trend charts (filing frequency and category distribution over time) 2026-03-27 02:24:50 +00:00

Opened #194 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 02:24:57 +00:00

Opened #195 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 02:25:06 +00:00

Opened #196 Implement dark mode using Tailwind dark variant 2026-03-27 02:25:14 +00:00

Opened #197 Add dark mode support using Tailwind dark variant 2026-03-27 03:21:58 +00:00

Opened #198 Add side-by-side comparison view for two companies' patent portfolios 2026-03-27 03:22:04 +00:00

Opened #199 Add multi-model support: let users choose LLM provider per analysis 2026-03-27 03:22:11 +00:00

Opened #200 Add patent trend charts to Analytics page (filing frequency and tech category distribution) 2026-03-27 03:22:17 +00:00

Opened #201 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 03:22:24 +00:00

Opened #202 Refuse startup with default JWT secret in non-dev environments 2026-03-27 05:21:49 +00:00

Opened #203 Make CORS allowed origins configurable via environment variable 2026-03-27 05:22:05 +00:00

Opened #204 Move database credentials out of docker-compose.yml into .env 2026-03-27 05:22:14 +00:00

Opened #205 Fix get_db_client() to use a shared connection pool instead of creating a new client per call 2026-03-27 05:22:24 +00:00

Opened #206 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-27 05:22:37 +00:00

Opened #207 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 05:22:47 +00:00

Opened #208 Add JWT authentication tests covering full token lifecycle 2026-03-27 05:22:57 +00:00

Opened #209 Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-27 05:23:05 +00:00

Opened #210 Make LLM model configurable via MODEL environment variable 2026-03-27 05:23:13 +00:00

Opened #211 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 05:23:21 +00:00

Opened #212 Fix analyze_single_patent to download PDF before attempting to read it from disk 2026-03-27 05:23:33 +00:00

Opened #213 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 05:23:42 +00:00

Opened #214 Add loading skeletons and error states to Batch and Analytics pages 2026-03-27 05:23:51 +00:00

Opened #215 Commit a frontend lockfile to ensure reproducible builds 2026-03-27 05:24:00 +00:00

Opened #216 Add pytest test job to Gitea Actions CI workflow 2026-03-27 05:24:12 +00:00

Opened #217 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 05:24:22 +00:00

Opened #218 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 05:24:31 +00:00

Opened #219 Add side-by-side patent portfolio comparison view 2026-03-27 05:24:39 +00:00

Opened #220 Implement scheduled/recurring analysis with change alerts 2026-03-27 05:24:47 +00:00

Opened #221 Add webhook/notification support for batch job completion and score changes 2026-03-27 05:24:54 +00:00

Opened #222 Add patent filing trend charts to Analytics page 2026-03-27 05:25:02 +00:00

Opened #223 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 05:25:12 +00:00

Opened #224 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 05:25:22 +00:00

Opened #225 Add startup check to refuse default JWT secret in non-development environments 2026-03-27 06:31:28 +00:00

Opened #226 Make CORS allowed origins configurable via environment variable 2026-03-27 06:31:36 +00:00

Opened #227 Move database credentials out of docker-compose.yml into a .env file 2026-03-27 06:31:44 +00:00

Opened #228 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-27 06:31:52 +00:00

Opened #229 Persist async job state to PostgreSQL to survive API restarts 2026-03-27 06:32:02 +00:00

Opened #230 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 06:32:09 +00:00

Opened #231 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-27 06:32:19 +00:00

Opened #232 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 06:32:28 +00:00

Opened #233 Make LLM model configurable via MODEL environment variable 2026-03-27 06:32:35 +00:00

Opened #234 Expose SERP cache TTL as a SERP_CACHE_TTL_HOURS environment variable 2026-03-27 06:32:42 +00:00

Opened #235 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 06:32:49 +00:00

Opened #236 Document or fix analyze_single_patent PDF download prerequisite 2026-03-27 06:32:59 +00:00

Opened #237 Add skeleton loaders and error states to Batch and Analytics frontend pages 2026-03-27 06:33:08 +00:00

Opened #238 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 06:33:16 +00:00

Opened #239 Add pytest test job to CI workflow that gates image build 2026-03-27 06:33:25 +00:00

Opened #240 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 06:33:33 +00:00

Opened #241 Document patent PDF volume mount or migrate storage to S3/MinIO for containerized deployments 2026-03-27 07:22:47 +00:00

Opened #242 Add dark mode support using Tailwind dark variant 2026-03-27 07:22:57 +00:00

Opened #243 Security: refuse startup with default JWT secret in non-dev environments 2026-03-27 09:21:45 +00:00

Opened #244 Security: make CORS allowed origins configurable via environment variable 2026-03-27 09:21:54 +00:00

Opened #245 Security: remove hardcoded database credentials from docker-compose.yml 2026-03-27 09:22:04 +00:00

Opened #246 Bug: refactor get_db_client() in auth.py to use a shared connection pool 2026-03-27 09:22:14 +00:00

Opened #247 Bug: persist job state to PostgreSQL so batch results survive API restarts 2026-03-27 09:22:25 +00:00

Opened #248 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 09:22:36 +00:00

Opened #249 Tests: add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-27 09:22:48 +00:00

Opened #250 Backend: replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 09:23:00 +00:00

Opened #251 Backend: make LLM model configurable via MODEL environment variable 2026-03-27 09:23:12 +00:00

Opened #252 Backend: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 09:23:13 +00:00

Opened #253 Docs: document patent PDF storage volume mount requirement (or add S3/MinIO support) 2026-03-27 09:23:33 +00:00

Opened #254 Bug: analyze_single_patent does not download PDF before reading it from disk 2026-03-27 09:23:34 +00:00

Opened #255 Bug: fix Patent.patent_id type annotation — should be str not int 2026-03-27 09:23:49 +00:00

Opened #256 Frontend: add loading skeletons and error states to Batch and Analytics pages 2026-03-27 09:23:50 +00:00

Opened #257 Frontend: add dark mode support using Tailwind dark variant 2026-03-27 09:24:06 +00:00

Opened #258 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 09:24:07 +00:00

Opened #259 CI: add pytest test job to Gitea Actions workflow that gates the build 2026-03-27 09:24:24 +00:00

Opened #260 CI: add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI workflow 2026-03-27 09:24:25 +00:00

Opened #261 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-27 09:24:40 +00:00

Opened #262 Feature: side-by-side patent portfolio comparison view for two companies 2026-03-27 09:24:41 +00:00

Opened #263 Feature: scheduled/recurring analysis with alerts on significant changes 2026-03-27 09:24:57 +00:00

Opened #264 Feature: webhook/notification support for batch job completion and score changes 2026-03-27 09:24:57 +00:00

Opened #265 Feature: multi-model support — let users choose LLM provider per analysis 2026-03-27 09:25:12 +00:00

Opened #266 Feature: patent trend charts — filing frequency and technology category distribution over time 2026-03-27 09:25:12 +00:00

Opened #267 Feature: add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 09:25:29 +00:00

Opened #268 DX: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 09:25:30 +00:00

Opened #271 Security: refuse to start with default JWT secret in non-development environments 2026-03-27 10:21:42 +00:00

Opened #272 Security: make CORS allowed-origins configurable via environment variable 2026-03-27 10:22:01 +00:00

Opened #273 Security: move database credentials out of docker-compose.yml into .env or Docker secrets 2026-03-27 10:22:10 +00:00

Opened #274 Bug: get_db_client() in auth.py creates a new DatabaseClient on every call, exhausting the connection pool 2026-03-27 10:22:19 +00:00

Opened #275 Bug: persist async job state to PostgreSQL so batch results survive API restarts 2026-03-27 10:22:29 +00:00

Opened #276 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 10:22:39 +00:00

Opened #277 Tests: add JWT authentication flow tests covering registration, login, protected routes, and admin endpoints 2026-03-27 10:22:49 +00:00

Opened #278 Backend: replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 10:23:03 +00:00

Opened #279 Backend: make LLM model configurable via MODEL environment variable instead of hardcoding claude-3.5-sonnet 2026-03-27 10:23:12 +00:00

Opened #280 Backend: expose SERP_CACHE_TTL_HOURS as a configurable environment variable 2026-03-27 10:23:20 +00:00

Opened #281 Bug: fix Patent.patent_id type annotation in types.py -- should be str, not int 2026-03-27 10:23:29 +00:00

Opened #282 Bug: analyze_single_patent assumes PDF already exists locally -- integrate download step or document prerequisite 2026-03-27 10:23:40 +00:00

Opened #283 Frontend: commit a package lockfile (package-lock.json or pnpm-lock.yaml) to ensure reproducible builds 2026-03-27 10:23:49 +00:00

Opened #284 CI: add pytest test job to Gitea Actions workflow that gates the image build 2026-03-27 10:23:59 +00:00

Opened #285 Add startup check to reject default JWT secret in non-dev environments 2026-03-27 11:21:54 +00:00

Opened #286 Make CORS allowed origins configurable via environment variable 2026-03-27 11:22:01 +00:00

Opened #287 Remove plaintext DB credentials from docker-compose.yml 2026-03-27 11:22:09 +00:00

Opened #288 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-27 11:22:18 +00:00

Opened #289 Persist job state to PostgreSQL so batch results survive API restarts 2026-03-27 11:22:28 +00:00

Opened #290 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 11:22:40 +00:00

Opened #291 Add JWT authentication tests (registration, login, protected routes, admin) 2026-03-27 11:22:50 +00:00

Opened #292 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 11:23:00 +00:00

Opened #293 Make LLM model configurable via MODEL environment variable 2026-03-27 11:23:09 +00:00

Opened #294 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 11:23:18 +00:00

Opened #295 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 11:23:33 +00:00

Opened #296 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 11:25:41 +00:00

Opened #297 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-27 11:25:53 +00:00

Opened #298 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 11:26:01 +00:00

Opened #299 Add pytest test job to Gitea Actions CI workflow 2026-03-27 11:26:10 +00:00

Opened #300 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 11:26:30 +00:00

Opened #301 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 11:26:39 +00:00

Opened #302 Add side-by-side patent portfolio comparison view 2026-03-27 11:26:49 +00:00

Opened #303 Add API pagination to /analyze/batch and /jobs endpoints 2026-03-27 11:26:57 +00:00

Opened #304 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 11:27:05 +00:00

Opened #305 Add startup check to reject default JWT secret in non-dev environments 2026-03-27 12:22:03 +00:00

Opened #306 Make CORS allowed origins configurable via environment variable 2026-03-27 12:22:11 +00:00

Opened #307 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 12:22:23 +00:00

Opened #308 Fix get_db_client() in auth.py to use a shared connection pool 2026-03-27 12:22:35 +00:00

Opened #309 Persist async job state to PostgreSQL so results survive API restarts 2026-03-27 12:22:45 +00:00

Opened #310 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 12:22:54 +00:00

Opened #311 Add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-27 12:23:05 +00:00

Opened #312 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 12:23:14 +00:00

Opened #313 Make LLM model configurable via MODEL environment variable 2026-03-27 12:23:22 +00:00

Opened #314 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 12:23:31 +00:00

Opened #315 Fix analyze_single_patent to download PDF before attempting local read 2026-03-27 12:23:41 +00:00

Opened #316 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 12:23:49 +00:00

Opened #317 Add loading and error states to Batch and Analytics frontend pages 2026-03-27 12:23:58 +00:00

Opened #318 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 12:24:08 +00:00

Opened #319 Add pytest test job to Gitea Actions CI workflow to gate image builds 2026-03-27 12:24:18 +00:00

Opened #320 Add ruff linting and tsc type checking to CI 2026-03-27 12:24:28 +00:00

Opened #321 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 12:24:36 +00:00

Opened #322 Add side-by-side patent portfolio comparison view 2026-03-27 12:24:45 +00:00

Opened #323 Add patent filing trend charts to the Analytics page 2026-03-27 12:24:52 +00:00

Opened #324 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 12:25:00 +00:00

Opened #325 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 12:25:10 +00:00

Opened #326 Fix get_db_client() in auth.py to use singleton pattern properly 2026-03-27 13:22:00 +00:00

Opened #327 Persist job state in PostgreSQL to survive API restarts 2026-03-27 13:22:10 +00:00

Opened #328 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 13:22:20 +00:00

Opened #329 Make LLM model configurable via MODEL environment variable 2026-03-27 13:22:29 +00:00

Opened #330 Add loading skeletons and error states to Analytics page 2026-03-27 13:22:38 +00:00

Opened #331 Implement dark mode across all frontend pages 2026-03-27 13:22:47 +00:00

Opened #332 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 13:22:56 +00:00

Opened #333 Add patent trend charts to Analytics page 2026-03-27 13:23:04 +00:00

Opened #334 Add side-by-side company patent portfolio comparison view 2026-03-27 13:23:12 +00:00

Opened #335 Refuse startup with default JWT secret in non-development environments 2026-03-27 14:21:44 +00:00

Opened #336 Make CORS allowed origins configurable via environment variable 2026-03-27 14:21:51 +00:00

Opened #337 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 14:21:58 +00:00

Opened #338 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 14:22:06 +00:00

Opened #339 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 14:22:15 +00:00

Opened #340 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 14:22:22 +00:00

Opened #341 Document patent PDF volume mount and integrate download step in analyze_single_patent 2026-03-27 14:22:32 +00:00

Opened #342 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 14:22:39 +00:00

Opened #343 Add loading skeletons and error states to Batch processing page 2026-03-27 14:22:48 +00:00

Opened #344 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 14:22:56 +00:00

Opened #345 Add pytest test job to Gitea Actions CI workflow 2026-03-27 14:23:04 +00:00

Opened #346 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 14:23:13 +00:00

Opened #347 Implement scheduled/recurring patent analysis with change alerts 2026-03-27 14:23:22 +00:00

Opened #348 Add webhook/notification support for batch job completion and score changes 2026-03-27 14:23:30 +00:00

Opened #349 Add cursor-based pagination to /analyze/batch and /jobs API endpoints 2026-03-27 14:23:38 +00:00

Opened #350 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 14:23:46 +00:00

Opened #351 Multi-model LLM support: let users choose provider per analysis and compare outputs 2026-03-27 14:23:57 +00:00

Opened #354 Security: refuse to start with default JWT secret in non-dev environments 2026-03-27 16:22:00 +00:00

Opened #355 Security: make CORS allowed origins configurable via environment variable 2026-03-27 16:22:08 +00:00

Opened #356 Security: remove plaintext database credentials from docker-compose.yml 2026-03-27 16:22:15 +00:00

Opened #357 Fix: share a single pooled DatabaseClient instead of creating one per get_db_client() call 2026-03-27 16:22:24 +00:00

Opened #358 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-27 16:22:33 +00:00

Opened #359 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 16:22:40 +00:00

Opened #360 Add auth/JWT integration tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 16:22:49 +00:00

Opened #361 Add loading skeletons and error states to Analytics page 2026-03-27 16:22:59 +00:00

Opened #362 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 16:23:08 +00:00

Opened #363 Make LLM model configurable via MODEL environment variable 2026-03-27 16:23:15 +00:00

Opened #364 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 16:23:21 +00:00

Opened #365 Fix: analyze_single_patent must download the PDF before attempting to read it from disk 2026-03-27 16:23:31 +00:00

Opened #366 Fix: correct Patent.patent_id type annotation from int to str in types.py 2026-03-27 16:23:38 +00:00

Opened #367 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) to ensure reproducible builds 2026-03-27 16:23:47 +00:00

Opened #368 CI: add pytest test stage to Gitea Actions workflow that gates the image build 2026-03-27 16:23:55 +00:00

Opened #369 CI: add ruff (Python) and tsc --noEmit (TypeScript) linting to Gitea Actions 2026-03-27 16:24:04 +00:00

Opened #370 Document patent PDF volume mount requirement and consider object storage path 2026-03-27 16:24:14 +00:00

Opened #371 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 16:24:21 +00:00

Opened #372 Add side-by-side comparison view for two companies patent portfolios 2026-03-27 16:24:29 +00:00

Opened #373 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-27 16:24:37 +00:00

Opened #374 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 16:24:45 +00:00

Opened #375 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 16:24:53 +00:00

Opened #376 Add scheduled/recurring analysis with alerts on significant score changes 2026-03-27 16:25:03 +00:00

Opened #377 Security: refuse to start with default JWT secret in non-development environments 2026-03-27 17:21:22 +00:00

Opened #378 Security: make CORS allowed origins configurable via environment variable 2026-03-27 17:21:30 +00:00

Opened #379 Security: remove plaintext database credentials from docker-compose.yml 2026-03-27 17:21:36 +00:00

Opened #380 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-27 17:21:45 +00:00

Opened #381 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-27 17:21:52 +00:00

Opened #382 Add JWT auth integration tests: registration, login, protected routes, token refresh, admin-only endpoints 2026-03-27 17:22:01 +00:00

Opened #383 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 17:22:10 +00:00

Opened #384 Make LLM model configurable via MODEL environment variable 2026-03-27 17:22:19 +00:00

Opened #385 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 17:22:26 +00:00

Opened #386 Fix: analyze_single_patent must download PDF before attempting to read it from disk 2026-03-27 17:22:34 +00:00

Opened #387 Fix type annotation: Patent.patent_id should be str, not int 2026-03-27 17:22:41 +00:00

Opened #388 Add loading and error states to Batch and Analytics pages 2026-03-27 17:22:49 +00:00

Opened #389 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 17:22:57 +00:00

Opened #390 Add pytest test stage to Gitea Actions build.yaml to gate image builds on passing tests 2026-03-27 17:23:06 +00:00

Opened #391 Add ruff linting and tsc type checking to CI 2026-03-27 17:23:14 +00:00

Opened #392 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 17:23:22 +00:00

Opened #393 Add side-by-side comparison view for two companies patent portfolios 2026-03-27 17:23:29 +00:00

Opened #394 Implement scheduled/recurring analysis for tracked companies 2026-03-27 17:23:37 +00:00

Opened #395 Add webhook/notification support for batch job completion and innovation score changes 2026-03-27 17:23:44 +00:00

Opened #396 Add patent trend charts to Analytics page (filing frequency and technology category over time) 2026-03-27 17:23:51 +00:00

Opened #397 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 17:23:58 +00:00

Opened #398 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 17:24:07 +00:00

Opened #399 Add dark mode support using Tailwind dark variant 2026-03-27 17:24:15 +00:00

Opened #400 Multi-model support: let users choose LLM provider per analysis and compare outputs 2026-03-27 17:24:23 +00:00

Opened #401 Add startup check to refuse default JWT secret in non-dev environments 2026-03-27 18:22:25 +00:00

Opened #402 Make CORS allowed origins configurable via environment variable 2026-03-27 18:22:32 +00:00

Opened #403 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 18:22:40 +00:00

Opened #404 Fix get_db_client() to use a shared pooled DatabaseClient instead of per-call instantiation 2026-03-27 18:22:48 +00:00

Opened #405 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-27 18:22:59 +00:00

Opened #406 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 18:23:08 +00:00

Opened #407 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 18:23:20 +00:00

Opened #408 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 18:23:29 +00:00

Opened #409 Make LLM model configurable via MODEL environment variable 2026-03-27 18:23:36 +00:00

Opened #410 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 18:23:43 +00:00

Opened #411 Document patent PDF storage volume mount and evaluate object storage options 2026-03-27 18:23:53 +00:00

Opened #412 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 18:24:03 +00:00

Opened #413 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 18:24:12 +00:00

Opened #414 Add loading/error states (skeleton loaders and error messages) to Batch and Analytics pages 2026-03-27 18:24:22 +00:00

Opened #415 Add dark mode support using Tailwind dark: variant 2026-03-27 18:24:34 +00:00

Opened #416 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 18:24:43 +00:00

Opened #417 Add pytest test job to Gitea Actions CI workflow to gate image builds 2026-03-27 18:24:53 +00:00

Opened #418 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 18:25:04 +00:00

Opened #419 Export analysis reports as PDF or CSV from the dashboard 2026-03-27 18:25:15 +00:00

Opened #420 Add side-by-side patent portfolio comparison view 2026-03-27 18:25:23 +00:00

Opened #421 Implement scheduled/recurring analysis with change alerting 2026-03-27 18:25:32 +00:00

Opened #422 Add webhook/notification support for batch job completion and score changes 2026-03-27 18:25:42 +00:00

Opened #423 Add multi-model LLM support: let users choose provider per analysis 2026-03-27 18:25:50 +00:00

Opened #424 Add patent trend charts to Analytics page (filing frequency and technology categories over time) 2026-03-27 18:25:59 +00:00

Opened #425 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 18:26:07 +00:00

Opened #426 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 18:26:17 +00:00

Opened #427 Refuse startup with default JWT secret in non-development environments 2026-03-27 19:21:29 +00:00

Opened #428 Make CORS allowed origins configurable via environment variable 2026-03-27 19:21:37 +00:00

Opened #429 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 19:21:43 +00:00

Opened #430 Fix get_db_client() in auth.py to use a shared pooled database connection 2026-03-27 19:21:51 +00:00

Opened #431 Persist async batch job state to PostgreSQL to survive API restarts 2026-03-27 19:22:01 +00:00

Opened #432 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-27 19:22:11 +00:00

Opened #433 Add JWT authentication tests covering full auth flow 2026-03-27 19:22:20 +00:00

Opened #434 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 19:22:30 +00:00

Opened #435 Make LLM model configurable via MODEL environment variable 2026-03-27 19:22:39 +00:00

Opened #436 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 19:22:46 +00:00

Opened #437 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 19:22:56 +00:00

Opened #438 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 19:23:02 +00:00

Opened #439 Add loading states and error messages to Batch and Analytics pages 2026-03-27 19:23:11 +00:00

Opened #440 Commit a frontend lockfile to ensure reproducible builds 2026-03-27 19:23:18 +00:00

Opened #441 Add pytest test job to Gitea Actions CI workflow 2026-03-27 19:23:26 +00:00

Opened #442 Add ruff linting and tsc type checking to CI 2026-03-27 19:23:35 +00:00

Opened #444 Add startup check to refuse default JWT secret in non-development environments 2026-03-27 21:21:32 +00:00

Opened #445 Make CORS allowed origins configurable via environment variable 2026-03-27 21:21:41 +00:00

Opened #446 Remove hardcoded database credentials from docker-compose.yml 2026-03-27 21:21:49 +00:00

Opened #447 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-27 21:21:59 +00:00

Opened #448 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-27 21:22:08 +00:00

Opened #449 Add rate limiting middleware to auth endpoints 2026-03-27 21:22:16 +00:00

Opened #450 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-27 21:22:27 +00:00

Opened #451 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 21:22:37 +00:00

Opened #452 Make LLM model configurable via MODEL environment variable 2026-03-27 21:22:46 +00:00

Opened #453 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 21:22:53 +00:00

Opened #454 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 21:23:00 +00:00

Opened #455 Document patent PDF volume mount requirement and fix analyze_single_patent download step 2026-03-27 21:23:10 +00:00

Opened #456 Add loading skeletons and error states to Batch and Analytics pages 2026-03-27 21:23:20 +00:00

Opened #457 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 21:23:29 +00:00

Opened #458 Add pytest test stage to CI workflow that gates the Docker image build 2026-03-27 21:23:38 +00:00

Opened #459 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 21:23:49 +00:00

Opened #460 Allow users to export analysis reports as PDF or CSV from the dashboard 2026-03-27 21:23:59 +00:00

Opened #461 Add side-by-side patent portfolio comparison view for two companies 2026-03-27 21:24:06 +00:00

Opened #462 Implement scheduled/recurring analysis with change alerts 2026-03-27 21:24:16 +00:00

Opened #463 Add webhook/notification support for batch job completion and score changes 2026-03-27 21:24:25 +00:00

Opened #464 Add patent filing trend charts to the Analytics page 2026-03-27 21:24:34 +00:00

Opened #465 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 21:24:43 +00:00

Opened #466 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 21:24:51 +00:00

Opened #467 Security: Add startup check to reject default JWT secret in non-dev environments 2026-03-27 22:21:24 +00:00

Opened #468 Security: Make CORS allowed origins configurable via environment variable 2026-03-27 22:21:31 +00:00

Opened #469 Security: Remove hardcoded database credentials from docker-compose.yml 2026-03-27 22:21:38 +00:00

Opened #470 Fix: Share a single pooled DatabaseClient instead of creating one per auth call 2026-03-27 22:21:45 +00:00

Opened #471 Fix: Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-27 22:21:54 +00:00

Opened #472 Security: Add rate limiting middleware to /auth/login and /auth/register 2026-03-27 22:22:02 +00:00

Opened #473 Test: Add JWT authentication flow tests to test_api.py 2026-03-27 22:22:10 +00:00

Opened #474 Backend: Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-27 22:22:19 +00:00

Opened #475 Backend: Make LLM model configurable via MODEL environment variable 2026-03-27 22:22:25 +00:00

Opened #476 Backend: Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 22:22:31 +00:00

Opened #477 Backend: Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 22:22:41 +00:00

Opened #478 Backend: Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 22:22:47 +00:00

Opened #479 Frontend: Add loading skeletons and error states to Batch and Analytics pages 2026-03-27 22:22:55 +00:00

Opened #480 Frontend: Commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-27 22:23:03 +00:00

Opened #481 CI: Add pytest test stage to Gitea Actions build workflow 2026-03-27 22:23:10 +00:00

Opened #482 CI: Add ruff linting and tsc --noEmit type checking to CI pipeline 2026-03-27 22:23:18 +00:00

Opened #483 Feature: Export analysis reports as PDF or CSV from the dashboard 2026-03-27 22:23:26 +00:00

Opened #484 Feature: Side-by-side patent portfolio comparison view 2026-03-27 22:23:32 +00:00

Opened #485 Feature: Scheduled/recurring analysis with change alerts 2026-03-27 22:23:40 +00:00

Opened #486 Feature: Webhook/notification support for batch job completion and score changes 2026-03-27 22:23:47 +00:00

Opened #487 Feature: Patent trend charts in Analytics page (filing frequency and category distribution) 2026-03-27 22:23:54 +00:00

Opened #488 Feature: Cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-27 22:24:02 +00:00

Opened #489 Feature: Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 22:24:10 +00:00

Opened #490 Add startup check to reject default JWT secret in non-dev environments 2026-03-27 23:21:28 +00:00

Opened #491 Make CORS allowed origins configurable via environment variable 2026-03-27 23:21:35 +00:00

Opened #492 Replace hardcoded database credentials in docker-compose.yml with .env file 2026-03-27 23:21:41 +00:00

Opened #493 Refactor auth.py to use a shared pooled DatabaseClient instead of creating one per call 2026-03-27 23:21:49 +00:00

Opened #494 Persist batch job state in PostgreSQL so job results survive API restarts 2026-03-27 23:21:57 +00:00

Opened #495 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-27 23:22:04 +00:00

Opened #496 Add JWT authentication tests covering the full auth flow 2026-03-27 23:22:11 +00:00

Opened #497 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-27 23:22:21 +00:00

Opened #498 Make LLM model configurable via MODEL environment variable 2026-03-27 23:22:27 +00:00

Opened #499 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-27 23:22:34 +00:00

Opened #500 Fix analyze_single_patent to download PDF before reading from disk 2026-03-27 23:22:41 +00:00

Opened #501 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-27 23:22:48 +00:00

Opened #502 Document patent PDF volume mount requirement and evaluate object storage options 2026-03-27 23:22:55 +00:00

Opened #503 Add loading states and error messages to Batch and Analytics pages 2026-03-27 23:23:02 +00:00

Opened #504 Commit a frontend lockfile to ensure reproducible builds 2026-03-27 23:23:10 +00:00

Opened #505 Add pytest test stage to Gitea Actions CI workflow 2026-03-27 23:23:17 +00:00

Opened #506 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-27 23:23:25 +00:00

Opened #507 Add export functionality: download analysis results as PDF or CSV 2026-03-27 23:23:34 +00:00

Opened #508 Add side-by-side patent portfolio comparison view 2026-03-27 23:23:42 +00:00

Opened #509 Implement scheduled/recurring patent analysis with change alerts 2026-03-27 23:23:49 +00:00

Opened #510 Add webhook/notification support for batch job completion and score changes 2026-03-27 23:23:57 +00:00

Opened #511 Add patent filing trend charts to the Analytics page 2026-03-27 23:24:04 +00:00

Opened #512 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-27 23:24:12 +00:00

Opened #513 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-27 23:24:19 +00:00

Opened #514 Add dark mode support to the frontend using Tailwind dark variant 2026-03-27 23:24:28 +00:00

Opened #515 Add per-analysis LLM provider selection (multi-model support) 2026-03-27 23:24:33 +00:00

Opened #516 Security: refuse to start with default JWT secret in non-dev environments 2026-03-28 01:31:23 +00:00

Opened #517 Security: make CORS allowed origins configurable via environment variable 2026-03-28 01:31:30 +00:00

Opened #518 Security: remove hardcoded database credentials from docker-compose.yml 2026-03-28 01:31:37 +00:00

Opened #519 Fix: share a single pooled DatabaseClient instead of creating one per request in auth.py 2026-03-28 01:31:44 +00:00

Opened #520 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-28 01:31:53 +00:00

Opened #521 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 01:32:00 +00:00

Opened #522 Tests: add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-28 01:32:08 +00:00

Opened #523 Backend: replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 01:32:17 +00:00

Opened #524 Backend: make LLM model configurable via MODEL environment variable 2026-03-28 01:32:24 +00:00

Opened #525 Backend: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 01:32:30 +00:00

Opened #526 Backend: document volume mount requirement for patents/ PDF storage directory 2026-03-28 01:32:38 +00:00

Opened #527 Bug: analyze_single_patent does not download PDF before reading it from disk 2026-03-28 01:32:46 +00:00

Opened #528 Bug: fix Patent.patent_id type annotation — change from int to str in types.py 2026-03-28 01:32:52 +00:00

Opened #529 Frontend: add loading skeletons and error states to Batch and Analytics pages 2026-03-28 01:32:59 +00:00

Opened #530 Frontend: add dark mode support using Tailwind dark variant 2026-03-28 01:33:05 +00:00

Opened #531 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 01:33:13 +00:00

Opened #532 CI: add pytest test stage to Gitea Actions workflow that gates image builds 2026-03-28 01:33:21 +00:00

Opened #533 CI: add ruff (Python) and tsc --noEmit (TypeScript) linting to Gitea Actions workflow 2026-03-28 01:33:29 +00:00

Opened #534 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-28 01:33:37 +00:00

Opened #535 Feature: side-by-side comparison view for two companies patent portfolios 2026-03-28 01:33:43 +00:00

Opened #536 Feature: scheduled/recurring patent analysis with alerts on significant changes 2026-03-28 01:33:50 +00:00

Opened #537 Feature: webhook/notification support for batch job completion and score change alerts 2026-03-28 01:33:58 +00:00

Opened #538 Feature: patent trend charts showing filing frequency and category distribution over time 2026-03-28 01:34:06 +00:00

Opened #539 Feature: cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-28 01:34:13 +00:00

Opened #540 Feature: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 01:34:22 +00:00

Opened #541 Feature: multi-model support allowing users to choose LLM provider per analysis 2026-03-28 02:22:01 +00:00

Opened #542 Add startup check refusing default JWT secret in non-dev environments 2026-03-28 03:21:19 +00:00

Opened #543 Make CORS allowed origins configurable via environment variable 2026-03-28 03:21:26 +00:00

Opened #544 Move database credentials out of docker-compose.yml into .env file 2026-03-28 03:21:33 +00:00

Opened #545 Refactor auth.py to use a shared pooled DatabaseClient instead of per-call instantiation 2026-03-28 03:21:41 +00:00

Opened #546 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 03:21:50 +00:00

Opened #547 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-28 03:21:57 +00:00

Opened #548 Add JWT authentication integration tests covering login, protected routes, and admin endpoints 2026-03-28 03:22:06 +00:00

Opened #549 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 03:22:14 +00:00

Opened #550 Make LLM model configurable via MODEL environment variable 2026-03-28 03:22:20 +00:00

Opened #551 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 03:22:26 +00:00

Opened #552 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 03:22:34 +00:00

Opened #553 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 03:22:40 +00:00

Opened #554 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-28 03:22:48 +00:00

Opened #555 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 03:22:55 +00:00

Opened #556 Add pytest test job to Gitea Actions CI workflow that gates image builds 2026-03-28 03:23:04 +00:00

Opened #557 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 03:23:12 +00:00

Opened #558 Add export functionality for analysis reports (PDF and CSV download) 2026-03-28 03:23:21 +00:00

Opened #559 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 03:23:29 +00:00

Opened #560 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 03:23:37 +00:00

Opened #561 Document patent PDF volume mount requirement and evaluate S3/MinIO for containerized storage 2026-03-28 04:21:38 +00:00

Opened #562 Add dark mode support to frontend using Tailwind dark variant 2026-03-28 04:21:54 +00:00

Opened #563 Add side-by-side patent portfolio comparison view for two companies 2026-03-28 04:22:05 +00:00

Opened #564 Add scheduled/recurring analysis with change alerts for tracked companies 2026-03-28 04:22:17 +00:00

Opened #565 Add webhook/notification support for batch job completion and score change events 2026-03-28 04:22:27 +00:00

Opened #566 Add per-analysis LLM provider selection (GPT-4o, Gemini, Claude) with output comparison 2026-03-28 04:22:39 +00:00

Opened #567 Add patent trend charts to Analytics page (filing frequency and technology category over time) 2026-03-28 04:22:49 +00:00

Opened #568 Add startup check to reject default JWT secret in non-dev environments 2026-03-28 06:21:27 +00:00

Opened #569 Make CORS allowed origins configurable via environment variable 2026-03-28 06:21:33 +00:00

Opened #570 Remove hardcoded postgres credentials from docker-compose.yml 2026-03-28 06:21:38 +00:00

Opened #571 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 06:21:48 +00:00

Opened #572 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 06:21:54 +00:00

Opened #573 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 06:22:00 +00:00

Opened #574 Add JWT authentication tests: registration, login, protected routes, and admin endpoints 2026-03-28 06:22:11 +00:00

Opened #575 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 06:22:20 +00:00

Opened #576 Make LLM model configurable via MODEL environment variable 2026-03-28 06:22:24 +00:00

Opened #577 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 06:22:29 +00:00

Opened #578 Document patent PDF volume mount and add object storage option for containerized deployments 2026-03-28 06:22:39 +00:00

Opened #579 Fix analyze_single_patent to download PDF before attempting to read from disk 2026-03-28 06:22:46 +00:00

Opened #580 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 06:22:51 +00:00

Opened #581 Add loading skeletons and error states to Batch and Analytics pages 2026-03-28 06:22:59 +00:00

Opened #582 Add dark mode support using Tailwind dark: variants 2026-03-28 06:23:07 +00:00

Opened #583 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 06:23:11 +00:00

Opened #584 Add pytest test job to Gitea Actions CI workflow 2026-03-28 06:23:20 +00:00

Opened #585 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 06:23:26 +00:00

Opened #586 Add PDF and CSV export for analysis reports from the dashboard 2026-03-28 06:23:37 +00:00

Opened #587 Add side-by-side comparison view for two companies patent portfolios 2026-03-28 06:23:42 +00:00

Opened #588 Add scheduled/recurring analysis with alerting on significant score changes 2026-03-28 06:23:48 +00:00

Opened #589 Add webhook/notification support for batch job completion and score change alerts 2026-03-28 06:23:58 +00:00

Opened #590 Add per-analysis LLM provider selection and multi-model output comparison 2026-03-28 06:24:04 +00:00

Opened #591 Add patent filing frequency and technology category trend charts to Analytics page 2026-03-28 06:24:09 +00:00

Opened #592 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 06:24:17 +00:00

Opened #593 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 06:24:24 +00:00

Opened #594 Refuse to start with default JWT secret in non-dev environments 2026-03-28 09:21:32 +00:00

Opened #595 Make CORS allowed origins configurable via environment variable 2026-03-28 09:21:40 +00:00

Opened #596 Remove plain-text DB credentials from docker-compose.yml 2026-03-28 09:21:48 +00:00

Opened #597 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 09:21:59 +00:00

Opened #598 Persist async job state to PostgreSQL so jobs survive API restarts 2026-03-28 09:22:07 +00:00

Opened #599 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 09:22:15 +00:00

Opened #600 Add JWT auth flow tests (registration, login, protected routes, token refresh, admin) 2026-03-28 09:22:25 +00:00

Opened #601 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 09:22:34 +00:00

Opened #602 Make LLM model configurable via MODEL environment variable 2026-03-28 09:22:42 +00:00

Opened #603 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 09:22:49 +00:00

Opened #604 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 09:22:59 +00:00

Opened #605 Fix Patent.patent_id type annotation: change int to str in types.py 2026-03-28 09:23:07 +00:00

Opened #606 Add loading states and error messages to Batch and Analytics pages 2026-03-28 09:23:15 +00:00

Opened #607 Commit frontend lockfile for reproducible builds 2026-03-28 09:23:25 +00:00

Opened #608 Add pytest test job to Gitea Actions CI workflow 2026-03-28 09:23:34 +00:00

Opened #609 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 09:23:43 +00:00

Opened #610 Add dark mode support to frontend using Tailwind dark: variants 2026-03-28 10:22:02 +00:00

Opened #611 Refuse startup with default JWT secret in non-dev environments 2026-03-28 11:21:20 +00:00

Opened #612 Make CORS allowed origins configurable via environment variable 2026-03-28 11:21:25 +00:00

Opened #613 Remove hardcoded database credentials from docker-compose.yml 2026-03-28 11:21:30 +00:00

Opened #614 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 11:21:39 +00:00

Opened #615 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 11:21:45 +00:00

Opened #616 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 11:21:51 +00:00

Opened #617 Add JWT authentication tests (registration, login, protected routes, token refresh, admin) 2026-03-28 11:22:01 +00:00

Opened #618 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 11:22:10 +00:00

Opened #619 Make LLM model configurable via MODEL environment variable 2026-03-28 11:22:16 +00:00

Opened #620 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 11:22:20 +00:00

Opened #621 Document patent PDF storage volume mount and consider object storage path 2026-03-28 11:22:29 +00:00

Opened #622 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 11:22:36 +00:00

Opened #623 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 11:22:41 +00:00

Opened #624 Add loading/error states to Batch and Analytics frontend pages 2026-03-28 11:22:50 +00:00

Opened #625 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 11:22:56 +00:00

Opened #626 Add dark mode support using Tailwind dark variant 2026-03-28 11:23:02 +00:00

Opened #627 Add pytest test job to Gitea Actions CI workflow 2026-03-28 11:23:10 +00:00

Opened #628 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 11:23:16 +00:00

Opened #629 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 11:23:24 +00:00

Opened #630 Add side-by-side patent portfolio comparison view 2026-03-28 11:23:28 +00:00

Opened #631 Scheduled/recurring analysis with alerts on significant changes 2026-03-28 11:23:35 +00:00

Opened #632 Add webhook/notification support for completed jobs and score changes 2026-03-28 11:23:43 +00:00

Opened #633 Add patent trend charts to the Analytics page 2026-03-28 11:23:49 +00:00

Opened #634 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 11:23:54 +00:00

Opened #635 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 11:24:03 +00:00

Opened #636 Multi-model LLM support: let users select provider per analysis 2026-03-28 11:24:08 +00:00

Opened #637 Add startup check to reject default JWT secret in production 2026-03-28 12:21:32 +00:00

Opened #638 Make CORS allowed origins configurable via environment variable 2026-03-28 12:21:41 +00:00

Opened #639 Remove hardcoded database credentials from docker-compose.yml 2026-03-28 12:21:49 +00:00

Opened #640 Refactor get_db_client() to use a shared pooled connection 2026-03-28 12:21:57 +00:00

Opened #641 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-28 12:22:07 +00:00

Opened #642 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 12:22:18 +00:00

Opened #643 Add JWT auth integration tests (registration, login, protected routes, admin) 2026-03-28 12:22:28 +00:00

Opened #644 Replace print() calls with structured logging in analyzer, serp_api, and llm modules 2026-03-28 12:22:37 +00:00

Opened #645 Make LLM model configurable via MODEL environment variable 2026-03-28 12:22:44 +00:00

Opened #646 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 12:22:51 +00:00

Opened #647 Document patent PDF volume mount requirement and path assumptions 2026-03-28 12:23:01 +00:00

Opened #648 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 12:23:09 +00:00

Opened #649 Add loading states and error messages to Batch and Analytics pages 2026-03-28 12:23:18 +00:00

Opened #650 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-28 12:23:30 +00:00

Opened #651 Add pytest test stage to Gitea Actions CI workflow 2026-03-28 12:23:41 +00:00

Opened #652 Add ruff and tsc --noEmit linting/type checking to CI 2026-03-28 12:23:50 +00:00

Opened #653 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 12:23:58 +00:00

Opened #654 Add side-by-side patent portfolio comparison view 2026-03-28 12:24:06 +00:00

Opened #655 Implement scheduled/recurring patent analysis with change alerts 2026-03-28 12:24:16 +00:00

Opened #656 Add webhook/notification support for batch job completion and score changes 2026-03-28 12:24:25 +00:00

Opened #657 Add patent filing trend charts to the Analytics page 2026-03-28 12:24:33 +00:00

Opened #658 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 12:24:43 +00:00

Opened #659 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 12:24:53 +00:00

Opened #660 Add startup check to reject default JWT secret in non-dev environments 2026-03-28 13:21:32 +00:00

Opened #661 Make CORS allowed origins configurable via environment variable 2026-03-28 13:21:41 +00:00

Opened #662 Remove plaintext database credentials from docker-compose.yml 2026-03-28 13:21:51 +00:00

Opened #663 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 13:21:59 +00:00

Opened #664 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-28 13:22:09 +00:00

Opened #665 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 13:22:18 +00:00

Opened #666 Add JWT auth integration tests (registration, login, protected routes, admin endpoints) 2026-03-28 13:22:29 +00:00

Opened #667 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 13:22:44 +00:00

Opened #668 Make LLM model configurable via MODEL environment variable 2026-03-28 13:22:51 +00:00

Opened #669 Expose SERP cache TTL as a SERP_CACHE_TTL_HOURS environment variable 2026-03-28 13:22:58 +00:00

Opened #670 Fix analyze_single_patent to download PDF before attempting to read it 2026-03-28 13:23:07 +00:00

Opened #671 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 13:23:15 +00:00

Opened #672 Add loading states and error messages to Batch and Analytics pages 2026-03-28 13:23:24 +00:00

Opened #673 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 13:23:33 +00:00

Opened #674 Add pytest test job to Gitea Actions CI workflow 2026-03-28 13:23:42 +00:00

Opened #675 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 13:23:49 +00:00

Opened #676 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 13:23:58 +00:00

Opened #677 Add side-by-side patent portfolio comparison view 2026-03-28 13:24:07 +00:00

Opened #678 Implement scheduled/recurring analysis for tracked companies 2026-03-28 13:24:15 +00:00

Opened #679 Add webhook/notification support for batch job completion and score changes 2026-03-28 13:24:25 +00:00

Opened #680 Add patent filing trend charts to the Analytics page 2026-03-28 13:24:33 +00:00

Opened #681 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 13:24:43 +00:00

Opened #682 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 13:24:54 +00:00

Opened #683 Refuse startup with default JWT secret in non-development environments 2026-03-28 15:21:49 +00:00

Opened #684 Make CORS allowed origins configurable via environment variable 2026-03-28 15:21:54 +00:00

Opened #685 Remove hardcoded database credentials from docker-compose.yml 2026-03-28 15:22:00 +00:00

Opened #686 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 15:22:07 +00:00

Opened #687 Persist async job state in PostgreSQL to survive API restarts 2026-03-28 15:22:13 +00:00

Opened #688 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 15:22:18 +00:00

Opened #689 Add JWT auth flow tests: registration, login, protected routes, token refresh, and admin endpoints 2026-03-28 15:22:28 +00:00

Opened #690 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 15:22:40 +00:00

Opened #691 Make LLM model configurable via MODEL environment variable 2026-03-28 15:22:43 +00:00

Opened #692 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 15:22:47 +00:00

Opened #693 Document patent PDF volume mount requirement and evaluate object storage path 2026-03-28 15:22:58 +00:00

Opened #694 Fix analyze_single_patent to download PDF before reading from disk 2026-03-28 15:23:04 +00:00

Opened #695 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 15:23:08 +00:00

Opened #696 Add loading and error states to Batch and Analytics pages 2026-03-28 15:23:16 +00:00

Opened #697 Add dark mode support using Tailwind dark variant 2026-03-28 15:23:21 +00:00

Opened #698 Add and commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-28 15:23:27 +00:00

Opened #699 Add pytest test job to CI workflow that gates the image build 2026-03-28 15:23:36 +00:00

Opened #700 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 15:23:42 +00:00

Opened #701 Export analysis reports as PDF or CSV from the dashboard 2026-03-28 15:23:52 +00:00

Opened #702 Add side-by-side patent portfolio comparison view 2026-03-28 15:23:56 +00:00

Opened #703 Add scheduled/recurring analysis with change alerting 2026-03-28 15:24:03 +00:00

Opened #704 Add webhook/notification support for batch job completion and score changes 2026-03-28 15:24:13 +00:00

Opened #705 Add patent trend charts to the Analytics page 2026-03-28 15:24:18 +00:00

Opened #706 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 15:24:24 +00:00

Opened #707 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 15:24:32 +00:00

Opened #708 Add multi-model support: let users choose LLM provider per analysis 2026-03-28 15:24:39 +00:00

Opened #709 Security: Refuse to start with default JWT secret in non-dev environments 2026-03-28 16:21:37 +00:00

Opened #710 Security: Make CORS allowed origins configurable via environment variable 2026-03-28 16:21:45 +00:00

Opened #711 Security: Remove hardcoded database credentials from docker-compose.yml 2026-03-28 16:21:53 +00:00

Opened #712 Bug: Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-28 16:22:02 +00:00

Opened #713 Bug: Persist async job state in PostgreSQL so results survive API restarts 2026-03-28 16:22:11 +00:00

Opened #714 Security: Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 16:22:19 +00:00

Opened #715 Test: Add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-28 16:22:28 +00:00

Opened #716 Refactor: Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 16:22:37 +00:00

Opened #717 Feature: Make LLM model selection configurable via MODEL environment variable 2026-03-28 16:22:45 +00:00

Opened #718 Feature: Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 16:22:51 +00:00

Opened #719 Docs: Document patent PDF volume mount requirement and consider object storage path 2026-03-28 16:23:00 +00:00

Opened #720 Bug: analyze_single_patent does not download PDF before reading from disk 2026-03-28 16:23:12 +00:00

Opened #721 Bug: Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 16:23:20 +00:00

Opened #722 Feature: Add loading states and error messages to Batch and Analytics pages 2026-03-28 16:23:31 +00:00

Opened #723 Feature: Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 16:23:42 +00:00

Opened #724 CI: Add pytest test job to Gitea Actions build workflow 2026-03-28 16:23:53 +00:00

Opened #725 CI: Add ruff linting and tsc --noEmit type checking to CI pipeline 2026-03-28 16:24:04 +00:00

Opened #726 Feature: Export analysis reports as PDF or CSV from the dashboard 2026-03-28 16:24:15 +00:00

Opened #727 Feature: Side-by-side comparison view for two companies patent portfolios 2026-03-28 16:24:24 +00:00

Opened #728 Feature: Scheduled/recurring analysis with alerting on significant changes 2026-03-28 16:24:32 +00:00

Opened #729 Feature: Webhook/notification support for batch job completion and score changes 2026-03-28 16:24:39 +00:00

Opened #730 Feature: Add patent trend charts to Analytics page (filing frequency and category distribution) 2026-03-28 16:24:47 +00:00

Opened #731 Feature: Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 16:24:54 +00:00

Opened #732 Feature: Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 16:25:01 +00:00

Opened #733 Refuse to start with default JWT secret in non-development environments 2026-03-28 17:21:40 +00:00

Opened #734 Refuse to start with default JWT secret in non-development environments 2026-03-28 17:21:47 +00:00

Opened #735 Make CORS allowed origins configurable via environment variable 2026-03-28 17:21:57 +00:00

Opened #736 Remove plaintext database credentials from docker-compose.yml 2026-03-28 17:22:06 +00:00

Opened #737 Fix get_db_client() in auth.py to reuse a shared pooled database connection 2026-03-28 17:22:16 +00:00

Opened #738 Persist async batch job state in PostgreSQL instead of in-memory dict 2026-03-28 17:22:26 +00:00

Opened #739 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-28 17:22:35 +00:00

Opened #740 Add test coverage for JWT auth flow: registration, login, protected routes, and admin endpoints 2026-03-28 17:22:46 +00:00

Opened #741 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 17:22:56 +00:00

Opened #742 Make LLM model selection configurable via MODEL environment variable 2026-03-28 17:23:08 +00:00

Opened #743 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 17:23:09 +00:00

Opened #744 Fix Patent.patent_id type annotation in types.py from int to str 2026-03-28 17:23:23 +00:00

Opened #745 Fix analyze_single_patent to download PDF before reading from disk, or document the prerequisite 2026-03-28 17:23:23 +00:00

Opened #746 Add loading skeletons and error states to Batch and Analytics pages 2026-03-28 17:23:38 +00:00

Opened #747 Commit a frontend package lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 17:23:39 +00:00

Opened #748 Add pytest test stage to Gitea Actions workflow to gate image builds 2026-03-28 17:23:57 +00:00

Opened #749 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI pipeline 2026-03-28 17:23:57 +00:00

Opened #750 Allow users to download analysis results as PDF or CSV from the dashboard 2026-03-28 17:24:19 +00:00

Opened #751 Add patent filing frequency and technology category trend charts to the Analytics page 2026-03-28 17:24:20 +00:00

Opened #752 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 17:24:20 +00:00

Opened #753 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 17:24:35 +00:00

Opened #754 Implement dark mode using Tailwind dark variant 2026-03-28 17:24:36 +00:00

Opened #755 Add startup check to refuse default JWT secret in non-development environments 2026-03-28 18:21:32 +00:00

Opened #756 Make CORS allowed origins configurable via environment variable 2026-03-28 18:21:40 +00:00

Opened #757 Replace hardcoded database credentials in docker-compose.yml with .env file reference 2026-03-28 18:21:48 +00:00

Opened #758 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-28 18:21:56 +00:00

Opened #759 Persist async batch job state in PostgreSQL so job results survive API restarts 2026-03-28 18:22:05 +00:00

Opened #760 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-28 18:22:13 +00:00

Opened #761 Add JWT authentication integration tests covering full auth flow 2026-03-28 18:22:22 +00:00

Opened #762 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-28 18:22:30 +00:00

Opened #763 Make LLM model configurable via MODEL environment variable 2026-03-28 18:22:37 +00:00

Opened #764 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-28 18:22:44 +00:00

Opened #765 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-28 18:22:55 +00:00

Opened #766 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-28 18:23:01 +00:00

Opened #767 Add loading skeletons and error states to Batch and Analytics pages 2026-03-28 18:23:09 +00:00

Opened #768 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-28 18:23:18 +00:00

Opened #769 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-28 18:23:27 +00:00

Opened #770 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-28 18:23:34 +00:00

Opened #771 Add export functionality to download analysis results as PDF or CSV 2026-03-28 18:23:46 +00:00

Opened #772 Add side-by-side patent portfolio comparison view for two companies 2026-03-28 18:23:54 +00:00

Opened #773 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-28 18:24:02 +00:00

Opened #774 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-28 18:24:08 +00:00

Opened #775 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-28 18:24:19 +00:00

Opened #776 Support object storage (S3/MinIO) for patent PDFs in containerized deployments 2026-03-28 19:21:54 +00:00

Opened #777 Add scheduled/recurring analysis with alerts on significant changes 2026-03-28 19:22:04 +00:00

Opened #778 Add webhook/notification support for batch job completion and score change alerts 2026-03-28 19:22:19 +00:00

Opened #779 Add multi-model support to let users choose LLM provider per analysis 2026-03-28 19:22:35 +00:00

Opened #780 Refuse to start with default JWT secret in non-development environments 2026-03-29 00:21:31 +00:00

Opened #781 Make CORS allowed origins configurable via environment variable 2026-03-29 00:21:40 +00:00

Opened #782 Move database credentials out of docker-compose.yml into .env / Docker secrets 2026-03-29 00:21:47 +00:00

Opened #783 Refactor get_db_client() in auth.py to use a shared pooled database connection 2026-03-29 00:21:56 +00:00

Opened #784 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 00:22:06 +00:00

Opened #785 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-29 00:22:14 +00:00

Opened #786 Add JWT authentication tests: registration, login, protected routes, and admin endpoints 2026-03-29 00:22:24 +00:00

Opened #787 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 00:22:33 +00:00

Opened #788 Make LLM model configurable via MODEL environment variable 2026-03-29 00:22:40 +00:00

Opened #789 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 00:22:47 +00:00

Opened #790 Fix Patent.patent_id type annotation: change int to str in types.py 2026-03-29 00:22:56 +00:00

Opened #791 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-29 00:23:06 +00:00

Opened #792 Add loading skeletons and error states to Batch and Analytics pages 2026-03-29 00:23:15 +00:00

Opened #793 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 00:23:24 +00:00

Opened #794 Add pytest test job to Gitea Actions build.yaml that gates image builds 2026-03-29 00:23:33 +00:00

Opened #795 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 00:23:41 +00:00

Opened #796 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-29 00:23:50 +00:00

Opened #797 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 00:23:58 +00:00

Opened #798 Refuse to start with default JWT secret in non-development environments 2026-03-29 01:21:17 +00:00

Opened #799 Make CORS allowed origins configurable via environment variable 2026-03-29 01:21:34 +00:00

Opened #800 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 01:21:42 +00:00

Opened #801 Fix DatabaseClient connection pooling in auth.py 2026-03-29 01:21:52 +00:00

Opened #802 Persist async batch job state to PostgreSQL 2026-03-29 01:22:00 +00:00

Opened #803 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 01:22:07 +00:00

Opened #804 Add tests for JWT authentication flow and admin-only endpoints 2026-03-29 01:22:16 +00:00

Opened #805 Replace print() calls with structured Python logging 2026-03-29 01:22:25 +00:00

Opened #806 Make LLM model selection configurable via MODEL environment variable 2026-03-29 01:22:32 +00:00

Opened #807 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 01:22:39 +00:00

Opened #808 Document patent PDF storage volume requirement and add S3/MinIO option 2026-03-29 01:22:48 +00:00

Opened #809 Fix analyze_single_patent to download PDF before attempting to read it 2026-03-29 01:22:57 +00:00

Opened #810 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 01:23:06 +00:00

Opened #811 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-29 01:23:15 +00:00

Opened #812 Add dark mode support using Tailwind dark variant 2026-03-29 01:23:22 +00:00

Opened #813 Commit a frontend package lockfile for reproducible builds 2026-03-29 01:23:30 +00:00

Opened #814 Add pytest test job to Gitea Actions CI workflow 2026-03-29 01:23:39 +00:00

Opened #815 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 01:23:48 +00:00

Opened #816 Add export functionality for analysis reports (PDF and CSV) 2026-03-29 01:23:55 +00:00

Opened #817 Add side-by-side company patent portfolio comparison view 2026-03-29 01:24:02 +00:00

Opened #818 Add scheduled recurring analysis for tracked companies 2026-03-29 01:24:11 +00:00

Opened #819 Add webhook and notification support for batch job completion 2026-03-29 01:24:23 +00:00

Opened #820 Add per-analysis multi-model selection (GPT-4o, Gemini, Claude) 2026-03-29 01:24:30 +00:00

Opened #821 Add patent trend charts to the Analytics page 2026-03-29 01:24:38 +00:00

Opened #822 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 01:24:46 +00:00

Opened #823 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 01:24:54 +00:00

Opened #824 Make CORS allowed origins configurable via environment variable 2026-03-29 02:21:31 +00:00

Opened #825 Move database credentials out of docker-compose.yml into .env file 2026-03-29 02:21:39 +00:00

Opened #826 Refactor auth.py to use a shared pooled DatabaseClient instead of per-call instantiation 2026-03-29 02:21:47 +00:00

Opened #827 Persist async job state in PostgreSQL so jobs survive API restarts 2026-03-29 02:21:56 +00:00

Opened #828 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-29 02:22:04 +00:00

Opened #829 Add JWT authentication flow tests (registration, login, protected routes, token refresh, admin) 2026-03-29 02:22:12 +00:00

Opened #830 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 02:22:20 +00:00

Opened #831 Make LLM model configurable via MODEL environment variable 2026-03-29 02:22:27 +00:00

Opened #832 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 02:22:33 +00:00

Opened #833 Fix analyze_single_patent to download PDF before reading it from disk 2026-03-29 02:22:41 +00:00

Opened #834 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 02:22:47 +00:00

Opened #835 Add loading states and error messages to Batch and Analytics pages 2026-03-29 02:22:56 +00:00

Opened #836 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 02:23:06 +00:00

Opened #837 Add pytest test job to Gitea Actions build.yaml that gates the image build 2026-03-29 02:23:15 +00:00

Opened #838 Add ruff linting and tsc type-checking to CI workflow 2026-03-29 02:23:24 +00:00

Opened #839 Add Tailwind dark mode variant across frontend pages 2026-03-29 03:21:45 +00:00

Opened #840 Document or implement object storage for patent PDF files 2026-03-29 03:21:57 +00:00

Opened #841 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 03:22:13 +00:00

Opened #842 Add side-by-side comparison view for two companies patent portfolios 2026-03-29 03:22:22 +00:00

Opened #843 Add scheduled recurring analysis with change alerting 2026-03-29 03:22:33 +00:00

Opened #844 Add webhook and notification support for job completion and score changes 2026-03-29 03:22:44 +00:00

Opened #845 Add multi-model LLM support so users can choose provider per analysis 2026-03-29 03:22:56 +00:00

Opened #846 Add patent trend charts (filing frequency and tech category distribution over time) 2026-03-29 03:23:05 +00:00

Opened #847 Add cursor-based pagination to batch and jobs list endpoints 2026-03-29 03:23:14 +00:00

Opened #848 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 03:23:23 +00:00

Opened #849 Refuse to start with default JWT secret in non-development environments 2026-03-29 04:21:22 +00:00

Opened #850 Make CORS allowed origins configurable via environment variable 2026-03-29 04:21:27 +00:00

Opened #851 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 04:21:33 +00:00

Opened #852 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-29 04:21:41 +00:00

Opened #853 Persist async job state in PostgreSQL so results survive API restarts 2026-03-29 04:21:48 +00:00

Opened #854 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 04:21:54 +00:00

Opened #855 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 04:22:04 +00:00

Opened #856 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 04:22:14 +00:00

Opened #857 Make LLM model configurable via MODEL environment variable 2026-03-29 04:22:19 +00:00

Opened #858 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 04:22:23 +00:00

Opened #859 Document patent PDF volume mount requirement for containerized deployments 2026-03-29 04:22:31 +00:00

Opened #860 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 04:22:37 +00:00

Opened #861 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 04:22:43 +00:00

Opened #862 Add skeleton loaders and error states to Batch and Analytics frontend pages 2026-03-29 04:22:52 +00:00

Opened #863 Add frontend lockfile (package-lock.json or pnpm-lock.yaml) to repository 2026-03-29 04:22:58 +00:00

Opened #864 Add pytest test job to Gitea Actions CI workflow 2026-03-29 04:23:04 +00:00

Opened #865 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 04:23:12 +00:00

Opened #866 Add dark mode support to the React frontend using Tailwind dark variant 2026-03-29 04:23:18 +00:00

Opened #867 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 04:23:26 +00:00

Opened #868 Add side-by-side patent portfolio comparison view 2026-03-29 04:23:31 +00:00

Opened #869 Add scheduled/recurring analysis with change alerting 2026-03-29 04:23:36 +00:00

Opened #870 Add webhook/notification support for batch job completion and score changes 2026-03-29 04:23:47 +00:00

Opened #871 Add patent trend charts to the Analytics page 2026-03-29 04:23:49 +00:00

Opened #872 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 04:23:54 +00:00

Opened #873 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 04:24:03 +00:00

Opened #874 Add multi-model support: let users choose LLM provider per analysis 2026-03-29 04:24:08 +00:00

Opened #875 Security: refuse to start with default JWT secret in non-dev environments 2026-03-29 05:21:30 +00:00

Opened #876 Security: make CORS allowed origins configurable via environment variable 2026-03-29 05:21:37 +00:00

Opened #877 Security: remove plaintext database credentials from docker-compose.yml 2026-03-29 05:21:43 +00:00

Opened #878 Fix: share a single pooled DatabaseClient instead of creating one per auth call 2026-03-29 05:21:50 +00:00

Opened #879 Fix: persist job state in PostgreSQL so batch results survive API restarts 2026-03-29 05:21:59 +00:00

Opened #880 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 05:22:28 +00:00

Opened #881 Test: add JWT authentication flow tests (registration, login, protected routes, token refresh, admin endpoints) 2026-03-29 05:22:39 +00:00

Opened #882 Refactor: replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 05:22:48 +00:00

Opened #883 Config: make LLM model configurable via MODEL environment variable 2026-03-29 05:22:56 +00:00

Opened #884 Config: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 05:23:03 +00:00

Opened #885 Fix: integrate PDF download step into analyze_single_patent or document the prerequisite 2026-03-29 05:23:11 +00:00

Opened #886 Fix: correct Patent.patent_id type annotation from int to str in types.py 2026-03-29 05:23:19 +00:00

Opened #887 Frontend: add loading skeletons and error states to Batch and Analytics pages 2026-03-29 05:23:27 +00:00

Opened #888 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 05:23:35 +00:00

Opened #889 CI: add pytest test job to Gitea Actions build.yaml that gates the image build 2026-03-29 05:23:44 +00:00

Opened #890 CI: add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI pipeline 2026-03-29 05:23:52 +00:00

Opened #891 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-29 05:24:01 +00:00

Opened #892 Feature: side-by-side comparison view for two companies patent portfolios 2026-03-29 05:24:08 +00:00

Opened #893 Feature: scheduled/recurring patent analysis with change alerts 2026-03-29 05:24:16 +00:00

Opened #894 Feature: webhook and notification support for completed batch jobs and score changes 2026-03-29 05:24:23 +00:00

Opened #895 Feature: patent trend charts on Analytics page (filing frequency, technology category distribution) 2026-03-29 05:24:29 +00:00

Opened #896 Feature: cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-29 05:24:36 +00:00

Opened #897 Feature: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 05:24:45 +00:00

Opened #898 Refuse startup with default JWT secret in non-development environments 2026-03-29 06:21:49 +00:00

Opened #899 Make CORS allowed origins configurable via environment variable 2026-03-29 06:21:57 +00:00

Opened #900 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 06:22:05 +00:00

Opened #901 Fix get_db_client() in auth.py to reuse a shared connection pool 2026-03-29 06:22:14 +00:00

Opened #902 Persist async job state in PostgreSQL so job status survives API restarts 2026-03-29 06:22:24 +00:00

Opened #903 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 06:22:32 +00:00

Opened #904 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 06:22:44 +00:00

Opened #905 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 06:22:55 +00:00

Opened #906 Make LLM model name configurable via MODEL environment variable 2026-03-29 06:23:02 +00:00

Opened #907 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 06:23:10 +00:00

Opened #908 Fix analyze_single_patent to download PDF before attempting to read from disk 2026-03-29 06:23:19 +00:00

Opened #909 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 06:25:48 +00:00

Opened #910 Add loading states and user-friendly error messages to Batch and Analytics pages 2026-03-29 06:26:01 +00:00

Opened #911 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 06:26:33 +00:00

Opened #912 Add pytest test job to Gitea Actions CI workflow to gate image builds 2026-03-29 06:26:47 +00:00

Opened #913 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 06:27:01 +00:00

Opened #914 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 06:27:11 +00:00

Opened #915 Add side-by-side patent portfolio comparison view for two companies 2026-03-29 06:27:21 +00:00

Opened #916 Add scheduled/recurring analysis with alerting on significant changes 2026-03-29 06:27:30 +00:00

Opened #917 Add webhook/notification support for batch job completion and score change alerts 2026-03-29 06:27:40 +00:00

Opened #918 Add patent filing frequency and technology category trend charts to Analytics page 2026-03-29 06:27:48 +00:00

Opened #919 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 06:27:56 +00:00

Opened #920 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 06:28:05 +00:00

Opened #921 Add Tailwind dark mode support to the frontend 2026-03-29 07:21:43 +00:00

Opened #922 Document or migrate patent PDF storage to a volume mount or object storage 2026-03-29 07:21:55 +00:00

Opened #923 Add per-analysis LLM provider selection and output comparison (multi-model support) 2026-03-29 07:22:22 +00:00

Opened #924 Add startup check to reject default JWT secret in non-dev environments 2026-03-29 08:21:21 +00:00

Opened #925 Make CORS allowed origins configurable via environment variable 2026-03-29 08:21:29 +00:00

Opened #926 Replace hardcoded DB credentials in docker-compose.yml with .env file reference 2026-03-29 08:21:37 +00:00

Opened #927 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 08:21:46 +00:00

Opened #928 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-29 08:21:55 +00:00

Opened #929 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 08:22:03 +00:00

Opened #930 Add JWT auth flow tests covering registration, login, protected routes, and admin endpoints 2026-03-29 08:22:14 +00:00

Opened #931 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 08:22:24 +00:00

Opened #932 Make LLM model selection configurable via MODEL environment variable 2026-03-29 08:22:31 +00:00

Opened #933 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 08:22:38 +00:00

Opened #934 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-29 08:22:49 +00:00

Opened #935 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 08:22:56 +00:00

Opened #936 Add loading states and error messages to Batch and Analytics pages 2026-03-29 08:23:23 +00:00

Opened #937 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 08:25:02 +00:00

Opened #938 Add pytest test stage to Gitea Actions CI workflow 2026-03-29 08:25:50 +00:00

Opened #939 Add ruff linting and tsc type-checking to CI 2026-03-29 08:26:13 +00:00

Opened #940 Refuse to start with default JWT secret in non-development environments 2026-03-29 09:21:31 +00:00

Opened #941 Make CORS allowed origins configurable via environment variable 2026-03-29 09:21:39 +00:00

Opened #942 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 09:21:48 +00:00

Opened #943 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-29 09:21:58 +00:00

Opened #944 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-29 09:22:14 +00:00

Opened #945 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 09:22:25 +00:00

Opened #946 Add JWT auth tests: registration, login, protected routes, and admin endpoints 2026-03-29 09:22:55 +00:00

Opened #947 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 09:23:03 +00:00

Opened #948 Make LLM model configurable via MODEL environment variable 2026-03-29 09:23:16 +00:00

Opened #949 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 09:23:23 +00:00

Opened #950 Fix Patent.patent_id type annotation: str not int 2026-03-29 09:23:31 +00:00

Opened #951 Document or fix analyze_single_patent: PDF must be downloaded before analysis 2026-03-29 09:23:39 +00:00

Opened #952 Add loading and error states to Batch and Analytics frontend pages 2026-03-29 09:23:51 +00:00

Opened #953 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-29 09:24:50 +00:00

Opened #954 Add pytest test job to Gitea Actions CI workflow 2026-03-29 09:25:02 +00:00

Opened #955 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 09:25:12 +00:00

Opened #956 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 09:25:23 +00:00

Opened #957 Add side-by-side comparison view for two companies patent portfolios 2026-03-29 09:25:37 +00:00

Opened #958 Add webhook/notification support for job completion and score change alerts 2026-03-29 09:25:46 +00:00

Opened #959 Add patent filing trend charts to the Analytics page 2026-03-29 09:25:53 +00:00

Opened #960 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 09:26:02 +00:00

Opened #961 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 09:26:10 +00:00

Opened #962 Add scheduled/recurring analysis for tracked companies 2026-03-29 09:26:23 +00:00

Opened #963 Multi-model support: let users choose LLM provider per analysis 2026-03-29 09:26:33 +00:00

Opened #964 Refuse startup with default JWT secret in non-dev environments 2026-03-29 10:21:19 +00:00

Opened #965 Make CORS allowed origins configurable via environment variable 2026-03-29 10:21:25 +00:00

Opened #966 Move database credentials out of docker-compose.yml into .env 2026-03-29 10:21:30 +00:00

Opened #967 Refactor get_db_client() to use a shared pooled DatabaseClient 2026-03-29 10:21:39 +00:00

Opened #968 Persist async job state in PostgreSQL so it survives API restarts 2026-03-29 10:21:44 +00:00

Opened #969 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 10:21:50 +00:00

Opened #970 Add auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 10:22:00 +00:00

Opened #971 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 10:22:10 +00:00

Opened #972 Make LLM model configurable via MODEL environment variable 2026-03-29 10:22:14 +00:00

Opened #973 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 10:22:18 +00:00

Opened #974 Document patents/ volume mount requirement and evaluate object storage for PDF storage 2026-03-29 10:22:29 +00:00

Opened #975 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 10:22:36 +00:00

Opened #976 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 10:22:40 +00:00

Opened #977 Add loading skeletons and error states to Batch and Analytics pages 2026-03-29 10:22:49 +00:00

Opened #978 Add dark mode support using Tailwind dark variant 2026-03-29 10:22:55 +00:00

Opened #979 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 10:23:00 +00:00

Opened #980 Add pytest test job to Gitea Actions CI workflow 2026-03-29 10:23:11 +00:00

Opened #981 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 10:23:17 +00:00

Opened #982 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 10:23:25 +00:00

Opened #983 Add side-by-side patent portfolio comparison view 2026-03-29 10:23:31 +00:00

Opened #984 Add scheduled/recurring analysis with change alerts 2026-03-29 10:23:36 +00:00

Opened #985 Add webhook/notification support for batch job completion and score changes 2026-03-29 10:25:08 +00:00

Opened #986 Add patent trend charts to the Analytics page 2026-03-29 10:25:19 +00:00

Opened #987 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 10:25:35 +00:00

Opened #988 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 10:25:50 +00:00

Opened #989 Add multi-model support: let users choose LLM provider per analysis 2026-03-29 10:26:14 +00:00

Opened #990 Refuse to start with default JWT secret in non-dev environments 2026-03-29 13:21:44 +00:00

Opened #991 Make CORS allowed origins configurable via environment variable 2026-03-29 13:21:52 +00:00

Opened #992 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 13:22:01 +00:00

Opened #993 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-29 13:22:10 +00:00

Opened #994 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-29 13:22:19 +00:00

Opened #995 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 13:22:27 +00:00

Opened #996 Add JWT flow and admin endpoint tests to test_api.py 2026-03-29 13:22:36 +00:00

Opened #997 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 13:22:47 +00:00

Opened #998 Make LLM model configurable via MODEL environment variable 2026-03-29 13:22:56 +00:00

Opened #999 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 13:23:03 +00:00

Opened #1000 Document patent PDF volume mount and integrate download step in analyze_single_patent 2026-03-29 13:23:13 +00:00

Opened #1001 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 13:23:20 +00:00

Opened #1002 Add loading and error states to Batch and Analytics pages 2026-03-29 13:23:28 +00:00

Opened #1003 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-03-29 13:23:39 +00:00

Opened #1004 Add pytest test stage to Gitea Actions build workflow 2026-03-29 13:23:48 +00:00

Opened #1005 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 13:23:57 +00:00

Opened #1006 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 13:24:05 +00:00

Opened #1007 Add side-by-side patent portfolio comparison view 2026-03-29 13:24:12 +00:00

Opened #1008 Implement scheduled/recurring analysis with change alerts 2026-03-29 13:24:21 +00:00

Opened #1009 Add webhook/notification support for job completion and score changes 2026-03-29 13:24:30 +00:00

Opened #1010 Add patent filing trend charts to the Analytics page 2026-03-29 13:24:39 +00:00

Opened #1011 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 13:24:47 +00:00

Opened #1012 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 13:24:58 +00:00

Opened #1013 Add multi-model support: let users choose LLM provider per analysis 2026-03-29 13:25:07 +00:00

Opened #1014 Add dark mode support using Tailwind dark variant 2026-03-29 14:21:57 +00:00

Opened #1016 Refuse startup with default JWT secret in non-development environments 2026-03-29 16:21:34 +00:00

Opened #1017 Make CORS allowed origins configurable via environment variable 2026-03-29 16:21:45 +00:00

Opened #1018 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 16:21:53 +00:00

Opened #1019 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-29 16:22:01 +00:00

Opened #1020 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 16:22:10 +00:00

Opened #1021 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 16:22:19 +00:00

Opened #1022 Add JWT flow integration tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 16:22:32 +00:00

Opened #1023 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 16:23:08 +00:00

Opened #1024 Make LLM model configurable via MODEL environment variable 2026-03-29 16:23:30 +00:00

Opened #1025 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 16:23:54 +00:00

Opened #1026 Fix analyze_single_patent: download PDF before attempting local file read 2026-03-29 16:24:39 +00:00

Opened #1027 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 16:24:55 +00:00

Opened #1028 Add loading and error states to Batch and Analytics pages 2026-03-29 16:25:07 +00:00

Opened #1029 Commit a frontend lockfile to ensure reproducible builds 2026-03-29 16:25:15 +00:00

Opened #1030 Add pytest test job to CI workflow that gates image builds 2026-03-29 16:25:23 +00:00

Opened #1031 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 16:25:31 +00:00

Opened #1032 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 16:25:40 +00:00

Opened #1033 Add side-by-side patent portfolio comparison view for two companies 2026-03-29 16:25:48 +00:00

Opened #1034 Implement scheduled/recurring analysis with alerts on significant changes 2026-03-29 16:25:58 +00:00

Opened #1035 Add webhook/notification support for batch job completion and score changes 2026-03-29 16:26:07 +00:00

Opened #1036 Add patent trend charts to Analytics page (filing frequency and category distribution) 2026-03-29 16:26:15 +00:00

Opened #1037 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 16:26:23 +00:00

Opened #1038 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 16:26:32 +00:00

Opened #1039 Document or migrate patent PDF storage to object storage (S3/MinIO) 2026-03-29 17:21:50 +00:00

Opened #1040 Add dark mode support to the frontend (Tailwind dark variant) 2026-03-29 17:22:00 +00:00

Opened #1041 Multi-model support: let users choose LLM provider per analysis and compare outputs 2026-03-29 17:22:14 +00:00

Opened #1042 Refuse to start with default JWT secret in non-development environments 2026-03-29 18:21:24 +00:00

Opened #1043 Make CORS allowed origins configurable via environment variable 2026-03-29 18:21:44 +00:00

Opened #1044 Move database credentials out of docker-compose.yml and into .env 2026-03-29 18:21:53 +00:00

Opened #1045 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 18:22:05 +00:00

Opened #1046 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 18:22:15 +00:00

Opened #1047 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 18:22:30 +00:00

Opened #1048 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-29 18:22:51 +00:00

Opened #1049 Replace print() calls in analyzer.py, serp_api.py, and llm.py with structured logging 2026-03-29 18:23:08 +00:00

Opened #1050 Make LLM model configurable via MODEL environment variable 2026-03-29 18:23:20 +00:00

Opened #1051 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 18:23:30 +00:00

Opened #1052 Document patent PDF volume mount requirement and consider object storage for containerized deployments 2026-03-29 18:23:43 +00:00

Opened #1053 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 18:23:57 +00:00

Opened #1054 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 18:24:08 +00:00

Opened #1055 Add loading skeleton and error states to Batch and Analytics pages 2026-03-29 18:24:24 +00:00

Opened #1056 Implement dark mode using Tailwind dark variant across the frontend 2026-03-29 18:24:33 +00:00

Opened #1057 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 18:24:46 +00:00

Opened #1058 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-29 18:25:01 +00:00

Opened #1059 Add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI 2026-03-29 18:25:13 +00:00

Opened #1060 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 18:25:26 +00:00

Opened #1061 Add side-by-side comparison view for two companies patent portfolios 2026-03-29 18:25:35 +00:00

Opened #1062 Implement scheduled/recurring analysis with change alerts 2026-03-29 18:25:45 +00:00

Opened #1063 Add webhook/notification support for job completion and score change events 2026-03-29 18:25:54 +00:00

Opened #1064 Support multiple LLM providers per analysis with per-request model selection 2026-03-29 18:26:05 +00:00

Opened #1065 Add patent trend charts to the Analytics page (filing frequency and technology category over time) 2026-03-29 18:26:14 +00:00

Opened #1066 Implement cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-29 18:26:24 +00:00

Opened #1067 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 18:26:34 +00:00

Opened #1068 Add startup check to reject default JWT secret in non-dev environments 2026-03-29 20:21:51 +00:00

Opened #1069 Make CORS allowed origins configurable via environment variable 2026-03-29 20:21:58 +00:00

Opened #1070 Replace hardcoded DB credentials in docker-compose.yml with .env file references 2026-03-29 20:22:08 +00:00

Opened #1071 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 20:22:16 +00:00

Opened #1072 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-29 20:22:29 +00:00

Opened #1073 Add rate limiting middleware to auth endpoints to prevent brute-force attacks 2026-03-29 20:22:37 +00:00

Opened #1074 Add JWT auth tests covering registration, login, protected routes, and admin endpoints 2026-03-29 20:22:50 +00:00

Opened #1075 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 20:23:04 +00:00

Opened #1076 Make LLM model configurable via MODEL environment variable 2026-03-29 20:23:11 +00:00

Opened #1077 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 20:23:21 +00:00

Opened #1078 Document patent PDF volume mount requirement and evaluate object storage (S3/MinIO) 2026-03-29 20:23:31 +00:00

Opened #1079 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 20:23:43 +00:00

Opened #1080 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 20:23:51 +00:00

Opened #1081 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-29 20:24:03 +00:00

Opened #1082 Add dark mode support using Tailwind dark variant 2026-03-29 20:24:13 +00:00

Opened #1083 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 20:24:25 +00:00

Opened #1084 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-29 20:24:33 +00:00

Opened #1085 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 20:24:43 +00:00

Opened #1086 Add PDF and CSV export for analysis reports from the dashboard 2026-03-29 20:24:55 +00:00

Opened #1087 Add side-by-side patent portfolio comparison view 2026-03-29 20:25:03 +00:00

Opened #1088 Add scheduled/recurring analysis with change alerting 2026-03-29 20:25:15 +00:00

Opened #1089 Add webhook/notification support for batch job completion and score change alerts 2026-03-29 20:25:23 +00:00

Opened #1090 Add multi-model support to let users choose LLM provider per analysis 2026-03-29 20:25:34 +00:00

Opened #1091 Add patent trend charts to Analytics page (filing frequency and technology distribution) 2026-03-29 20:25:42 +00:00

Opened #1092 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 20:25:53 +00:00

Opened #1093 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 20:26:02 +00:00

Opened #1094 Refuse startup with default JWT secret in non-development environments 2026-03-29 21:21:59 +00:00

Opened #1095 Make CORS allowed origins configurable via environment variable 2026-03-29 21:22:10 +00:00

Opened #1096 Move database credentials out of docker-compose.yml into .env file 2026-03-29 21:22:20 +00:00

Opened #1097 Refactor get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 21:22:31 +00:00

Opened #1098 Persist async job state in PostgreSQL so it survives API restarts 2026-03-29 21:22:43 +00:00

Opened #1099 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 21:22:54 +00:00

Opened #1100 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 21:23:08 +00:00

Opened #1101 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 21:23:21 +00:00

Opened #1102 Make LLM model configurable via MODEL environment variable 2026-03-29 21:23:30 +00:00

Opened #1103 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 21:23:39 +00:00

Opened #1104 Document patent PDF volume mount requirement and consider object storage path 2026-03-29 21:23:50 +00:00

Opened #1105 Fix analyze_single_patent to download PDF before reading from disk 2026-03-29 21:24:01 +00:00

Opened #1106 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 21:24:13 +00:00

Opened #1107 Add loading and error states to Batch and Analytics frontend pages 2026-03-29 21:24:23 +00:00

Opened #1108 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 21:24:34 +00:00

Opened #1109 Add pytest test job to Gitea Actions CI workflow 2026-03-29 21:24:45 +00:00

Opened #1110 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 21:24:56 +00:00

Opened #1111 Export analysis reports as PDF or CSV from the dashboard 2026-03-29 21:25:07 +00:00

Opened #1112 Add side-by-side patent portfolio comparison view 2026-03-29 21:25:16 +00:00

Opened #1113 Add scheduled/recurring analysis with change alerting 2026-03-29 21:25:27 +00:00

Opened #1114 Add webhook/notification support for batch job completion and score changes 2026-03-29 21:25:37 +00:00

Opened #1115 Add patent trend charts (filing frequency and tech category distribution) to Analytics page 2026-03-29 21:25:47 +00:00

Opened #1116 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 21:25:57 +00:00

Opened #1117 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 21:26:08 +00:00

Opened #1118 Add startup check to reject default JWT secret in non-dev environments 2026-03-29 22:21:57 +00:00

Opened #1119 Make CORS allowed origins configurable via environment variable 2026-03-29 22:22:07 +00:00

Opened #1120 Remove hardcoded database credentials from docker-compose.yml 2026-03-29 22:22:17 +00:00

Opened #1121 Fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-29 22:22:29 +00:00

Opened #1122 Persist async batch job state to PostgreSQL so it survives API restarts 2026-03-29 22:22:42 +00:00

Opened #1123 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 22:22:54 +00:00

Opened #1124 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-29 22:23:08 +00:00

Opened #1125 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 22:23:21 +00:00

Opened #1126 Make LLM model configurable via MODEL environment variable 2026-03-29 22:23:31 +00:00

Opened #1127 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-29 22:23:41 +00:00

Opened #1128 Fix analyze_single_patent to download PDF before reading from disk, or document prerequisite 2026-03-29 22:23:54 +00:00

Opened #1129 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 22:24:04 +00:00

Opened #1130 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-29 22:24:19 +00:00

Opened #1131 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 22:24:29 +00:00

Opened #1132 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-29 22:24:41 +00:00

Opened #1133 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-29 22:24:54 +00:00

Opened #1134 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-29 22:25:07 +00:00

Opened #1135 Add side-by-side patent portfolio comparison view for two companies 2026-03-29 22:25:18 +00:00

Opened #1136 Implement scheduled/recurring analysis for tracked companies with change alerts 2026-03-29 22:25:28 +00:00

Opened #1137 Add webhook/notification support for batch job completion and significant score changes 2026-03-29 22:25:40 +00:00

Opened #1138 Add per-analysis LLM provider selection (multi-model support) 2026-03-29 22:25:52 +00:00

Opened #1139 Add patent trend charts to Analytics page (filing frequency and technology category distribution) 2026-03-29 22:26:01 +00:00

Opened #1140 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-29 22:26:13 +00:00

Opened #1141 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-29 22:26:24 +00:00

Opened #1142 Refuse startup with default JWT secret in non-development environments 2026-03-29 23:21:43 +00:00

Opened #1143 Make CORS allowed origins configurable via environment variable 2026-03-29 23:21:54 +00:00

Opened #1144 Move database credentials out of docker-compose.yml into .env 2026-03-29 23:22:04 +00:00

Opened #1145 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-29 23:22:17 +00:00

Opened #1146 Persist async job state to PostgreSQL so batch results survive API restarts 2026-03-29 23:22:30 +00:00

Opened #1147 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-29 23:22:43 +00:00

Opened #1148 Add JWT flow tests covering registration, login, protected routes, and admin endpoints 2026-03-29 23:22:55 +00:00

Opened #1149 Add pytest job to CI workflow that gates image builds 2026-03-29 23:23:09 +00:00

Opened #1150 Add ruff linting and tsc type-checking to CI 2026-03-29 23:23:21 +00:00

Opened #1151 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-29 23:23:35 +00:00

Opened #1152 Make LLM model and SERP cache TTL configurable via environment variables 2026-03-29 23:23:47 +00:00

Opened #1153 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-29 23:23:58 +00:00

Opened #1154 Add loading states and error messages to Batch and Analytics pages 2026-03-29 23:24:11 +00:00

Opened #1155 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-29 23:24:23 +00:00

Opened #1156 Document or implement patent PDF storage for containerized deployments 2026-03-30 00:21:59 +00:00

Opened #1157 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 00:22:10 +00:00

Opened #1158 Add Tailwind dark mode variant to the frontend 2026-03-30 00:22:21 +00:00

Opened #1159 Export analysis results as PDF or CSV from the dashboard 2026-03-30 00:22:31 +00:00

Opened #1160 Add side-by-side patent portfolio comparison view 2026-03-30 00:22:41 +00:00

Opened #1161 Implement scheduled/recurring analysis for tracked companies 2026-03-30 00:22:51 +00:00

Opened #1162 Add webhook/notification support for batch job completion and score changes 2026-03-30 00:23:01 +00:00

Opened #1163 Add per-analysis LLM provider selection (GPT-4o, Gemini, Claude) 2026-03-30 00:23:12 +00:00

Opened #1164 Add patent trend charts to the Analytics page 2026-03-30 00:23:22 +00:00

Opened #1165 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 00:23:36 +00:00

Opened #1166 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 00:23:47 +00:00

Opened #1167 Refuse startup with default JWT secret in non-development environments 2026-03-30 02:22:31 +00:00

Opened #1168 Make CORS allowed origins configurable via environment variable 2026-03-30 02:22:42 +00:00

Opened #1169 Remove hardcoded database credentials from docker-compose.yml 2026-03-30 02:22:49 +00:00

Opened #1170 Fix get_db_client() in auth.py to use a shared connection pool 2026-03-30 02:23:03 +00:00

Opened #1171 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-30 02:23:12 +00:00

Opened #1172 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 02:23:20 +00:00

Opened #1173 Add JWT auth tests covering registration, login, protected routes, and admin endpoints 2026-03-30 02:23:37 +00:00

Opened #1174 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 02:23:52 +00:00

Opened #1175 Make LLM model configurable via MODEL environment variable 2026-03-30 02:24:01 +00:00

Opened #1176 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 02:24:08 +00:00

Opened #1177 Document patent PDF volume mount requirement and evaluate object storage option 2026-03-30 02:24:24 +00:00

Opened #1178 Fix analyze_single_patent to download PDF before attempting local file read 2026-03-30 02:24:35 +00:00

Opened #1179 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 02:24:42 +00:00

Opened #1180 Add loading states and error messages to Batch and Analytics pages 2026-03-30 02:24:56 +00:00

Opened #1181 Add dark mode support using Tailwind dark variant 2026-03-30 02:25:06 +00:00

Opened #1182 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 02:25:16 +00:00

Opened #1183 Add pytest test job to Gitea Actions CI workflow 2026-03-30 02:25:35 +00:00

Opened #1184 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 02:25:47 +00:00

Opened #1185 Export analysis results as PDF or CSV from the dashboard 2026-03-30 02:26:01 +00:00

Opened #1186 Add side-by-side patent portfolio comparison view 2026-03-30 02:26:09 +00:00

Opened #1187 Add scheduled/recurring analysis for tracked companies 2026-03-30 02:26:17 +00:00

Opened #1188 Add webhook/notification support for batch job completion and innovation score changes 2026-03-30 02:26:30 +00:00

Opened #1189 Add patent filing trend charts to the Analytics page 2026-03-30 02:26:38 +00:00

Opened #1190 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 02:26:47 +00:00

Opened #1191 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 02:27:04 +00:00

Opened #1192 Add multi-model support to allow per-analysis LLM provider selection 2026-03-30 02:27:14 +00:00

Opened #1193 Refuse to start with default JWT secret in non-development environments 2026-03-30 04:21:48 +00:00

Opened #1194 Make CORS allowed origins configurable via environment variable 2026-03-30 04:21:59 +00:00

Opened #1195 Remove hardcoded database credentials from docker-compose.yml 2026-03-30 04:22:09 +00:00

Opened #1196 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 04:22:20 +00:00

Opened #1197 Persist async job state in PostgreSQL so results survive API restarts 2026-03-30 04:22:32 +00:00

Opened #1198 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 04:22:43 +00:00

Opened #1199 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-30 04:22:56 +00:00

Opened #1200 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 04:23:09 +00:00

Opened #1201 Make LLM model configurable via MODEL environment variable 2026-03-30 04:23:18 +00:00

Opened #1202 Expose SERP cache TTL as a configurable environment variable 2026-03-30 04:23:27 +00:00

Opened #1203 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 04:23:39 +00:00

Opened #1204 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 04:23:50 +00:00

Opened #1205 Add loading skeletons and error states to Batch and Analytics pages 2026-03-30 04:24:02 +00:00

Opened #1206 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 04:24:14 +00:00

Opened #1207 Add pytest test job to Gitea Actions CI workflow 2026-03-30 04:24:26 +00:00

Opened #1208 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 04:24:38 +00:00

Opened #1209 Document patent PDF volume mount requirement and add S3/MinIO storage option 2026-03-30 04:24:53 +00:00

Opened #1210 Add export to PDF/CSV for analysis reports from the dashboard 2026-03-30 04:25:07 +00:00

Opened #1211 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 04:25:20 +00:00

Opened #1212 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 04:25:31 +00:00

Opened #1213 Add startup check to refuse default JWT secret in non-dev environments 2026-03-30 05:22:30 +00:00

Opened #1214 Make CORS allowed origins configurable via environment variable 2026-03-30 05:22:37 +00:00

Opened #1215 Remove hardcoded PostgreSQL credentials from docker-compose.yml 2026-03-30 05:22:45 +00:00

Opened #1216 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-03-30 05:22:57 +00:00

Opened #1217 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-30 05:23:06 +00:00

Opened #1218 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-30 05:23:14 +00:00

Opened #1219 Add auth test coverage: JWT registration, login, protected routes, and admin endpoints 2026-03-30 05:23:28 +00:00

Opened #1220 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 05:23:40 +00:00

Opened #1221 Make LLM model configurable via MODEL environment variable in llm.py 2026-03-30 05:23:47 +00:00

Opened #1222 Expose SERP_CACHE_TTL_HOURS as an environment variable in config.py 2026-03-30 05:23:54 +00:00

Opened #1223 Document patents/ directory volume mount requirement for containerised deployments 2026-03-30 05:24:07 +00:00

Opened #1224 Fix analyze_single_patent to download PDF before reading, or document prerequisite clearly 2026-03-30 05:24:17 +00:00

Opened #1225 Fix Patent.patent_id type annotation in types.py from int to str 2026-03-30 05:24:24 +00:00

Opened #1226 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-30 05:24:36 +00:00

Opened #1227 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 05:24:44 +00:00

Opened #1228 Add pytest test stage to Gitea Actions build.yaml that gates the image build 2026-03-30 05:24:53 +00:00

Opened #1229 Add ruff (Python) and tsc --noEmit (TypeScript) linting/type-check jobs to CI 2026-03-30 05:25:05 +00:00

Opened #1230 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-30 05:25:17 +00:00

Opened #1231 Add side-by-side comparison view for two companies patent portfolios 2026-03-30 05:25:24 +00:00

Opened #1232 Implement scheduled/recurring patent analysis with alerts on significant changes 2026-03-30 05:25:33 +00:00

Opened #1233 Add webhook/notification support for batch job completion and score changes 2026-03-30 05:25:46 +00:00

Opened #1234 Add patent trend charts: filing frequency and technology category distribution over time 2026-03-30 05:25:54 +00:00

Opened #1235 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 05:26:02 +00:00

Opened #1236 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 05:26:14 +00:00

Opened #1237 Implement dark mode using Tailwind dark variant 2026-03-30 05:26:22 +00:00

Opened #1238 Add per-analysis multi-model support: let users choose LLM provider in the UI 2026-03-30 05:26:35 +00:00

Opened #1239 Refuse startup with default JWT secret in non-dev environments 2026-03-30 07:22:16 +00:00

Opened #1240 Make CORS allowed origins configurable via environment variable 2026-03-30 07:22:27 +00:00

Opened #1241 Remove hardcoded database credentials from docker-compose.yml 2026-03-30 07:22:37 +00:00

Opened #1242 Fix DatabaseClient connection leak in auth.py get_db_client() 2026-03-30 07:22:49 +00:00

Opened #1243 Persist async job state to PostgreSQL so jobs survive API restarts 2026-03-30 07:23:01 +00:00

Opened #1244 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 07:23:14 +00:00

Opened #1245 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 07:23:27 +00:00

Opened #1246 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 07:23:40 +00:00

Opened #1247 Make LLM model selectable via MODEL environment variable 2026-03-30 07:23:49 +00:00

Opened #1248 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 07:23:58 +00:00

Opened #1249 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 07:24:10 +00:00

Opened #1250 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 07:24:20 +00:00

Opened #1251 Add loading states and error messages to Batch and Analytics pages 2026-03-30 07:24:39 +00:00

Opened #1252 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 07:24:50 +00:00

Opened #1253 Add pytest test stage to Gitea Actions CI workflow 2026-03-30 07:25:02 +00:00

Opened #1254 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 07:25:14 +00:00

Opened #1255 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 07:25:26 +00:00

Opened #1256 Add side-by-side patent portfolio comparison view 2026-03-30 07:25:36 +00:00

Opened #1257 Add webhook/notification support for job completion and score change alerts 2026-03-30 07:25:49 +00:00

Opened #1258 Add patent trend charts to the Analytics page (filing frequency and category distribution) 2026-03-30 07:25:59 +00:00

Opened #1259 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 07:26:11 +00:00

Opened #1260 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 07:26:24 +00:00

Opened #1261 Add Tailwind dark mode support to the frontend 2026-03-30 08:22:18 +00:00

Opened #1262 Document patent PDF volume mount or add S3/MinIO storage backend 2026-03-30 08:22:32 +00:00

Opened #1263 Add scheduled/recurring analysis with change alerting 2026-03-30 08:22:44 +00:00

Opened #1264 Add multi-model support: let users choose LLM provider per analysis 2026-03-30 08:22:57 +00:00

Opened #1265 Refuse to start with default JWT secret in non-development environments 2026-03-30 09:21:51 +00:00

Opened #1266 Make CORS allowed origins configurable via environment variable 2026-03-30 09:21:59 +00:00

Opened #1267 Replace hardcoded database credentials in docker-compose.yml with .env file 2026-03-30 09:22:07 +00:00

Opened #1268 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 09:22:21 +00:00

Opened #1269 Persist job state in PostgreSQL so batch results survive API restarts 2026-03-30 09:22:35 +00:00

Opened #1270 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 09:22:44 +00:00

Opened #1271 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 09:23:01 +00:00

Opened #1272 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 09:23:08 +00:00

Opened #1273 Make LLM model configurable via MODEL environment variable 2026-03-30 09:23:19 +00:00

Opened #1274 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 09:23:26 +00:00

Opened #1275 Fix Patent.patent_id type annotation from int to str 2026-03-30 09:23:33 +00:00

Opened #1276 Integrate PDF download step into analyze_single_patent or document the prerequisite clearly 2026-03-30 09:23:49 +00:00

Opened #1277 Add loading and error states to Batch and Analytics pages 2026-03-30 09:23:57 +00:00

Opened #1278 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 09:24:10 +00:00

Opened #1279 Add pytest test job to Gitea Actions CI workflow that gates image build 2026-03-30 09:24:20 +00:00

Opened #1280 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 09:24:32 +00:00

Opened #1281 Add export feature: download analysis results as PDF or CSV from the dashboard 2026-03-30 09:24:42 +00:00

Opened #1282 Add patent trend charts to the Analytics page (filing frequency and category distribution) 2026-03-30 09:24:55 +00:00

Opened #1283 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 09:25:04 +00:00

Opened #1284 Enforce non-default JWT secret on startup 2026-03-30 10:21:57 +00:00

Opened #1285 Make CORS allowed origins configurable via environment variable 2026-03-30 10:22:10 +00:00

Opened #1286 Remove plaintext database credentials from docker-compose.yml 2026-03-30 10:22:22 +00:00

Opened #1287 Refactor get_db_client() in auth.py to use shared connection pool 2026-03-30 10:22:36 +00:00

Opened #1288 Persist async job state in PostgreSQL instead of in-memory dict 2026-03-30 10:22:47 +00:00

Opened #1289 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 10:22:59 +00:00

Opened #1290 Add JWT authentication tests covering full auth flow 2026-03-30 10:23:12 +00:00

Opened #1291 Replace print() calls with structured logging in analyzer, serp_api, and llm modules 2026-03-30 10:23:25 +00:00

Opened #1292 Make LLM model selection configurable via MODEL environment variable 2026-03-30 10:23:34 +00:00

Opened #1293 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 10:23:44 +00:00

Opened #1294 Document patent PDF volume mount requirement and integrate download step in analyze_single_patent 2026-03-30 10:23:58 +00:00

Opened #1295 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 10:24:08 +00:00

Opened #1296 Add loading states and error messages to Batch and Analytics pages 2026-03-30 10:24:19 +00:00

Opened #1297 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 10:24:32 +00:00

Opened #1298 Add pytest test job to Gitea Actions CI workflow 2026-03-30 10:24:45 +00:00

Opened #1299 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 10:24:57 +00:00

Opened #1300 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 10:25:10 +00:00

Opened #1301 Add side-by-side patent portfolio comparison view 2026-03-30 10:25:17 +00:00

Opened #1302 Implement scheduled/recurring patent analysis with change alerting 2026-03-30 10:25:28 +00:00

Opened #1303 Add webhook/notification support for batch job completion and score changes 2026-03-30 10:25:36 +00:00

Opened #1304 Add patent trend charts to Analytics page (filing frequency and technology categories over time) 2026-03-30 10:25:46 +00:00

Opened #1305 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 10:25:53 +00:00

Opened #1306 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 10:26:05 +00:00

Opened #1307 Support multi-model LLM selection per analysis (GPT-4o, Gemini, Claude) 2026-03-30 10:26:13 +00:00

Opened #1308 Implement dark mode using Tailwind dark variant 2026-03-30 10:26:25 +00:00

Opened #1309 Security: refuse to start with default JWT secret in non-development environments 2026-03-30 11:21:56 +00:00

Opened #1310 Security: make CORS allowed origins configurable via environment variable 2026-03-30 11:22:10 +00:00

Opened #1311 Security: remove plaintext database credentials from docker-compose.yml 2026-03-30 11:22:22 +00:00

Opened #1312 Fix: share a single pooled DatabaseClient instead of creating one per request in auth.py 2026-03-30 11:22:35 +00:00

Opened #1313 Fix: persist job state to PostgreSQL so async batch results survive API restarts 2026-03-30 11:22:49 +00:00

Opened #1314 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 11:23:00 +00:00

Opened #1315 Test: add JWT authentication flow tests to test_api.py 2026-03-30 11:23:13 +00:00

Opened #1316 Backend: replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 11:23:26 +00:00

Opened #1317 Backend: make LLM model configurable via MODEL environment variable 2026-03-30 11:23:37 +00:00

Opened #1318 Backend: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 11:23:48 +00:00

Opened #1319 Backend: document or fix analyze_single_patent assuming PDF already exists on disk 2026-03-30 11:24:02 +00:00

Opened #1320 Backend: fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 11:24:14 +00:00

Opened #1321 Backend: document patent PDF storage and volume mount requirements for containerized deployments 2026-03-30 11:24:27 +00:00

Opened #1322 Frontend: add skeleton loaders and error states to Batch and Analytics pages 2026-03-30 11:24:39 +00:00

Opened #1323 Frontend: commit a lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 11:24:50 +00:00

Opened #1324 Frontend: apply Tailwind dark mode variants across the dashboard 2026-03-30 11:25:02 +00:00

Opened #1325 CI: add pytest test job to Gitea Actions build.yaml that gates image builds 2026-03-30 11:25:15 +00:00

Opened #1326 CI: add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI 2026-03-30 11:25:26 +00:00

Opened #1327 Feature: export analysis reports as PDF or CSV from the dashboard 2026-03-30 11:25:38 +00:00

Opened #1328 Feature: side-by-side patent portfolio comparison view 2026-03-30 11:25:47 +00:00

Opened #1329 Feature: scheduled/recurring analysis with change alerts 2026-03-30 11:26:01 +00:00

Opened #1330 Feature: webhook/notification support for batch job completion and score changes 2026-03-30 11:26:12 +00:00

Opened #1331 Feature: multi-model support — let users select LLM provider per analysis 2026-03-30 11:26:23 +00:00

Opened #1332 Feature: patent trend charts on Analytics page (filing frequency and technology categories over time) 2026-03-30 11:26:35 +00:00

Opened #1333 Feature: cursor-based pagination for /analyze/batch and /jobs endpoints 2026-03-30 11:26:47 +00:00

Opened #1334 Feature: auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 11:26:58 +00:00

Opened #1335 Security: refuse to start with default JWT secret in non-development environments 2026-03-30 12:22:25 +00:00

Opened #1336 Security: make CORS allowed origins configurable via environment variable 2026-03-30 12:22:37 +00:00

Opened #1337 Security: remove hardcoded database credentials from docker-compose.yml 2026-03-30 12:22:49 +00:00

Opened #1338 Bug: fix get_db_client() in auth.py to reuse a shared pooled DatabaseClient 2026-03-30 12:23:04 +00:00

Opened #1339 Bug: persist async job state to PostgreSQL so job results survive API restarts 2026-03-30 12:23:18 +00:00

Opened #1340 Security: add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 12:23:31 +00:00

Opened #1341 Test: add JWT auth flow tests (registration, login, protected routes, token refresh, admin endpoints) 2026-03-30 12:23:46 +00:00

Opened #1342 Refactor: replace print() calls in analyzer.py, serp_api.py, and llm.py with structured logging 2026-03-30 12:24:01 +00:00

Opened #1343 Config: make LLM model selection configurable via MODEL environment variable 2026-03-30 12:24:13 +00:00

Opened #1344 Config: expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 12:24:24 +00:00

Opened #1345 Docs: document patent PDF volume mount requirement (and evaluate object storage path) 2026-03-30 12:24:38 +00:00

Opened #1346 Bug: analyze_single_patent silently fails if PDF is not already downloaded 2026-03-30 12:24:52 +00:00

Opened #1347 Bug: fix Patent.patent_id type annotation in types.py (int -> str) 2026-03-30 12:25:06 +00:00

Opened #1349 Repo Manager: triage summary for 25 agent-ready issues (2026-03-30) 2026-03-30 14:12:31 +00:00

Opened #1350 Refuse to start with default JWT secret in non-development environments 2026-03-30 15:21:48 +00:00

Opened #1351 Make CORS allowed origins configurable via environment variable 2026-03-30 15:21:59 +00:00

Opened #1352 Replace plaintext database credentials in docker-compose.yml with .env file reference 2026-03-30 15:22:11 +00:00

Opened #1353 Fix get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-30 15:22:22 +00:00

Opened #1354 Persist job state to PostgreSQL so batch results survive API restarts 2026-03-30 15:22:34 +00:00

Opened #1355 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 15:22:46 +00:00

Opened #1356 Add JWT auth flow tests for registration, login, protected routes, and admin endpoints 2026-03-30 15:22:58 +00:00

Opened #1357 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 15:23:10 +00:00

Opened #1358 Make LLM model configurable via MODEL environment variable 2026-03-30 15:23:20 +00:00

Opened #1359 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 15:23:29 +00:00

Opened #1360 Document patent PDF volume mount requirement for containerized deployments 2026-03-30 15:23:41 +00:00

Opened #1361 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 15:23:55 +00:00

Opened #1362 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 15:24:04 +00:00

Opened #1363 Add loading and error states to Batch and Analytics pages 2026-03-30 15:24:16 +00:00

Opened #1364 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 15:24:37 +00:00

Opened #1365 Add pytest test job to CI workflow that gates the image build 2026-03-30 15:24:49 +00:00

Opened #1366 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 15:25:01 +00:00

Opened #1367 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 15:25:12 +00:00

Opened #1368 Side-by-side comparison view for two companies patent portfolios 2026-03-30 15:25:22 +00:00

Opened #1369 Scheduled/recurring analysis with alerting on significant changes 2026-03-30 15:25:34 +00:00

Opened #1370 Webhook/notification support for batch job completion and score changes 2026-03-30 15:25:45 +00:00

Opened #1371 Patent trend charts: filing frequency and technology category distribution over time 2026-03-30 15:25:55 +00:00

Opened #1372 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 15:26:08 +00:00

Opened #1373 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 15:26:19 +00:00

Opened #1375 Add startup check to reject default JWT secret in non-dev environments 2026-03-30 17:21:56 +00:00

Opened #1376 Make CORS allowed-origins configurable via environment variable 2026-03-30 17:22:11 +00:00

Opened #1377 Remove plain-text database credentials from docker-compose.yml 2026-03-30 17:22:24 +00:00

Opened #1378 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 17:22:38 +00:00

Opened #1379 Persist async batch job state to PostgreSQL instead of in-memory dict 2026-03-30 17:22:53 +00:00

Opened #1380 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 17:23:06 +00:00

Opened #1381 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 17:23:21 +00:00

Opened #1382 Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-30 17:23:40 +00:00

Opened #1383 Make LLM model selection configurable via MODEL environment variable 2026-03-30 17:23:51 +00:00

Opened #1384 Expose SERP_CACHE_TTL_HOURS as a configurable environment variable 2026-03-30 17:24:03 +00:00

Opened #1385 Document patents/ volume mount requirement and fix analyze_single_patent missing download step 2026-03-30 17:24:18 +00:00

Opened #1386 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 17:24:33 +00:00

Opened #1387 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-30 17:24:46 +00:00

Opened #1388 Commit frontend package lockfile to ensure reproducible builds 2026-03-30 17:24:59 +00:00

Opened #1389 Add pytest test job to Gitea Actions CI workflow 2026-03-30 17:25:22 +00:00

Opened #1390 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 17:25:37 +00:00

Opened #1391 Export analysis results as PDF or CSV from the dashboard 2026-03-30 17:25:49 +00:00

Opened #1392 Add side-by-side patent portfolio comparison view for two companies 2026-03-30 17:26:02 +00:00

Opened #1393 Implement scheduled/recurring analysis with change alerting 2026-03-30 17:26:23 +00:00

Opened #1394 Add webhook/notification support for batch job completion and score changes 2026-03-30 17:26:24 +00:00

Opened #1395 Add patent trend charts to Analytics page (filing frequency and technology categories over time) 2026-03-30 17:26:47 +00:00

Opened #1396 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 17:26:48 +00:00

Opened #1397 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 17:27:05 +00:00

Opened #1398 Add dark mode support to the frontend using Tailwind dark variant 2026-03-30 17:27:21 +00:00

Opened #1399 Allow per-analysis LLM provider selection and output comparison (multi-model support) 2026-03-30 17:27:34 +00:00

Opened #1400 Refuse to start when default JWT secret is used in non-dev environments 2026-03-30 18:21:40 +00:00

Opened #1401 Make CORS allowed origins configurable via environment variable 2026-03-30 18:21:49 +00:00

Opened #1402 Move database credentials out of docker-compose.yml into .env file 2026-03-30 18:21:58 +00:00

Opened #1403 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 18:22:08 +00:00

Opened #1404 Persist async job state in PostgreSQL so jobs survive API restarts 2026-03-30 18:22:17 +00:00

Opened #1405 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 18:22:26 +00:00

Opened #1406 Add JWT authentication tests covering registration, login, and protected routes 2026-03-30 18:22:36 +00:00

Opened #1407 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 18:22:45 +00:00

Opened #1408 Make LLM model configurable via MODEL environment variable 2026-03-30 18:22:52 +00:00

Opened #1409 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 18:22:59 +00:00

Opened #1410 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 18:23:07 +00:00

Opened #1411 Fix analyze_single_patent to download PDF before attempting to read it 2026-03-30 18:23:17 +00:00

Opened #1412 Add loading states and error messages to Batch and Analytics pages 2026-03-30 18:23:27 +00:00

Opened #1413 Commit a frontend lockfile to ensure reproducible builds 2026-03-30 18:23:37 +00:00

Opened #1414 Add pytest test job to Gitea Actions CI workflow 2026-03-30 18:23:47 +00:00

Opened #1415 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 18:23:57 +00:00

Opened #1416 Add PDF and CSV export for analysis reports 2026-03-30 18:24:06 +00:00

Opened #1417 Add side-by-side patent portfolio comparison view 2026-03-30 18:24:13 +00:00

Opened #1418 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 18:24:22 +00:00

Opened #1419 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 18:24:31 +00:00

Opened #1420 Refuse startup with default JWT secret in non-development environments 2026-03-30 19:23:33 +00:00

Opened #1421 Make CORS allowed origins configurable via environment variable 2026-03-30 19:23:34 +00:00

Opened #1422 Replace plain-text database credentials in docker-compose.yml with env file or secrets 2026-03-30 19:23:36 +00:00

Opened #1423 Refactor get_db_client() to use a shared pooled DatabaseClient 2026-03-30 19:23:37 +00:00

Opened #1424 Persist async job state in PostgreSQL to survive API restarts 2026-03-30 19:23:38 +00:00

Opened #1425 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 19:23:39 +00:00

Opened #1426 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 19:23:40 +00:00

Opened #1427 Replace print() calls with structured Python logging in analyzer, serp_api, and llm modules 2026-03-30 19:23:42 +00:00

Opened #1428 Make LLM model configurable via MODEL environment variable 2026-03-30 19:23:43 +00:00

Opened #1429 Expose SERP cache TTL as a configurable environment variable 2026-03-30 19:23:45 +00:00

Opened #1430 Fix analyze_single_patent to download PDF before reading from disk 2026-03-30 19:23:47 +00:00

Opened #1431 Fix Patent.patent_id type annotation from int to str 2026-03-30 19:23:48 +00:00

Opened #1432 Document patent PDF storage volume mount requirement and evaluate object storage 2026-03-30 19:23:50 +00:00

Opened #1433 Add loading and error states to Batch and Analytics pages 2026-03-30 19:23:51 +00:00

Opened #1434 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-30 19:23:53 +00:00

Opened #1435 Add pytest test job to Gitea Actions workflow before image build 2026-03-30 19:23:54 +00:00

Opened #1436 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 19:23:55 +00:00

Opened #1437 Export analysis reports as PDF or CSV from the dashboard 2026-03-30 19:23:57 +00:00

Opened #1438 Add side-by-side comparison view for two companies patent portfolios 2026-03-30 19:23:59 +00:00

Opened #1439 Implement scheduled/recurring analysis with change alerts 2026-03-30 19:24:00 +00:00

Opened #1440 Add webhook/notification support for job completion and score changes 2026-03-30 19:24:02 +00:00

Opened #1441 Add API cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 19:24:03 +00:00

Opened #1442 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 19:24:06 +00:00

Opened #1443 Refuse to start with default JWT secret in non-dev environments 2026-03-30 20:21:44 +00:00

Opened #1444 Make CORS allowed origins configurable via environment variable 2026-03-30 20:21:57 +00:00

Opened #1445 Make CORS allowed origins configurable via environment variable 2026-03-30 20:24:02 +00:00

Opened #1446 Move database credentials out of docker-compose.yml into .env or Docker secrets 2026-03-30 20:24:12 +00:00

Opened #1447 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-30 20:24:22 +00:00

Opened #1448 Persist async job state in PostgreSQL so batch results survive API restarts 2026-03-30 20:24:34 +00:00

Opened #1449 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 20:24:44 +00:00

Opened #1450 Add JWT flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-30 20:24:54 +00:00

Opened #1451 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 20:25:03 +00:00

Opened #1452 Make LLM model configurable via MODEL environment variable 2026-03-30 20:25:12 +00:00

Opened #1453 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 20:25:22 +00:00

Opened #1454 Document patents/ volume mount requirement and evaluate object storage path 2026-03-30 20:25:31 +00:00

Opened #1455 Fix analyze_single_patent to download PDF before reading it from disk 2026-03-30 20:25:41 +00:00

Opened #1456 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-30 20:25:50 +00:00

Opened #1457 Add loading skeletons and error states to Batch and Analytics pages 2026-03-30 20:25:58 +00:00

Opened #1458 Add dark mode support using Tailwind dark: variant 2026-03-30 20:26:08 +00:00

Opened #1459 Commit a package-lock.json or pnpm-lock.yaml to ensure reproducible frontend builds 2026-03-30 20:26:16 +00:00

Opened #1460 Add pytest test job to Gitea Actions CI workflow that gates the image build 2026-03-30 20:26:26 +00:00

Opened #1461 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-30 20:26:36 +00:00

Opened #1462 Allow users to export analysis reports as PDF or CSV from the dashboard 2026-03-30 20:26:45 +00:00

Opened #1463 Add side-by-side patent portfolio comparison view 2026-03-30 20:26:54 +00:00

Opened #1464 Implement scheduled/recurring analysis with change alerting 2026-03-30 20:27:02 +00:00

Opened #1465 Add webhook/notification support for job completion and score change events 2026-03-30 20:27:10 +00:00

Opened #1466 Let users choose LLM provider per analysis and compare outputs (multi-model support) 2026-03-30 20:27:21 +00:00

Opened #1467 Add patent trend charts to the Analytics page (filing frequency and category distribution over time) 2026-03-30 20:27:29 +00:00

Opened #1468 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 20:27:36 +00:00

Opened #1469 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 20:27:44 +00:00

Opened #1470 Security: Refuse to start with default JWT secret in non-dev environments 2026-03-30 21:21:49 +00:00

Opened #1471 Security: Make CORS allowed origins configurable via environment variable 2026-03-30 21:21:57 +00:00

Opened #1472 Security: Replace hardcoded DB credentials in docker-compose.yml with .env file 2026-03-30 21:22:11 +00:00

Opened #1473 Refactor: Share a single pooled DatabaseClient instead of creating one per request in auth.py 2026-03-30 21:22:19 +00:00

Opened #1474 Reliability: Persist batch job state in PostgreSQL so it survives API restarts 2026-03-30 21:22:28 +00:00

Opened #1475 Security: Add rate limiting to /auth/login and /auth/register endpoints 2026-03-30 21:22:38 +00:00

Opened #1476 Test: Add JWT auth flow tests (registration, login, protected routes, token refresh, admin endpoints) 2026-03-30 21:22:48 +00:00

Opened #1477 Backend: Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-30 21:22:58 +00:00

Opened #1478 Backend: Make LLM model configurable via MODEL environment variable 2026-03-30 21:23:06 +00:00

Opened #1479 Backend: Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-30 21:23:13 +00:00

Opened #1480 Docs: Document patent PDF volume mount requirement for containerized deployments 2026-03-30 21:23:24 +00:00

Opened #1481 Bug: analyze_single_patent reads PDF from disk without downloading it first 2026-03-30 21:23:34 +00:00

Opened #1482 Bug: Fix Patent.patent_id type annotation — should be str, not int 2026-03-30 21:23:42 +00:00

Opened #1483 Frontend: Add skeleton loaders and error states to Batch and Analytics pages 2026-03-30 21:23:50 +00:00

Opened #1484 Frontend: Commit a package-lock.json or pnpm-lock.yaml for reproducible builds 2026-03-30 21:24:00 +00:00

Opened #1485 CI: Add pytest test job to build.yaml that gates the Docker image build 2026-03-30 21:24:10 +00:00

Opened #1486 CI: Add ruff (Python) and tsc --noEmit (TypeScript) linting/type-checking to CI 2026-03-30 21:24:20 +00:00

Opened #1487 Feature: Export analysis reports as PDF or CSV from the dashboard 2026-03-30 21:24:30 +00:00

Opened #1488 Feature: Side-by-side comparison view for two companies patent portfolios 2026-03-30 21:24:38 +00:00

Opened #1489 Feature: Scheduled/recurring analysis with alerting on significant changes 2026-03-30 21:24:47 +00:00

Opened #1490 Feature: Webhook/notification support for batch job completion and score change alerts 2026-03-30 21:24:55 +00:00

Opened #1491 Feature: Patent trend charts showing filing frequency and technology category distribution over time 2026-03-30 21:25:03 +00:00

Opened #1492 Feature: Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-30 21:25:12 +00:00

Opened #1493 Feature: Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-30 21:25:22 +00:00

Opened #1494 Frontend: Implement dark mode using Tailwind dark variant 2026-03-30 21:25:32 +00:00

Opened #1495 Feature: Multi-model support — let users choose LLM provider per analysis 2026-03-30 21:25:38 +00:00

Opened #1496 Add startup check to reject default JWT secret in non-development environments 2026-03-31 00:22:20 +00:00

Opened #1497 Make CORS allowed origins configurable via environment variable 2026-03-31 00:22:35 +00:00

Opened #1498 Move database credentials out of docker-compose.yml into .env / Docker secrets 2026-03-31 00:22:43 +00:00

Opened #1499 Refactor get_db_client() in auth.py to use a shared pooled DatabaseClient 2026-03-31 00:22:52 +00:00

Opened #1500 Persist async job state in PostgreSQL so job results survive API restarts 2026-03-31 00:23:02 +00:00

Opened #1501 Add rate limiting middleware to /auth/login and /auth/register endpoints 2026-03-31 00:23:11 +00:00

Opened #1502 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-31 00:23:23 +00:00

Opened #1503 Replace print() calls with structured Python logging in analyzer.py, serp_api.py, and llm.py 2026-03-31 00:23:34 +00:00

Opened #1504 Make LLM model configurable via MODEL environment variable 2026-03-31 00:23:42 +00:00

Opened #1505 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-31 00:23:51 +00:00

Opened #1506 Fix analyze_single_patent to download PDF before reading from disk 2026-03-31 00:24:01 +00:00

Opened #1507 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-31 00:24:09 +00:00

Opened #1508 Add loading states and error messages to Batch and Analytics frontend pages 2026-03-31 00:24:17 +00:00

Opened #1509 Add frontend lockfile (package-lock.json or pnpm-lock.yaml) to repository 2026-03-31 00:24:28 +00:00

Opened #1510 Add pytest test job to Gitea Actions build workflow 2026-03-31 00:24:38 +00:00

Opened #1511 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-31 00:24:48 +00:00

Opened #1512 Add PDF and CSV export for analysis reports from the dashboard 2026-03-31 00:24:57 +00:00

Opened #1513 Add side-by-side patent portfolio comparison view 2026-03-31 00:25:09 +00:00

Opened #1514 Implement scheduled/recurring analysis with change alerting 2026-03-31 00:25:18 +00:00

Opened #1515 Add webhook/notification support for batch job completion and score changes 2026-03-31 00:25:25 +00:00

Opened #1516 Add patent trend charts to the Analytics page (filing frequency and technology categories over time) 2026-03-31 00:25:34 +00:00

Opened #1517 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-31 00:25:42 +00:00

Opened #1518 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-31 00:25:51 +00:00

Opened #1519 Document patent PDF storage volume requirement or migrate to object storage (S3/MinIO) 2026-03-31 00:26:02 +00:00

Opened #1520 Implement dark mode using Tailwind dark variant across all frontend pages 2026-03-31 00:26:12 +00:00

Opened #1521 Allow users to choose LLM provider per analysis (multi-model support) 2026-03-31 00:26:21 +00:00

Opened #1522 Refuse to start with default JWT secret in non-development environments 2026-03-31 01:22:10 +00:00

Opened #1523 Make CORS allowed origins configurable via environment variable 2026-03-31 01:22:19 +00:00

Opened #1524 Remove hardcoded database credentials from docker-compose.yml 2026-03-31 01:22:26 +00:00

Opened #1525 Refactor auth.py to use a shared pooled DatabaseClient instead of creating one per call 2026-03-31 01:22:35 +00:00

Opened #1526 Persist job status in PostgreSQL so batch results survive API restarts 2026-03-31 01:22:48 +00:00

Opened #1527 Add rate limiting middleware to auth endpoints 2026-03-31 01:22:56 +00:00

Opened #1528 Add JWT authentication tests covering registration, login, protected routes, and admin endpoints 2026-03-31 01:23:08 +00:00

Opened #1529 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-31 01:23:17 +00:00

Opened #1530 Make LLM model configurable via MODEL environment variable 2026-03-31 01:23:28 +00:00

Opened #1531 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-31 01:23:36 +00:00

Opened #1532 Fix Patent.patent_id type annotation from int to str in types.py 2026-03-31 01:23:46 +00:00

Opened #1533 Document patent PDF volume mount requirement and integrate download step in analyze_single_patent 2026-03-31 01:24:01 +00:00

Opened #1534 Add loading and error states to Batch and Analytics pages 2026-03-31 01:24:10 +00:00

Opened #1535 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-31 01:24:22 +00:00

Opened #1536 Add pytest test stage to Gitea Actions CI workflow that gates the build 2026-03-31 01:24:35 +00:00

Opened #1537 Add ruff (Python linting) and tsc --noEmit (TypeScript type checking) to CI 2026-03-31 01:24:43 +00:00

Opened #1538 Export analysis reports as PDF or CSV from the dashboard 2026-03-31 01:24:51 +00:00

Opened #1539 Add side-by-side patent portfolio comparison view 2026-03-31 01:24:59 +00:00

Opened #1540 Implement scheduled/recurring analysis with change alerts 2026-03-31 01:25:07 +00:00

Opened #1541 Add webhook/notification support for batch job completion and score changes 2026-03-31 01:25:17 +00:00

Opened #1542 Add patent trend charts to Analytics page (filing frequency and category distribution over time) 2026-03-31 01:25:27 +00:00

Opened #1543 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-31 01:25:41 +00:00

Opened #1544 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-31 01:25:51 +00:00

Opened #1545 Add startup check to refuse default JWT secret in non-dev environments 2026-03-31 02:21:31 +00:00

Opened #1546 Make CORS allowed origins configurable via environment variable 2026-03-31 02:21:36 +00:00

Opened #1547 Remove hardcoded database credentials from docker-compose.yml 2026-03-31 02:21:41 +00:00

Opened #1548 Refactor get_db_client() in auth.py to use a shared connection pool 2026-03-31 02:21:53 +00:00

Opened #1549 Persist async job state in PostgreSQL to survive API restarts 2026-03-31 02:21:59 +00:00

Opened #1550 Add rate limiting to /auth/login and /auth/register endpoints 2026-03-31 02:22:05 +00:00

Opened #1551 Add JWT authentication tests: registration, login, protected routes, token refresh, admin endpoints 2026-03-31 02:22:16 +00:00

Opened #1552 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-03-31 02:22:26 +00:00

Opened #1553 Make LLM model selection configurable via MODEL environment variable 2026-03-31 02:22:32 +00:00

Opened #1554 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-03-31 02:22:37 +00:00

Opened #1555 Fix Patent.patent_id type annotation: change int to str in types.py 2026-03-31 02:22:44 +00:00

Opened #1556 Fix analyze_single_patent to download PDF before reading from disk 2026-03-31 02:22:52 +00:00

Opened #1557 Add skeleton loaders and error states to Batch and Analytics pages 2026-03-31 02:22:59 +00:00

Opened #1558 Commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-03-31 02:23:09 +00:00

Opened #1559 Add pytest test stage to Gitea Actions build workflow 2026-03-31 02:23:16 +00:00

Opened #1560 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-03-31 02:23:23 +00:00

Opened #1561 Export analysis reports as PDF or CSV from the dashboard 2026-03-31 02:23:32 +00:00

Opened #1562 Add side-by-side patent portfolio comparison view 2026-03-31 02:23:37 +00:00

Opened #1563 Implement scheduled/recurring analysis with change alerts 2026-03-31 02:23:44 +00:00

Opened #1564 Add webhook/notification support for batch job completion and score changes 2026-03-31 02:23:52 +00:00

Opened #1565 Add patent trend charts to Analytics page 2026-03-31 02:23:57 +00:00

Opened #1566 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-03-31 02:24:04 +00:00

Opened #1567 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-03-31 02:24:13 +00:00

Opened #1569 Add startup check to refuse default JWT secret in non-dev environments 2026-04-19 21:21:50 +00:00

Opened #1570 Make CORS allowed origins configurable via environment variable 2026-04-19 21:21:57 +00:00

Opened #1571 Remove hardcoded database credentials from docker-compose.yml 2026-04-19 21:22:01 +00:00

Opened #1572 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-04-19 21:22:08 +00:00

Opened #1573 Persist async job state in PostgreSQL to survive API restarts 2026-04-19 21:22:15 +00:00

Opened #1574 Add rate limiting to /auth/login and /auth/register endpoints 2026-04-19 21:22:21 +00:00

Opened #1575 Add JWT flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-04-19 21:22:27 +00:00

Opened #1576 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-19 21:22:35 +00:00

Opened #1577 Make LLM model configurable via MODEL environment variable 2026-04-19 21:22:41 +00:00

Opened #1578 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-04-19 21:22:49 +00:00

Opened #1579 Fix Patent.patent_id type annotation: change int to str in types.py 2026-04-19 21:22:53 +00:00

Opened #1580 Document patent PDF storage volume mount and integrate download step in analyze_single_patent 2026-04-19 21:23:01 +00:00

Opened #1581 Add loading/error states (skeleton loaders) to Batch and Analytics pages 2026-04-19 21:23:06 +00:00

Opened #1582 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-04-19 21:23:13 +00:00

Opened #1583 Add Tailwind dark mode support across the frontend 2026-04-19 21:23:18 +00:00

Opened #1584 Export analysis reports as PDF or CSV from the dashboard 2026-04-19 21:23:25 +00:00

Opened #1585 Add side-by-side company patent portfolio comparison view 2026-04-19 21:23:30 +00:00

Opened #1586 Add scheduled/recurring analysis with alerting on significant changes 2026-04-19 21:23:37 +00:00

Opened #1587 Add webhook/notification support for batch job completion and score changes 2026-04-19 21:23:41 +00:00

Opened #1588 Add patent filing trend charts to the Analytics page 2026-04-19 21:23:47 +00:00

Opened #1589 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-19 21:23:51 +00:00

Opened #1590 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-04-19 21:23:57 +00:00

Opened #1591 Add multi-model support: let users choose LLM provider per analysis 2026-04-19 21:24:03 +00:00

Opened #1592 Add startup check to refuse default JWT secret in non-dev environments 2026-04-19 23:23:29 +00:00

Opened #1593 Make CORS allowed origins configurable via environment variable 2026-04-19 23:23:36 +00:00

Opened #1594 Remove hardcoded database credentials from docker-compose.yml 2026-04-19 23:23:44 +00:00

Opened #1595 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-04-19 23:23:53 +00:00

Opened #1596 Persist async job state in PostgreSQL to survive API restarts 2026-04-19 23:24:05 +00:00

Opened #1597 Add rate limiting to /auth/login and /auth/register endpoints 2026-04-19 23:24:05 +00:00

Opened #1598 Add JWT flow tests: registration, login, protected routes, token refresh, and admin endpoints 2026-04-19 23:24:14 +00:00

Opened #1599 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-19 23:24:26 +00:00

Opened #1600 Make LLM model configurable via MODEL environment variable 2026-04-19 23:24:27 +00:00

Opened #1601 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-04-19 23:24:37 +00:00

Opened #1602 Fix Patent.patent_id type annotation: change int to str in types.py 2026-04-19 23:24:37 +00:00

Opened #1603 Integrate PDF download step in analyze_single_patent and document volume mount requirement 2026-04-19 23:24:51 +00:00

Opened #1604 Add skeleton loaders and user-friendly error states to Batch and Analytics pages 2026-04-19 23:24:51 +00:00

Opened #1605 Add Tailwind dark mode support across the frontend 2026-04-19 23:25:03 +00:00

Opened #1606 Commit frontend lockfile (package-lock.json or pnpm-lock.yaml) for reproducible builds 2026-04-19 23:25:03 +00:00

Opened #1607 Add pytest test stage to Gitea Actions build workflow 2026-04-19 23:25:16 +00:00

Opened #1608 Add ruff (Python) and tsc --noEmit (TypeScript) linting to CI 2026-04-19 23:25:16 +00:00

Opened #1609 Export analysis reports as PDF or CSV from the dashboard 2026-04-19 23:25:28 +00:00

Opened #1610 Add side-by-side company patent portfolio comparison view 2026-04-19 23:25:28 +00:00

Opened #1611 Add scheduled/recurring analysis with alerting on significant changes 2026-04-19 23:25:40 +00:00

Opened #1612 Add webhook/notification support for batch job completion and score changes 2026-04-19 23:25:41 +00:00

Opened #1613 Add per-analysis LLM provider selection (multi-model support) 2026-04-19 23:25:53 +00:00

Opened #1614 Add patent filing trend charts to the Analytics page 2026-04-19 23:25:53 +00:00

Opened #1615 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-19 23:26:08 +00:00

Opened #1616 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-04-19 23:26:09 +00:00

Opened #1617 Evaluate object storage (S3/MinIO) for patent PDF persistence in containerized deployments 2026-04-20 00:21:46 +00:00

Opened #1618 Add startup check to reject default JWT secret in non-development environments 2026-04-20 04:24:24 +00:00

Opened #1619 Make CORS allowed origins configurable via environment variable 2026-04-20 04:24:33 +00:00

Opened #1620 Remove hardcoded database credentials from docker-compose.yml 2026-04-20 04:24:41 +00:00

Opened #1621 Refactor auth.py to use a shared pooled DatabaseClient instead of per-call instantiation 2026-04-20 04:24:52 +00:00

Opened #1622 Persist async job state to PostgreSQL so job results survive API restarts 2026-04-20 04:25:01 +00:00

Opened #1623 Add rate limiting to /auth/login and /auth/register endpoints 2026-04-20 04:25:10 +00:00

Opened #1624 Add JWT auth integration tests covering registration, login, protected routes, and admin endpoints 2026-04-20 04:25:23 +00:00

Opened #1625 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-20 04:25:34 +00:00

Opened #1626 Make LLM model configurable via MODEL environment variable 2026-04-20 04:25:46 +00:00

Opened #1629 Refuse startup with default JWT secret in non-development environments 2026-04-20 08:26:26 +00:00

Opened #1630 Make CORS allowed origins configurable via environment variable 2026-04-20 08:26:33 +00:00

Opened #1631 Remove hardcoded database credentials from docker-compose.yml 2026-04-20 08:26:40 +00:00

Opened #1632 Refactor get_db_client() in auth.py to use a shared pooled connection 2026-04-20 08:26:49 +00:00

Opened #1633 Persist job state in PostgreSQL so batch results survive API restarts 2026-04-20 08:26:57 +00:00

Opened #1634 Add rate limiting middleware to auth endpoints 2026-04-20 08:27:04 +00:00

Opened #1635 Add JWT auth flow tests: registration, login, protected routes, token refresh, admin endpoints 2026-04-20 08:27:13 +00:00

Opened #1636 Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py 2026-04-20 08:27:22 +00:00

Opened #1637 Make LLM model configurable via MODEL environment variable 2026-04-20 08:27:28 +00:00

Opened #1638 Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable 2026-04-20 08:27:40 +00:00

Opened #1639 Document patent PDF volume mount requirement and consider object storage for containerized deployments 2026-04-20 08:27:49 +00:00

Opened #1640 Fix analyze_single_patent to download PDF before reading from disk 2026-04-20 08:27:59 +00:00

Opened #1641 Fix Patent.patent_id type annotation from int to str in types.py 2026-04-20 08:28:06 +00:00

Opened #1642 Add loading skeleton and error states to Batch and Analytics pages 2026-04-20 08:28:14 +00:00

Opened #1643 Add dark mode support using Tailwind dark variant 2026-04-20 08:28:22 +00:00

Opened #1644 Add and commit a frontend lockfile (package-lock.json or pnpm-lock.yaml) 2026-04-20 08:28:29 +00:00

Opened #1645 Add pytest test stage to CI workflow that gates the image build 2026-04-20 08:28:37 +00:00

Opened #1646 Add ruff linting and tsc type checking to CI pipeline 2026-04-20 08:28:45 +00:00

Opened #1647 Export analysis reports as PDF or CSV from the dashboard 2026-04-20 08:28:53 +00:00

Opened #1648 Add side-by-side patent portfolio comparison view 2026-04-20 08:29:00 +00:00

Opened #1649 Implement scheduled/recurring analysis with change alerting 2026-04-20 08:29:08 +00:00

Opened #1650 Add webhook/notification support for batch job completion and score changes 2026-04-20 08:29:16 +00:00

Opened #1651 Add multi-model LLM support so users can choose provider per analysis 2026-04-20 08:29:25 +00:00

Opened #1652 Add patent trend charts to Analytics page (filing frequency and tech category distribution) 2026-04-20 08:29:32 +00:00

Opened #1653 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-20 08:29:40 +00:00

Opened #1654 Auto-generate TypeScript API client from FastAPI OpenAPI spec 2026-04-20 08:29:48 +00:00

Opened #1655 Add API tests for export endpoints (/export/{company_name} and /export/{company_name}/pdf) 2026-04-20 17:23:44 +00:00

Opened #1656 Add tests for tracked company admin endpoints and scheduler integration 2026-04-20 17:23:57 +00:00

Opened #1657 Add webhook integration tests covering retry logic and Slack/Discord payload format 2026-04-20 17:24:06 +00:00

Opened #1658 Refactor scheduler.py to use the application-level pooled DatabaseClient 2026-04-20 17:24:15 +00:00

Opened #1659 Update ROADMAP.md to reflect completed work and add next-horizon items 2026-04-20 17:24:26 +00:00

Opened #1660 Add S3/MinIO storage backend tests for storage.py 2026-04-20 17:24:34 +00:00

Opened #1661 Add test coverage for analyze_single_patent auto-download path 2026-04-20 18:24:13 +00:00

Opened #1669 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-04-20 23:22:34 +00:00

Opened #1670 Add stricter input validation for company names on analysis endpoints 2026-04-20 23:22:43 +00:00

Opened #1671 Add historical analysis diffing to show changes between runs for the same company 2026-04-20 23:22:52 +00:00

Opened #1672 Add LLM-based patent classification tagging by technology domain 2026-04-20 23:23:00 +00:00

Opened #1673 Add user-level API key generation for programmatic access without JWT refresh 2026-04-20 23:23:09 +00:00

Opened #1674 Add batch export endpoint to download analysis results for multiple companies as a ZIP archive 2026-04-20 23:23:18 +00:00

Opened #1675 Add rate limit status and usage statistics to the admin panel 2026-04-20 23:23:26 +00:00

Opened #1676 Move webhook delivery to a background task queue to avoid blocking the scheduler 2026-04-20 23:23:35 +00:00

Opened #1677 Add multi-tenant support to scope analysis results and tracked companies per user/org 2026-04-20 23:23:45 +00:00

Opened #1678 Update ROADMAP.md to mark completed P1 and P2 items as done 2026-04-21 00:22:27 +00:00

Opened #1683 Persist async job state to PostgreSQL so batch results survive API restarts 2026-05-19 00:28:42 +00:00

Opened #1684 Add cursor-based pagination to /analyze/batch and /jobs endpoints 2026-05-19 00:28:50 +00:00

Opened #1685 Add stricter input validation for company names on analysis endpoints 2026-05-19 00:28:59 +00:00

Opened #1686 Add rate limiting dashboard to surface usage statistics in the admin panel 2026-05-19 05:24:43 +00:00

Opened #1691 Fix stale issue references in ROADMAP.md P2 section 2026-05-19 15:27:45 +00:00