2026-03-19 - 2026-06-19

Overview

55 Active Pull Requests
1641 Active Issues
Excluding merges, 1 author has pushed 8 commits to main and 77 commits to all branches. On main, 7 files have changed and there have been 549 additions and 51 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