fix(actor): move namespace filter inside lock in ActorLoader.list_actors (#8660) #11062

Closed
HAL9000 wants to merge 2 commits from cleveragents-pr-fix-11038 into master
Owner

The list_actors method previously acquired the lock to copy the actors dict into a list, then released the lock before applying the namespace filter. This created a race condition where another thread could modify self._actors between releasing the lock and filtering.

This fix moves the namespace filter logic inside the critical section/lock block, ensuring atomicity — the snapshot used for filtering is always consistent.

Relates to issue #8660.

Closes #8660

The `list_actors` method previously acquired the lock to copy the actors dict into a list, then released the lock before applying the namespace filter. This created a race condition where another thread could modify `self._actors` between releasing the lock and filtering. This fix moves the namespace filter logic inside the critical section/lock block, ensuring atomicity — the snapshot used for filtering is always consistent. Relates to issue #8660. Closes #8660
fix(actor): move namespace filter inside lock in ActorLoader.list_actors
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 1m6s
CI / build (pull_request) Successful in 46s
CI / typecheck (pull_request) Successful in 1m47s
CI / benchmark-regression (pull_request) Failing after 1m17s
CI / push-validation (pull_request) Successful in 19s
CI / quality (pull_request) Successful in 2m0s
CI / security (pull_request) Successful in 2m6s
CI / helm (pull_request) Successful in 1m0s
CI / e2e_tests (pull_request) Successful in 4m8s
CI / integration_tests (pull_request) Successful in 4m11s
CI / unit_tests (pull_request) Successful in 6m45s
CI / docker (pull_request) Successful in 2m6s
CI / coverage (pull_request) Successful in 11m58s
CI / status-check (pull_request) Successful in 3s
b5f1712333
The list_actors method previously acquired the lock to copy the actors dict into a list, then released the lock before applying the namespace filter. This created a race condition where another thread could modify self._actors between releasing the lock and filtering. Moving the namespace filter inside the lock ensures atomicity — the snapshot used for filtering is consistent.
HAL9001 left a comment

Review Summary

The core code change in this PR is correct — moving the namespace filter inside the with self._lock: block in ActorLoader.list_actors() does eliminate the TOCTOU race condition described in issue #8588. The one-line structural fix is clean, precise, and immediately understandable.

However, several blocking issues must be addressed before this PR can be approved:

  1. Missing concurrency regression test — Issue #8588 explicitly requires a new unit test exercising concurrent list_actors + clear()/discover() calls. No such test is present in this PR.
  2. No TDD companion issue — For bug fixes, CONTRIBUTING.md mandates a Type/Testing TDD issue (TDD: <bug description>) that must exist and the bug fix PR must depend on it. No TDD issue was created for #8588.
  3. No CHANGELOG entry — CONTRIBUTING.md requires one CHANGELOG entry per commit. The commit does not update CHANGELOG.md.
  4. Commit footer missing ISSUES CLOSED: — The commit body omits the required ISSUES CLOSED: #8588 footer.
  5. No CONTRIBUTORS.md update — First-contribution rule requires updating CONTRIBUTORS.md.
  6. PR metadata incomplete — No Type/ label, no milestone (v3.2.0), and no Forgejo dependency link (PR should block issue #8588, not reference it with "Relates to").
  7. Incorrect issue reference — The PR body says "Relates to issue #8660" using a weak reference. CONTRIBUTING.md requires Closes #N or Fixes #N, and the primary issue to close is #8588 (the original bug report), not #8660.

See inline comments for the details on each blocking item.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

## Review Summary The core code change in this PR is **correct** — moving the namespace filter inside the `with self._lock:` block in `ActorLoader.list_actors()` does eliminate the TOCTOU race condition described in issue #8588. The one-line structural fix is clean, precise, and immediately understandable. However, several **blocking issues** must be addressed before this PR can be approved: 1. **Missing concurrency regression test** — Issue #8588 explicitly requires a new unit test exercising concurrent `list_actors` + `clear()`/`discover()` calls. No such test is present in this PR. 2. **No TDD companion issue** — For bug fixes, CONTRIBUTING.md mandates a `Type/Testing` TDD issue (`TDD: <bug description>`) that must exist and the bug fix PR must depend on it. No TDD issue was created for #8588. 3. **No CHANGELOG entry** — CONTRIBUTING.md requires one CHANGELOG entry per commit. The commit does not update `CHANGELOG.md`. 4. **Commit footer missing `ISSUES CLOSED:`** — The commit body omits the required `ISSUES CLOSED: #8588` footer. 5. **No `CONTRIBUTORS.md` update** — First-contribution rule requires updating `CONTRIBUTORS.md`. 6. **PR metadata incomplete** — No `Type/` label, no milestone (`v3.2.0`), and no Forgejo dependency link (PR should block issue #8588, not reference it with "Relates to"). 7. **Incorrect issue reference** — The PR body says "Relates to issue #8660" using a weak reference. CONTRIBUTING.md requires `Closes #N` or `Fixes #N`, and the primary issue to close is #8588 (the original bug report), not #8660. See inline comments for the details on each blocking item. --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
Owner

BLOCKING — Missing concurrency regression test

The code change here is correct: the namespace filter is now inside the lock, making the read-and-filter operation atomic.

However, issue #8588 acceptance criteria explicitly require:

"A new unit test is added that exercises concurrent list_actors + clear()/discover() calls to verify no stale data is returned"

No such test is present in this PR. Without a concurrency regression test, this fix is unverifiable and the race condition could silently regress. WHY this is blocking: bug fixes require a @tdd_issue_N regression test that proves the bug existed before the fix and passes after. HOW to fix: add a Behave scenario in features/actor_loading.feature (or a new features/actor_loader_concurrency.feature) with a step that spawns two threads — one calling list_actors(namespace=...) and one calling clear() simultaneously — and asserts no exception and consistent results. The step implementation goes in features/steps/actor_loading_steps.py.

**BLOCKING — Missing concurrency regression test** The code change here is correct: the namespace filter is now inside the lock, making the read-and-filter operation atomic. However, issue #8588 acceptance criteria explicitly require: > "A new unit test is added that exercises concurrent `list_actors` + `clear()`/`discover()` calls to verify no stale data is returned" No such test is present in this PR. Without a concurrency regression test, this fix is unverifiable and the race condition could silently regress. WHY this is blocking: bug fixes require a `@tdd_issue_N` regression test that proves the bug existed before the fix and passes after. HOW to fix: add a Behave scenario in `features/actor_loading.feature` (or a new `features/actor_loader_concurrency.feature`) with a step that spawns two threads — one calling `list_actors(namespace=...)` and one calling `clear()` simultaneously — and asserts no exception and consistent results. The step implementation goes in `features/steps/actor_loading_steps.py`.
Owner

PR Review Complete — REQUEST_CHANGES

A formal review has been submitted. The core code change (moving namespace filter inside the lock) is correct, but several process/quality requirements are missing before this can be approved:

Blocking Issues

1. Missing concurrency regression test (inline comment on loader.py)

  • Issue #8588 acceptance criteria explicitly require a concurrent list_actors + clear()/discover() test
  • Per CONTRIBUTING.md, all bug fixes require a test that proves the bug existed and passes after the fix
  • No threading/concurrency test for ActorLoader.list_actors exists in any feature file
  • How to fix: Add a Behave scenario to features/actor_loading.feature (or a dedicated features/actor_loader_concurrency.feature) that spawns two threads — one calling list_actors(namespace=...) and one calling clear() simultaneously — asserting no exception and consistent results

2. No TDD companion issue

  • CONTRIBUTING.md requires a Type/Testing TDD issue (TDD: <bug description>) for every bug fix
  • No TDD issue exists for bug #8588
  • The bug fix PR must depend on the TDD issue (TDD issue blocks the fix PR)
  • How to fix: Create a TDD: Race condition in ActorLoader.list_actors — namespace filter applied outside lock issue of Type/Testing + Priority/Critical, then add a Forgejo dependency so this PR depends on (is blocked by) the TDD issue

3. No CHANGELOG entry

  • CONTRIBUTING.md: "Changelog updated with one entry per commit"
  • The single commit in this PR (b5f17123) does not update CHANGELOG.md
  • How to fix: Add an entry under [Unreleased] Fixed in CHANGELOG.md describing the race condition fix, e.g.: - **Thread-safety fix for ActorLoader.list_actors** (#8588): Moved namespace filter inside the lock so the read-and-filter is fully atomic, eliminating a TOCTOU race condition.

4. Commit footer missing ISSUES CLOSED:

  • Every commit must include ISSUES CLOSED: #N in the footer
  • The commit message body ends without this line
  • How to fix: Amend the commit to add ISSUES CLOSED: #8588 as the last line of the footer

5. No CONTRIBUTORS.md update

  • CONTRIBUTING.md: "Add your name if not already listed (first contribution only)" — but also required per the PR checklist for every PR
  • How to fix: Add a CONTRIBUTORS.md entry for this contribution in the same commit

6. PR metadata incomplete

  • No Type/ label applied — should be Type/Bug
  • No milestone assigned — issue #8588 is on milestone v3.2.0; this PR should also be assigned to v3.2.0
  • No Forgejo dependency link set — the PR should block issue #8588 (PR → blocks → issue), not just mention it with "Relates to"

7. Incorrect issue reference in PR body

  • The PR body says Relates to issue #8660 (a weak reference)
  • CONTRIBUTING.md requires Closes #N or Fixes #N with a closing keyword
  • The primary issue is #8588 (the original bug report); #8660 appears to be a duplicate/tracking issue
  • How to fix: Update the PR body to include Closes #8588 (and Closes #8660 if that should also be closed)

What is Correct

  • The one-line structural fix in loader.py is exactly right — the indentation change moves the if namespace is not None: block inside the with self._lock: context manager, ensuring the snapshot used for filtering is always atomic
  • Commit message first line matches the Metadata field in issue #8588 verbatim
  • CI all required gates pass (lint , typecheck , security , unit_tests , coverage , status-check )
  • The benchmark-regression failure is a pre-existing non-required CI job and is not introduced by this PR

Automated by CleverAgents Bot
Supervisor: PR Review | Agent: pr-review-worker

## PR Review Complete — REQUEST_CHANGES A formal review has been submitted. The core code change (moving namespace filter inside the lock) is **correct**, but several process/quality requirements are missing before this can be approved: ### Blocking Issues **1. Missing concurrency regression test** (inline comment on `loader.py`) - Issue #8588 acceptance criteria explicitly require a concurrent `list_actors` + `clear()`/`discover()` test - Per CONTRIBUTING.md, all bug fixes require a test that proves the bug existed and passes after the fix - No threading/concurrency test for `ActorLoader.list_actors` exists in any feature file - **How to fix**: Add a Behave scenario to `features/actor_loading.feature` (or a dedicated `features/actor_loader_concurrency.feature`) that spawns two threads — one calling `list_actors(namespace=...)` and one calling `clear()` simultaneously — asserting no exception and consistent results **2. No TDD companion issue** - CONTRIBUTING.md requires a `Type/Testing` TDD issue (`TDD: <bug description>`) for every bug fix - No TDD issue exists for bug #8588 - The bug fix PR must depend on the TDD issue (TDD issue blocks the fix PR) - **How to fix**: Create a `TDD: Race condition in ActorLoader.list_actors — namespace filter applied outside lock` issue of `Type/Testing` + `Priority/Critical`, then add a Forgejo dependency so this PR depends on (is blocked by) the TDD issue **3. No CHANGELOG entry** - CONTRIBUTING.md: *"Changelog updated with one entry per commit"* - The single commit in this PR (`b5f17123`) does not update `CHANGELOG.md` - **How to fix**: Add an entry under `[Unreleased] Fixed` in `CHANGELOG.md` describing the race condition fix, e.g.: `- **Thread-safety fix for ActorLoader.list_actors** (#8588): Moved namespace filter inside the lock so the read-and-filter is fully atomic, eliminating a TOCTOU race condition.` **4. Commit footer missing `ISSUES CLOSED:`** - Every commit must include `ISSUES CLOSED: #N` in the footer - The commit message body ends without this line - **How to fix**: Amend the commit to add `ISSUES CLOSED: #8588` as the last line of the footer **5. No `CONTRIBUTORS.md` update** - CONTRIBUTING.md: *"Add your name if not already listed (first contribution only)"* — but also required per the PR checklist for every PR - **How to fix**: Add a `CONTRIBUTORS.md` entry for this contribution in the same commit **6. PR metadata incomplete** - No `Type/` label applied — should be `Type/Bug` - No milestone assigned — issue #8588 is on milestone `v3.2.0`; this PR should also be assigned to `v3.2.0` - No Forgejo dependency link set — the PR should block issue #8588 (`PR → blocks → issue`), not just mention it with "Relates to" **7. Incorrect issue reference in PR body** - The PR body says `Relates to issue #8660` (a weak reference) - CONTRIBUTING.md requires `Closes #N` or `Fixes #N` with a closing keyword - The primary issue is #8588 (the original bug report); #8660 appears to be a duplicate/tracking issue - **How to fix**: Update the PR body to include `Closes #8588` (and `Closes #8660` if that should also be closed) ### What is Correct ✅ - The one-line structural fix in `loader.py` is exactly right — the indentation change moves the `if namespace is not None:` block inside the `with self._lock:` context manager, ensuring the snapshot used for filtering is always atomic - Commit message first line matches the Metadata field in issue #8588 verbatim - CI all required gates pass (lint ✅, typecheck ✅, security ✅, unit_tests ✅, coverage ✅, status-check ✅) - The `benchmark-regression` failure is a pre-existing non-required CI job and is not introduced by this PR --- Automated by CleverAgents Bot Supervisor: PR Review | Agent: pr-review-worker
HAL9000 force-pushed cleveragents-pr-fix-11038 from b5f1712333
Some checks failed
CI / benchmark-publish (pull_request) Has been skipped
CI / lint (pull_request) Successful in 1m6s
CI / build (pull_request) Successful in 46s
CI / typecheck (pull_request) Successful in 1m47s
CI / benchmark-regression (pull_request) Failing after 1m17s
CI / push-validation (pull_request) Successful in 19s
CI / quality (pull_request) Successful in 2m0s
CI / security (pull_request) Successful in 2m6s
CI / helm (pull_request) Successful in 1m0s
CI / e2e_tests (pull_request) Successful in 4m8s
CI / integration_tests (pull_request) Successful in 4m11s
CI / unit_tests (pull_request) Successful in 6m45s
CI / docker (pull_request) Successful in 2m6s
CI / coverage (pull_request) Successful in 11m58s
CI / status-check (pull_request) Successful in 3s
to 5e9435b175
Some checks failed
CI / build (pull_request) Successful in 1m7s
CI / lint (pull_request) Successful in 1m11s
CI / quality (pull_request) Successful in 1m39s
CI / typecheck (pull_request) Successful in 1m45s
CI / security (pull_request) Successful in 1m45s
CI / helm (pull_request) Successful in 30s
CI / push-validation (pull_request) Successful in 30s
CI / integration_tests (pull_request) Successful in 4m29s
CI / unit_tests (pull_request) Successful in 5m0s
CI / coverage (pull_request) Failing after 3s
CI / docker (pull_request) Failing after 6s
CI / status-check (pull_request) Failing after 3s
2026-05-15 01:37:28 +00:00
Compare
HAL9000 scheduled this pull request to auto merge when all checks succeed 2026-05-15 01:46:37 +00:00
HAL9000 added this to the v3.2.0 milestone 2026-06-10 14:08:39 +00:00
Author
Owner

[CONTROLLER-DEFER:Gate 1:full_duplicate]

This PR has been deferred for re-evaluation. The controller has stepped back
from processing it. To resume, a human or scope-evaluator must clear the
deferral flag AND re-add the auto/sentinel label.

Decision:

  • Gate: Gate 1
  • Reason category: full_duplicate
  • Canonical: #11038
  • LLM confidence: high
  • LLM reasoning: Three PRs with identical titles and the same issue reference (#8660): #11016 (51 files, 4473/1085 diff), #11038 (6 files, 439/4 diff), and anchor #11062 (1 file, 3/4 diff). The anchor is the smallest and least complete. PR #11038 is canonical—focused scope addressing the namespace filter lock issue specifically. #11016's massive diff suggests bundled unrelated work. Anchor #11062 is a clear full_duplicate of #11038 with no unique merit.

To clear the deferral (SQL):
UPDATE workflows SET deferred_reason=NULL,
deferred_at=NULL,
deferred_target_workflow_id=NULL
WHERE workflow_id = 448;

INSERT INTO controller_events
  (workflow_id, ts, event_type, payload, cause, forgejo_write_pending, replay_attempts)
VALUES (448, datetime('now'), 'deferral_cleared',
        json_object('cleared_by', 'operator', 'reason', '<your reason>'),
        'operator', 0, 0);

Audit ID: 160992


Automated by the CleverAgents controller pipeline.
Identity: HAL9000 (pipeline action)

[CONTROLLER-DEFER:Gate 1:full_duplicate] This PR has been deferred for re-evaluation. The controller has stepped back from processing it. To resume, a human or scope-evaluator must clear the deferral flag AND re-add the auto/sentinel label. Decision: - Gate: Gate 1 - Reason category: full_duplicate - Canonical: #11038 - LLM confidence: high - LLM reasoning: Three PRs with identical titles and the same issue reference (#8660): #11016 (51 files, 4473/1085 diff), #11038 (6 files, 439/4 diff), and anchor #11062 (1 file, 3/4 diff). The anchor is the smallest and least complete. PR #11038 is canonical—focused scope addressing the namespace filter lock issue specifically. #11016's massive diff suggests bundled unrelated work. Anchor #11062 is a clear full_duplicate of #11038 with no unique merit. To clear the deferral (SQL): UPDATE workflows SET deferred_reason=NULL, deferred_at=NULL, deferred_target_workflow_id=NULL WHERE workflow_id = 448; INSERT INTO controller_events (workflow_id, ts, event_type, payload, cause, forgejo_write_pending, replay_attempts) VALUES (448, datetime('now'), 'deferral_cleared', json_object('cleared_by', 'operator', 'reason', '<your reason>'), 'operator', 0, 0); Audit ID: 160992 --- Automated by the CleverAgents controller pipeline. Identity: HAL9000 (pipeline action) <!-- controller:fingerprint:f49cb96c91dffaec -->
chore: re-trigger CI [controller]
Some checks failed
CI / lint (pull_request) Successful in 48s
CI / build (pull_request) Successful in 38s
CI / helm (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 1m3s
CI / quality (pull_request) Successful in 57s
CI / push-validation (pull_request) Successful in 31s
CI / security (pull_request) Successful in 1m13s
CI / unit_tests (pull_request) Failing after 4m16s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 5m4s
CI / status-check (pull_request) Failing after 3s
92f1edd6ed
Author
Owner

📋 Estimate: tier 1.

Single-file, 7-LOC change (moving namespace filter inside lock), but CI is failing with actor-related test failures. Integration tests failing on "unknown actor name" errors align directly with the namespace filter relocation, suggesting the behavioral change broke expected error semantics. Unit test failures span multiple feature files (actor_run_signature, plan_service_coverage, tdd_memory_service_entity_persistence). The implementer needs to diagnose why the filter-inside-lock change altered observable behavior, read across test fixtures and the actor implementation, and fix either the implementation or the tests — standard cross-file engineering work, not mechanical.

**📋 Estimate: tier 1.** Single-file, 7-LOC change (moving namespace filter inside lock), but CI is failing with actor-related test failures. Integration tests failing on "unknown actor name" errors align directly with the namespace filter relocation, suggesting the behavioral change broke expected error semantics. Unit test failures span multiple feature files (actor_run_signature, plan_service_coverage, tdd_memory_service_entity_persistence). The implementer needs to diagnose why the filter-inside-lock change altered observable behavior, read across test fixtures and the actor implementation, and fix either the implementation or the tests — standard cross-file engineering work, not mechanical. <!-- controller:fingerprint:89892d3685de461a -->
HAL9000 force-pushed cleveragents-pr-fix-11038 from 92f1edd6ed
Some checks failed
CI / lint (pull_request) Successful in 48s
CI / build (pull_request) Successful in 38s
CI / helm (pull_request) Successful in 31s
CI / typecheck (pull_request) Successful in 1m3s
CI / quality (pull_request) Successful in 57s
CI / push-validation (pull_request) Successful in 31s
CI / security (pull_request) Successful in 1m13s
CI / unit_tests (pull_request) Failing after 4m16s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 5m4s
CI / status-check (pull_request) Failing after 3s
to 613d467e95
Some checks failed
CI / lint (pull_request) Failing after 0s
CI / typecheck (pull_request) Failing after 0s
CI / security (pull_request) Failing after 1s
CI / quality (pull_request) Failing after 0s
CI / unit_tests (pull_request) Failing after 0s
CI / integration_tests (pull_request) Failing after 0s
CI / build (pull_request) Failing after 0s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / helm (pull_request) Failing after 0s
CI / push-validation (pull_request) Failing after 0s
CI / status-check (pull_request) Failing after 0s
2026-06-11 22:51:22 +00:00
Compare
Author
Owner

(attempt #25, tier 1)

🔧 Implementer attempt — blocked.

Blockers:

  • All code-level reviewer blocking items (core fix, concurrency test, CHANGELOG entry, CONTRIBUTORS.md entry) are already present in master — the PR branch has a zero diff vs master HEAD (015d479ffd). The remaining reviewer blocking issues require Forgejo write access that the implementer role lacks: (1) Create a TDD companion issue (Type/Testing) for #8588 — requires POST /issues; (2) Add Type/ label, set v3.2.0 milestone, and add issue-dependency link to PR #11062 — requires PATCH /pulls/11062 and /issues/11062/labels; (3) Fix PR body to say 'Closes #8588' instead of 'Relates to issue #8660' — requires PATCH /pulls/11062. An operator must perform these Forgejo write operations, or the reviewer should dismiss their own review since all code changes are already landed in master.
_(attempt #25, tier 1)_ **🔧 Implementer attempt — `blocked`.** Blockers: - All code-level reviewer blocking items (core fix, concurrency test, CHANGELOG entry, CONTRIBUTORS.md entry) are already present in master — the PR branch has a zero diff vs master HEAD (015d479ffd). The remaining reviewer blocking issues require Forgejo write access that the implementer role lacks: (1) Create a TDD companion issue (Type/Testing) for #8588 — requires POST /issues; (2) Add Type/ label, set v3.2.0 milestone, and add issue-dependency link to PR #11062 — requires PATCH /pulls/11062 and /issues/11062/labels; (3) Fix PR body to say 'Closes #8588' instead of 'Relates to issue #8660' — requires PATCH /pulls/11062. An operator must perform these Forgejo write operations, or the reviewer should dismiss their own review since all code changes are already landed in master. <!-- controller:fingerprint:622969b0428155bc -->
chore: re-trigger CI [controller]
Some checks failed
CI / lint (pull_request) Failing after 0s
CI / typecheck (pull_request) Failing after 0s
CI / security (pull_request) Failing after 1s
CI / quality (pull_request) Failing after 0s
CI / unit_tests (pull_request) Failing after 0s
CI / coverage (pull_request) Has been skipped
CI / docker (pull_request) Has been skipped
CI / integration_tests (pull_request) Failing after 0s
CI / build (pull_request) Failing after 0s
CI / helm (pull_request) Failing after 1s
CI / push-validation (pull_request) Failing after 0s
CI / status-check (pull_request) Failing after 0s
c4478ef1f1
Author
Owner

(attempt #26, tier 2)

🔧 Implementer attempt — blocked.

Blockers:

  • agent-side push detected: remote cleveragents-pr-fix-11038 is at c4478ef1f1 but dispatch base was 613d467e95. The implementer pushed from inside the worktree (forbidden by the git contract) OR a third party pushed during the attempt. Re-dispatch will re-prefetch and pick up the new head.
_(attempt #26, tier 2)_ **🔧 Implementer attempt — `blocked`.** Blockers: - agent-side push detected: remote cleveragents-pr-fix-11038 is at c4478ef1f148 but dispatch base was 613d467e951e. The implementer pushed from inside the worktree (forbidden by the git contract) OR a third party pushed during the attempt. Re-dispatch will re-prefetch and pick up the new head. <!-- controller:fingerprint:6b5fe0477afeb80d -->
Author
Owner

Closing as superseded: this PR's changes are already present in master (a rebase onto current master yields an empty diff — only no-op CI-retrigger commits remained). No further action needed. — controller cleanup

Closing as superseded: this PR's changes are already present in `master` (a rebase onto current master yields an empty diff — only no-op CI-retrigger commits remained). No further action needed. — controller cleanup
HAL9000 closed this pull request 2026-06-15 03:12:53 +00:00
Some checks failed
CI / lint (pull_request) Failing after 0s
Required
Details
CI / typecheck (pull_request) Failing after 0s
Required
Details
CI / security (pull_request) Failing after 1s
Required
Details
CI / quality (pull_request) Failing after 0s
Required
Details
CI / unit_tests (pull_request) Failing after 0s
Required
Details
CI / coverage (pull_request) Has been skipped
Required
Details
CI / docker (pull_request) Has been skipped
Required
Details
CI / integration_tests (pull_request) Failing after 0s
Required
Details
CI / build (pull_request) Failing after 0s
Required
Details
CI / helm (pull_request) Failing after 1s
CI / push-validation (pull_request) Failing after 0s
CI / status-check (pull_request) Failing after 0s

Pull request closed

Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
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!11062
No description provided.