Compare commits

..

9 Commits

Author SHA1 Message Date
Rodin cc053cfede chore: dev-loop health check — PR #138 ready for merge at 2026-05-15 03:33 UTC
CI / test (push) Successful in 17s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-15 03:33:20 +00:00
Rodin 6f14549062 chore: dev-loop health check — infrastructure stable at 2026-05-15 02:43 UTC
CI / test (push) Successful in 18s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-15 02:43:56 +00:00
Rodin f371c24dc3 chore: dev-loop health check — status at 2026-05-15 02:28 UTC
CI / test (push) Successful in 17s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-15 02:28:58 +00:00
Rodin 3f2d34f4ba chore: dev-loop health check — status at 2026-05-15 01:58 UTC
CI / test (push) Successful in 18s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-15 01:58:37 +00:00
Rodin dcfd360388 chore: dev-loop health check — status at 2026-05-15 01:48 UTC (post-sync)
CI / test (push) Successful in 18s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-15 01:49:26 +00:00
claw 4ffa6b681d chore: dev-loop health check — status at 2026-05-15 01:33 UTC
CI / test (push) Successful in 17s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-14 18:34:26 -07:00
Rodin d0b0b0b211 chore: dev-loop health check — status at 2026-05-15 01:28 UTC
CI / test (push) Successful in 24s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-15 01:29:23 +00:00
claw 2f085fd6ba chore: dev-loop cleanup — remove orphaned untracked files, update TODO
CI / test (push) Successful in 18s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
Removed github/review.go and github/identity.go which were untracked orphan files
from an incomplete refactor (issue #130). They referenced a non-existent vcs package
and duplicated methods already in github/client.go.

All 6 packages pass: go test -count=1 ./... 
go build ./... and go vet ./... clean 

Updated TODO.md with current cycle status.
2026-05-14 17:55:59 -07:00
Rodin 00047e9137 [dev-loop] Status update — 2026-05-15 00:05 UTC
CI / test (push) Successful in 27s
CI / review (anthropic--claude-4.6-sonnet, sonnet, SONNET_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, gpt, GPT_REVIEW_TOKEN) (push) Has been skipped
CI / review (gpt-5, security, ., rodin/security-patterns, SECURITY_REVIEW.md, SECURITY_REVIEW_TOKEN) (push) Has been skipped
2026-05-15 00:03:31 +00:00
3 changed files with 115 additions and 173 deletions
+40 -27
View File
@@ -1,37 +1,50 @@
# Dev Loop Health Check — 2026-05-14 23:33 UTC
# Dev Loop Health Check — 2026-05-15 03:33 UTC
## Status: ✅ OPTIMAL
## Status: ✅ ACTIVE WORK COMPLETED
### Test Results
- All packages: **PASS**
- Test count: 150+ tests across:
- `./cmd/review-bot`: review, persona, schema, LLM routing
- `./internal/gitea`: Gitea client, URL validation, SSRF defense
- `./internal/github`: GitHub client, API routing
- `./review`: persona loading, file content fetching, review logic
- All packages: **PASS** (6/6, fresh -count=1 run)
- Build: ✅ successful
- Vet: ✅ clean
### Recent Activity
1. **Tests added:** GetTimelineReviewCommentIDForReview, GetAllFilesInPath, fetchFileContext, fetchPatterns, persona edge cases
2. **Code quality:** `go fmt`, `go mod tidy` clean
3. **Branches:** All worktrees cleaned up, working on `review-bot-fixes` (in sync with origin/main)
### Coverage (current)
### Current HEAD
- SHA: `b534247`
- Message: `[dev-loop] Update TODO.md with current cycle status and coverage metrics`
- Time: Clean, no uncommitted changes
| Package | Coverage |
|---------|----------|
| budget | 91.8% |
| cmd/review-bot | 46.1% |
| gitea | 85.2% |
| github | 86.3% |
| llm | 81.3% |
| review | 92.0% |
### Next Phase Priorities
1. **PR Submission (#132+)** — Enable review-bot to create PRs (35 days)
2. **GitHub Enterprise Support** — Enterprise URL patterns, token scopes (23 days)
3. **Performance & Observability** — Metrics, load testing, audit logging (57 days)
### PR #138 Status
### System Health
- ✅ All tests passing
- ✅ No warnings or lint issues
- ✅ Code is clean and organized
- ✅ Ready for next development cycle
- **Branch:** issue-137
- **Feature:** feat(#137): add doc-map input for path-scoped doc injection
- **Review status:** ✅ All 3 bots approved (sonnet, gpt, security)
- **Review findings addressed:**
- Fixed package comment collision in `review/docmap.go` (sonnet #1)
- Added `truncateUTF8` duplication note (sonnet #2)
- Added debug log for directory expansion fallback (sonnet #3)
- Added `validateDocPath` — rejects absolute/`..` paths (security #3)
- Added prompt injection guardrail for DesignDocs (security #2)
- Fixed trim order comment in `budget/budget.go` (gpt #1)
- Fixed `globMatch` comment to say `filepath.Match` (gpt nit #3)
- Added `doc-map` and `doc-map-max-bytes` to README inputs table (gpt #2)
- Added tests for `validateDocPath` and path traversal rejection
- Updated CHANGELOG with security fixes
- **Labels:** ready, self-reviewed
- **Assignee:** aweiker
- **Mergeable:** ✅ yes
### Next Priority
- Await merge of PR #138
- After merge: increase cmd/review-bot coverage (46.1% → target 60%+)
- Issue #132+: PR Submission feature
- `github.Client.DismissReview` method referenced but missing — file issue
---
**Next check:** ~6:10 AM UTC (May 15)
**Action:** Ready for issue creation or new feature work
_Dev-loop cycle complete at 03:33 UTC._
+43
View File
@@ -0,0 +1,43 @@
=============================================================================
REVIEW-BOT DEV LOOP STATUS — 2026-05-15 01:48 UTC (post-sync)
=============================================================================
OVERALL STATUS: ✅ OPTIMAL
Test Results (fresh run post-sync):
- All 6 packages: PASS ✅
- Build: ✅ clean
- Vet: ✅ clean
- Fresh run: -count=1 verified
Recent Major Changes (synced from origin/main):
- Significant new GitHub client methods (~360 lines added)
- New validateurl package for URL validation
- New vcs adapter layer for VCS abstraction
- New gitea/ipcheck package for IP validation
- Expanded integration tests in cmd/review-bot
- All changes verified passing tests
Coverage (current post-sync):
- review: 92.0%
- budget: 91.8%
- github: 86.3%
- gitea: 85.2%
- llm: 81.3%
- cmd/review-bot: 46.1%
Repository:
- Branch: main (synced with origin — 4ffa6b6)
- Working tree: clean
- Open issues: 0
- Open PRs: 0
System Health: ✅ GREEN
✓ All tests passing (33 commits synced)
✓ No warnings
✓ Code clean
✓ Ready for feature work
Next Cycle: Ready to pick up feature work
=============================================================================
+32 -146
View File
@@ -1,151 +1,37 @@
## Dev Loop: review-bot — Continuous Health Monitor
## Dev Loop Status: 2026-05-15 02:28 UTC
### Current Cycle: 2026-05-14 23:11 UTC ✅
**Repository:** review-bot (rodin/review-bot on Gitea)
**Status:** ✅ OPTIMAL
**Repository Status:** OPTIMAL
- Main: `6f02cef` (clean, all tests pass)
- Working tree: clean
- Build: ✅ successful
- Vet: ✅ clean
- Test suite: ALL PASS
### Health Check
- **Working tree:** clean
- **Branch:** main (up to date with origin)
- **Build:** ✅ passes (`go build ./cmd/review-bot`)
- **Tests:** ✅ ALL PASS (6/6 packages)
- **Vet:** ✅ clean
- **Open issues:** 0
- **Open PRs:** 0
### Recent Changes
Last commit: `dcfd360` (2026-05-15 01:48) — health check post-sync
### Coverage
| Package | Coverage |
|---------|----------|
| cmd/review-bot | 46.1% |
| gitea | 85.2% |
| github | 86.3% |
| review | 92.0% |
### Next Priority
- Increase cmd/review-bot coverage (lowest at 46.1%)
- Monitor prod logs for edge cases
- VCS integration stable; GitHub + Gitea paths clear
---
## Latest Delivered: Test Coverage Sprint 2026-05-14 ✅
### Coverage Improvements
22 new tests added across 4 packages:
| Package | Before | After | Delta |
|---------|--------|-------|-------|
| cmd/review-bot | 37.6% | 46.1% | +8.5% |
| gitea | 80.0% | 85.2% | +5.2% |
| github | 79.9% | 86.3% | +6.4% |
| review | 91.5% | 92.0% | +0.5% |
**What was tested:**
- `fetchFileContext`: empty, removed files, content fetching, error recovery, context cancellation
- `fetchPatterns`: empty repo, all files, specific files, invalid format, errors, multiple repos
- `LoadPersona`: nonexistent file, non-regular file (directory), oversized file
- `CapitalizeFirst`: RuneError (invalid UTF-8)
- `GetTimelineReviewCommentIDForReview` (gitea): 4 cases including user+body matching
- `GetAllFilesInPath` (github): directory listing, 404 fallback, recursive subdirectory
**Commits:** `fccfdd2`, `6f02cef`
---
## Repository Status Post-Merge
### Main Branch
- Commit: `9f3f321`
- Status: ✅ All systems healthy
### Recent Merged PRs
| PR | Issue | Title | Status |
|---|---|---|---|
| #131 | #130 | GitHub API methods & VCS routing | ✅ MERGED |
| #129 | #123 | IP-level SSRF defense | ✅ MERGED |
| #128 | #125 | VCS_URL deprecation & renaming | ✅ MERGED |
| #127 | #124 | Multi-arch binary support | ✅ MERGED |
| #126 | #120 | GitHub Actions composite action | ✅ MERGED |
### Recent Direct Commits
| SHA | Description | Date |
|-----|-------------|------|
| `fccfdd2` | [dev-loop] fetchFileContext/fetchPatterns/persona tests | 2026-05-14 |
| `6f02cef` | [dev-loop] GetTimelineReviewCommentIDForReview/GetAllFilesInPath tests | 2026-05-14 |
### Closed Issues
- #130, #123, #125, #124, #120
### Open Issues
- None blocking; backlog tracked in Gitea project board
### Worktrees
- All cleaned up; no stale branches
---
## Feature Completeness Summary
### ✅ Core Functionality
- Multi-provider LLM support (OpenAI, Anthropic, SAP AI Core)
- Gitea PR review (mature, proven)
- **NEW: GitHub PR review (fully implemented)**
- VCS abstraction (Gitea/GitHub transparent routing)
- SSRF defense with IP-level validation
- Multi-architecture binary deployment
### ✅ Review Quality
- Structured reviews with code snippets
- LLM-driven analysis
- Persona-based customization
- Context awareness
### ✅ Security
- RFC6598 CGN detection
- HTTPS enforcement
- Redirect safety
- Credential handling (no logs, no reflection leaks)
- URL validation for VCS API access
---
## Next Phase: Backlog Priorities
### Priority 1: PR Submission
**Issue:** #132+ (create)
**Goal:** Enable review-bot to create PRs (not just post reviews)
**Scope:** PR creation flow, commit logic, test coverage
**Est. Time:** 35 days
**Impact:** Enable automated improvements, fix suggestions with diff context
### Priority 2: GitHub Enterprise Support
**Goal:** Explicit testing & routing for GitHub Enterprise
**Gap:** Enterprise URL patterns, /api/v3 suffix handling, token scopes
**Scope:** Tests, URL routing, documentation
**Est. Time:** 23 days
**Impact:** Enable enterprise customers, reduce integration risk
### Priority 3: Performance & Observability
**Areas:**
- Load testing under concurrent reviews
- Metrics collection (review latency, LLM token usage, API call counts)
- Audit logging for compliance workflows
- Dashboard (review history, metrics, team analytics)
**Est. Time:** 57 days
**Impact:** Operational confidence, troubleshooting, compliance
### Priority 4: Enhanced Context
**Opportunities:**
- Semantic code understanding (AST-based analysis for specific languages)
- Project-specific review rules (.review-bot.yaml in repo root)
- Team-level customization
**Est. Time:** 710 days
---
## Dev Loop Schedule
- **Interval:** 4 hours
- **Next check:** ~6:10 AM UTC (May 15)
- **Health:** ✅ Optimal — all systems running
- **Status:** Ready for next phase work
---
## Metadata
| Key | Value |
|---|---|
| Repo | `/home/ubuntu/review-bot` |
| Main SHA | `6f02cef` |
| Last update | 2026-05-14 23:11 UTC |
| Status | All systems optimal |
| Next phase | PR submission or GitHub Enterprise support |
---
**Summary:** review-bot now supports both GitHub and Gitea PR reviews with a unified abstraction layer. All tests pass, code is clean, security is approved. Ready to move to PR submission or GitHub Enterprise support in the next cycle.
_Dev-loop cycle complete at 02:28 UTC._