test: final closed review loop v2 #6

Closed
starsetbyte wants to merge 3 commits from test/review-loop-v2 into main
Owner

Final test with all fixes: isGitHub detection, forge metadata forwarding, GitHub→Forgejo fallback.

Final test with all fixes: isGitHub detection, forge metadata forwarding, GitHub→Forgejo fallback.
test: PR webhook E2E pipeline test
Some checks are pending
carin/review Carin review in progress...
carin/pr-review Carin review passed
84de947039
feat: PR webhook pipeline, per-run model overrides, dashboard redesign, max_retries fix
Some checks are pending
carin/review Carin review in progress...
c6c43f7b4b
Webhook (internal/webhook/inbound.go):
- Handle pull_request events (opened/synchronize/reopened)
- Parse Forgejo/GitHub PR payloads into normalized preEvent
- Post pending commit status on Forgejo for PR head SHA
- HMAC verification for both X-Hub-Signature-256 and X-Forgejo-Signature
- Idempotency via delivery ID (returns 409 on duplicate)
- 5 new PR-specific tests + 8 existing push tests

Model overrides (model/run.go, store, api, dispatch):
- Run.ProviderOverride, Run.ModelOverride fields
- Wired through CreateRun/UpdateRun/scanRun/params()
- spawnExternal: override persona defaults when run has overrides set
- Schema: provider_override + model_override columns

Max retries fix (store/runs.go):
- CreateRun INSERT now uses p.MaxRetries instead of hardcoded 0
- UpdateRun SET includes max_retries
- API runRequest.params() maps MaxRetries

Dashboard redesign (Overview.svelte):
- Replace kanban with health bar + agent grid + run table
- Compact flight-instrument design: status dots, tabular-nums
- Run table and agent health table with status colors
- Expandable create-run form with model/provider overrides
- Fix <tr> without <tbody> SSR warnings, remove empty CSS
fix: close the review loop — commit status + PR comments
Some checks are pending
carin/review Carin review in progress...
856bfde62e
Bug fix: parseForgejoCommitMeta used SplitN(rest, '|', 3) which
concatenated SHA|DIFF_URL for PR webhook runs (4 pipe-delimited
fields), causing Forgejo to reject the malformed SHA. Commit status
updates silently failed, leaving PRs stuck at 'pending' forever.

Fix: SplitN(rest, '|', 4) handles both push (3 fields) and PR (4
fields). Same fix applied to parseGitHubCommitMeta.

Optimization: extractPRNumber() parses [PR #N] from run titles,
skipping the GetCommitPRs API call for PR webhook runs. Push
webhook runs fall back to GetCommitPRs as before.

Context matching: postForgejoCommitStatus now uses carin/pr-review
for PR runs (matching the inbound webhook handler) instead of
hardcoded carin/review.

Tests: 7 new tests covering push/PR/no-match parsing for both
Forgejo and GitHub, plus extractPRNumber edge cases.

All 12 test packages pass, vet clean.
test: trigger closed review loop
Some checks are pending
carin/review Carin review in progress...
carin/pr-review Carin review passed
d986561ed4
test: final closed loop verification
Some checks are pending
carin/review Carin review in progress...
carin/pr-review Carin review passed
89ec8026f7
Author
Owner

🔍 Carin Code Review

Run #234 completed by pi-dispatcher


95817593e65ab5b9a8b3c37a56f4a765


Posted by CarinView run

## 🔍 Carin Code Review *Run [#234](http://astraea1:8787/ui/runs/234) completed by `pi-dispatcher`* --- 95817593e65ab5b9a8b3c37a56f4a765 --- *Posted by [Carin](http://astraea1:8787/ui/runs/234) • [View run](http://astraea1:8787/ui/runs/234)*
Author
Owner

🔍 Carin Code Review

Run #234 completed by pi-dispatcher


Dispatch Decision — PR #6 Review

Task

Review PR #6 in starsetbyte/Carin (test/review-loop-v2main).
Author: starsetbyte. Commit: 89ec8026.

"Final test with all fixes: isGitHub detection, forge metadata forwarding, GitHub→Forgejo fallback."

Routing decision

Single persona: pi-reviewer (deepseek-v4-pro) → spawned as run #236 (mode: review, thread #405).

Why pi-reviewer

This is a pure code-review task against an existing PR diff. Per routing rule #3 (reviewing existing changes → pi-reviewer). The PR touches a single coherent area (forge/git-platform detection + metadata forwarding), so a single reviewer run is appropriate — no architect/builder chain needed since no new code is being written.

Why not other personas

  • pi-architect — not needed; no plan is being requested, only a review.
  • pi-builder — not needed; no implementation work.
  • pi-researcher — not needed; the scope is a self-contained diff, not an ecosystem scan.
  • pi-thinker — reserved in case the reviewer uncovers a subtle logic bug that needs escalation; not the first hop.

Handed off to reviewer

The reviewer has been instructed to:

  1. Fetch the diff from https://durandal.exe.xyz/starsetbyte/Carin/pulls/6.diff.
  2. Check correctness of isGitHub detection, forge metadata forwarding, and the GitHub→Forgejo fallback.
  3. Run go build ./..., go vet ./..., go test ./... against the branch if checkable.
  4. Produce a review.md artifact with line-referenced feedback.
  5. Emit a VERDICT: approve or VERDICT: revise line in its completion summary.

State

  • Run #236 status: queued (awaiting the built-in dispatcher to spawn pi-reviewer).
  • Thread: #405.

Posted by CarinView run

## 🔍 Carin Code Review *Run [#234](http://astraea1:8787/ui/runs/234) completed by `pi-dispatcher`* --- # Dispatch Decision — PR #6 Review ## Task Review PR #6 in starsetbyte/Carin (`test/review-loop-v2` → `main`). Author: starsetbyte. Commit: `89ec8026`. > "Final test with all fixes: isGitHub detection, forge metadata forwarding, GitHub→Forgejo fallback." ## Routing decision **Single persona: `pi-reviewer`** (deepseek-v4-pro) → spawned as **run #236** (mode: review, thread #405). ### Why pi-reviewer This is a pure code-review task against an existing PR diff. Per routing rule #3 (reviewing existing changes → pi-reviewer). The PR touches a single coherent area (forge/git-platform detection + metadata forwarding), so a single reviewer run is appropriate — no architect/builder chain needed since no new code is being written. ### Why not other personas - **pi-architect** — not needed; no plan is being requested, only a review. - **pi-builder** — not needed; no implementation work. - **pi-researcher** — not needed; the scope is a self-contained diff, not an ecosystem scan. - **pi-thinker** — reserved in case the reviewer uncovers a subtle logic bug that needs escalation; not the first hop. ## Handed off to reviewer The reviewer has been instructed to: 1. Fetch the diff from `https://durandal.exe.xyz/starsetbyte/Carin/pulls/6.diff`. 2. Check correctness of `isGitHub` detection, forge metadata forwarding, and the GitHub→Forgejo fallback. 3. Run `go build ./...`, `go vet ./...`, `go test ./...` against the branch if checkable. 4. Produce a `review.md` artifact with line-referenced feedback. 5. Emit a `VERDICT: approve` or `VERDICT: revise` line in its completion summary. ## State - Run #236 status: **queued** (awaiting the built-in dispatcher to spawn pi-reviewer). - Thread: #405. --- *Posted by [Carin](http://astraea1:8787/ui/runs/234) • [View run](http://astraea1:8787/ui/runs/234)*
Author
Owner

🔍 Carin Code Review

Run #234 completed by pi-dispatcher


95817593e65ab5b9a8b3c37a56f4a765


Posted by CarinView run

## 🔍 Carin Code Review *Run [#234](http://astraea1:8787/ui/runs/234) completed by `pi-dispatcher`* --- 95817593e65ab5b9a8b3c37a56f4a765 --- *Posted by [Carin](http://astraea1:8787/ui/runs/234) • [View run](http://astraea1:8787/ui/runs/234)*
Author
Owner

🔍 Carin Code Review

Run #234 completed by pi-dispatcher


95817593e65ab5b9a8b3c37a56f4a765


Posted by CarinView run

## 🔍 Carin Code Review *Run [#234](http://astraea1:8787/ui/runs/234) completed by `pi-dispatcher`* --- 95817593e65ab5b9a8b3c37a56f4a765 --- *Posted by [Carin](http://astraea1:8787/ui/runs/234) • [View run](http://astraea1:8787/ui/runs/234)*
Author
Owner

🔍 Carin Code Review

Run #234 completed by pi-dispatcher


95817593e65ab5b9a8b3c37a56f4a765


Posted by CarinView run

## 🔍 Carin Code Review *Run [#234](http://astraea1:8787/ui/runs/234) completed by `pi-dispatcher`* --- 95817593e65ab5b9a8b3c37a56f4a765 --- *Posted by [Carin](http://astraea1:8787/ui/runs/234) • [View run](http://astraea1:8787/ui/runs/234)*
starsetbyte closed this pull request 2026-07-12 16:14:53 +00:00
Some checks are pending
carin/review Carin review in progress...
carin/pr-review Carin review passed

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
starsetbyte/Carin!6
No description provided.