Skip to content

Cycle 23 Core: Move ProviderMetadataCatalog to Core + fix BetaUpdateCheck suffix#677

Merged
rygel merged 4 commits into
developfrom
feat/cycle-23-core
Jun 26, 2026
Merged

Cycle 23 Core: Move ProviderMetadataCatalog to Core + fix BetaUpdateCheck suffix#677
rygel merged 4 commits into
developfrom
feat/cycle-23-core

Conversation

@rygel

@rygel rygel commented Jun 26, 2026

Copy link
Copy Markdown
Owner

Changes

  • task-104: Move ProviderMetadataCatalog from Infrastructure to Core/Providers namespace. 42 files updated. Composition roots pass typeof(ProviderRegistrationExtensions).Assembly. ModuleInitializer pattern in test projects.
  • task-105: Fix BetaUpdateCheck develop-suffix version comparison (ParseAppVersion was parsing 1-develop as 0).

Verification

  • Build: PASS
  • Tests: 1554 pass (1413 + 141 Monitor.Tests)

ParseAppVersion was parsing '1-develop' (from e.g. v2.3.7-beta.1-develop)
as a single int, which failed TryParse and defaulted to 0 — making newer
betas appear older than their predecessors. Fix: extract the numeric
portion before any additional suffix.

Added 6 test cases for -develop suffix parsing and comparison.
Move ProviderMetadataCatalog.cs to Core/Providers/ namespace. The
Initialize(Assembly) pattern from C22 task-99 enables this —
composition roots pass the Infrastructure assembly so the catalog
scans for provider implementations correctly.

Changes:
- Moved ProviderMetadataCatalog.cs to Core/Providers/
- Updated 42 files with using AIUsageTracker.Core.Providers
- Updated Monitor Program.cs and Web WebApplicationBootstrapper to
  pass typeof(ProviderRegistrationExtensions).Assembly to Initialize
- Added ModuleInitializer in Tests and Monitor.Tests projects to
  call Initialize before any test accesses Definitions
- Updated Definitions_AreDiscoveredFromProviderClasses test to scan
  Infrastructure assembly via typeof(GroqProvider).Assembly
- All 1554 tests pass (1413 + 141)
The ProviderMetadataCatalog move to Core broke the Slim UI - it was
relying on the fallback that scanned the Infrastructure assembly (where
the catalog previously lived). Now that the catalog is in Core, the
fallback scans Core which has no providers, causing an empty catalog
and screenshot rendering failures.

Added ProviderMetadataCatalog.Initialize(typeof(ProviderRegistrationExtensions).Assembly)
call in ConfigureServices, before any service registration.
Settings providers page renders at a different height now that
ProviderMetadataCatalog.Initialize correctly discovers all providers
in the Slim UI. Sync baseline from CI candidate.
@rygel
rygel merged commit cdfe7a4 into develop Jun 26, 2026
21 checks passed
@rygel
rygel deleted the feat/cycle-23-core branch June 26, 2026 20:59
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.

2 participants