Skip to content

feat(resilience): wire Brainarr breaker to Common AdvancedCircuitBreaker (WS4.2 PR2)#374

Merged
RicherTunes merged 11 commits intofeat/breaker-registry-seamfrom
feat/common-breaker-adapter
Jan 17, 2026
Merged

feat(resilience): wire Brainarr breaker to Common AdvancedCircuitBreaker (WS4.2 PR2)#374
RicherTunes merged 11 commits intofeat/breaker-registry-seamfrom
feat/common-breaker-adapter

Conversation

@RicherTunes
Copy link
Owner

@RicherTunes RicherTunes commented Jan 16, 2026

WS4.2 PR2 (stacked on #373): replace the breaker registry implementation while keeping WS4.1 characterization tests unchanged.

Changes:

  • Add CommonBreakerRegistry + BrainarrCircuitBreakerAdapter delegating to Common's AdvancedCircuitBreaker.
  • Register IBreakerRegistry as CommonBreakerRegistry.
  • Bump �xt/lidarr.plugin.common to deac78c (Common#283).
  • Update DI seam tests to expect CommonBreakerRegistry.

Acceptance:

  • CircuitBreakerCharacterizationTests (25) pass unchanged.
  • BreakerRegistryInjectionTests (4) pass.

Depends on:

RicherTunes and others added 11 commits January 16, 2026 18:36
…apter

# Conflicts:
#	Brainarr.Tests/Services/Core/ArtistModeMbidsGateTests.cs
#	Brainarr.Tests/Services/Core/BrainarrOrchestratorSpecificTests.cs
#	Brainarr.Tests/Services/Core/BrainarrOrchestratorTopUpTests.cs
Root cause: Pre-test cleanup was deleting bin/obj directories, forcing
dotnet test to rebuild. This caused parallel MSBuild file locking on
Common submodule's .deps.json files.

Fix:
- Remove `rm -rf Brainarr.Tests/bin Brainarr.Tests/obj` from pre-test cleanup
- Add `--no-build` to all dotnet test commands (Linux unit, Linux provider-contract, Windows unit)

This ensures tests use pre-built binaries from the Build step, eliminating
rebuild-induced file contention.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The backslash followed by trailing spaces on line 136 caused bash to
pass extra arguments to MSBuild, triggering MSB1008 "Only one project
can be specified" error.

Also cleaned up excessive spacing in other test commands.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@RicherTunes RicherTunes merged commit 22a7da3 into feat/breaker-registry-seam Jan 17, 2026
5 checks passed
RicherTunes added a commit that referenced this pull request Jan 17, 2026
…ker (WS4.2 PR2) (#374)

* feat(resilience): adapt Brainarr breaker to Common AdvancedCircuitBreaker

* test(resilience): update DI seam tests for CommonBreakerRegistry

* test(orchestrator): inject breaker registry in direct-construction tests

* test(orchestrator): inject breaker registry in remaining direct-construction tests

* test(orchestrator): add breaker registry injection tripwires

* fix(ci): prevent flaky file-locking in dotnet test

Root cause: Pre-test cleanup was deleting bin/obj directories, forcing
dotnet test to rebuild. This caused parallel MSBuild file locking on
Common submodule's .deps.json files.

Fix:
- Remove `rm -rf Brainarr.Tests/bin Brainarr.Tests/obj` from pre-test cleanup
- Add `--no-build` to all dotnet test commands (Linux unit, Linux provider-contract, Windows unit)

This ensures tests use pre-built binaries from the Build step, eliminating
rebuild-induced file contention.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* ci: reduce transient dotnet file-lock failures in Test and Coverage

* fix(ci): remove trailing whitespace breaking dotnet test command

The backslash followed by trailing spaces on line 136 caused bash to
pass extra arguments to MSBuild, triggering MSB1008 "Only one project
can be specified" error.

Also cleaned up excessive spacing in other test commands.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
RicherTunes added a commit that referenced this pull request Jan 17, 2026
* feat(resilience): wire Brainarr breaker to Common AdvancedCircuitBreaker (WS4.2 PR2) (#374)

* feat(resilience): adapt Brainarr breaker to Common AdvancedCircuitBreaker

* test(resilience): update DI seam tests for CommonBreakerRegistry

* test(orchestrator): inject breaker registry in direct-construction tests

* test(orchestrator): inject breaker registry in remaining direct-construction tests

* test(orchestrator): add breaker registry injection tripwires

* fix(ci): prevent flaky file-locking in dotnet test

Root cause: Pre-test cleanup was deleting bin/obj directories, forcing
dotnet test to rebuild. This caused parallel MSBuild file locking on
Common submodule's .deps.json files.

Fix:
- Remove `rm -rf Brainarr.Tests/bin Brainarr.Tests/obj` from pre-test cleanup
- Add `--no-build` to all dotnet test commands (Linux unit, Linux provider-contract, Windows unit)

This ensures tests use pre-built binaries from the Build step, eliminating
rebuild-induced file contention.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* ci: reduce transient dotnet file-lock failures in Test and Coverage

* fix(ci): remove trailing whitespace breaking dotnet test command

The backslash followed by trailing spaces on line 136 caused bash to
pass extra arguments to MSBuild, triggering MSB1008 "Only one project
can be specified" error.

Also cleaned up excessive spacing in other test commands.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* style: fix formatting in BrainarrCircuitBreakerAdapter

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant