Skip to content

test(vitest): split critical-path integration suites - #6702

Merged
cv merged 21 commits into
mainfrom
codex/vitest-critical-path-splits
Jul 12, 2026
Merged

test(vitest): split critical-path integration suites#6702
cv merged 21 commits into
mainfrom
codex/vitest-critical-path-splits

Conversation

@cv

@cv cv commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

Summary

Four file-granular integration-test outliers are split along behavioral boundaries while preserving every title and assertion. Five serial local samples reduce the slowest median from 51.44s to 24.11s, with every replacement file below 30s and no family-runtime regression; pool and scheduling behavior remain unchanged. This is PR 7 in the #6692 stack and is based on #6701.

Related Issue

Part of #6692

Changes

  • Split the Hermes restart seal, local credential helper, onboarding, and OpenClaw integrity suites into focused integration-test files.
  • Keep repeated setup in non-test registration or fixture modules so each importing test file owns its hooks and mutable resources.
  • Keep the credential-helper execution-root ownership assertions in the same session shard as tests that create those roots, avoiding cross-file races under normal file parallelism.
  • Bind ten relocated Hermes filesystem checks to one descriptor or read, and route the eleven deliberate current-path assertions through a descriptor-backed snapshot helper.
  • Preserve all 257 previously listed titles plus the same two platform-gated Hermes cases; the focused 4-worker run collected 265 definitions and passed with only those two expected skips.
  • Regenerate all 93 timing hints from CI run 29180354863 at head 92439a702f1a8c7cca8609f1259304115a10931d, including seven replacement shards above the 5-second fallback, and update the sequencer contract to separate the two slowest replacements.
  • Update the OpenClaw dependency review so each security boundary points to the new base, contract, or plugin-install suite.
  • Record five-sample local slowest-shard medians: credential helper 24.11s (was 51.44s), Hermes 23.37s (was 50.25s), onboard 8.73s (was 35.41s), and OpenClaw integrity 12.22s (was 33.85s).
  • Reweighted CI reduced the slowest CLI shard job from 378s to 326s (52s / 13.8%) and narrowed shard spread from 95s to 62s.

Type of Change

  • Code change (feature, bug fix, or refactor)
  • Code change with doc updates
  • Doc only (prose changes, no code sample modifications)
  • Doc only (includes code sample changes)

Quality Gates

  • Tests added or updated for changed behavior
  • Existing tests cover changed behavior — justification:
  • Tests not applicable — justification:
  • Docs updated for user-facing behavior changes
  • Docs not applicable — justification: product behavior is unchanged; the security review was updated only to keep regression-evidence paths resolvable after the split.
  • Sensitive paths changed (security, policy, credentials, preflight, onboarding, inference, runner, sandbox, or messaging)
  • Sensitive-path review completed or maintainer-approved waiver recorded — reviewer/approval link/justification: independent static review verified exact title/assertion preservation and identified the credential-root race and stale security mappings; both were fixed before commit, and the full canonical suite passed.
  • Non-success, skipped, or missing CI check accepted by maintainer — check name, approval link, and follow-up issue:

Verification

  • PR description includes the DCO sign-off declaration and every commit appears as Verified in GitHub
  • Normal pre-commit, commit-msg, and pre-push hooks passed, or npm run check:diff passed when hooks were skipped or unavailable
  • Targeted behavior tests pass for the current change set, or tests are marked not applicable above — the 15-file 4-worker run passed 263 tests with 2 expected platform skips; project-membership, title-style, conditional, source-shape, test-size, CLI type-check, and five-sample timing checks passed.
  • Applicable broad gate passed — npm test: 1,452 files passed and 3 expected files skipped; 16,473 tests passed and 40 expected tests skipped.
  • Quality Gates section completed with required justifications or waivers
  • No secrets, API keys, or credentials committed
  • npm run docs builds without warnings (doc changes only) — passed with zero errors; Fern reported two unrelated baseline warnings.
  • Doc pages follow the style guide (doc changes only)
  • New doc pages include SPDX header and frontmatter (new pages only)

Signed-off-by: Carlos Villela cvillela@nvidia.com

cv added 11 commits July 11, 2026 18:58
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 0368c25d-418c-4d52-a63e-5e141853f555

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/vitest-critical-path-splits

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

@github-code-quality

github-code-quality Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage remains at 96%, unchanged from the codex/vitest-failure... branch.

TypeScript / code-coverage/cli

The overall coverage in the codex/vitest-critica... branch remains at 79%, unchanged from the codex/vitest-failure... branch.

Show a code coverage summary of the most impacted files.
File codex/vitest-failure... d683b6a codex/vitest-critica... 8b77fbc +/-
src/lib/shields...ate-dir-lock.ts 81% 60% -21%
src/lib/cli/public-dispatch.ts 85% 69% -16%
src/lib/state/m...-acquisition.ts 100% 85% -15%
src/lib/policy/index.ts 66% 53% -13%
src/lib/state/o...oard-session.ts 85% 83% -2%
src/lib/onboard.ts 28% 30% +2%
src/lib/onboard...p-nim-ollama.ts 76% 90% +14%
src/lib/tunnel/services.ts 67% 85% +18%
src/lib/actions...e-classifier.ts 65% 86% +21%
src/lib/cli/com...and-registry.ts 60% 90% +30%

Updated July 12, 2026 07:05 UTC
Code Coverage is in Public Preview. Learn more and provide us with your feedback.

@github-actions

github-actions Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

E2E Advisor Recommendation

Required E2E: None
Optional E2E: None

Workflow run

Full advisor summary

E2E Recommendation Advisor

Base: origin/codex/vitest-failure-feedback-diagnostics
Head: HEAD
Confidence: high

Required E2E

  • None. This is a tests-only, test-organization, CI timing-metadata, and documentation PR. It does not change runtime onboarding state-machine code, installer behavior, sandbox lifecycle implementation, credentials, network policy, inference routing, deployment assets, or assistant user flows. The onboarding resume rule does not require live jobs for tests-only changes.

Optional E2E

  • None.

New E2E recommendations

  • None.

@github-actions

github-actions Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — No blocking findings

Merge posture: No blocking advisor findings
Primary next action: No advisor follow-up required beyond maintainer review.
Findings: 0 required · 0 warnings · 0 optional suggestions
Since last review: 0 prior items resolved · 0 still apply · 0 new items found

Workflow run details

This is an automated review. Required findings need action before merge. Warnings and optional suggestions do not require a response or follow-up. A human maintainer makes the final merge decision.

@github-advanced-security github-advanced-security 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.

CodeQL found more than 20 potential problems in the proposed changes. Check the Files changed tab for more details.

cv added 2 commits July 11, 2026 22:12
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Comment thread test/hermes-restart-config-seal-hostile-input.test.ts Fixed
Comment thread test/hermes-restart-config-seal-recovery.test.ts Fixed
Comment thread test/hermes-restart-config-seal-recovery.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
Comment thread test/hermes-restart-config-seal-transition.test.ts Fixed
cv added 7 commits July 11, 2026 22:32
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Signed-off-by: Carlos Villela <cvillela@nvidia.com>

# Conflicts:
#	AGENTS.md
#	CONTRIBUTING.md
#	vitest.config.ts
Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Base automatically changed from codex/vitest-failure-feedback-diagnostics to main July 12, 2026 07:08
@cv
cv merged commit 77f049a into main Jul 12, 2026
52 checks passed
@cv
cv deleted the codex/vitest-critical-path-splits branch July 12, 2026 07:10
cv added a commit that referenced this pull request Jul 12, 2026
## Summary
Vitest project validation now compares every filesystem test candidate
with Vitest's complete eight-project roster, rejecting omissions,
overlaps, wrong routing, unexpected files, and unexpected project names.
The shared credential-free E2E workflow now applies Vitest's native
e2e/credential-free tag filter in addition to the existing safe matrix
scanner. The dashboard-port regression fixture also uses a coherent fake
OpenShell 0.0.72 component set and an OS-assigned gateway port so the
repo-wide gate stays hermetic.

This is the final entry in the ordered #6692 stack after #6693, #6696,
#6697, #6699, #6700, #6701, #6702, and #6705 landed.

## Related Issue
Closes #6692

## Changes
- Discover broad test/spec JavaScript and TypeScript candidates under
src, test, and nemoclaw/src, including nested dist, coverage, and .venv
paths that Vitest would see.
- Compare candidate routing with Vitest file listings and the complete
roster from list-tags JSON, including empty and opt-in projects.
- Produce sorted diagnostics for zero membership, overlap, wrong
project, unsupported candidates, unexpected listed files, and missing or
extra projects.
- Invoke Vitest portably through process.execPath and
node_modules/vitest/vitest.mjs.
- Require the exact native credential-free tag filter in the shared E2E
workflow contract while retaining the TypeScript scanner's path,
project, ID, and declaration checks.
- Keep the dashboard-port exhaustion regression independent of port
8080, developer OpenShell overrides, channel selection, and network
installation.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: these are
contributor/test-harness safeguards; AGENTS.md now states the exhaustive
project-membership contract, the E2E README already documents the native
module tag, and the required documentation-writer review found no
user-facing change.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: independent review
covered the shared credential-free workflow and onboarding regression
fixture; it confirmed the filter preserves the existing scanner and the
fixture's child-only environment cannot reach a real OpenShell install.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as Verified in GitHub
- [x] Normal pre-commit, commit-msg, and pre-push hooks passed, or npm
run check:diff passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — 46 integration tests passed across the
boundary and dashboard-port files; 4 E2E-support workflow tests passed;
project membership is exact for 1,537 candidates across 8 projects; CLI
type-check, title style, Biome, and diff checks passed. The fixture also
passed with hostile inherited OpenShell paths and dev-channel selection.
- [x] Applicable broad gate passed — npm test passed 1,456 files /
16,515 tests before the final focused hardening; npm run check passed
the repo-wide structural, CLI coverage, and plugin coverage gates,
followed by focused reruns and normal hooks after the final
child-environment pin.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] npm run docs builds without warnings (doc changes only)
- [ ] Doc pages follow the style guide (doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Tests**
- Credential-free end-to-end test runs now execute only tests matching
the credential-free tag.
- Vitest project validation now checks for missing, overlapping,
unsupported, wrong, zero-membership, and unexpected test-to-project
assignments, plus roster mismatches.
- Expanded boundary tests cover test candidate discovery, expected
project mapping, Vitest invocation resolution, and listing/roster
parsing.
- Improved onboarding “dashboard port exhaustion” assertions for more
hermetic, reliable verification.
- **Documentation**
- Updated testing guidance to require Vitest project globs be disjoint
and exhaustive, enforced by the projects check.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
<!-- markdownlint-disable MD041 -->
## Summary
Four file-granular integration-test outliers are split along behavioral
boundaries while preserving every title and assertion. Five serial local
samples reduce the slowest median from 51.44s to 24.11s, with every
replacement file below 30s and no family-runtime regression; pool and
scheduling behavior remain unchanged. This is PR 7 in the NVIDIA#6692 stack
and is based on NVIDIA#6701.

## Related Issue
Part of NVIDIA#6692

## Changes
- Split the Hermes restart seal, local credential helper, onboarding,
and OpenClaw integrity suites into focused integration-test files.
- Keep repeated setup in non-test registration or fixture modules so
each importing test file owns its hooks and mutable resources.
- Keep the credential-helper execution-root ownership assertions in the
same session shard as tests that create those roots, avoiding cross-file
races under normal file parallelism.
- Bind ten relocated Hermes filesystem checks to one descriptor or read,
and route the eleven deliberate current-path assertions through a
descriptor-backed snapshot helper.
- Preserve all 257 previously listed titles plus the same two
platform-gated Hermes cases; the focused 4-worker run collected 265
definitions and passed with only those two expected skips.
- Regenerate all 93 timing hints from CI run `29180354863` at head
`92439a702f1a8c7cca8609f1259304115a10931d`, including seven replacement
shards above the 5-second fallback, and update the sequencer contract to
separate the two slowest replacements.
- Update the OpenClaw dependency review so each security boundary points
to the new base, contract, or plugin-install suite.
- Record five-sample local slowest-shard medians: credential helper
24.11s (was 51.44s), Hermes 23.37s (was 50.25s), onboard 8.73s (was
35.41s), and OpenClaw integrity 12.22s (was 33.85s).
- Reweighted CI reduced the slowest CLI shard job from 378s to 326s (52s
/ 13.8%) and narrowed shard spread from 95s to 62s.

## Type of Change

- [ ] Code change (feature, bug fix, or refactor)
- [x] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates
- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: product behavior is
unchanged; the security review was updated only to keep
regression-evidence paths resolvable after the split.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: independent static
review verified exact title/assertion preservation and identified the
credential-root race and stale security mappings; both were fixed before
commit, and the full canonical suite passed.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification
- [x] PR description includes the DCO sign-off declaration and every
commit appears as `Verified` in GitHub
- [x] Normal `pre-commit`, `commit-msg`, and `pre-push` hooks passed, or
`npm run check:diff` passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — the 15-file 4-worker run passed 263
tests with 2 expected platform skips; project-membership, title-style,
conditional, source-shape, test-size, CLI type-check, and five-sample
timing checks passed.
- [x] Applicable broad gate passed — `npm test`: 1,452 files passed and
3 expected files skipped; 16,473 tests passed and 40 expected tests
skipped.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] `npm run docs` builds without warnings (doc changes only) — passed
with zero errors; Fern reported two unrelated baseline warnings.
- [x] Doc pages follow the [style
guide](https://github.com/NVIDIA/NemoClaw/blob/main/docs/CONTRIBUTING.md)
(doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
Hadar301 pushed a commit to Hadar301/NemoClaw-OpenShift that referenced this pull request Jul 12, 2026
…A#6707)

## Summary
Vitest project validation now compares every filesystem test candidate
with Vitest's complete eight-project roster, rejecting omissions,
overlaps, wrong routing, unexpected files, and unexpected project names.
The shared credential-free E2E workflow now applies Vitest's native
e2e/credential-free tag filter in addition to the existing safe matrix
scanner. The dashboard-port regression fixture also uses a coherent fake
OpenShell 0.0.72 component set and an OS-assigned gateway port so the
repo-wide gate stays hermetic.

This is the final entry in the ordered NVIDIA#6692 stack after NVIDIA#6693, NVIDIA#6696,
NVIDIA#6697, NVIDIA#6699, NVIDIA#6700, NVIDIA#6701, NVIDIA#6702, and NVIDIA#6705 landed.

## Related Issue
Closes NVIDIA#6692

## Changes
- Discover broad test/spec JavaScript and TypeScript candidates under
src, test, and nemoclaw/src, including nested dist, coverage, and .venv
paths that Vitest would see.
- Compare candidate routing with Vitest file listings and the complete
roster from list-tags JSON, including empty and opt-in projects.
- Produce sorted diagnostics for zero membership, overlap, wrong
project, unsupported candidates, unexpected listed files, and missing or
extra projects.
- Invoke Vitest portably through process.execPath and
node_modules/vitest/vitest.mjs.
- Require the exact native credential-free tag filter in the shared E2E
workflow contract while retaining the TypeScript scanner's path,
project, ID, and declaration checks.
- Keep the dashboard-port exhaustion regression independent of port
8080, developer OpenShell overrides, channel selection, and network
installation.

## Type of Change

- [x] Code change (feature, bug fix, or refactor)
- [ ] Code change with doc updates
- [ ] Doc only (prose changes, no code sample modifications)
- [ ] Doc only (includes code sample changes)

## Quality Gates

- [x] Tests added or updated for changed behavior
- [ ] Existing tests cover changed behavior — justification:
- [ ] Tests not applicable — justification:
- [ ] Docs updated for user-facing behavior changes
- [x] Docs not applicable — justification: these are
contributor/test-harness safeguards; AGENTS.md now states the exhaustive
project-membership contract, the E2E README already documents the native
module tag, and the required documentation-writer review found no
user-facing change.
- [x] Sensitive paths changed (security, policy, credentials, preflight,
onboarding, inference, runner, sandbox, or messaging)
- [x] Sensitive-path review completed or maintainer-approved waiver
recorded — reviewer/approval link/justification: independent review
covered the shared credential-free workflow and onboarding regression
fixture; it confirmed the filter preserves the existing scanner and the
fixture's child-only environment cannot reach a real OpenShell install.
- [ ] Non-success, skipped, or missing CI check accepted by maintainer —
check name, approval link, and follow-up issue:

## Verification

- [x] PR description includes the DCO sign-off declaration and every
commit appears as Verified in GitHub
- [x] Normal pre-commit, commit-msg, and pre-push hooks passed, or npm
run check:diff passed when hooks were skipped or unavailable
- [x] Targeted behavior tests pass for the current change set, or tests
are marked not applicable above — 46 integration tests passed across the
boundary and dashboard-port files; 4 E2E-support workflow tests passed;
project membership is exact for 1,537 candidates across 8 projects; CLI
type-check, title style, Biome, and diff checks passed. The fixture also
passed with hostile inherited OpenShell paths and dev-channel selection.
- [x] Applicable broad gate passed — npm test passed 1,456 files /
16,515 tests before the final focused hardening; npm run check passed
the repo-wide structural, CLI coverage, and plugin coverage gates,
followed by focused reruns and normal hooks after the final
child-environment pin.
- [x] Quality Gates section completed with required justifications or
waivers
- [x] No secrets, API keys, or credentials committed
- [ ] npm run docs builds without warnings (doc changes only)
- [ ] Doc pages follow the style guide (doc changes only)
- [ ] New doc pages include SPDX header and frontmatter (new pages only)

---
Signed-off-by: Carlos Villela <cvillela@nvidia.com>


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **Tests**
- Credential-free end-to-end test runs now execute only tests matching
the credential-free tag.
- Vitest project validation now checks for missing, overlapping,
unsupported, wrong, zero-membership, and unexpected test-to-project
assignments, plus roster mismatches.
- Expanded boundary tests cover test candidate discovery, expected
project mapping, Vitest invocation resolution, and listing/roster
parsing.
- Improved onboarding “dashboard port exhaustion” assertions for more
hermetic, reliable verification.
- **Documentation**
- Updated testing guidance to require Vitest project globs be disjoint
and exhaustive, enforced by the projects check.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Carlos Villela <cvillela@nvidia.com>
@wscurran wscurran added area: ci CI workflows, checks, release automation, or GitHub Actions chore Build, CI, dependency, or tooling maintenance labels Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: ci CI workflows, checks, release automation, or GitHub Actions chore Build, CI, dependency, or tooling maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants