deps: Bump xunit.runner.visualstudio from 3.0.2 to 3.1.5#27
Closed
dependabot[bot] wants to merge 1 commit intomainfrom
Closed
deps: Bump xunit.runner.visualstudio from 3.0.2 to 3.1.5#27dependabot[bot] wants to merge 1 commit intomainfrom
dependabot[bot] wants to merge 1 commit intomainfrom
Conversation
--- updated-dependencies: - dependency-name: xunit.runner.visualstudio dependency-version: 3.1.5 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: xunit.runner.visualstudio dependency-version: 3.1.5 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: xunit.runner.visualstudio dependency-version: 3.1.5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Owner
|
Merged into feature/unified-cli-auth branch |
Contributor
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. You can also ignore all major, minor, or patch releases for a dependency by adding an If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
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>
27 tasks
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 8, 2026
* chore: streamline slash commands and add new workflow commands
Simplify existing commands for Opus 4.5 (85% line reduction):
- cleanup-code: 670 → 55 lines
- fix-technical-debt: 481 → 76 lines
- code-review: 250 → 62 lines
- review-technical-debt: 317 → 57 lines
Add new commands:
- /design - Invoke design-architect for feature design
- /new-panel - Scaffold new VS Code panel with Clean Architecture
- /handoff - Generate session summary for context handoff
Update CLAUDE.md with new commands and git commit preferences.
* fix: inject project context into design commands
- /design now tells agent to read CLAUDE.md and template
- /new-panel now tells agent to read panel patterns
- Both specify correct output location (docs/design/)
- Fixes issue where agents didn't know project conventions
* docs: add Data Explorer technical design document
Comprehensive design for SQL-to-FetchXML query tool including:
- Bidirectional SQL/FetchXML translation with warning support
- Clean Architecture layers (domain, application, presentation)
- Shared CsvFormatter infrastructure component
- Integration testing plan and UX decisions
- Refactoring plan for presentation logic in domain
* chore: consolidate and streamline AI workflow documentation
Major reductions for Opus 4.5 efficiency:
- WORKFLOW.md: 1,418 → 119 lines (92% reduction)
- TROUBLESHOOTING.md: 266 → 78 lines (71% reduction)
- README.md: consolidated with AGENTS.md → 95 lines
Archived (moved to .claude/archive/):
- AGENTS.md - content merged into README.md and WORKFLOW.md
- SETUP_GUIDE.md - meta-docs not needed for daily use
- agents/*.md - custom agent files (2,900+ lines not read by Task tool)
Added to CLAUDE.md:
- Session habits table (when to use /design, /code-review, /handoff, /clear)
Total .claude/ reduction: ~6,000 → ~300 lines (95% reduction)
* feat(data-explorer): implement Slice 0 - SQL parser and transpiler
Domain layer implementation for Data Explorer feature:
- SqlLexer: Tokenizes SQL SELECT statements
- SqlParser: Recursive descent parser producing AST
- SqlToFetchXmlTranspiler: Converts SQL AST to FetchXML
- QueryResult, QueryResultColumn, QueryResultRow value objects
- IDataExplorerQueryRepository interface
- DataverseDataExplorerQueryRepository infrastructure
Application layer:
- QueryResultViewModel DTOs for presentation
- QueryResultViewModelMapper with display formatting
(toHeaderText, toDisplayString methods)
Includes comprehensive test coverage for all components.
Domain value objects contain no presentation logic per
Clean Architecture - formatting moved to application mapper.
* docs: add webview development patterns guide
Create docs/architecture/WEBVIEW_PATTERNS.md documenting:
- Message format contract ({ command, data } structure)
- Global variables in webview context (window.vscode)
- CSS layout patterns for scrollable content
- Behavior file patterns and webpack config
- Panel initialization pattern
- New panel implementation checklist
- Common mistakes and solutions
Also update related docs to cross-reference and remove dates
per DOCUMENTATION_STYLE_GUIDE.md.
* chore: restore agents and remove docs-generator
- Restore code-guardian and design-architect agents from archive
- Remove docs-generator agent (not actively used)
- Update CLAUDE.md and README references to reflect changes
- Point agent references to new .claude/agents/ directory
* docs: add Data Explorer IntelliSense design documents
Add technical design documents for SQL IntelliSense feature:
- V1: Initial design using virtual documents (identified issues)
- V2: Revised design fixing read-only document issue, supporting
loading files from disk, and decoupling environment context
Key architectural decisions:
- Use VS Code native editor API (zero bundle size)
- Register completion provider for all SQL files
- Separate IntelliSenseContextService for environment tracking
- Support both new queries and existing .sql files from disk
* feat(data-explorer): implement Slice 1 - query execution and results display
Add SQL query execution against Dataverse with live FetchXML preview:
Domain Layer:
- SqlToFetchXmlTranspiler: convert SQL AST to FetchXML format
- Rich QueryResult entity with behavior methods
Application Layer:
- ExecuteSqlQueryUseCase: orchestrates parsing, transpilation, execution
- SqlParseErrorViewModelMapper: maps parse errors to view models
- QueryResultFactory for test data
Infrastructure Layer:
- DataverseDataExplorerQueryRepository: executes FetchXML via OData API
- Extract columns from FetchXML for sparse data support
Presentation Layer:
- DataExplorerPanelComposed: panel coordinator with environment scoping
- QueryEditorSection: SQL editor with FetchXML preview
- DataExplorerBehavior.js: webview interactions and result rendering
- SqlHighlighter/XmlHighlighter: syntax highlighting utilities
Features:
- Live FetchXML preview as you type SQL
- Query results table with sorting
- Horizontal scrolling for wide results
- Error display with position information
* feat(data-explorer): add clickable record links and copy URL functionality
Add ability to click lookup values (CreatedBy, ModifiedBy) and primary key
columns to open records directly in Dataverse browser. Include hover copy
button for record URLs.
Key changes:
- Add DataverseRecordUrlService for building/opening/copying record URLs
- Add Prefer header for OData annotations to get lookup entity types
- Fix link-entity column handling with _x002e_ encoding
- Add entityLogicalName and rowLookups to QueryResultViewModel
- Fix CSS stacked columns bug using wrapper span instead of flex on td
* fix(data-explorer): use FetchXML aliases as response keys
When FetchXML specifies column aliases, Dataverse returns data keyed
by the alias, not the attribute name. Repository was looking for data
by attribute name, causing empty cells in query results.
Changes:
- Added FetchXmlAttribute interface to track name, alias, responseKey
- Updated extractAttributesFromFetchXml to handle all alias scenarios
- Use responseKey (alias if present) for column matching
- Added test for LEFT JOIN with multiple aliased columns
* fix(data-explorer): prevent duplicate query execution from dual event listeners
Add customHandler property to ButtonConfig to allow behavior scripts to opt out
of generic messaging.js click handlers. Fixes duplicate query execution bug where
both messaging.js and DataExplorerBehavior.js were attaching handlers to the same
button, causing queries to execute twice on single click.
* docs: add TECHNICAL_DEBT.md and update Data Explorer TODO
- Create TECHNICAL_DEBT.md with TD-001 for EnvironmentSetup button workaround
- Mark duplicate query execution bug as resolved in DATA_EXPLORER_TODO.md
- Document proper customHandler pattern vs stopPropagation workaround
* Revert "docs: add TECHNICAL_DEBT.md and update Data Explorer TODO"
This reverts commit 1a54a81f73185f80266a101f32d14a6afa6282a0.
* fix(environment-setup): migrate from stopPropagation workaround to customHandler pattern
Replace stopPropagation() + capture phase workaround with proper customHandler
pattern for button click handlers. All 5 buttons (Save, Save & Close, Test
Connection, Delete, Discover ID) now use data-custom-handler attribute to skip
generic messaging.js handlers.
This brings EnvironmentSetup into consistency with Data Explorer fix (d215ac9)
and eliminates brittle event propagation manipulation.
* feat(e2e): add Data Explorer integration tests (WIP)
Add Playwright E2E tests for Data Explorer panel including:
- Panel opening and SQL editor tests
- Query execution tests (single click verification)
- Results display and record links tests
- Copy URL functionality tests
Note: Tests currently failing due to webview iframe detection issue.
Same infrastructure worked on feature/e2e-playwright branch - needs debugging.
* fix(e2e): update webview selector and test assertions for VS Code
- Changed iframe selector from src-based to class-based (VS Code uses dynamic URLs)
- Fixed keyboard event handling (use Page API, not Frame API)
- Added editor disabled state waits between tests
- Fixed log counting to use differential counts (logs persist across tests)
- Fixed status bar layout with proper flexbox (removed empty space)
- Reset FetchXML code element styling (removed highlight)
- Added initial results section HTML for proper layout
* chore: prepare release v0.2.2
- Update version in package.json
- Add 0.2.2 section to CHANGELOG.md
- Add release notes (docs/releases/v0.2.2.md)
* fix: address Copilot review feedback
- EnvironmentSetupBehavior.js: Fix misleading comment about data-custom-handler
- WebviewHelper.ts: Document _viewType param kept for API compatibility
- CLAUDE.md: Fix Co-authored-by capitalization (Git convention)
* test(data-explorer): add comprehensive domain layer tests
- Add SqlLexer.test.ts with 218 lines covering operators, quoted
identifiers, strings, numbers, error handling, comments, and EOF
- Add SqlToken.test.ts with 113 lines covering is(), isOneOf(),
isKeyword(), and isComparisonOperator() methods
- Add SqlAst.test.ts with 338 lines covering all AST value objects
including SqlColumnRef, SqlTableRef, SqlLiteral, conditions, joins,
and SqlSelectStatement
- Add SqlParseError.test.ts with 126 lines covering constructor,
atPosition(), and getErrorContext()
- Expand SqlParser.test.ts (+48 lines) with RIGHT JOIN, NULL literals,
and additional error cases
- Expand SqlToFetchXmlTranspiler.test.ts (+168 lines) with nested
conditions (LIKE, IS NULL, IN within AND/OR), LIKE patterns without
wildcards, and JOIN edge cases
Coverage improvements:
- SqlLexer.ts: 75% → 100%
- SqlToken.ts: 81% → 100%
- SqlAst.ts: 86% → 100%
- SqlParser.ts: 94% → 98%
- SqlToFetchXmlTranspiler.ts: 85% → 98%
Also fixes:
- CodeQL unused variables in DataExplorerBehavior.js
- Add istanbul ignore comments for defensive unreachable code paths
in SqlParseError.ts and ExecuteSqlQueryUseCase.ts
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.
Updated xunit.runner.visualstudio from 3.0.2 to 3.1.5.
Release notes
Sourced from xunit.runner.visualstudio's releases.
No release notes found for this version range.
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)