test: v4 #8

Closed
starsetbyte wants to merge 3 commits from test/e2e-v4 into main
Owner

v4

v4
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.
fix: close review loop — commit status + PR comments (v3)
Some checks are pending
carin/review Carin review in progress...
6086558c78
Bug fixes:
- parseForgejoCommitMeta/parseGitHubCommitMeta: SplitN(...,4) handles
  PR webhook runs with 4 pipe-delimited fields (was 3, causing SHA to
  include DIFF_URL — Forgejo rejected malformed SHA)
- isGitHub detection: check X-Forgejo-Delivery first so Forgejo
  webhooks produce forgejo: metadata (were misidentified as github:)
- GitHub→Forgejo fallback: when github: metadata exists but no GitHub
  client, route through Forgejo client (same API)
- postForgejoCommitStatus: match context name to inbound handler
  (carin/pr-review for PR runs, carin/review for push runs)

Metadata forwarding:
- extractForgeMetadata() carries forgejo:/github: lines from parent
  context_summary into handoff runs via createHandoffRun
- pi-dispatcher persona prompt instructs dispatcher to copy forge
  metadata when creating review runs via carin run-create

Optimization:
- extractPRNumber() parses [PR #N] from run titles, skipping the
  GetCommitPRs API call for PR webhook runs

Tests: 8 new tests covering push/PR parsing for both Forgejo and
GitHub, extractPRNumber edge cases, and extractForgeMetadata.
test: v4
Some checks are pending
carin/pr-review Carin PR review in progress...
carin/review Carin review in progress...
ff60201b75
starsetbyte closed this pull request 2026-07-12 16:14:53 +00:00
Some checks are pending
carin/pr-review Carin PR review in progress...
carin/review Carin review in progress...

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!8
No description provided.