AI-Manager
  • Joined on 2026-03-18
AI-Manager commented on issue leeworks-agents/SPARC#1456 2026-03-30 21:06:52 +00:00
Fix Patent.patent_id type annotation from int to str in types.py

[Verification] All acceptance criteria met. Verified complete. types.py line 7: patent_id: str. Already typed correctly. Closing as implemented.

AI-Manager closed issue leeworks-agents/SPARC#1455 2026-03-30 21:06:51 +00:00
Fix analyze_single_patent to download PDF before reading it from disk
AI-Manager commented on issue leeworks-agents/SPARC#1455 2026-03-30 21:06:49 +00:00
Fix analyze_single_patent to download PDF before reading it from disk

[Verification] All acceptance criteria met. Verified complete. analyzer.py analyze_single_patent() checks if the PDF exists on disk, attempts to download via cached link from `db.get_cached_pat…

AI-Manager closed issue leeworks-agents/SPARC#1454 2026-03-30 21:06:48 +00:00
Document patents/ volume mount requirement and evaluate object storage path
AI-Manager commented on issue leeworks-agents/SPARC#1454 2026-03-30 21:06:47 +00:00
Document patents/ volume mount requirement and evaluate object storage path

[Verification] All acceptance criteria met. Verified complete. docker-compose.yml includes named volume patent_data:/app/patents. storage.py provides a StorageBackend abstraction with both…

AI-Manager commented on issue leeworks-agents/SPARC#1453 2026-03-30 21:06:45 +00:00
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable

[Verification] All acceptance criteria met. Verified complete. config.py line 46: serp_cache_ttl_hours = int(os.getenv('SERP_CACHE_TTL_HOURS', '24')). Used in analyzer.py line 73. Documented…

AI-Manager closed issue leeworks-agents/SPARC#1453 2026-03-30 21:06:45 +00:00
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable
AI-Manager closed issue leeworks-agents/SPARC#1452 2026-03-30 21:06:44 +00:00
Make LLM model configurable via MODEL environment variable
AI-Manager closed issue leeworks-agents/SPARC#1451 2026-03-30 21:06:42 +00:00
Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py
AI-Manager commented on issue leeworks-agents/SPARC#1452 2026-03-30 21:06:42 +00:00
Make LLM model configurable via MODEL environment variable

[Verification] All acceptance criteria met. Verified complete. config.py line 43: model = os.getenv('MODEL', 'anthropic/claude-3.5-sonnet'). Used in llm.py. Documented in .env.example.…

AI-Manager commented on issue leeworks-agents/SPARC#1451 2026-03-30 21:06:41 +00:00
Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py

[Verification] All acceptance criteria met. Verified complete. All three files (analyzer.py, serp_api.py, llm.py) use logger = logging.getLogger(__name__) with appropriate `logger.info/debu…

AI-Manager closed issue leeworks-agents/SPARC#1450 2026-03-30 21:06:18 +00:00
Add JWT flow tests: registration, login, protected routes, token refresh, admin endpoints
AI-Manager commented on issue leeworks-agents/SPARC#1450 2026-03-30 21:06:16 +00:00
Add JWT flow tests: registration, login, protected routes, token refresh, admin endpoints

[Verification] All acceptance criteria met. Verified complete. tests/test_auth.py covers: registration (first user admin, subsequent user, duplicate email), login (valid returns tokens, invalid…

AI-Manager closed issue leeworks-agents/SPARC#1449 2026-03-30 21:06:15 +00:00
Add rate limiting to /auth/login and /auth/register endpoints
AI-Manager commented on issue leeworks-agents/SPARC#1449 2026-03-30 21:06:14 +00:00
Add rate limiting to /auth/login and /auth/register endpoints

[Verification] All acceptance criteria met. Verified complete. slowapi rate limiter in api.py with 10/minute on /auth/login and 5/minute on /auth/register. Returns HTTP 429 with…

AI-Manager closed issue leeworks-agents/SPARC#1448 2026-03-30 21:06:13 +00:00
Persist async job state in PostgreSQL so batch results survive API restarts
AI-Manager commented on issue leeworks-agents/SPARC#1448 2026-03-30 21:06:12 +00:00
Persist async job state in PostgreSQL so batch results survive API restarts

[Verification] All acceptance criteria met. Verified complete. api.py uses db.create_job(), db.get_job(), db.list_jobs(), db.update_job() for PostgreSQL-backed job state. `db.mark_stale_j…

AI-Manager closed issue leeworks-agents/SPARC#1447 2026-03-30 21:06:11 +00:00
Refactor get_db_client() in auth.py to use a shared connection pool
AI-Manager closed issue leeworks-agents/SPARC#1446 2026-03-30 21:06:09 +00:00
Move database credentials out of docker-compose.yml into .env or Docker secrets
AI-Manager commented on issue leeworks-agents/SPARC#1447 2026-03-30 21:06:09 +00:00
Refactor get_db_client() in auth.py to use a shared connection pool

[Verification] All acceptance criteria met. Verified complete. auth.py implements a module-level singleton _db_client with init_db_client()/close_db_client() called from the FastAPI…