Proposal: fix ca-uat-tester — search for existing tracking issue before creating a new one #3150

Open
opened 2026-04-05 06:56:16 +00:00 by freemo · 2 comments
Owner

Agent Improvement Proposal

Pattern Detected

Type: workflow_fix
Affected Agent: ca-uat-tester (Pool Supervisor Mode)
Evidence:

As of 2026-04-05T06:51Z, there are three duplicate open tracking issues for the UAT Pool Supervisor:

Issue Title Created
#3094 [CA-AUTO] UAT Pool Supervisor — v3.2.0–v3.7.0 — Session Tracker 06:10:22Z
#3124 [CA-AUTO] UAT Pool Supervisor — v3.2.0–v3.7.0 — Session Tracker 06:35:18Z
#3145 [CA-AUTO] UAT Pool Supervisor — v3.2.0–v3.7.0 — Session Tracker 06:51:32Z

All three are open simultaneously. This happens because the product-builder re-launches the UAT pool supervisor when it detects the session has exited (normal watchdog behavior). Each re-launch creates a new tracking issue instead of finding and reusing the existing one.

Root cause: The Pool Supervision Loop in ca-uat-tester.md (lines 118-129) unconditionally creates a new tracking issue at startup:

tracking_issue = create Forgejo issue via API:
    title: "[CA-AUTO] UAT Pool Supervisor — <milestone> — Session Tracker"
    ...

There is no step to search for an existing open tracking issue with the same title before creating a new one.

Impact:

  • Progress reports are fragmented across multiple issues
  • Issue tracker is polluted with duplicate tracking issues
  • Humans cannot follow a single thread of UAT progress

Proposed Change

Add a search-before-create step to the Pool Supervision Loop in ca-uat-tester.md, before the tracking issue creation:

# ── Find or create tracking issue ────────────────────────────────
# Search for an existing open tracking issue from a previous run.
existing = search Forgejo for open issues with title containing
    "[CA-AUTO] UAT Pool Supervisor" and label "Type/Automation"
if existing:
    TRACKING_ISSUE_NUMBER = existing[0].number
    post comment on issue #TRACKING_ISSUE_NUMBER:
        "UAT Pool Supervisor re-attached to existing tracking issue.
         Previous session exited; resuming monitoring."
else:
    tracking_issue = create Forgejo issue via API:
        title: "[CA-AUTO] UAT Pool Supervisor — <milestone> — Session Tracker"
        ...
    TRACKING_ISSUE_NUMBER = tracking_issue.number

This ensures that when the supervisor is re-launched, it finds and reuses the existing tracking issue instead of creating a duplicate.

Expected Impact

  • No more duplicate tracking issues: Re-launched supervisors reuse the existing issue
  • Continuous progress thread: All progress reports appear on a single issue
  • Cleaner issue tracker: Eliminates tracking issue pollution

Risk Assessment

  • Very low risk: The change only adds a search step before creation. If no existing issue is found, behavior is unchanged (a new one is created).
  • Potential concern: If the search query is too broad, it might match a closed tracking issue from a previous session. Mitigated by filtering for state=open only.
  • Edge case: If two supervisors start simultaneously, both might not find an existing issue and both create one. This is the same race condition that exists today and is acceptable — it's a rare edge case.

This is a proposal from the agent evolver. A human must approve this issue before the change will be implemented. To approve: remove the needs feedback label, add State/Verified, or comment with approval.


Automated by CleverAgents Bot
Supervisor: Agent Evolver | Agent: ca-agent-evolver

## Agent Improvement Proposal ### Pattern Detected **Type**: workflow_fix **Affected Agent**: ca-uat-tester (Pool Supervisor Mode) **Evidence**: As of 2026-04-05T06:51Z, there are **three duplicate open tracking issues** for the UAT Pool Supervisor: | Issue | Title | Created | |-------|-------|---------| | #3094 | [CA-AUTO] UAT Pool Supervisor — v3.2.0–v3.7.0 — Session Tracker | 06:10:22Z | | #3124 | [CA-AUTO] UAT Pool Supervisor — v3.2.0–v3.7.0 — Session Tracker | 06:35:18Z | | #3145 | [CA-AUTO] UAT Pool Supervisor — v3.2.0–v3.7.0 — Session Tracker | 06:51:32Z | All three are open simultaneously. This happens because the product-builder re-launches the UAT pool supervisor when it detects the session has exited (normal watchdog behavior). Each re-launch creates a **new** tracking issue instead of finding and reusing the existing one. **Root cause**: The Pool Supervision Loop in `ca-uat-tester.md` (lines 118-129) unconditionally creates a new tracking issue at startup: ``` tracking_issue = create Forgejo issue via API: title: "[CA-AUTO] UAT Pool Supervisor — <milestone> — Session Tracker" ... ``` There is no step to search for an existing open tracking issue with the same title before creating a new one. **Impact**: - Progress reports are fragmented across multiple issues - Issue tracker is polluted with duplicate tracking issues - Humans cannot follow a single thread of UAT progress ### Proposed Change Add a **search-before-create** step to the Pool Supervision Loop in `ca-uat-tester.md`, before the tracking issue creation: ``` # ── Find or create tracking issue ──────────────────────────────── # Search for an existing open tracking issue from a previous run. existing = search Forgejo for open issues with title containing "[CA-AUTO] UAT Pool Supervisor" and label "Type/Automation" if existing: TRACKING_ISSUE_NUMBER = existing[0].number post comment on issue #TRACKING_ISSUE_NUMBER: "UAT Pool Supervisor re-attached to existing tracking issue. Previous session exited; resuming monitoring." else: tracking_issue = create Forgejo issue via API: title: "[CA-AUTO] UAT Pool Supervisor — <milestone> — Session Tracker" ... TRACKING_ISSUE_NUMBER = tracking_issue.number ``` This ensures that when the supervisor is re-launched, it finds and reuses the existing tracking issue instead of creating a duplicate. ### Expected Impact - **No more duplicate tracking issues**: Re-launched supervisors reuse the existing issue - **Continuous progress thread**: All progress reports appear on a single issue - **Cleaner issue tracker**: Eliminates tracking issue pollution ### Risk Assessment - **Very low risk**: The change only adds a search step before creation. If no existing issue is found, behavior is unchanged (a new one is created). - **Potential concern**: If the search query is too broad, it might match a closed tracking issue from a previous session. Mitigated by filtering for `state=open` only. - **Edge case**: If two supervisors start simultaneously, both might not find an existing issue and both create one. This is the same race condition that exists today and is acceptable — it's a rare edge case. --- *This is a proposal from the agent evolver. A human must approve this issue before the change will be implemented. To approve: remove the `needs feedback` label, add `State/Verified`, or comment with approval.* --- **Automated by CleverAgents Bot** Supervisor: Agent Evolver | Agent: ca-agent-evolver
Author
Owner

approved

approved
Author
Owner

Human approval acknowledged. Issue verified and transitioned to State/Verified.

  • State: State/UnverifiedState/Verified
  • Approved by: CTO (human review)
  • Scope: Update ca-uat-tester pool supervisor mode to search for existing open tracking issues before creating new ones (search-before-create pattern).
  • Next step: This issue is ready for implementation.

Automated by CleverAgents Bot
Supervisor: Human Liaison | Agent: ca-human-liaison

Human approval acknowledged. Issue verified and transitioned to `State/Verified`. - **State**: `State/Unverified` → `State/Verified` - **Approved by**: CTO (human review) - **Scope**: Update `ca-uat-tester` pool supervisor mode to search for existing open tracking issues before creating new ones (search-before-create pattern). - **Next step**: This issue is ready for implementation. --- **Automated by CleverAgents Bot** Supervisor: Human Liaison | Agent: ca-human-liaison
Sign in to join this conversation.
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
cleveragents/cleveragents-core#3150
No description provided.