Skip to content

v4.0.0 - #187

Merged
chullybun merged 9 commits into
mainfrom
v4.0.0
Sep 21, 2026
Merged

v4.0.0#187
chullybun merged 9 commits into
mainfrom
v4.0.0

Conversation

@chullybun

@chullybun chullybun commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This is the general-availability release of v4.0.0 — CoreEx's re-imagine/re-invention as an AI-augmented foundation for enterprise back-end services — superseding v4.0.0-preview-1 through v4.0.0-preview-5.

  • No upgrade path from v3.x. This is a major version with significant breaking changes; core capabilities and patterns remain largely consistent, but some v3 capabilities were dropped as legacy/unused/superseded, with the intention to re-add further capabilities in future releases as required.
  • Headline addition: CoreEx.Cosmos. Typed Azure Cosmos DB data access (CosmosDbContainer<TModel>/CosmosDbMappedContainer<TValue,TModel,TMapper>), a TransactionalBatch-based transactional outbox, and a Change Feed Processor-based outbox relay, demonstrated by the new Contoso.Customers sample. CoreEx.Cosmos publishes to NuGet alongside every other package in this release, but is flagged as preview-quality in its README/AGENTS.md — its API surface may still change in a future release without following strict semver until it stabilizes.
  • See CHANGELOG.md for the curated NuGet-facing summary of what's in v4.0.0.

Preview history

v4.0.0-preview-1 through preview-5 (2026-06-20 → 2026-08-22)
Preview Date Highlights
preview-1 2026-06-20 The reimagine/rewrite itself — the foundational v4 architecture (#147).
preview-2 2026-07-10 CoreEx AI workflow assets — Skills, Instructions, and CoreEx.Template scaffolding (#170).
preview-3 2026-08-04 QueryArgsConfig refactor, CoreEx.Data.GraphQL (GraphQL-lite) query bridge, ref-data querying modernization, JSON database columns (#171-#178).
preview-4 2026-08-20 Database-layer review (outbox, EF Core concurrency/tenancy, error mapping), a full code-review hardening sweep across every package, Aspire AppHost template (#179-#183).
preview-5 2026-08-22 Fixing/massaging release — conditional If-Match support, expanded EventAction lifecycle values, and a documentation/reality-gap correction pass (#184).

What's new since preview-5

  • Add JsonFilter recursive-descent paths and a streaming exclude engine; default EventFormatter to strip etag #185 — JsonFilter recursive-descent paths and a streaming exclude engine; EventFormatter now strips etag by default.
  • Introduce CoreEx.Cosmos: typed Cosmos DB data access, outbox, and Contoso.Customers sample #186 — Introduces CoreEx.Cosmos: typed Cosmos DB data access, transactional outbox, Change Feed Processor relay, and the Contoso.Customers sample domain (API host only — no Relay/Subscribe host yet).
  • This PR — closes out the release:
    • Version.props bumped to stable 4.0.0 (from preview versioning).
    • Removed the prerelease OpenTelemetry.Instrumentation.Process dependency that blocked a stable NuGet pack (NU5104) — no stable version exists, and its metrics are redundant with platform-native process monitoring.
    • Renamed the coreex-solution-scaffolder skill to coreex-scaffold for naming consistency across the coreex-* skill suite, and added the missing .claude/commands/*.md wrappers for full Claude Code / Copilot parity.
    • Synced AGENTS.md, .github/copilot-instructions.md, samples/README.md, samples/docs/*.md, and .github/agents/README.md with the CoreEx.Cosmos/Contoso.Customers additions from Introduce CoreEx.Cosmos: typed Cosmos DB data access, outbox, and Contoso.Customers sample #186 (missing package-table row, missing cosmos-emulator infra entry, stale per-package-guide count, undocumented Cosmos repository pattern, missing test-taxonomy row, etc.).
    • Fixed a stale root README.md table-of-contents (dead Version 4 (preview) link, Status entry pointed at the wrong anchor).
    • Added src\CoreEx.Cosmos to nuget-publish.ps1's ProjectsToPublish list (previously missing, which would have silently skipped it on release), and added a "preview, API surface may change" disclaimer to every doc that references the package (root README.md/AGENTS.md, CoreEx.Cosmos's own README.md/AGENTS.md, and the samples/docs/*.md cross-references) now that it ships alongside the rest of v4.0.0 instead of being held back.

Test plan

  • dotnet build CoreEx.sln -c Release — full solution build, 0 warnings/errors (TreatWarningsAsErrors is on).
  • dotnet test CoreEx.sln -c Release — full framework + sample test suite.
  • tools/validate-template-pack.ps1 — confirms CoreEx.Template scaffolds and builds cleanly across all parameter combinations after the skill rename and packaging changes.
  • Confirm generated NuGet package filenames reflect the stable 4.0.0 version (no -preview suffix), and that CoreEx.Cosmos is included in the nuget-publish.ps1 push alongside every other package.

Co-authored-by: Copilot App 223556219+Copilot@users.noreply.github.com

chullybun and others added 2 commits September 20, 2026 11:52
…/Copilot command parity, bump to stable v4.0.0, and sync docs for CoreEx.Cosmos (PR #186)

- Rename coreex-solution-scaffolder skill to coreex-scaffold for naming consistency
- Add missing .claude/commands/*.md wrappers for full Claude/Copilot skill parity
- Bump Version.props to stable 4.0.0
- Remove prerelease OpenTelemetry.Instrumentation.Process dependency blocking stable packaging
- Sync AGENTS.md, copilot-instructions.md, samples docs, and agents/README.md with CoreEx.Cosmos and Contoso.Customers introduced in PR #186

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
CHANGELOG.md: add chullybun to key-contributor call-out (manual tweak).
README.md: remove dead 'Version 4 (preview)' TOC link (no matching heading) and fix 'Status' to point at the actual 'Build and Package Status' heading.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
Copilot AI lite review requested due to automatic review settings September 20, 2026 19:07
@chullybun chullybun added this to the v4.0.0 milestone Sep 20, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Cosmos packaging/template inclusion and renamed-path validation issues remain unresolved.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 Medium severity · 5 Low severity

Open (7)
What changed in this PR

Finalizes the CoreEx v4.0.0 GA release with stable packaging, AI workflow updates, Claude command wrappers, and Cosmos/Customers documentation.

Changes:

  • Sets stable versioning and removes process instrumentation.
  • Renames the scaffolding skill and adds Claude command parity.
  • Documents Cosmos DB samples, tooling, architecture, and testing.
File Summary
Version.props Sets stable version 4.0.0.
tools/​validate-template-pack.ps1 Validates renamed skills and Claude wrappers.
src/​CoreEx/​CoreExExtensions.OpenTelemetry.cs Updates telemetry and regex configuration.
src/​CoreEx/​CoreEx.csproj Removes process instrumentation dependency.
src/​CoreEx.Template/​CoreEx.Template.csproj Packages AI workflow assets and wrappers.
src/​CoreEx.Template/​content/​CoreEx.Core/​_Directory.Packages.props Updates template dependencies.
samples/​README.md Documents Customers and Cosmos samples.
samples/​docs/​tooling.md Documents Cosmos CodeGen tooling.
samples/​docs/​testing.md Documents Customers testing boundaries.
samples/​docs/​layers.md Adds Cosmos architecture guidance.
samples/​docs/​infrastructure-layer.md Adds Cosmos repository guidance.
README.md Updates status, package table, and skill links.
gen/​CoreEx.Generator/​Utility/​HandlebarsHelpers.cs Adjusts Handlebars nullable handling.
gen/​CoreEx.Generator/​Utility/​HandlebarsCodeGenerator.cs Updates Handlebars generic typing.
Directory.Packages.props Refreshes repository dependencies.
consumer-instructions/​README.md Updates scaffolding references.
CHANGELOG.md Updates v4 release changelog information.
AGENTS.md Adds Cosmos and renamed-skill guidance.
.github/​skills/​coreex-subscriber-e2e/​SKILL.md Updates scaffolding references.
.github/​skills/​coreex-scaffold/​SKILL.md Renames the scaffolding skill.
.github/​skills/​coreex-scaffold/​references/​workflow.md Updates asset paths.
.github/​skills/​coreex-scaffold/​README.md Updates usage paths.
.github/​skills/​coreex-scaffold/​assets/​servicebus-config.template.json Adds Service Bus fallback configuration.
.github/​skills/​coreex-scaffold/​assets/​README.md Updates asset documentation.
.github/​skills/​coreex-scaffold/​assets/​docker-compose.local.yml Updates skill references.
.github/​skills/​coreex-graphql/​SKILL.md Updates scaffolding references.
.github/​skills/​coreex-docs-sync/​README.md Updates skill inventory references.
.github/​skills/​coreex-api/​SKILL.md Updates scaffolding references.
.github/​SKILL_AUTHORING.md Documents Claude wrapper requirements.
.github/​prompts/​coreex-scaffold.prompt.md Points to the renamed skill.
.github/​instructions/​coreex-host-setup.instructions.md Updates scaffolding guidance.
.github/​coreex-ai-workflows.md Documents Claude/Copilot parity.
.github/​copilot-instructions.md Adds Cosmos architecture guidance.
.github/​agents/​README.md Updates package and skill inventories.
.github/​agents/​coreex-expert.agent.md Updates scaffolding routing.
.claude/​commands/​coreex-validator.md Adds validator command wrapper.
.claude/​commands/​coreex-test-subscribe.md Adds subscriber-test wrapper.
.claude/​commands/​coreex-test-relay.md Adds relay-test wrapper.
.claude/​commands/​coreex-test-api.md Adds API-test wrapper.
.claude/​commands/​coreex-subscriber.md Adds subscriber wrapper.
.claude/​commands/​coreex-subscriber-e2e.md Adds subscriber E2E wrapper.
.claude/​commands/​coreex-scaffold.md Updates the renamed skill target.
.claude/​commands/​coreex-repository.md Adds repository wrapper.
.claude/​commands/​coreex-refdata.md Adds reference-data wrapper.
.claude/​commands/​coreex-policy.md Adds policy wrapper.
.claude/​commands/​coreex-graphql.md Adds GraphQL wrapper.
.claude/​commands/​coreex-db-migration.md Adds migration wrapper.
.claude/​commands/​coreex-contract.md Adds contract wrapper.
.claude/​commands/​coreex-app-service.md Adds application-service wrapper.
.claude/​commands/​coreex-api.md Adds API wrapper.
.claude/​commands/​coreex-api-e2e.md Adds API E2E wrapper.
.claude/​commands/​coreex-aggregate.md Adds aggregate wrapper.
.claude/​commands/​coreex-adapter.md Adds adapter wrapper.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/CoreEx.Template/CoreEx.Template.csproj
Comment thread tools/validate-template-pack.ps1
Comment thread .claude/commands/coreex-scaffold.md
Comment thread .github/agents/README.md Outdated
Comment thread samples/docs/infrastructure-layer.md Outdated
Comment thread samples/docs/infrastructure-layer.md
Comment thread samples/docs/tooling.md Outdated
- Add src\CoreEx.Cosmos to nuget-publish.ps1's ProjectsToPublish list
- Replace 'not packaged' language with a preview/subject-to-change
  disclaimer across README.md, AGENTS.md, CoreEx.Cosmos's own
  README.md/AGENTS.md, and samples docs, since it now ships alongside
  the rest of v4.0.0 instead of being held back

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
Copilot AI review requested due to automatic review settings September 20, 2026 19:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Unresolved moderate and critical findings remain, including the process-wide regex configuration and template/documentation inconsistencies.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity · 2 Medium severity · 5 Low severity

Open (8)
Previously missed (3)

In code that hasn't changed since last review

Medium severity Document nullable data suppression in Handlebars call

gen/​CoreEx.Generator/​Utility/​HandlebarsCodeGenerator.cs:64

Generate deliberately accepts and defaults its secondary data value to null, but the new data! suppresses that nullability at the Handlebars call site without documenting why the call is safe. Add a short explanation of Handlebars.Net's nullable contract (or use an API shape that preserves it) so the suppression does not hide a future nullability error.

Medium severity Justify null-forgiving Root casts in helper registration

gen/​CoreEx.Generator/​Utility/​HandlebarsHelpers.cs:31

The new null-forgiving cast suppresses a possible missing Root entry without documenting the invariant. This repository requires justification for !; explain that Handlebars always supplies the root CodeGenContext here (or validate/cast it explicitly), and apply the same justification to the other two helper registrations.

Low severity Update catalog to report 15 L1 skills

.github/​agents/​README.md:123

This still reports 14 L1 skills, but the catalog now contains 15 (coreex-adapter through coreex-validator), and .github/coreex-ai-workflows.md already describes them as fifteen. Please update the count so the generated workflow documentation is consistent.

Comment thread src/CoreEx/CoreExExtensions.OpenTelemetry.cs Outdated
- Add missing CoreEx.Cosmos AGENTS.md to CoreEx.Template's AI doc bundle
  and bump the per-package guide count from 17 to 18 throughout
  .github/agents/README.md
- Fix validate-template-pack.ps1's FilesAbsent checks to assert against
  the actual old skill path (.github/skills/coreex-solution-scaffolder)
  instead of a path that was never used
- Sync .claude/commands/coreex-scaffold.md's frontmatter description
  with the renamed coreex-scaffold skill's actual description
- Correct samples/docs/infrastructure-layer.md and tooling.md: Cosmos
  CodeGen does generate persistence models (CosmosPersistenceModelGenerator)
  - only DbContext/database-migration generation is absent
- Fix a non-compiling CustomerRepository doc snippet (missing _cosmos
  field declaration)
- Remove CoreExExtensions.WithCoreExTelemetry's automatic process-wide
  AppContext.SetData mutation of the regex NonBacktracking automata cap
  (a library should not silently raise a global resource limit for
  every regex in a consuming app); documented the net8.0 opt-in via
  RuntimeHostConfigurationOption for hosts that need it

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
Copilot AI review requested due to automatic review settings September 20, 2026 22:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Unresolved moderate findings affect scaffold runtime configuration, sample usability, and template validation.

Review effort: Lite
Findings: None

Resolved since last review (8)
Previously missed (2)

In code that hasn't changed since last review

Low severity Generated skill inventory has incorrect scope and count

.github/​agents/​README.md:123

This generated-output inventory has two mismatches: acquire-codebase-knowledge and aspire are framework-repo-only and are not copied by dotnet new coreex-ai (the template copies the CoreEx assets explicitly), and the current skill catalog lists 15 L1 skills, not 14. Please describe the shipped CoreEx suite separately from those two repo-only skills and correct the count.

Low severity CustomersCosmosDb example omits the options field

samples/​docs/​infrastructure-layer.md:74

This example uses _options in the primary-constructor base call but never declares it, so the documented CustomersCosmosDb snippet does not compile. Add the CosmosDbOptions field shown in the actual sample before the container properties.

…ibrary-side mutation

WithCoreExTelemetry() no longer silently calls AppContext.SetData for the net8.0
non-backtracking regex automata-size cap (per PR #187 review feedback). However,
Contoso.Shopping/Products Subscribe+Relay hosts combine WithCoreExTelemetry() with
WithCoreExServiceBusTelemetry()'s wildcard ActivitySource pattern, which reliably
exceeds net8.0's default 1,000-node cap and throws NotSupportedException at host
startup (reproduced and confirmed via live dotnet run).

Adds CoreExExtensions.IncreaseNet8RegexNonBacktrackingAutomataLimit() as an explicit,
documented, host-invoked opt-in (still AppContext.SetData under the hood - it is the
only mechanism that actually works). The MSBuild RuntimeHostConfigurationOption/
runtimeconfig.json route does not work for this switch: it surfaces the value to
AppContext.GetData as a boxed string, but dotnet/runtime's
SymbolicRegexThresholds.GetSymbolicRegexSafeSizeThreshold() requires a boxed int
(is int pattern match), so the runtimeconfig-supplied value is silently ignored
and the default of 1,000 still applies - verified empirically with an isolated
net8.0 console app and against a live Contoso.Shopping.Relay run.

The 4 affected sample hosts now call the new method, wrapped in #if NET8_0 so it
compiles out entirely on net9.0/net10.0 and can be deleted outright once net8.0
support is dropped. The CoreEx.Template-generated hosts are unaffected: the
scaffolded solution's Directory.Build.props pins TargetFramework to net10.0 only.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
Copilot AI review requested due to automatic review settings September 20, 2026 22:42
CoreEx's public WithCoreExTelemetry() no longer mentions this edge case at all -
it only affects 4 sample hosts that combine it with WithCoreExServiceBusTelemetry's
wildcard ActivitySource pattern on net8.0, so it doesn't belong in the library's
public API docs. Each of the 4 affected Contoso Subscribe/Relay samples now sets
AppContext.SetData("REGEX_NONBACKTRACKING_MAX_AUTOMATA_SIZE", 10_000) directly,
inline, wrapped in #if NET8_0 for easy removal once net8.0 support is dropped.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🟡 Changes recommended

Unresolved critical and moderate findings remain, including missing .NET 8 telemetry opt-in in generated Relay/Subscribe templates.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 High severity

Open (1)
Resolved since last review (1)
Previously missed (5)

In code that hasn't changed since last review

Medium severity Validate generated Cosmos guide is present

tools/​validate-template-pack.ps1:75

The template now adds the Cosmos guide to the explicit AI bundle, but this validation scenario never asserts that .github/docs/coreex/agents/CoreEx.Cosmos.md is present; a packaging regression could therefore pass. Add the generated guide to FilesPresent.

Low severity Correct consumer bundle skill inventory

.github/​agents/​README.md:123

This consumer-bundle list still claims that acquire-codebase-knowledge, aspire, and only 14 L1 skills are installed. The template does not copy the two generic skills, and the catalog above contains 15 L1 plus 2 L2 CoreEx skills; update the line to describe the actual generated bundle.

Low severity Add Cosmos to published cache inventory

.github/​skills/​coreex-docs-sync/​README.md:54

This rename update leaves the published cache inventory stale: CoreEx.Template.csproj now copies CoreEx.Cosmos/AGENTS.md, but this README's guide list and count still omit CoreEx.Cosmos.md and say there are 17 guides. Update the synchronized docs-sync inventories to include Cosmos and use 18.

Low severity Document Cosmos emulator setup for Customers API

samples/​README.md:170

Customers is now listed as requiring the cosmos-emulator, but the linked samples/docs/local-dev.md service inventory and connection-string sections still contain no Cosmos service or configuration guidance. A clean setup following the documented compose/startup steps therefore cannot configure the Customers API tests; add the emulator ports and Customers connection details to the local-development guide.

Low severity Add missing CosmosDbOptions field to example

samples/​docs/​infrastructure-layer.md:75

This CustomersCosmosDb excerpt uses _options in the base-constructor call but omits the actual class's CosmosDbOptions field, so the published example does not compile as shown. Include the declaration, matching CustomersCosmosDb.cs:8, before showing the container properties.

Comment thread src/CoreEx.Template/CoreEx.Template.csproj
Copilot AI review requested due to automatic review settings September 20, 2026 22:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

Unresolved moderate findings remain in generator nullability, Service Bus configuration, and template validation and dependency consistency.

Review effort: Lite
Findings: 1 High severity

Open (1)
Previously missed (5)

In code that hasn't changed since last review

Medium severity Document or preserve nullable Handlebars data parameter

gen/​CoreEx.Generator/​Utility/​HandlebarsCodeGenerator.cs:64

The public data parameter is explicitly nullable, but this new null-forgiving operator suppresses that fact without explaining why the non-null generic Handlebars template accepts a null secondary context. Preserve the nullable type if the API permits it, or document this adapter boundary so the suppression is justified.

Medium severity Replace unchecked Root null-forgiving operators with validation

gen/​CoreEx.Generator/​Utility/​HandlebarsHelpers.cs:31

This new null-forgiving operator suppresses nullable analysis on the Handlebars root lookup without documenting or checking the required invariant. CoreEx's C# guidance forbids ! without a clear reason; use an explicit CodeGenContext check so a malformed helper invocation fails deterministically.

This issue also appears in the following locations of the same file:

  • line 38
  • line 45
Low severity Correct L1 skill inventory count from 14 to 15

.github/​agents/​README.md:123

The generated bundle now ships coreex-graphql as an L1 skill, and the workflow catalog lists 15 L1 skills, but this inventory still says 14. Update the count so the consumer asset inventory matches the files this PR packages.

Low severity Add preview-quality disclaimer to CoreEx.Cosmos reference

.github/​copilot-instructions.md:72

This newly added CoreEx.Cosmos reference is missing the preview-quality disclaimer used by the other release documentation. Because this file is shipped as global AI guidance, state here that the API may change without strict semver until it stabilizes.

Low severity Declare CosmosDbOptions field in documentation example

samples/​docs/​infrastructure-layer.md:74

This example passes _options to the CosmosDb base constructor but never declares that field, so the new documentation snippet does not compile. Add the same CosmosDbOptions field used by CustomersCosmosDb before declaring the containers.

- HandlebarsHelpers: replace null-forgiving Root casts with a validating GetRootContext helper that throws deterministically on a malformed invocation.
- HandlebarsCodeGenerator.Generate: document why the null-forgiving operator on the Handlebars data parameter is safe.
- .github/agents/README.md: correct L1 skill count (14 -> 15) to include coreex-graphql.
- .github/copilot-instructions.md: add preview-quality disclaimer to the CoreEx.Cosmos polyglot-data reference.
- samples/docs/infrastructure-layer.md: declare the CosmosDbOptions field used by the CustomersCosmosDb example so it compiles.
- CoreEx.Template GlobalUsing.cs: alphabetize CoreEx.Data.Json using.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
Copilot AI review requested due to automatic review settings September 21, 2026 00:45

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

The critical Service Bus template defect and moderate Cosmos guide validation gap remain unresolved.

Review effort: Lite
Findings: None

Resolved since last review (1)

CreateDatabaseIfNotExistsAsync (the first Cosmos call per test-host TFM pass) intermittently fails against the local Cosmos emulator with an SSL/connection-reset error under sustained CI load. Add a bounded retry-with-backoff scoped to this test-setup call only; no production CosmosClient/CosmosDbOptions changes.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
Copilot AI review requested due to automatic review settings September 21, 2026 15:26

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

One or more issues must be addressed before approval.

Review effort: Lite
Findings: None

Previously missed (1)

In code that hasn't changed since last review

Low severity Synchronize docs-sync lists and package counts

src/​CoreEx.Template/​CoreEx.Template.csproj:227

Adding this _AiDocFile entry makes the packaged cache contain 18 per-package guides, but the shipped docs-sync sources are still inconsistent: .github/skills/coreex-docs-sync/SKILL.md and its README omit CoreEx.Cosmos.md (and the README still says 17), while .github/coreex-ai-workflows.md:31 still says 17. Update those lists and counts together so a consumer's /coreex-docs-sync documentation matches the bundle this change now produces.

…d to docs-sync lists

Addresses PR review follow-up: .github/coreex-ai-workflows.md and .github/skills/coreex-docs-sync/{SKILL,README}.md still listed 17 per-package guides and omitted CoreEx.Cosmos.md from the cache-layout/refresh file lists, inconsistent with the 18-guide bundle CoreEx.Template.csproj now produces.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Eric Sibly <eric.sibly@avanade.com>
Copilot AI review requested due to automatic review settings September 21, 2026 16:07

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot review overview

🔵 Needs a closer look

The Service Bus fallback substitution and related Cosmos/sample documentation inconsistencies remain unresolved.

Review effort: Lite
Findings: None

Resolved since last review (1)
Previously missed (1)

In code that hasn't changed since last review

Low severity Clarify Cosmos outbox documents reside in the business container

samples/​docs/​infrastructure-layer.md:99

This wording is inaccurate for Cosmos: CosmosDbEventPublisher enlists $outbox documents into the same business container as the mutation, rather than a separate outbox container (see src/CoreEx.Cosmos/AGENTS.md:101-118). Calling it “the outbox container” can send operators to the wrong place when diagnosing retained events; describe these as outbox documents in the hosting container.

@chullybun
chullybun merged commit 2cd2363 into main Sep 21, 2026
5 of 6 checks passed
@chullybun
chullybun deleted the v4.0.0 branch September 21, 2026 16:39
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