fix: use per-package versions instead of tag override#9
Merged
joshsmithxrm merged 1 commit intomainfrom Dec 20, 2025
Merged
Conversation
The workflow was overriding all package versions with the git tag version, which would cause issues when packages have different versions (e.g., PPDS.Plugins at 1.1.0 vs new packages at 1.0.0-alpha.1). Changes: - Remove -p:Version= override from build and pack commands - Each package now uses its version from its csproj file - Add step to display package versions before publishing - Keep tag extraction for logging purposes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Note Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported. |
There was a problem hiding this comment.
Pull request overview
This PR fixes a critical issue in the NuGet publishing workflow where all packages were being forced to use the git tag version, causing version downgrades for packages with different versions. The solution removes the version override and allows each package to use its own version from its .csproj file.
Key changes:
- Removed the
-p:Version=parameter from dotnet build and pack commands - Added a display step to show package versions before publishing for transparency
- Modified tag extraction step to only log the release tag instead of setting it as a build parameter
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
joshsmithxrm
added a commit
that referenced
this pull request
Jan 1, 2026
When silent token acquisition fails (e.g., tokens cached under different tenant's authority), the fallback now respects the profile's original AuthMethod instead of always defaulting to device code flow. - Add preferredAuthMethod parameter to GlobalDiscoveryService - Check if interactive browser is available before falling back - Use interactive browser for profiles created with that method - Only fall back to device code for SP profiles or when interactive unavailable - Always use "organizations" authority for discovery (enables token reuse) Fixes item #9 in issue #59. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Jan 1, 2026
) * feat(plugins): enhance registration config and extraction - Add unsecureConfiguration field (renamed from configuration for clarity) - Add entityAlias field to image output - Add MainOperation (stage 30) support for custom actions - Add ZuluTimeConverter for consistent timestamp formatting - Fix solution component handling for updates (add even on update) - Fix cross-platform path normalization (use forward slashes) - Add JSON schema for plugin-registration.json 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(auth): honor profile's auth method on silent auth failure (#59) When silent token acquisition fails (e.g., tokens cached under different tenant's authority), the fallback now respects the profile's original AuthMethod instead of always defaulting to device code flow. - Add preferredAuthMethod parameter to GlobalDiscoveryService - Check if interactive browser is available before falling back - Use interactive browser for profiles created with that method - Only fall back to device code for SP profiles or when interactive unavailable - Always use "organizations" authority for discovery (enables token reuse) Fixes item #9 in issue #59. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(auth): implement tenant-aware MSAL account selection (#59) Root cause: MSAL token cache shared by all profiles, but account lookup used `accounts.FirstOrDefault()` which picked arbitrary cached account regardless of which tenant the profile belonged to. Fix: - Add HomeAccountId property to AuthProfile and ICredentialProvider - Store account identifier (format: {objectId}.{tenantId}) after auth - Use GetAccountAsync(homeAccountId) for precise account lookup - Fall back to filtering by HomeAccountId.TenantId if no identifier - Never silently use random cached account - force re-auth if needed - Apply fix to: InteractiveBrowserCredentialProvider, DeviceCodeCredentialProvider, GlobalDiscoveryService The fix ensures each profile's token lookup finds only tokens from the correct tenant, preventing cross-tenant environment discovery. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: update changelogs for issue #59 fixes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * chore: prepare releases Auth-v1.0.0-beta.2 and Cli-v1.0.0-beta.3 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: address PR review feedback - Extract MsalAccountHelper for DRY account lookup (Gemini feedback) - Remove entityAlias from schema required array (Copilot feedback) - Add CultureInfo.InvariantCulture to DateTimeOffset.Parse (Copilot feedback) Generic catch clause deferred to #61. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
27 tasks
joshsmithxrm
added a commit
that referenced
this pull request
Jan 2, 2026
Addresses issues #7, #9, #15, #27 from code review: - #7: Add thread-safety remarks to ConsoleProgressReporter - #9: Add documentation for role mapping limitation in TieredImporter - #15: Replace Console.WriteLine with AuthenticationOutput in auth library - New AuthenticationOutput class allows consumers to redirect or suppress output - Set AuthenticationOutput.Writer = null to suppress, or provide custom Action<string> - #27: Add validation in CredentialProviderFactory before null-forgiveness - ValidateRequiredFields checks GitHubFederated, AzureDevOpsFederated, UsernamePassword 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Jan 2, 2026
* fix: add thread-safe async locking to ProfileConnectionSource Add SemaphoreSlim for proper async synchronization in GetSeedClientAsync. The previous implementation checked _seedClient outside any lock, allowing concurrent calls to create duplicate providers and clients. Changes: - Add _asyncLock SemaphoreSlim for async method synchronization - Implement double-check locking pattern in GetSeedClientAsync - Dispose SemaphoreSlim in Dispose method Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: use ConcurrentBag for thread-safe provider tracking Replace List<ICredentialProvider> with ConcurrentBag<ICredentialProvider> to prevent collection corruption when CreateFromProfileAsync is called concurrently from multiple threads. Changes: - Add System.Collections.Concurrent using - Change _activeProviders to ConcurrentBag<ICredentialProvider> - Update Dispose to use TryTake pattern instead of Clear() Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: properly unregister MSAL cache in InteractiveBrowserCredentialProvider Unregister the MsalCacheHelper from the token cache during disposal to release file locks on the token cache file. Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: properly unregister MSAL cache in GlobalDiscoveryService Unregister the MsalCacheHelper from the token cache during disposal to release file locks on the token cache file. Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: remove redundant CancellationTokenSource from Program.cs System.CommandLine 2.x handles Ctrl+C automatically and passes the cancellation token to command handlers via SetAction's cancellationToken parameter. The manual CancelKeyPress handler was creating a CTS that was never connected to the command invocation pipeline. Removed the unused CTS and added a clarifying comment about how cancellation is handled. Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: use ConcurrentDictionary for entity type code cache Replace Dictionary<string, int> with ConcurrentDictionary<string, int> for the _entityTypeCodeCache to ensure thread-safe access in case of concurrent operations. Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * refactor: extract duplicate ParseBypassPlugins to DataCommandGroup Move the ParseBypassPlugins method from ImportCommand and CopyCommand to DataCommandGroup as a shared internal helper. Both commands now reference the single implementation. Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * chore: suppress NU1702 warning for cross-framework PPDS.Plugins reference PPDS.Plugins must target net462 (Dataverse plugin sandbox requirement) but is referenced by projects targeting net8.0+. Since the package contains only attributes and enums with no framework-specific APIs, this cross-framework reference is intentional and safe. Added explanatory comments in each affected project file. Fixes part of #71 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: remove NU1903 vulnerability warning suppression The high-severity vulnerability in transitive dependencies has been fixed upstream. Remove the suppression so future vulnerabilities are properly reported. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: use X509CertificateLoader for .NET 9+ certificate loading Replace deprecated X509Certificate2 constructor with X509CertificateLoader on .NET 9+. Uses conditional compilation to maintain compatibility with .NET 8. Fixes SYSLIB0057 warnings on net9.0 and net10.0 targets. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: suppress SYSLIB0014 warning for ServicePointManager ServicePointManager is obsolete in .NET 6+, but these settings are required for optimal Dataverse throughput. The Dataverse SDK uses HttpWebRequest internally, so these settings still apply. No alternative exists until Microsoft updates their SDK to use HttpClient. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: use async/await in thread safety tests (xUnit1031) Convert blocking Task.WaitAll() to async Task.WhenAll() to resolve xUnit1031 analyzer warnings about potential deadlocks in test methods. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address 11 code review findings from #80 Critical fixes: - Fix copy-paste bug in CertificateStoreCredentialProvider (StoreName→StoreLocation) - Fix memory leak in DeviceCodeCredentialProvider.Dispose() (unregister cache) - Fix memory leak in UsernamePasswordCredentialProvider.Dispose() (unregister cache) - Fix double-checked locking bug in ConnectionStringSource (add volatile) High priority fixes: - Add debug logging for expected role lookup failures in TieredImporter - Remove duplicate endpoint lookup in GlobalDiscoveryService - Remove dead code ExecuteBatchesParallelAsync (76 lines) Medium priority fixes: - Redact exception messages in TieredImporter using ConnectionStringRedactor - Add validation for empty entity/field names in CmtSchemaReader - Add validation for MaxParallelEntities >= 1 in ImportOptions - Preserve FaultException error codes in BulkOperationExecutor Closes #80 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: add AuthenticationOutput for configurable auth messaging (#80) Addresses issues #7, #9, #15, #27 from code review: - #7: Add thread-safety remarks to ConsoleProgressReporter - #9: Add documentation for role mapping limitation in TieredImporter - #15: Replace Console.WriteLine with AuthenticationOutput in auth library - New AuthenticationOutput class allows consumers to redirect or suppress output - Set AuthenticationOutput.Writer = null to suppress, or provide custom Action<string> - #27: Add validation in CredentialProviderFactory before null-forgiveness - ValidateRequiredFields checks GitHubFederated, AzureDevOpsFederated, UsernamePassword 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address remaining issue 71 code review findings (8, 12) Issue 8: Wrap sync-over-async in Task.Run to avoid deadlock - ProfileConnectionSource.GetSeedClient() now runs async code on threadpool to prevent deadlock in sync contexts (UI/ASP.NET) Issue 12: Use Uri.TryCreate instead of try-catch for flow control - AuthCommandGroup.ExtractEnvironmentName() refactored to avoid exception-based control flow 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * refactor: extract phase processors from TieredImporter (#18) Extract schema validation, deferred field processing, and relationship processing into separate classes to improve testability and maintainability. New components: - ISchemaValidator/SchemaValidator: Load target metadata, detect mismatches - DeferredFieldProcessor: Process self-referential lookup updates - RelationshipProcessor: Process M2M associations with role mapping - ImportContext: Shared context for all import phases - FieldMetadataCollection: Type-safe wrapper for field validity data - SchemaMismatchResult: Result type with detailed error message builder - IImportPhaseProcessor/PhaseResult: Common interface for phase processors TieredImporter reduced from 1,085 to 646 lines, now focused on orchestration. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: address PR review feedback (issues 1, 3, 4) - Remove unused roleNameCache from RelationshipProcessor (#1) The cache was built with a network call but never used since LookupRoleByIdAsync queries by ID directly, not by name. - Add volatile to AuthenticationOutput._writer (#3) Ensures thread-safe reads/writes of the static field. - Unify ProfileConnectionSource locking (#4) Both sync and async paths now use the same SemaphoreSlim lock, preventing race conditions between GetSeedClient and GetSeedClientAsync. Also marked _seedClient as volatile for proper double-checked locking. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Jan 2, 2026
- Add warning message on JSON parse failure (#9) - Handle FileNotFoundError when dotnet not in PATH (#1, #12) - Add 5-minute timeout to subprocess calls (#11) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Jan 2, 2026
* docs: add Claude workflow automation and streamline CLAUDE.md - Add /pre-pr command for pre-commit validation (build, test, changelog check) - Add /review-bot-comments command for triaging bot review findings - Add pre-commit hook to validate builds/tests before commit - Update development workflow to reference new commands - Streamline CLAUDE.md (remove verbose namespace examples, simplify comments section) - Add testing requirements table showing coverage gaps (Auth, Migration need tests) - Add bot review handling guidance 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: minor refinements to hook and CLAUDE.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: improve pre-commit hook robustness - Add warning message on JSON parse failure (#9) - Handle FileNotFoundError when dotnet not in PATH (#1, #12) - Add 5-minute timeout to subprocess calls (#11) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: improve pre-commit hook command detection and output - Use shlex.split for robust git commit detection (#2) - Print both stdout and stderr on build/test failure (#3, #4) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * docs: simplify gh api permission in settings example 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Jan 3, 2026
- Add warning message on JSON parse failure (#9) - Handle FileNotFoundError when dotnet not in PATH (#1, #12) - Add 5-minute timeout to subprocess calls (#11) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Jan 8, 2026
joshsmithxrm
added a commit
that referenced
this pull request
Mar 18, 2026
Solutions (#1,#2,#3,#5): Include Managed toggle, sort controls, Visible/API Managed fields, Maker Portal button, isVisible/isApiManaged end-to-end C# support. Import Jobs (#7,#8,#9): Search bar, Operation Context column (end-to-end C#→TS), record count with filtered status. Plugin Traces (#11,#12,#17,#18,#55): CRITICAL Trace Level dropdown fix, Maker Portal URL fix (Dynamics 365 classic), status text labels, record count, search bar. Web Resources (#19): Restored Created By and Created On columns. Connection References (#23,#24,#25,#28,#55): Expandable flow/connection detail with chevron toggle, ISO timestamp formatting, search bar, status badge improvements (Unknown/Unbound), Sync Settings button. Environment Variables (#29,#31,#55): Modified On column restored, search bar, Sync Settings button. Metadata Browser (#37): Custom Only filter toggle for entities. Data Explorer (#41,#42): Clear button, Import button (file dialog). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Mar 19, 2026
Solutions (#1,#2,#3,#5): Include Managed toggle, sort controls, Visible/API Managed fields, Maker Portal button, isVisible/isApiManaged end-to-end C# support. Import Jobs (#7,#8,#9): Search bar, Operation Context column (end-to-end C#→TS), record count with filtered status. Plugin Traces (#11,#12,#17,#18,#55): CRITICAL Trace Level dropdown fix, Maker Portal URL fix (Dynamics 365 classic), status text labels, record count, search bar. Web Resources (#19): Restored Created By and Created On columns. Connection References (#23,#24,#25,#28,#55): Expandable flow/connection detail with chevron toggle, ISO timestamp formatting, search bar, status badge improvements (Unknown/Unbound), Sync Settings button. Environment Variables (#29,#31,#55): Modified On column restored, search bar, Sync Settings button. Metadata Browser (#37): Custom Only filter toggle for entities. Data Explorer (#41,#42): Clear button, Import button (file dialog). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
joshsmithxrm
added a commit
that referenced
this pull request
Mar 19, 2026
* fix(cdp): use pwsh Expand-Archive for VSIX extraction on Windows bsdtar interprets the C: drive prefix as a remote host, breaking VSIX extraction in --vsix mode. Use PowerShell's Expand-Archive on Windows; keep tar on other platforms. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * plan: extension UX audit fixes — 28 findings across 10 phases Side-by-side comparison of legacy v0.3.4 vs new extension produced 55 findings. After triage: 28 fixes, 22 keep-new-behavior, 5 deferred. Organized into 10 phases (1 cross-cutting + 9 per-panel) for parallel agent execution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(ext): Phase 1 — cross-cutting infrastructure fixes - Add Connection References + Environment Variables to sidebar Tools (#56, #57) - Standardize command titles: "Open Data Explorer", "Open Plugin Traces" (#51) - Remove text-transform: uppercase from 5 panel CSS files for Title Case headers (#10) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(ext): Phases 2-9 — UX audit fixes across all 8 panels Solutions (#1,#2,#3,#5): Include Managed toggle, sort controls, Visible/API Managed fields, Maker Portal button, isVisible/isApiManaged end-to-end C# support. Import Jobs (#7,#8,#9): Search bar, Operation Context column (end-to-end C#→TS), record count with filtered status. Plugin Traces (#11,#12,#17,#18,#55): CRITICAL Trace Level dropdown fix, Maker Portal URL fix (Dynamics 365 classic), status text labels, record count, search bar. Web Resources (#19): Restored Created By and Created On columns. Connection References (#23,#24,#25,#28,#55): Expandable flow/connection detail with chevron toggle, ISO timestamp formatting, search bar, status badge improvements (Unknown/Unbound), Sync Settings button. Environment Variables (#29,#31,#55): Modified On column restored, search bar, Sync Settings button. Metadata Browser (#37): Custom Only filter toggle for entities. Data Explorer (#41,#42): Clear button, Import button (file dialog). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ext): review fixes — colSpan bug and command injection - Connection References: fix colCount from wrong heuristic (8) to correct value (7) matching actual column count - CDP tool: sanitize paths for PowerShell injection (escape single quotes); use execFileSync for tar on Unix to avoid shell interpretation Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * style(ext): extract inline styles to CSS classes per Gemini review Move search input and sort select inline styles to dedicated .toolbar-search and .toolbar-select CSS classes across 4 panels (Connection Refs, Env Variables, Import Jobs, Solutions). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ext): add missing webview entry points to knip config The 6 non-query/solutions webview panels are esbuild entry points but were missing from knip.json, causing false-positive unused-file reports. Also un-export internal-only types from shared modules. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ext): solution filter GUID bug and raw ISO timestamps - SolutionFilter shared component used uniqueName as option value instead of GUID id, causing "solutionId must be a valid GUID" error on Web Resources (and silently wrong on Conn Refs / Env Vars) - Import Jobs and Web Resources rendered raw ISO timestamps; add formatDateTime helper matching Plugin Traces / Conn Refs pattern Found by QA blind verification agents. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ext): review fixes — escaping, shell safety, URL normalization - Solutions panel: escape rootComponentBehavior and boolean ternaries before innerHTML insertion (S1 compliance) - Connection References: escape literal "Unbound" for consistent escaping discipline - CDP tool: use execFileSync instead of execSync for PowerShell VSIX extraction (S2 compliance — no shell: true) - Plugin Traces: strip trailing slash from environment URL before Maker Portal link construction Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(ext): escape formatDate output in solutions detail card Wrap formatDate() calls in escapeHtml() for consistent escaping discipline — formatDate can return raw ISO string on parse failure. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes an issue where the publish workflow would override all package versions with the git tag version. This caused problems when packages have different versions.
Problem
The workflow used
-p:Version=${{ steps.version.outputs.VERSION }}which would apply the tag version to ALL packages:Solution
-p:Version=override from build and pack commandsChanges
publish-nuget.yml: Removed version override, added package version display stepTest Plan
🤖 Generated with Claude Code