Add gitleaks secret detection, lint scanning (clippy/eslint/ruff), and LLM code review scanners to the scan pipeline
Enhance LLM triage with multi-action support (confirm/downgrade/upgrade/dismiss), surrounding code context, and file-path classification confidence adjustment
Add text search, column sorting, bulk status update, and developer feedback to findings dashboard
Fix BSON DateTime deserialization across all models with shared serde helpers
Add scan progress spinner with polling to repositories page
Batch OSV.dev queries to avoid rate limit errors
Add gitleaks, semgrep, and ruff to Dockerfile.agent for deployment
Test plan
Trigger a scan and verify all new stages run (secret detection, lint, code review)
Verify findings list search, sort, and bulk status update work
Verify finding detail page status refresh and developer feedback save
Verify scan button shows spinner and disables during scan
Build Dockerfile.agent and confirm gitleaks, semgrep, ruff are available
## Summary
- Add gitleaks secret detection, lint scanning (clippy/eslint/ruff), and LLM code review scanners to the scan pipeline
- Enhance LLM triage with multi-action support (confirm/downgrade/upgrade/dismiss), surrounding code context, and file-path classification confidence adjustment
- Add text search, column sorting, bulk status update, and developer feedback to findings dashboard
- Fix BSON DateTime deserialization across all models with shared serde helpers
- Add scan progress spinner with polling to repositories page
- Batch OSV.dev queries to avoid rate limit errors
- Add gitleaks, semgrep, and ruff to Dockerfile.agent for deployment
## Test plan
- [x] Trigger a scan and verify all new stages run (secret detection, lint, code review)
- [x] Verify findings list search, sort, and bulk status update work
- [x] Verify finding detail page status refresh and developer feedback save
- [x] Verify scan button shows spinner and disables during scan
- [x] Build Dockerfile.agent and confirm gitleaks, semgrep, ruff are available
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Add gitleaks secret detection, lint scanning (clippy/eslint/ruff), and LLM code review scanners
- Enhance LLM triage with multi-action support (confirm/downgrade/upgrade/dismiss),
surrounding code context, and file-path classification confidence adjustment
- Add text search, column sorting, and bulk status update to findings dashboard
- Fix finding detail page status refresh and add developer feedback field
- Fix BSON DateTime deserialization across all models with shared serde helpers
- Add scan progress spinner with polling to repositories page
- Batch OSV.dev queries to avoid "Too many queries" errors
- Add gitleaks, semgrep, and ruff to Dockerfile.agent for deployment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Generate SSH ed25519 key pair on agent startup for cloning private repos via SSH
- Add GET /api/v1/settings/ssh-public-key endpoint to expose deploy key
- Add auth_token and auth_username fields to TrackedRepository model
- Wire git2 credential callbacks for both SSH and HTTPS authentication
- Validate repository access before saving (test-connect on add)
- Update dashboard add form with optional auth section showing deploy key and token fields
- Show error toast if private repo cannot be accessed
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add MCP_ENDPOINT_URL env var to configure MCP server base URL
- Seed three default MCP server configs on dashboard startup if not present
- Each server has its own tool subset: findings (3 tools), SBOM (2 tools), DAST (2 tools)
- Uses upsert-by-name to avoid duplicates on restart
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Test plan
🤖 Generated with Claude Code