Skip to content

Conversation

ysmoradi
Copy link
Member

@ysmoradi ysmoradi commented Sep 11, 2025

closes #11371

Summary by CodeRabbit

  • New Features

    • Enabled automatic restart for Hot Reload across multiple solutions.
    • Added ResourcePreloader to improve initial load performance in demo and template apps.
  • Refactor

    • Migrated projects, demos, and templates to .NET 10, including MAUI targets.
    • Switched Blazor ES2019 runtime/script references to framework-hosted paths.
  • Documentation

    • Updated ES2019 guidance and compatibility notes, including separate steps for .NET 9 and .NET 10.
  • Chores

    • Updated CI/CD pipelines, SDK versions, and artifact paths for .NET 10.
    • Adjusted Playwright/test and packaging workflows accordingly.

Copy link

coderabbitai bot commented Sep 11, 2025

Walkthrough

Repository-wide upgrade from .NET 9 to .NET 10 RC1: workflows target net10, projects retarget TFMs, and NuGet package versions move to 10.0. RC lines. ES2019 Blazor runtime assets are now framework-hosted (_framework/*.es2019.js) and packaged per TFM. Boilerplate template updates include data seeding, EF/SQL vector changes, and SDK pinning.

Changes

Cohort / File(s) Summary
CI/CD workflows (.NET 10)
.github/workflows/*, src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/*, .../.azure-devops/workflows/*
Switch build/publish targets and artifact paths from net9 to net10 for MAUI Android/iOS; update Playwright paths to net10; refine NuGet workflows to generate ES2019 Blazor JS for .NET 9 and 10 using npm builds and copy outputs to wwwroot.net9/.net10.
Blazor ES2019 packaging
src/BlazorES2019/Bit.BlazorES2019.csproj, src/BlazorES2019/README.md, .../service-worker.published.js
Project retargets to multi-TFM net10;net9, switches SDK, adds IsPackable, and packs wwwroot.net9/.net10 into framework-specific contentFiles. README and service worker updated for ES2019 assets and build instructions.
App.razor script/loading changes
src/BlazorUI/.../Server/Components/App.razor, src/Websites/*/*/Components/App.razor, src/Templates/Boilerplate/.../Server.Web/Components/App.razor
Add ResourcePreloader; remove preloads for dotnet.js/blazor.boot.json; switch Blazor ES2019 scripts from _content/Bit.BlazorES2019/* to _framework/*.es2019.js; update bit-bswup blazorScript references; minor layout adjustments.
MAUI projects (net10 + assets)
src/BlazorUI/...Client.Maui/*.csproj, src/Butil/Demo/Bit.Butil.Demo.Maui.csproj, src/Templates/Boilerplate/...Client.Maui/*.csproj, .../wwwroot/index.html
Upgrade to net10.* TFMs across Android/iOS/MacCatalyst/Windows/Linux; update MAUI packages to 10.0 RC; add EnableDefaultCssItems=false; add Bit.BlazorES2019 dependency; AOT profiling comments updated; switch WebView script to _framework/blazor.webview.es2019.js.
Web/WASM projects to net10
src/*/*/*.Client*.csproj, src/*/*/*.Web*.csproj, src/Bswup/*/*.Client.csproj, src/Butil/Demo/Bit.Butil.Demo.Web.csproj
Retarget to net10; update WebAssembly and related ASP.NET Core packages to 10.0 RC; remove BlazorCacheBootResources where present; add Bit.BlazorES2019 (version 0.0.0) in several clients.
Server projects to net10
src/*/*/*.Server*.csproj, src/Bswup/*/*.Server.csproj, src/BlazorUI/...Demo.Server.csproj
Retarget to net10; update WebAssembly.Server and related ASP.NET Core packages to 10.0 RC; some servers add PublishReadyToRunComposite=true.
Shared libraries to net10
src/*/*/*.Shared.csproj, src/Butil/Demo/Bit.Butil.Demo.Core.csproj
Retarget to net10; update Microsoft.Extensions.* and System.Text.Json to 10.0 RC; remove System.Text.Json where centralized.
Hot Reload props
src/BlazorUI/Demo/Directory.Build.props, src/Websites/*/src/Directory.Build.props
Add MSBuild property HotReloadAutoRestart=true.
Templates: BlazorEmpty
src/Templates/BlazorEmpty/...ProjectTemplate.csproj, .../.template.config/template.json, .../BlazorEmpty*.csproj, .../Program*.cs
Default to net10; remove Framework choice parameter and related branching; consolidate package refs to 10.0 RC; make MapStaticAssets unconditional; clean preprocessor comments.
Templates: Boilerplate – SDK, packages, CI
.../global.json, .../Directory.Packages.props, .../.github/*, .../.azure-devops/*, .../Directory.Build.props, .../dotnet-tools.json
Pin SDK to 10.0.100-rc.1, disable rollForward; upgrade central packages to 10.0 RC; remove Configuration Binder generator and package; update Playwright paths; adjust CI/CD to net10.
Templates: Boilerplate – projects and assets
...Client.Core/*.csproj, ...Client.Web/*.csproj, ...Client.Web/wwwroot/*, ...Client.Windows/*.csproj, ...Server.*/*.csproj
Retarget to net10; add Bit.BlazorES2019 to client projects; remove BlazorCacheBootResources; update service worker excludes to _framework/*/es2019.js; remove Components.Web ref from API.
Templates: Boilerplate – data/EF changes
...Server.Api/Data/Migrations/*, ...Server.Api/Models/Products/Product.cs, ...Server.Api/Program.Services.cs, ...Server.Web/Program.Middlewares.cs
Update migration IDs, product version, and seeded Markdown; add Users seed; switch Product.Embedding (SqlServer) to SqlVector; remove SqlServer vector search configuration; enable MySql split query; change swagger-utils script path.
NuGet pipelines for ES2019
.github/workflows/nuget.org.yml, .github/workflows/prerelease.nuget.org.yml
Generate ES2019 blazor.*.js for .NET 9 and 10 by mutating tsconfig targets (ES2022/ES2024 -> ES2019) and building via npm; copy outputs to wwwroot.net9/.net10; cleanup after build.
Misc formatting
src/ResxTranslator/Bit.ResxTranslator.csproj, settings.VisualStudio.json
Remove BOM/indent fixes; relocate some VS settings; no functional changes.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor U as User
  participant C as Client (Web/Mobile)
  participant API as Server API
  participant ES as ProductEmbeddingService
  participant DB as Database

  U->>C: Enter search query
  C->>API: GET /products?query=...
  API->>ES: GetProductsBySearchQuery(query)
  alt PostgreSQL
    ES->>ES: Compute embedding (Pgvector.Vector)
    ES->>DB: Query with VectorDistance(embedding)
  else SQL Server
    ES->>ES: Compute embedding (SqlVector<float>)
    ES->>DB: Query with VectorDistance(embedding) using Embedding.HasValue
  end
  DB-->>ES: Matching products
  ES-->>API: Results
  API-->>C: JSON products
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60–90 minutes

Poem

I nibbled the nets to ten, hooray!
ES2019 hops a new runway.
Vectors align, embeddings sing,
Pipelines thump-thump—springy spring.
Scripts now bloom in _framework glade—
A carrot of RC upgrades made. 🥕🐇

Pre-merge checks and finishing touches

❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning Although the framework/package upgrades meet the linked issue, the diff includes several functional and template changes that appear out of scope for a pure "upgrade to .NET 10 RC1" task — for example an API-affecting change to Product.Embedding (float[] → Microsoft.Data.SqlTypes.SqlVector), removal of SQL Server vector-search configuration, migration id and seed data modifications, multi-target packaging and content packing-path restructuring, global.json pinning to a prerelease SDK with rollForward disabled, and broad template/package-reference edits; these items increase review surface and runtime risk beyond the stated issue. Request that the author split unrelated or high-risk changes out of this PR: keep the minimal framework/package and CI/workflow updates in this PR and move API/DB/migration/template/packaging or SDK-pinning changes into separate PRs with explicit rationale, compatibility notes, and tests; if some behavior changes must remain, document them clearly and add regression tests or migration notes.
Docstring Coverage ⚠️ Warning Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Update apps to .NET 10 RC 1 (#11371)" is concise, accurately reflects the primary change (upgrading projects to .NET 10 RC1), and is clear to teammates scanning history. It does not contain noisy details and correctly targets the main intent of the changeset.
Linked Issues Check ✅ Passed Linked issue [#11371] requests updating app projects to .NET 10 RC1; the PR implements that objective by changing TargetFramework values (net9.0 → net10.0), updating many Microsoft package references to 10.0.0-rc.1, and adjusting CI/workflow build targets and artifact paths, so the core coding requirement is satisfied. The PR metadata also states "closes #11371" which aligns with the implemented changes.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

@ysmoradi ysmoradi marked this pull request as ready for review September 13, 2025 20:26
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 18

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (15)
src/ResxTranslator/Bit.ResxTranslator/Bit.ResxTranslator.csproj (3)

7-7: Retarget to net10.0 to match the PR’s objective

This project still targets net9.0 while the PR upgrades apps to .NET 10 RC1. Please retarget or explicitly justify leaving this one on 9.0.

Apply this diff:

-        <TargetFramework>net9.0</TargetFramework>
+        <TargetFramework>net10.0</TargetFramework>

1-28: CI failing: InstallNodejsDependencies target missing — add no-op or centralize it

CI invokes InstallNodejsDependencies but src/ResxTranslator/Bit.ResxTranslator/Bit.ResxTranslator.csproj has no such target (many client projects do — e.g. src/Websites/Careers/.../Bit.Websites.Careers.Client.csproj). Either add a local no-op target to unblock CI or restore/centralize the target in the shared build props/targets and make the CI step conditional.

Quick unblock (add inside src/ResxTranslator/Bit.ResxTranslator/Bit.ResxTranslator.csproj, before the final ):


18-26: Align Microsoft.Extensions. package versions with .NET 10 RC1*

  • Microsoft.Extensions.Hosting → 10.0.0-preview.7.25380.108 (nuget.org)
  • Microsoft.Extensions.Configuration.Binder → 10.0.0-preview.6.25358.103 (nuget.org)
  • Microsoft.Extensions.Http → 10.0.0-rc.1.25451.107 (nuget.org)
  • Microsoft.Extensions.Logging.Console → 10.0.0-preview.6.25358.103 (nuget.org)
  • Microsoft.Extensions.Options.DataAnnotations → 10.0.0-rc.1.25451.107 (nuget.org)
  • Microsoft.Extensions.AI → stable 9.8.0 (latest on NuGet) (nuget.org)
  • Microsoft.Extensions.AI.OpenAI → 9.8.0-preview.1.25412.6 (nuget.org)
  • Microsoft.Extensions.AI.AzureAIInference → 9.7.1-preview.1.25365.4 (nuget.org)
src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml (2)

38-39: Syntax bug: stray leading quote breaks Bash.

The script line starts with a single quote, causing an unterminated string in Bash.

Apply:

-          'cd src && dotnet workload install wasm-tools'
+          cd src && dotnet workload install wasm-tools

145-149: Windows job uses Bash with backslashes → path resolution will fail.

Bash on Windows interprets backslashes as escapes. Use PowerShell or forward slashes.

Use PowerShell:

-  - task: Bash@3
-    displayName: 'Publish'
-    inputs:
-      targetType: 'inline'
-      script: |
-        cd src\Client\Boilerplate.Client.Windows\
-        dotnet publish Boilerplate.Client.Windows.csproj -c Release -o .\publish-result -r win-x86 -p:Version="${{ vars.APP_VERSION}}" --self-contained
-          dotnet tool restore
-          dotnet vpk pack -u Boilerplate.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e Boilerplate.Client.Windows.exe -r win-x86 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'Boilerplate'
+  - task: PowerShell@2
+    displayName: 'Publish'
+    inputs:
+      targetType: 'inline'
+      script: |
+        Set-StrictMode -Version Latest
+        cd src\Client\Boilerplate.Client.Windows\
+        dotnet publish Boilerplate.Client.Windows.csproj -c Release -o .\publish-result -r win-x86 -p:Version="${{ vars.APP_VERSION}}" --self-contained
+        dotnet tool restore
+        dotnet vpk pack -u Boilerplate.Client.Windows -v "${{ vars.APP_VERSION }}" -p .\publish-result -e Boilerplate.Client.Windows.exe -r win-x86 --framework webview2 --icon .\wwwroot\favicon.ico --packTitle 'Boilerplate'

Alternatively keep Bash but switch to forward slashes.

.github/workflows/todo-sample.cd.yml (1)

514-522: Case-sensitive path: use Release, not release, for iOS artifact.

On macOS runners, the directory is bin/Release by default.

-        path: TodoSample/src/Client/TodoSample.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa
+        path: TodoSample/src/Client/TodoSample.Client.Maui/bin/Release/net10.0-ios/ios-arm64/publish/*.ipa
src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj (1)

1-35: CI failure: InstallNodejsDependencies not available to Platform.Server — restore shared targets or add the target

InstallNodejsDependencies is defined inline in many projects (e.g. src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj; src/BlazorUI/Bit.BlazorUI/Bit.BlazorUI.csproj; src/Bswup/Bit.Bswup/Bit.Bswup.csproj) but src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj contains no or ; restore the central .targets import (Directory.Build.targets or equivalent) or add the to Platform.Server to resolve the CI MSB4057.

src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj (1)

112-117: Typo in glob: package JSON won’t be included as None.
It uses “packagejson” (missing dot). That breaks the transform and may leak package.json into publish.

-        <None Include="package*json" />
+        <None Include="package*.json" />
src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj (1)

106-111: Typo in glob: package JSON include.
Fix “packagejson” to “package.json”.

-        <None Include="package*json" />
+        <None Include="package*.json" />
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250912182827_Initial.cs (2)

566-570: Blocker: migration seeds a privileged “test” user (with password hash) by default.

This creates a predictable admin entry in production. Remove user seeding from the initial migration and move dev/demo seeding behind an environment gate (e.g., IHostedService on Development only) or require explicit opt‑in.

Apply this diff to drop the seeded user:

-            migrationBuilder.InsertData(
-                table: "Users",
-                columns: new[] { "Id", "AccessFailedCount", "BirthDate", "ConcurrencyStamp", "ElevatedAccessTokenRequestedOn", "Email", "EmailConfirmed", "EmailTokenRequestedOn", "FullName", "Gender", "HasProfilePicture", "LockoutEnabled", "LockoutEnd", "NormalizedEmail", "NormalizedUserName", "OtpRequestedOn", "PasswordHash", "PhoneNumber", "PhoneNumberConfirmed", "PhoneNumberTokenRequestedOn", "ResetPasswordTokenRequestedOn", "SecurityStamp", "TwoFactorEnabled", "TwoFactorTokenRequestedOn", "UserName" },
-                values: new object[] { new Guid("8ff71671-a1d6-4f97-abb9-d87d7b47d6e7"), 0, 1306790461440000000L, "315e1a26-5b3a-4544-8e91-2760cd28e231", null, "[email protected]", true, 1306790461440000000L, "Boilerplate test account", 0, false, true, null, "[email protected]", "TEST", null, "AQAAAAIAAYagAAAAEP0v3wxkdWtMkHA3Pp5/JfS+42/Qto9G05p2mta6dncSK37hPxEHa3PGE4aqN30Aag==", "+31684207362", true, null, null, "959ff4a9-4b07-4cc1-8141-c5fc033daf83", false, null, "test" });
+            // Intentionally no default user is seeded here. Seed demo users only in Development via a runtime initializer.

639-643: Blocker: mapping the seeded user to “s-admin” role.

Compounds the risk. Remove this link along with the user seed.

Apply this diff:

-            migrationBuilder.InsertData(
-                table: "UserRoles",
-                columns: new[] { "RoleId", "UserId" },
-                values: new object[] { new Guid("8ff71671-a1d6-5f97-abb9-d87d7b47d6e7"), new Guid("8ff71671-a1d6-4f97-abb9-d87d7b47d6e7") });
+            // No default admin-user linkage; create on-demand via a secure bootstrap path.
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250912182827_Initial.Designer.cs (1)

338-360: Designer also embeds the default “test” user. Remove to avoid shipping a prod admin.

After removing from the migration, re-scaffold to drop this HasData block.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Boilerplate.Client.Web.csproj (1)

66-72: Define InstallNodejsDependencies to satisfy CI and make sass available.

Current CI fails with MSB4057. Add a target here or at repo‑root to install Node deps for Client.Core before CSS build.

Apply this diff (project‑local option):

   <Target Name="BeforeBuildTasks" AfterTargets="CoreCompile">
     <CallTarget Targets="BuildCssFiles" />
   </Target>

+  <Target Name="InstallNodejsDependencies" BeforeTargets="BuildCssFiles">
+    <Message Text="Installing Node.js dependencies for Boilerplate.Client.Core..." Importance="high" />
+    <Exec Command="npm ci" WorkingDirectory="..\Boilerplate.Client.Core" />
+  </Target>

Alternatively, add the target once in Directory.Build.targets at repo root (preferred).

src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj (1)

1-9: CI: Add repo-level InstallNodejsDependencies MSBuild target

.github/workflows/bit.ci.yml invokes dotnet build -t:InstallNodejsDependencies (two steps), and some projects (e.g. src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj) lack that target causing MSB4057. Define a global InstallNodejsDependencies target at the repo root (e.g., Directory.Build.targets or a shared .targets file) so all projects satisfy the workflow.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj (1)

12-12: Add no-op InstallNodejsDependencies and guard SASS Exec in MAUI csproj

CI fails with MSB4057 because solution-level -t:InstallNodejsDependencies hits projects that don't declare that target (e.g. src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj) and the BuildCssFiles Exec runs even when node_modules is absent. Add a harmless InstallNodejsDependencies target (or define it centrally) and make the SASS Exec conditional on the sass binary existing.

Location: src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj

@@
-    <Target Name="BeforeBuildTasks" AfterTargets="CoreCompile">
+    <Target Name="BeforeBuildTasks" AfterTargets="CoreCompile">
       <Error Text="Enable long paths in Windows. https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=powershell#enable-long-paths-in-windows-10-version-1607-and-later" Condition=" $([MSBuild]::IsOSPlatform('windows')) AND $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem', 'LongPathsEnabled', null, RegistryView.Registry64)) != '1' " />
       <CallTarget Targets="BuildCssFiles" />
     </Target>
@@
-    <Target Name="BuildCssFiles">
-        <Exec Command="../Boilerplate.Client.Core/node_modules/.bin/sass Components:Components --style compressed --silence-deprecation=import --update --color" StandardOutputImportance="high" StandardErrorImportance="high" LogStandardErrorAsError="true" />
-    </Target>
+    <Target Name="BuildCssFiles">
+        <Exec
+          Condition="Exists('../Boilerplate.Client.Core/node_modules/.bin/sass') OR Exists('../Boilerplate.Client.Core/node_modules/.bin/sass.cmd')"
+          Command="../Boilerplate.Client.Core/node_modules/.bin/sass Components:Components --style compressed --silence-deprecation=import --update --color"
+          StandardOutputImportance="high"
+          StandardErrorImportance="high"
+          LogStandardErrorAsError="true" />
+    </Target>
+
+    <!-- CI sometimes invokes this target; provide a harmless stub in the MAUI app -->
+    <Target Name="InstallNodejsDependencies">
+      <Message Text="InstallNodejsDependencies: no-op in MAUI app (handled in Client.Core or pipeline)." Importance="low" />
+    </Target>
♻️ Duplicate comments (5)
src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj (1)

1-10: CI note: 'InstallNodejsDependencies' target missing (duplicate).

Same root cause as flagged earlier; address centrally.

src/Butil/Demo/Bit.Butil.Demo.Core/Bit.Butil.Demo.Core.csproj (1)

1-6: CI note: 'InstallNodejsDependencies' target missing (duplicate).

Track with the central fix.

src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj (1)

1-1: CI failure: ‘InstallNodejsDependencies’ target missing.

Same MSB4057 issue appears here. See suggested repo-wide search/fix in the Shared project comment.

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj (1)

1-1: CI failure reference: missing ‘InstallNodejsDependencies’.

The same MSB4057 error affects the build. Please reconcile the target invocation vs. its definition (see repo-wide search suggestion).

src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj (1)

1-1: CI failure: ‘InstallNodejsDependencies’ target missing.

Seen here as well; address repo-wide by removing the invocation or re-adding the target.

🧹 Nitpick comments (57)
src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj (1)

14-14: Consolidate WebAssembly RC1 and add DevServer where needed

Verified: most client projects reference Microsoft.AspNetCore.Components.WebAssembly 10.0.0-rc.1.25451.107; several projects already include the DevServer package, but Templates/BlazorEmpty (src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj) does not. One multi-targeted project (src/Besql/Bit.Besql/Bit.Besql.csproj) still has net9.0 conditionals pinned to 9.0.0.

  • Action: if dotnet run parity is desired, add DevServer to the client csproj(s) that lack it (example diff below).
 <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.0-rc.1.25451.107" />
+    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="10.0.0-rc.1.25451.107" />
+    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="10.0.0-rc.1.25451.107" PrivateAssets="all" />
 </ItemGroup>
  • Recommend moving package versions to Directory.Packages.props to prevent drift; treat net9.0 conditionals explicitly.
src/Bswup/FullDemo/Server/Bit.Bswup.Demo.Server.csproj (1)

11-11: RC package OK; consider centralizing version.

Version looks consistent with other projects. Consider moving RC versions to Directory.Packages.props to avoid drift.

src/Bswup/FullDemo/Client/Bit.Bswup.Demo.Client.csproj (1)

1-26: CI failure follow-up for client.

If CI previously relied on InstallNodejsDependencies, switch to explicit npm ci in the Client directory or add the temporary MSBuild shim as noted in the Server comment.

src/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csproj (2)

11-12: RC versions consistent.

Good alignment with the rest of the PR; consider central package management to prevent drift.


1-23: Same CI target issue applies.

Ensure pipeline no longer calls InstallNodejsDependencies for this project, or add the temporary shim at repo root.

src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Bit.Bswup.NewDemo.Client.csproj (2)

16-16: WebAssembly package RC1 set.

Looks good. Optional: add DevServer package for local debugging parity (PrivateAssets=all), if that’s part of your usual dev workflow.

+    <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer"
+                      Version="10.0.0-rc.1.25451.107" PrivateAssets="all" />

1-23: Address CI ‘InstallNodejsDependencies’ call.

Same recommendation: remove the CI invocation or add the root shim target.

src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj (1)

11-11: Server package RC1 aligned.

All good; consider centralizing version management.

src/Butil/Demo/Bit.Butil.Demo.Maui/Bit.Butil.Demo.Maui.csproj (1)

4-6: TFM conditions OK; consider Choose/When for clarity and to avoid accidental overrides.

Current setup works; Linux intentionally overwrites to Android-only. Optional readability refactor:

-    <TargetFrameworks>net10.0-android;net10.0-ios;net10.0-maccatalyst</TargetFrameworks>
-    <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net10.0-windows10.0.19041.0</TargetFrameworks>
-    <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('linux'))">net10.0-android</TargetFrameworks>
+    <TargetFrameworks>net10.0-android;net10.0-ios;net10.0-maccatalyst</TargetFrameworks>
+    <Choose>
+      <When Condition="$([MSBuild]::IsOSPlatform('windows'))">
+        <PropertyGroup>
+          <TargetFrameworks>$(TargetFrameworks);net10.0-windows10.0.19041.0</TargetFrameworks>
+        </PropertyGroup>
+      </When>
+      <When Condition="$([MSBuild]::IsOSPlatform('linux'))">
+        <PropertyGroup>
+          <TargetFrameworks>net10.0-android</TargetFrameworks>
+        </PropertyGroup>
+      </When>
+    </Choose>

Please confirm Android min/target SDK requirements for .NET 10 RC1 (Android 14 vs 15) in your workloads to avoid build-time mismatches.

src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj (1)

7-7: Nit: Cross‑platform path separator

Consider using forward slash for portability: $(MSBuildProjectDirectory)/.runsettings.

Apply this minimal change:

-        <RunSettingsFilePath>$(MSBuildProjectDirectory)\.runsettings</RunSettingsFilePath>
+        <RunSettingsFilePath>$(MSBuildProjectDirectory)/.runsettings</RunSettingsFilePath>
src/BlazorES2019/README.md (5)

3-3: Fix grammar and clarify scope.

Change “followings” → “following platforms” to improve clarity.

-While .NET can run on the followings:
+While .NET can run on the following platforms:

44-56: Same robustness issues for .NET 10; also verify “ES2024” source value.

Use the Node-based retargeting, pin shallow clone, and replace npm install with npm ci. Also confirm the upstream target before replacement.

-git clone https://github.com/dotnet/aspnetcore.git
+git clone --depth 1 https://github.com/dotnet/aspnetcore.git
 cd aspnetcore
 git switch release/10.0
 git submodule update --init --recursive
-sed -i 's/"target": "ES2024"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json
-npm install
-npm run-script build
-cd src/Components/Web.JS
-npm install
-npm run-script build:production
+node -e "const fs=require('fs');for(const f of ['src/Components/Shared.JS/tsconfig.json','src/Components/Web.JS/tsconfig.json']){const j=JSON.parse(fs.readFileSync(f));(j.compilerOptions??={});j.compilerOptions.target='ES2019';fs.writeFileSync(f, JSON.stringify(j,null,2)+'\n');}"
+npm ci
+npm run build
+cd src/Components/Web.JS
+npm ci
+npm run build:production

58-58: Tighten wording, fix spacing/casing.

Minor edits: fix stray space, capitalize NuGet, and clarify “pipelines”.

-We're running the above script in [pre-release](https://github.com/bitfoundation/bitplatform/blob/develop/.github/workflows/prerelease.nuget.org.yml) and [release ](https://github.com/bitfoundation/bitplatform/blob/develop/.github/workflows/nuget.org.yml)nuget packages pipelines so you can use these assets published in [nuget.org](https://www.nuget.org/packages/Bit.BlazorES2019/)
+We run the above scripts in the [pre-release](https://github.com/bitfoundation/bitplatform/blob/develop/.github/workflows/prerelease.nuget.org.yml) and [release](https://github.com/bitfoundation/bitplatform/blob/develop/.github/workflows/nuget.org.yml) NuGet package pipelines, so you can consume these assets on [NuGet.org](https://www.nuget.org/packages/Bit.BlazorES2019/).

36-42: Optional: pin to RC tags/commit for reproducibility and add Windows note.

  • Prefer checking out the RC tag or a known commit for deterministic outputs.
  • Add a PowerShell equivalent (no sed on Windows).

PowerShell example to retarget both files:

$files = @('src/Components/Shared.JS/tsconfig.json','src/Components/Web.JS/tsconfig.json')
foreach ($f in $files) {
  $j = Get-Content $f | ConvertFrom-Json
  if (-not $j.compilerOptions) { $j | Add-Member -NotePropertyName compilerOptions -NotePropertyValue (@{}) }
  $j.compilerOptions.target = 'ES2019'
  ($j | ConvertTo-Json -Depth 10) + "`n" | Set-Content $f -NoNewline
}

Also applies to: 46-56


17-17: Validate “ES2022+” claim and align tables.

release/9.0 (src/Components/Shared.JS/tsconfig.json) — compilerOptions.target = ES2022; release/10.0 (src/Components/Shared.JS/tsconfig.json) — compilerOptions.target = ES2024. (github.com)

Update src/BlazorES2019/README.md compatibility table to show 9.0 → ES2022 and 10.0 → ES2024.

src/ResxTranslator/Bit.ResxTranslator/Bit.ResxTranslator.csproj (1)

14-14: RollForward likely unnecessary after retargeting

If you move to net10.0, consider removing RollForward; keep it only if you intend net9.0 tool to run on 10.x.

Apply this diff after retargeting:

-        <RollForward>Major</RollForward>
+        <!-- RollForward removed; targeting net10.0 directly -->

If you intentionally keep net9.0 for broader tool reach, confirm that RollForward=Major is the desired policy (vs LatestMajor).

src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/ci.yml (1)

41-41: Don’t hardcode TFM/config in Playwright path.

Make the script discover the generated playwright.ps1 to avoid future TFM/config drifts.

Apply:

-      script: 'pwsh src/Tests/bin/Debug/net10.0/playwright.ps1 install --with-deps'
+      script: |
+        pwsh -NoLogo -NoProfile -Command "
+          $p = Get-ChildItem src/Tests -Recurse -Filter playwright.ps1 | Select-Object -First 1 -Expand FullName;
+          & $p install --with-deps
+        "
src/Websites/Sales/src/Directory.Build.props (1)

11-11: Scope HotReloadAutoRestart to Debug builds.

Prevents unexpected behavior outside local dev.

Apply:

-        <HotReloadAutoRestart>true</HotReloadAutoRestart>
+        <HotReloadAutoRestart Condition="'$(Configuration)'=='Debug'">true</HotReloadAutoRestart>
src/BlazorUI/Demo/Directory.Build.props (1)

27-27: Verify HotReloadAutoRestart is actually honored; consider using DOTNET_WATCH_RESTART_ON_RUDE_EDIT instead.

I can’t find an SDK/MSBuild property named HotReloadAutoRestart in the docs. For auto‑restart on rude edits, dotnet‑watch uses the DOTNET_WATCH_RESTART_ON_RUDE_EDIT env var. Please confirm this property is recognized in your build, or switch to setting the env var via launchSettings or your dev scripts. (learn.microsoft.com)

Example (launchSettings.json):

"environmentVariables": {
  "DOTNET_WATCH_RESTART_ON_RUDE_EDIT": "true"
}
src/Templates/Boilerplate/Bit.Boilerplate/global.json (1)

3-4: Exact RC SDK pin + rollForward=disable is brittle; allow patch roll‑forward (and prerelease).

CI/dev boxes must have 10.0.100-rc.1.25451.107 installed exactly or builds will fail. Prefer latestPatch and allowPrerelease to pick patched RCs automatically, or ensure your pipelines install this exact SDK. (learn.microsoft.com)

 {
   "sdk": {
-    "version": "10.0.100-rc.1.25451.107",
-    "rollForward": "disable"
+    "version": "10.0.100-rc.1.25451.107",
+    "allowPrerelease": true,
+    "rollForward": "latestPatch"
   }
 }
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj (1)

7-7: Confirm Aspire 9.4.x compatibility with .NET 10 RC1; also consider removing IsAspireHost.

Docs say Aspire 9.4 supports .NET 10 (Preview 6). Please verify 9.4.2 works with .NET 10 RC1, or plan to move to the first Aspire release that explicitly supports RC1. Also, IsAspireHost is no longer required since Aspire 9.2—safe to remove to reduce noise. (learn.microsoft.com)

   <PropertyGroup>
     <OutputType>Exe</OutputType>
     <TargetFramework>net10.0</TargetFramework>
-    <IsAspireHost>true</IsAspireHost>
     <UserSecretsId>AC87AA5B-4B37-4E52-8468-2D5DF24AF256</UserSecretsId>
   </PropertyGroup>
src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/ci.yml (1)

38-39: Make Playwright install path TFM-agnostic to survive future upgrades.

Use a wildcard to avoid hardcoding net10.0 and reduce churn on the next TFM bump.

-      run: pwsh src/Tests/bin/Debug/net10.0/playwright.ps1 install --with-deps
+      run: pwsh src/Tests/bin/Debug/*/playwright.ps1 install --with-deps
src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj (1)

17-19: These explicit RC package refs may be unnecessary on net10.0.

Microsoft.Extensions.* and System.Text.Json are provided by the net10 shared framework. Keeping explicit versions can cause binding drift unless you need out-of-band fixes or cross-targeting.

-        <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0-rc.1.25451.107" />
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.0-rc.1.25451.107" />
-        <PackageReference Include="System.Text.Json" Version="10.0.0-rc.1.25451.107" />

If you intentionally pin these (e.g., to match other projects), ignore this suggestion.

src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj (1)

8-9: Gate Composite R2R behind a flag to control publish time/size tradeoffs.

Composite R2R increases publish time and size; keep it opt-in for CI and perf testing.

-        <PublishReadyToRunComposite>true</PublishReadyToRunComposite>
+        <PublishReadyToRunComposite Condition="'$(EnableCompositeR2R)'=='true'">true</PublishReadyToRunComposite>

Then enable via MSBuild property only where desired: -p:EnableCompositeR2R=true.

.github/workflows/bit.full.ci.yml (2)

65-66: Avoid hardcoding TFM in Playwright path.

Wildcard keeps this step future-proof when TFMs change.

-        pwsh bin/Debug/net10.0/playwright.ps1 install --with-deps
+        pwsh bin/Debug/*/playwright.ps1 install --with-deps

86-87: Same here—make Playwright path TFM-agnostic.

-        pwsh bin/Debug/net10.0/playwright.ps1 install --with-deps
+        pwsh bin/Debug/*/playwright.ps1 install --with-deps
src/Websites/Platform/src/Directory.Build.props (1)

12-13: HotReloadAutoRestart addition: OK; consider scoping to watch-only.

To avoid any unintended behavior in CI/non-watch builds, scope it to dotnet-watch.

-        <HotReloadAutoRestart>true</HotReloadAutoRestart>
+        <HotReloadAutoRestart Condition="'$(DOTNET_WATCH)'=='1'">true</HotReloadAutoRestart>
src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj (1)

17-19: Potentially redundant explicit RC package refs on net10.

Same note as Sales.Shared: consider relying on the shared framework unless you need specific OOB fixes.

-        <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="10.0.0-rc.1.25451.107" />
-        <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="10.0.0-rc.1.25451.107" />
-        <PackageReference Include="System.Text.Json" Version="10.0.0-rc.1.25451.107" />
src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj (1)

15-16: Centralize Microsoft.AspNetCore.Components.WebAssembly.Server RC version in Directory.Packages.props

ManagePackageVersionsCentrally is enabled in src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props and that template already defines the package version at src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props:117 — remove the inline Version from the BlazorEmpty template (src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj:15) and other projects so they use the centralized PackageVersion (move/add to the appropriate Directory.Packages.props — top-level if shared across templates).

src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/appsettings.json (1)

33-35: Prefer null or omit DSN when disabled.

Sentry .NET treats null DSN as disabled; empty string may log warnings. Recommend reverting to null or removing the key in templates.

-            "Dsn": "",
+            "Dsn": null,
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Boilerplate.Server.Api.csproj (1)

1-114: CI target ‘InstallNodejsDependencies’ still failing repo-wide.

If this project (or its referenced projects) used to import a .targets file defining that target, ensure it’s still imported after the template refactors.

  • Confirm presence of Directory.Build.targets/props that declares the target.
  • If the target was renamed, update pipeline invocations accordingly.
  • As a fallback, replace MSBuild target calls with explicit Node/npm steps in CI.
src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js (1)

69-73: Exclude new ES2019 web runtime from SW precache.

You excluded server/webview ES2019 but not blazor.web.es2019.js, which is now used. Add it to assetsExclude to avoid stale SW-cached runtime.

     // https://github.com/orgs/bitfoundation/discussions/10238#discussioncomment-12493737
+    /_framework\/blazor\.web\.es2019\.js$/,
     /_framework\/blazor\.server\/es2019\.js$/,
     /_framework\/blazor\.webview\/es2019\.js$/,
     /_framework\/blazor\.web\.js$/,
     /_framework\/blazor\.webassembly\.js$/
src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml (1)

263-269: Fix iOS artifact path casing and add EOF newline.

Use bin/Release (actual output folder casing) to avoid path issues, and add a newline at EOF to satisfy linters.

-          path: src/Client/Boilerplate.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa
+          path: src/Client/Boilerplate.Client.Maui/bin/Release/net10.0-ios/ios-arm64/publish/*.ipa
src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor (1)

54-56: Switch to _framework/blazor.web.es2019.js: good; sync SW excludes.

Since the runtime script changed, ensure service worker excludes blazor.web.es2019.js (see service-worker.published.js suggestion) to avoid stale caching.

.github/workflows/blazorui.demo.cd.yml (1)

239-239: Fix iOS artifact path casing and add EOF newline.

Use bin/Release (consistent with .NET output) and add a newline at EOF (yamllint error).

-        path: src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/release/net10.0-ios/ios-arm64/publish/*.ipa
+        path: src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/bin/Release/net10.0-ios/ios-arm64/publish/*.ipa
.github/workflows/nuget.org.yml (3)

46-61: Net9 ES2019 build step: make cloning/build leaner and deterministic

Use shallow clone and npm ci; ensure dest dir exists; guard sed with a check.

-        git clone https://github.com/dotnet/aspnetcore.git
-        cd aspnetcore
-        git switch release/9.0
-        git submodule update --init --recursive
-        sed -i 's/"target": "ES2022"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json
-        npm install
+        git clone --depth 1 --filter=blob:none --branch release/9.0 https://github.com/dotnet/aspnetcore.git
+        cd aspnetcore
+        git submodule update --init --recursive --depth 1
+        grep -q '"target": "ES[0-9]\{4\}"' src/Components/Shared.JS/tsconfig.json || { echo "target field not found"; exit 1; }
+        sed -i -E 's/"target": "ES[0-9]{4}"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json
+        npm ci
         npm run-script build
         cd src/Components/Web.JS
-        npm install
+        npm ci
         npm run-script build:production
         cd ../../../../
-        cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/Bit.BlazorES2019/wwwroot.net9/
+        mkdir -p src/BlazorES2019/Bit.BlazorES2019/wwwroot.net9/
+        cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/Bit.BlazorES2019/wwwroot.net9/
         rm -rf aspnetcore

62-76: Net10 ES2019 build step: same hardening as net9

Shallow clone, npm ci, robust sed, ensure destination exists.

-        git clone https://github.com/dotnet/aspnetcore.git
-        cd aspnetcore
-        git switch release/10.0
-        git submodule update --init --recursive
-        sed -i 's/"target": "ES2024"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json
-        npm install
+        git clone --depth 1 --filter=blob:none --branch release/10.0 https://github.com/dotnet/aspnetcore.git
+        cd aspnetcore
+        git submodule update --init --recursive --depth 1
+        sed -i -E 's/"target": "ES[0-9]{4}"/"target": "ES2019"/' src/Components/Shared.JS/tsconfig.json
+        npm ci
         npm run-script build
         cd src/Components/Web.JS
-        npm install
+        npm ci
         npm run-script build:production
         cd ../../../../
-        cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/Bit.BlazorES2019/wwwroot.net10/
+        mkdir -p src/BlazorES2019/Bit.BlazorES2019/wwwroot.net10/
+        cp aspnetcore/src/Components/Web.JS/dist/Release/blazor.*.js src/BlazorES2019/Bit.BlazorES2019/wwwroot.net10/

156-156: Add newline at EOF to satisfy linters

YAMLlint flags missing newline.

-      run: dotnet nuget push **/*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_ORG_API_KEY}} --skip-duplicate
+      run: dotnet nuget push **/*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{secrets.NUGET_ORG_API_KEY}} --skip-duplicate
+
src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor (1)

12-16: Add cache-busting or integrity for CSS assets.

Consider versioned filenames or SRI to harden caching and integrity (Link component doesn’t support asp-append-version). If you already fingerprint at publish, ignore.

src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj (1)

29-38: README packaging: OK; consider linking once.

Duplicated adds are fine; alternatively, emit once to a TFM-agnostic path or include a single root README alongside assets.

src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj (1)

16-19: Avoid pinning pre-release BCL packages unless required.

On net10.0, System.Text.Json and Microsoft.Extensions.* ship in the framework. If you don’t need specific RC1 fixes, prefer removing these PackageReferences to avoid assembly binding skew.

.github/workflows/prerelease.nuget.org.yml (2)

37-52: .NET 9 ES2019 generation: pin inputs and cache npm.

  • Pin aspnetcore to a commit/tag for reproducibility; relying on the moving release/9.0 branch is brittle.
  • Add actions/cache for npm to speed builds.

Example tweaks:

- git clone https://github.com/dotnet/aspnetcore.git
- cd aspnetcore
- git switch release/9.0
+ git clone --filter=blob:none https://github.com/dotnet/aspnetcore.git
+ cd aspnetcore
+ git switch --detach <KNOWN_GOOD_COMMIT_FOR_9.0>
  git submodule update --init --recursive

53-67: .NET 10 ES2019 generation: same pinning + verify tsconfig path.

  • Pin to a specific 10.0 RC1 commit/tag.
  • Confirm Shared.JS tsconfig path remains src/Components/Shared.JS/tsconfig.json in 10.0 RC1 (structure changed in the past).

Also consider Node 22 LTS for broader tooling compatibility:

- uses: actions/setup-node@v4
- with:
-   node-version: 23
+ uses: actions/setup-node@v4
+ with:
+   node-version: 22
src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj (2)

12-12: EnableDefaultCssItems=false: confirm no missing default styles.

If you rely on MAUI default CSS items anywhere, this may drop them. Otherwise fine.


105-105: Bit.BlazorES2019 version 0.0.0: placeholder risk.

If this project is built outside the mono-repo (without a local nupkg), restore will fail. Consider using a prerelease version and update via Directory.Packages.props or a local source mapping.

src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj (3)

15-18: Disabling static web asset fingerprinting: verify cache strategy.
Turning off all fingerprinting can cause long‑lived caches to serve stale assets unless your SW/versioning strategy guarantees busting. Confirm Bswup config accounts for this, or consider leaving hashing on.


19-19: Why is WebAssembly SIMD disabled?
SIMD is broadly supported and improves runtime perf. If no compatibility constraint, enable it.

-        <WasmEnableSIMD>false</WasmEnableSIMD>
+        <WasmEnableSIMD>true</WasmEnableSIMD>

89-91: Prefer deterministic Node installs in CI.
Use npm ci when package-lock.json exists; it’s faster and reproducible.

-        <Exec Command="npm install" StandardOutputImportance="high" StandardErrorImportance="high" />
+        <Exec Condition="Exists('package-lock.json')" Command="npm ci --no-audit --no-fund" StandardOutputImportance="high" StandardErrorImportance="high" />
+        <Exec Condition="!Exists('package-lock.json')" Command="npm install --no-audit --no-fund" StandardOutputImportance="high" StandardErrorImportance="high" />
src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj (3)

15-18: Asset fingerprinting disabled: confirm SW/versioning.
Same caching caveat as Platform.Client—verify your invalidation mechanism.


18-19: Consider enabling WebAssembly SIMD.

-        <WasmEnableSIMD>false</WasmEnableSIMD>
+        <WasmEnableSIMD>true</WasmEnableSIMD>

89-91: Use npm ci when possible.

-        <Exec Command="npm install" StandardOutputImportance="high" StandardErrorImportance="high" />
+        <Exec Condition="Exists('package-lock.json')" Command="npm ci --no-audit --no-fund" StandardOutputImportance="high" StandardErrorImportance="high" />
+        <Exec Condition="!Exists('package-lock.json')" Command="npm install --no-audit --no-fund" StandardOutputImportance="high" StandardErrorImportance="high" />
src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj (1)

66-72: InstallNodejsDependencies: repo scan complete — centralize or guard CI invocation to avoid MSB4057 noise

Scan results: InstallNodejsDependencies is defined in multiple client csproj (examples: src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj, src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj, src/Templates/Boilerplate/.../Boilerplate.Client.Core.csproj, src/Bswup/Bit.Bswup/Bit.Bswup.csproj, src/Butil/Bit.Butil/Bit.Butil.csproj, several BlazorUI projects). The CI invokes the target solution‑wide (.github/workflows/bit.ci.yml uses dotnet build -t:InstallNodejsDependencies) and currently sets continue-on-error; MSB4057 is expected for projects that don’t declare the target.

Recommended actions (choose one):

  • Add a central InstallNodejsDependencies target (or a no-op stub) in src/Directory.Build.targets so every project exposes it (preferred).
  • Restrict the CI dotnet build -t invocation to only the projects/solutions that actually need Node.
  • Make the CallTarget conditional (only call when package.json exists) in projects that currently call it.
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/AppDbContextModelSnapshot.cs (1)

130-131: Fix prompt typos and a stray quote in seeded Markdown.

  • "You are a assistant" → "You are an assistant".
  • Remove the extra quote after [[[ADS_TROUBLE_RULES_BEGIN]]].

Apply this diff:

-                            Markdown = "You are a assistant for the Boilerplate app. Below, you will find a markdown document ...
+                            Markdown = "You are an assistant for the Boilerplate app. Below, you will find a markdown document ...
...
-### Handling advertisement trouble requests:
-**[[[ADS_TROUBLE_RULES_BEGIN]]]\" 
+### Handling advertisement trouble requests:
+**[[[ADS_TROUBLE_RULES_BEGIN]]] 
src/Websites/Careers/src/Directory.Build.props (1)

11-11: LGTM: enable hot-reload auto-restart.

Optional: gate to dev-only to avoid surprising behavior in CI.

Apply this diff:

-        <HotReloadAutoRestart>true</HotReloadAutoRestart>
+        <HotReloadAutoRestart Condition="'$(CI)' == ''">true</HotReloadAutoRestart>
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250912182827_Initial.cs (1)

564-565: Fix prompt typos and stray quote in seed.

Same issues as the snapshot; correct here to keep model, designer, and snapshot in sync.

Apply this diff:

-                values: new object[] { new Guid("a8c94d94-0004-4dd0-921c-255e0a581424"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, "You are a assistant for the Boilerplate app. Below, you will find a markdown document ...
+                values: new object[] { new Guid("a8c94d94-0004-4dd0-921c-255e0a581424"), new byte[] { 0, 0, 0, 0, 0, 0, 0, 0 }, "You are an assistant for the Boilerplate app. Below, you will find a markdown document ...
...
-**[[[ADS_TROUBLE_RULES_BEGIN]]]\" 
+**[[[ADS_TROUBLE_RULES_BEGIN]]] 
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250912182827_Initial.Designer.cs (1)

133-134: Fix prompt typos and stray quote in designer seed.

Keep designer, migration, and snapshot consistent.

Apply this diff:

-                            Markdown = "You are a assistant for the Boilerplate app. ...
+                            Markdown = "You are an assistant for the Boilerplate app. ...
...
-**[[[ADS_TROUBLE_RULES_BEGIN]]]\" 
+**[[[ADS_TROUBLE_RULES_BEGIN]]] 
src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/ProductEmbeddingService.cs (1)

57-57: Avoid double-computing VectorDistance; compute once and reuse for filter/order.

This reduces SQL work and can help the optimizer.

-            .Where(p => p.Embedding.HasValue && EF.Functions.VectorDistance("cosine", p.Embedding.Value, value) < SIMILARITY_THRESHOLD).OrderBy(p => EF.Functions.VectorDistance("cosine", p.Embedding!.Value, value!));
+            .Where(p => p.Embedding.HasValue)
+            .Select(p => new { p, d = EF.Functions.VectorDistance("cosine", p.Embedding.Value, value) })
+            .Where(x => x.d < SIMILARITY_THRESHOLD)
+            .OrderBy(x => x.d)
+            .Select(x => x.p);

Ensure a vector index exists on the Embedding column (HNSW/IVF or provider-equivalent) to avoid table scans under RC1.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Knowledge base: Disabled due to Reviews -> Disable Knowledge Base setting

📥 Commits

Reviewing files that changed from the base of the PR and between 3a35b53 and 4df6a39.

📒 Files selected for processing (81)
  • .github/workflows/admin-sample.cd.yml (2 hunks)
  • .github/workflows/bit.full.ci.yml (3 hunks)
  • .github/workflows/blazorui.demo.cd.yml (2 hunks)
  • .github/workflows/nuget.org.yml (2 hunks)
  • .github/workflows/prerelease.nuget.org.yml (1 hunks)
  • .github/workflows/todo-sample.cd.yml (2 hunks)
  • src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj (2 hunks)
  • src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj (2 hunks)
  • src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj (1 hunks)
  • src/BlazorES2019/README.md (3 hunks)
  • src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj (2 hunks)
  • src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Components/App.razor (2 hunks)
  • src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj (2 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Core/Bit.BlazorUI.Demo.Client.Core.csproj (2 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj (4 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/wwwroot/index.html (1 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj (2 hunks)
  • src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj (3 hunks)
  • src/BlazorUI/Demo/Directory.Build.props (1 hunks)
  • src/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csproj (1 hunks)
  • src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Bit.Bswup.NewDemo.Client.csproj (1 hunks)
  • src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj (1 hunks)
  • src/Bswup/FullDemo/Client/Bit.Bswup.Demo.Client.csproj (1 hunks)
  • src/Bswup/FullDemo/Server/Bit.Bswup.Demo.Server.csproj (1 hunks)
  • src/Butil/Demo/Bit.Butil.Demo.Core/Bit.Butil.Demo.Core.csproj (1 hunks)
  • src/Butil/Demo/Bit.Butil.Demo.Maui/Bit.Butil.Demo.Maui.csproj (2 hunks)
  • src/Butil/Demo/Bit.Butil.Demo.Web/Bit.Butil.Demo.Web.csproj (1 hunks)
  • src/ResxTranslator/Bit.ResxTranslator/Bit.ResxTranslator.csproj (2 hunks)
  • src/Templates/BlazorEmpty/Bit.BlazorEmpty.ProjectTemplate.csproj (1 hunks)
  • src/Templates/BlazorEmpty/Bit.BlazorEmpty/.template.config/template.json (0 hunks)
  • src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty.Client/BlazorEmpty.Client.csproj (1 hunks)
  • src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/BlazorEmpty.csproj (2 hunks)
  • src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.Main.cs (1 hunks)
  • src/Templates/BlazorEmpty/Bit.BlazorEmpty/BlazorEmpty/Program.cs (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate.ProjectTemplate.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/cd.yml (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/.azure-devops/workflows/ci.yml (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml (2 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/ci.yml (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/global.json (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/settings.VisualStudio.json (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Core/Boilerplate.Client.Core.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj (3 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/wwwroot/index.html (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Boilerplate.Client.Web.csproj (2 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/index.html (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/wwwroot/service-worker.published.js (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj (2 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props (0 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Packages.props (6 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/.config/dotnet-tools.json (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Boilerplate.Server.Api.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250912182827_Initial.Designer.cs (2 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/20250912182827_Initial.cs (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Data/Migrations/AppDbContextModelSnapshot.cs (2 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Models/Products/Product.cs (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Program.Services.cs (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/ProductEmbeddingService.cs (4 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Boilerplate.Server.Shared.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Components/App.razor (2 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Program.Middlewares.cs (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Boilerplate.Shared.csproj (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/appsettings.json (1 hunks)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Tests/Boilerplate.Tests.csproj (1 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Client/Bit.Websites.Careers.Client.csproj (4 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj (2 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Server/Components/App.razor (2 hunks)
  • src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj (2 hunks)
  • src/Websites/Careers/src/Directory.Build.props (1 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Client/Bit.Websites.Platform.Client.csproj (4 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj (2 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Server/Components/App.razor (2 hunks)
  • src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj (2 hunks)
  • src/Websites/Platform/src/Directory.Build.props (1 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Client/Bit.Websites.Sales.Client.csproj (4 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj (2 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Server/Components/App.razor (2 hunks)
  • src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj (2 hunks)
  • src/Websites/Sales/src/Directory.Build.props (1 hunks)
💤 Files with no reviewable changes (2)
  • src/Templates/Boilerplate/Bit.Boilerplate/src/Directory.Build.props
  • src/Templates/BlazorEmpty/Bit.BlazorEmpty/.template.config/template.json
🧰 Additional context used
🪛 GitHub Actions: bit platform CI
src/Templates/Boilerplate/Bit.Boilerplate/src/Shared/Boilerplate.Shared.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Windows/Boilerplate.Client.Windows.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Websites/Sales/src/Bit.Websites.Sales.Shared/Bit.Websites.Sales.Shared.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Besql/Demo/Bit.Besql.Demo.Client/Bit.Besql.Demo.Client.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/ResxTranslator/Bit.ResxTranslator/Bit.ResxTranslator.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Butil/Demo/Bit.Butil.Demo.Core/Bit.Butil.Demo.Core.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Windows/Bit.BlazorUI.Demo.Client.Windows.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Bswup/FullDemo/Server/Bit.Bswup.Demo.Server.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Websites/Careers/src/Bit.Websites.Careers.Shared/Bit.Websites.Careers.Shared.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Butil/Demo/Bit.Butil.Demo.Maui/Bit.Butil.Demo.Maui.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project. [TargetFramework=net10.0]

src/Bswup/FullDemo/Client/Bit.Bswup.Demo.Client.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Butil/Demo/Bit.Butil.Demo.Web/Bit.Butil.Demo.Web.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.AppHost/Boilerplate.Server.AppHost.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Shared/Boilerplate.Server.Shared.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/BlazorES2019/Bit.BlazorES2019/Bit.BlazorES2019.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project. [TargetFramework=net10.0]

src/Besql/Demo/Bit.Besql.Demo/Bit.Besql.Demo.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Websites/Platform/src/Bit.Websites.Platform.Shared/Bit.Websites.Platform.Shared.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate.ProjectTemplate.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Web/Bit.BlazorUI.Demo.Client.Web.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Web/Boilerplate.Server.Web.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Websites/Careers/src/Bit.Websites.Careers.Server/Bit.Websites.Careers.Server.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Websites/Platform/src/Bit.Websites.Platform.Server/Bit.Websites.Platform.Server.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Web/Boilerplate.Client.Web.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Bit.Bswup.NewDemo.Client.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/BlazorUI/Demo/Bit.BlazorUI.Demo.Server/Bit.BlazorUI.Demo.Server.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Boilerplate.Server.Api.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/BlazorUI/Demo/Bit.BlazorUI.Demo.Shared/Bit.BlazorUI.Demo.Shared.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Websites/Sales/src/Bit.Websites.Sales.Server/Bit.Websites.Sales.Server.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project.

src/Templates/Boilerplate/Bit.Boilerplate/src/Client/Boilerplate.Client.Maui/Boilerplate.Client.Maui.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project. [TargetFramework=net10.0]

src/BlazorUI/Demo/Client/Bit.BlazorUI.Demo.Client.Maui/Bit.BlazorUI.Demo.Client.Maui.csproj

[error] 1-1: MSB4057: The target 'InstallNodejsDependencies' does not exist in the project. [TargetFramework=net10.0]

🪛 YAMLlint (1.37.1)
.github/workflows/blazorui.demo.cd.yml

[error] 239-239: no new line character at the end of file

(new-line-at-end-of-file)

src/Templates/Boilerplate/Bit.Boilerplate/.github/workflows/cd-template.yml

[error] 269-269: no new line character at the end of file

(new-line-at-end-of-file)

.github/workflows/nuget.org.yml

[error] 156-156: no new line character at the end of file

(new-line-at-end-of-file)

@ysmoradi ysmoradi closed this by deleting the head repository Sep 14, 2025
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.

App project has to be updated to .NET 10 RC 1
1 participant