Skip to content

Conversation

@samtrion
Copy link
Contributor

@samtrion samtrion commented Dec 10, 2025

Summary by CodeRabbit

  • New Features

    • Added command creation functionality with configurable project and output paths.
    • Introduced standardized CLI options for environment, log level, drafts, and future content.
    • Added application execution capability with cancellation support.
  • Documentation

    • Enhanced documentation across command classes and core services.
  • Refactor

    • Improved internal service registration architecture.

✏️ Tip: You can customize this high-level summary in your review settings.

@samtrion samtrion self-assigned this Dec 10, 2025
@samtrion samtrion added state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:chore Indicates some housework that needs to be done. labels Dec 10, 2025
@samtrion samtrion merged commit 4fb9478 into main Dec 10, 2025
3 of 4 checks passed
@coderabbitai
Copy link

coderabbitai bot commented Dec 10, 2025

Warning

Rate limit exceeded

@samtrion has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 22 minutes and 23 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 6fc2417 and aa8d43e.

📒 Files selected for processing (12)
  • src/NetEvolve.ForgingBlazor/ApplicationBuilderExtensions.cs (2 hunks)
  • src/NetEvolve.ForgingBlazor/Commands/CommandBuild.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/Commands/CommandCli.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/Commands/CommandCreate.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/Commands/CommandExample.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/Commands/CommandOptions.cs (5 hunks)
  • src/NetEvolve.ForgingBlazor/Commands/CommandServe.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/ForgingBlazorApplication.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/ServiceCollectionExtensions.cs (3 hunks)
  • src/NetEvolve.ForgingBlazor/Services/ContentRegistration.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/Services/DefaultContentRegistration.cs (1 hunks)
  • src/NetEvolve.ForgingBlazor/Services/ForgingBlazorContentRegister.cs (1 hunks)

Walkthrough

Refactors DI and CLI wiring: introduces centralized CLI options, new service registration extensions (including TransferAllServices), adds DefaultContentRegistration and DefaultContentMarker usage, augments ForgingBlazorApplication with RunAsync and a constructor, implements CommandCreate action, and adds XML docs across multiple command and service classes.

Changes

Cohort / File(s) Summary
Command classes (docs & small behavior)
src/NetEvolve.ForgingBlazor/Commands/CommandBuild.cs, src/NetEvolve.ForgingBlazor/Commands/CommandCli.cs, src/NetEvolve.ForgingBlazor/Commands/CommandServe.cs, src/NetEvolve.ForgingBlazor/Commands/CommandExample.cs
Added XML documentation to public/internal command classes and constructors. No functional signature changes.
Command Create
src/NetEvolve.ForgingBlazor/Commands/CommandCreate.cs
Initialized private _serviceProvider, registered options (ProjectPath, OutputPath), set action to ExecuteAsync, and implemented ExecuteAsync to transfer services from the provided IServiceProvider and return completion.
Command options centralization
src/NetEvolve.ForgingBlazor/Commands/CommandOptions.cs
New internal static class exposing shared CLI options: Environment, IncludeDrafts, IncludeFuture, LogLevel, ProjectPath, OutputPath (flags, defaults, descriptions).
Application execution API
src/NetEvolve.ForgingBlazor/ForgingBlazorApplication.cs
Added InvocationConfiguration property, new constructor ForgingBlazorApplication(string[] args, IServiceProvider), and RunAsync(CancellationToken) to resolve RootCommand, parse args, and invoke commands; plus XML docs.
Service registration extensions
src/NetEvolve.ForgingBlazor/ServiceCollectionExtensions.cs
Added AddForgingBlazorServices (idempotent core registrations with marker), TransferAllServices (copy services from IServiceProvider into IServiceCollection while filtering startup markers), and IsServiceTypeRegistered<T> helpers.
Content registration & marker rename
src/NetEvolve.ForgingBlazor/ApplicationBuilderExtensions.cs, src/NetEvolve.ForgingBlazor/Services/DefaultContentRegistration.cs, src/NetEvolve.ForgingBlazor/Services/ContentRegistration.cs, src/NetEvolve.ForgingBlazor/Services/ForgingBlazorContentRegister.cs
Renamed private marker from DefaultPageMarker to DefaultContentMarker; changed WithDefaultPages<TPageType> to register DefaultContentMarker and DefaultContentRegistration<TPageType> instead of previous types. Added DefaultContentRegistration<TPageType> implementing IContentRegistration and added XML docs to content-related classes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • Areas needing focused review:
    • ServiceCollectionExtensions.TransferAllServices: ensure correct filtering of startup markers and descriptor copying semantics.
    • ForgingBlazorApplication.RunAsync: command resolution, argument parsing, and invocation flow.
    • ApplicationBuilderExtensions change: verify marker rename and registration of DefaultContentRegistration aligns with IContentRegistration consumers.
    • CommandCreate.ExecuteAsync: ensure TransferAllServices usage transfers required registrations and no startup markers are copied.

Poem

🐰 I hopped through services, options in paw,

Markers renamed, registrations in awe,
Commands now ready with RunAsync cheer,
Content types registered — hop, persevere! 🥕


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@samtrion samtrion deleted the docs/xml-summaries-updated branch December 10, 2025 23:11
@codecov
Copy link

codecov bot commented Dec 10, 2025

Codecov Report

❌ Patch coverage is 50.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.02%. Comparing base (6fc2417) to head (aa8d43e).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
...olve.ForgingBlazor/ApplicationBuilderExtensions.cs 66.66% 0 Missing and 1 partial ⚠️
...rgingBlazor/Services/DefaultContentRegistration.cs 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #23      +/-   ##
==========================================
- Coverage   84.52%   84.02%   -0.51%     
==========================================
  Files          15       16       +1     
  Lines         168      169       +1     
  Branches        9        9              
==========================================
  Hits          142      142              
- Misses         23       24       +1     
  Partials        3        3              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state:ready for merge Indicates that a pull request has been reviewed and approved, and is ready to be merged into the mai type:chore Indicates some housework that needs to be done.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants