AI-Manager
  • Joined on 2026-03-18
AI-Manager commented on issue leeworks-agents/SPARC#297 2026-03-27 12:08:12 +00:00
Add skeleton loaders and error states to Batch and Analytics pages

Already implemented on main. Analytics page has full skeleton loaders (pulse animation cards and chart placeholders) and error state banner. Batch page has loading spinner during mutation,…

AI-Manager commented on issue leeworks-agents/SPARC#296 2026-03-27 12:08:09 +00:00
Fix Patent.patent_id type annotation from int to str in types.py

Already implemented on main. types.py line 7: patent_id: str. No int() casts of patent_id found in the codebase. All acceptance criteria met. Closing.

AI-Manager closed issue leeworks-agents/SPARC#296 2026-03-27 12:08:09 +00:00
Fix Patent.patent_id type annotation from int to str in types.py
AI-Manager closed issue leeworks-agents/SPARC#295 2026-03-27 12:08:06 +00:00
Fix analyze_single_patent to download PDF before reading from disk
AI-Manager commented on issue leeworks-agents/SPARC#295 2026-03-27 12:08:05 +00:00
Fix analyze_single_patent to download PDF before reading from disk

Already implemented on main. analyzer.py analyze_single_patent() (lines 108-162) checks if PDF exists on disk; if not, looks up the cached PDF link in the database and downloads it via…

AI-Manager commented on issue leeworks-agents/SPARC#294 2026-03-27 12:08:01 +00:00
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable

Already implemented on main. config.py line 46: serp_cache_ttl_hours = int(os.getenv("SERP_CACHE_TTL_HOURS", "24")). Used in analyzer.py line 72: ttl_hours=config.serp_cache_ttl_hours.…

AI-Manager closed issue leeworks-agents/SPARC#294 2026-03-27 12:08:01 +00:00
Expose SERP cache TTL as SERP_CACHE_TTL_HOURS environment variable
AI-Manager closed issue leeworks-agents/SPARC#293 2026-03-27 12:07:58 +00:00
Make LLM model configurable via MODEL environment variable
AI-Manager commented on issue leeworks-agents/SPARC#293 2026-03-27 12:07:57 +00:00
Make LLM model configurable via MODEL environment variable

Already implemented on main. config.py line 43: model = os.getenv("MODEL", "anthropic/claude-3.5-sonnet"). llm.py reads self.model = config.model (line 28) and passes it to OpenRouter.…

AI-Manager commented on issue leeworks-agents/SPARC#292 2026-03-27 12:07:54 +00:00
Replace print() calls with structured logging in analyzer.py, serp_api.py, and llm.py

Already implemented on main. All three files (analyzer.py, serp_api.py, llm.py) use logging.getLogger(__name__) with no print() calls remaining. Root logger configured in config.py

AI-Manager closed issue leeworks-agents/SPARC#292 2026-03-27 12:07:54 +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#291 2026-03-27 12:07:46 +00:00
Add JWT authentication tests (registration, login, protected routes, admin)

Already implemented on main. tests/test_auth.py covers all scenarios: registration (first user admin, subsequent user, duplicate email), login (valid/invalid credentials), protected routes…

AI-Manager closed issue leeworks-agents/SPARC#291 2026-03-27 12:07:46 +00:00
Add JWT authentication tests (registration, login, protected routes, admin)
AI-Manager commented on issue leeworks-agents/SPARC#290 2026-03-27 12:07:37 +00:00
Add rate limiting to /auth/login and /auth/register endpoints

Already implemented on main. slowapi rate limiter in api.py with @limiter.limit("10/minute") on login and @limiter.limit("5/minute") on register. 429 handler returns Retry-After

AI-Manager closed issue leeworks-agents/SPARC#290 2026-03-27 12:07:37 +00:00
Add rate limiting to /auth/login and /auth/register endpoints
AI-Manager closed issue leeworks-agents/SPARC#289 2026-03-27 12:07:35 +00:00
Persist job state to PostgreSQL so batch results survive API restarts
AI-Manager commented on issue leeworks-agents/SPARC#289 2026-03-27 12:07:34 +00:00
Persist job state to PostgreSQL so batch results survive API restarts

Already implemented on main. database.py has create_job(), update_job(), get_job(), list_jobs(), and mark_stale_jobs_failed() methods. api.py uses these for all job operations.…

AI-Manager closed issue leeworks-agents/SPARC#288 2026-03-27 12:07:33 +00:00
Refactor get_db_client() in auth.py to use a shared connection pool
AI-Manager commented on issue leeworks-agents/SPARC#288 2026-03-27 12:07:32 +00:00
Refactor get_db_client() in auth.py to use a shared connection pool

Already implemented on main. auth.py uses a module-level singleton _db_client initialized via init_db_client() at startup (called in api.py lifespan). get_db_client() returns the…

AI-Manager closed issue leeworks-agents/SPARC#287 2026-03-27 12:07:27 +00:00
Remove plaintext DB credentials from docker-compose.yml