feat: auto-trigger reviewer after owner completion with round trip limit
- Owner finishes → auto mark review_ready → reviewer executes - Reviewer finishes → task back to active → owner can respond - Automatic ping-pong until consensus or round trip limit - PAIRED_MAX_ROUND_TRIPS env var (default 10, 0 = unlimited) - round_trip_count tracked per task in DB
This commit is contained in:
@@ -74,7 +74,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: 'review the owner changes',
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -162,7 +162,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -214,7 +214,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: 'cross service review',
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -289,7 +289,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -363,7 +363,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -503,7 +503,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -564,7 +564,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -619,7 +619,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: '2026-03-28T00:01:00.000Z',
|
||||
status: 'review_ready',
|
||||
created_at: now,
|
||||
@@ -680,7 +680,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -743,7 +743,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
@@ -831,7 +831,7 @@ describe('paired workspace manager', () => {
|
||||
reviewer_service_id: 'codex-review',
|
||||
title: null,
|
||||
source_ref: 'HEAD',
|
||||
plan_notes: null,
|
||||
plan_notes: null, round_trip_count: 0,
|
||||
review_requested_at: null,
|
||||
status: 'active',
|
||||
created_at: now,
|
||||
|
||||
Reference in New Issue
Block a user