Skip to content

Development#1248

Merged
GregJohnStewart merged 63 commits into
mainfrom
development
May 13, 2026
Merged

Development#1248
GregJohnStewart merged 63 commits into
mainfrom
development

Conversation

@GregJohnStewart

@GregJohnStewart GregJohnStewart commented May 11, 2026

Copy link
Copy Markdown
Contributor

Checklist:

  • Tested

Summary by CodeRabbit

Release Notes

  • New Features

    • Added OQM Fast Transaction Scanner firmware with touch-screen UI, barcode scanning, and inventory transaction support.
    • Included scanner test sketches and configuration files for hardware setup.
  • Bug Fixes

    • Enhanced database selection validation to prevent invalid database references.
    • Fixed form input selector targeting for better UI interaction reliability.
  • Documentation

    • Added comprehensive OQM Scanner Community Guide covering assembly, configuration, and operation.
    • Updated project READMEs with service descriptions and status badges.
  • Chores

    • Updated Gradle build tooling to version 9.5.1.
    • Refactored CI pipeline to use external reusable workflows.

Review Change Stack

JakeElston and others added 22 commits April 22, 2026 15:15
Able to retrieve key, then retrieve item from db by barcode identifier.  Working on parsing JSON
switched http libraries, previous version was unstable and slow, this one is much better
Finished get storage block, get database, get item, update item functions
Fixed SD card reader (wrong pin before), added detailed and quick update functions as well as set db function, changed GetStorageBlocks, GetCount, and GetDB to return Json Docs
Added/updated functions QuickUpdate and SetStorageBlock
fixed quick update
Added comprehensive community guide for OQM Fast Transaction Scanner, detailing hardware components, assembly, firmware structure, and software setup.
…ted-db-not-existing-cherry-pick

Dev/1151 gracefully handle selected db not existing
@coderabbitai

coderabbitai Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

Warning

Rate limit exceeded

@GregJohnStewart has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 48 minutes and 27 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6bb4b01c-a61a-44d4-9238-52fbbae9eb8b

📥 Commits

Reviewing files that changed from the base of the PR and between aa7f305 and 3083f82.

📒 Files selected for processing (3)
  • .github/workflows/core-baseStation.yml
  • hardware/speed-scanner/sdcard/sdsetup.json
  • software/core/oqm-core-base-station/README.md
📝 Walkthrough

Walkthrough

This PR delivers a complete barcode inventory scanner firmware for ESP32 hardware alongside infrastructure modernization. The hardware package introduces color constants, test sketches for scanner and touch functionality, a full-featured OQM scanner application with WiFi/OAuth/API integration, modular UI rendering, and comprehensive documentation. Supporting changes migrate CI to external reusable workflows, standardize Gradle to version 9.5.1, enhance database validation in base-station, refactor test configuration, and bump plugin dependencies.

Changes

Speed-Scanner Hardware Firmware

Layer / File(s) Summary
Color Constants & Barcode Scanner Test Firmware
hardware/speed-scanner/color.h, hardware/speed-scanner/barcodeScanTest.ino, hardware/speed-scanner/TouchScannerTest.ino
color.h defines a palette of #define constants (background, header, button, text colors). barcodeScanTest.ino initializes scanner UART and HX8357 TFT, rendering "Scanner Ready" and displaying decoded scan data; supports configurable auto/manual trigger modes. TouchScannerTest.ino adds a two-mode (CHECK IN/CHECK OUT) touch UI with barcode command recognition (CMD_MODE_IN/CMD_MODE_OUT), per-barcode add/remove counters, and log updates on scan.
OQM Scanner Main Firmware with API Integration
hardware/speed-scanner/oqm_scanner.ino
Full ESP32 barcode scanner application with scanner/touch/TFT/SD initialization, OAuth token provisioning from sdsetup.json credentials, main event loop managing token refresh and overlay prioritization, barcode scan processing for Quick/Detail modes (item fetch, storage block resolution, inventory updates), touch routing to screen/overlay buttons, DB/block selection with API callbacks, list population from GetDB()/GetStorageBlocks() responses, and complete networking layer (requestAuth(), GetItem() with retry, UpdateCount() transaction posting).
UI Drawing Module for Settings/Quick/Detail/Overlay Screens
hardware/speed-scanner/scannerUI.ino
Modular screen rendering: drawSettingsScreen() renders DB selector and quick-mode toggles; drawQuickScreen() shows block label, scanned item card, +/− buttons; drawDetailScreen() displays item card, adjustable count, transaction action radio buttons, navigation; drawDBListOverlay() and drawBlockListOverlay() render scrollable filtered lists with row truncation, striping, and empty states. Shared drawButton() and drawRadioButton() helpers.
Configuration File & Community Guide Documentation
hardware/speed-scanner/sdcard/sdsetup.json, hardware/speed-scanner/OQM-Scanner-Community-Guide.md, hardware/speed-scanner/README.md
sdsetup.json stores WiFi and OQM API credentials. OQM-Scanner-Community-Guide.md provides complete hardware guide: BOM, assembly, pinout, firmware overview, SD provisioning, JWT/token refresh behavior, Arduino IDE setup/flashing, and detailed interface workflows for Quick and Details modes. Removes TODO placeholder from existing README.

Infrastructure, Base Station Core, & Dependency Updates

Layer / File(s) Summary
GitHub Actions Workflow Migration to External Reusable Pipeline
.github/workflows/core-baseStation.yml
Replaces local Gradle job definitions with external reusable workflow invocation (Epic-Breakfast-Productions/ebp-ci/.../quarkus-ci-pipeline.yml@main); narrows triggers to pull_request with path filters and adds workflow_call/workflow_dispatch support; introduces concurrency with ref-scoped grouping and cancel-in-progress: true. Single CI-Pipeline job configured with project path, Java 25, and integration-test settings.
Gradle Wrapper Version Upgrades Across Projects
software/core/oqm-core-api/gradle/wrapper/gradle-wrapper.properties, software/core/oqm-core-base-station/gradle/wrapper/gradle-wrapper.properties, software/plugins/external-item-search/gradle/wrapper/gradle-wrapper.properties, software/plugins/storagotchi/gradle/wrapper/gradle-wrapper.properties
Standardizes Gradle to 9.5.1 by updating distributionUrl across four wrapper configurations; Storagotchi also updates distributionSha256Sum for checksum validation.
Base Station Database Selection Validation & Configuration Resolution
software/core/oqm-core-base-station/src/main/java/tech/ebp/oqm/core/baseStation/interfaces/RestInterface.java, software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/RunningServerTest.java
RestInterface adds isDbExist(String dbId) helper to validate oqmDb against available databases (checks id or name fields, logs warnings), and getSelectedDb() uses this to fall back to default when provided value is invalid. RunningServerTest adopts ConfigProvider.getConfig().getValue() for runtime resolution of oqm.core.api.baseUri, replacing @ConfigProperty field injection.
Test Exception Handling & UI Selector Refinements
software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/WebUiTest.java, software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/interfaces/ui/pages/ItemsUiTest.java, software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/ui/pages/ItemsPage.java
WebUiTest broadens exception handling to catch both PlaywrightException and NullPointerException. ItemsUiTest trims whitespace in two description assertions to handle formatting variations. ItemsPage refines ADDEDIT_FORM_INPUT_DESCRIPTION selector from container ID to specific textarea within overtype wrapper.
External Item Search & Storagotchi Dependency Updates
software/plugins/external-item-search/build.gradle, software/plugins/storagotchi/build.gradle
Bumps quarkus-wiremock from 1.6.1 to 1.6.3 in External Item Search; updates core-api-lib-quarkus from 4.4.7 to 4.4.8 in Storagotchi.
Project Documentation & .gitignore Maintenance
README.md, software/core/oqm-core-api/README.md, software/core/oqm-core-base-station/README.md, .gitignore
Root README restructured with updated heading and CI badges reorganized into collapsible <details> section; core-api and base-station READMEs updated with service titles and badges; .gradle/ directory added to .gitignore.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~65 minutes

Poem

"The Scanner Sails True"
Behold, matey, this swift scanner takes the helm,
With color-trimmed displays and touch at every realm,
API waves be charted, WiFi winds do blow,
And databases be sorted—mark me, all's in tow! 🧭

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description contains only an unchecked checkbox with no actual content explaining the changes, objectives, or testing status. Fill out the description with details about what was changed (Speed Scanner hardware, CI updates, dependency bumps), why these changes were made, and mark the tested checkbox if applicable.
Docstring Coverage ⚠️ Warning Docstring coverage is 66.67% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Development' is vague and generic, lacking any meaningful description of the changeset's primary objectives or content. Use a more descriptive title that captures the main changes, such as 'Add OQM Speed Scanner hardware and update CI/dependencies' or similar.
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch development

Warning

Review ran into problems

🔥 Problems

Stopped waiting for pipeline failures after 30000ms. One of your pipelines takes longer than our 30000ms fetch window to run, so review may not consider pipeline-failure results for inline comments if any failures occurred after the fetch window. Increase the timeout if you want to wait longer or run a @coderabbit review after the pipeline has finished.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

1 similar comment
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

…radle/software/core/oqm-core-base-station/development/gradle-wrapper-9.5.1

Bump gradle-wrapper from 9.5.0 to 9.5.1 in /software/core/oqm-core-base-station
…radle/software/core/oqm-core-api/development/gradle-wrapper-9.5.1

Bump gradle-wrapper from 9.5.0 to 9.5.1 in /software/core/oqm-core-api
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

@GregJohnStewart GregJohnStewart marked this pull request as ready for review May 13, 2026 01:02
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

1 similar comment
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 12

🧹 Nitpick comments (1)
software/core/oqm-core-base-station/src/main/java/tech/ebp/oqm/core/baseStation/interfaces/RestInterface.java (1)

159-174: ⚡ Quick win

Ahoy! Mind that exception net be cast too wide, matey.

Yer catchin' all manner of Exception here at line 168, which could mask real troubles brewin' below decks—NPEs, illegal states, and such. A savvy sailor knows to be more particular about what fish he's catchin'. Consider narrowin' this to specific exceptions ye expect, like JSON processin' errors if that be the concern.

Also, that variable ye've christened fresh at line 164 ain't fresh at all—'tis just another rope tied to the same barrel! The name suggests ye be makin' a copy, but yer just holdin' another reference to this.oqmDatabases. Might confuse the next sailor who reads this chart.

⚓ Suggested course correction fer clearer sailin'
 boolean isDbExist(String dbId){
   if (dbId == null || dbId.isBlank()) {
     return false;
   }
   try {
-    ArrayNode fresh = this.oqmDatabases;
-    if (fresh != null && this.containsDb(fresh, dbId)) {
+    ArrayNode databases = this.oqmDatabases;
+    if (databases != null && this.containsDb(databases, dbId)) {
       return true;
     }
-  } catch (Exception e) {
+  } catch (RuntimeException e) {
     log.warn("Failed to verify DB {}", dbId, e);
     return false;
   }

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f65c996b-ff3c-4eca-a505-477143c7485e

📥 Commits

Reviewing files that changed from the base of the PR and between 327a741 and aa7f305.

📒 Files selected for processing (24)
  • .github/workflows/core-baseStation.yml
  • .gitignore
  • README.md
  • hardware/speed-scanner/OQM-Scanner-Community-Guide.md
  • hardware/speed-scanner/README.md
  • hardware/speed-scanner/TouchScannerTest.ino
  • hardware/speed-scanner/barcodeScanTest.ino
  • hardware/speed-scanner/color.h
  • hardware/speed-scanner/oqm_scanner.ino
  • hardware/speed-scanner/scannerUI.ino
  • hardware/speed-scanner/sdcard/sdsetup.json
  • software/core/oqm-core-api/README.md
  • software/core/oqm-core-api/gradle/wrapper/gradle-wrapper.properties
  • software/core/oqm-core-base-station/README.md
  • software/core/oqm-core-base-station/gradle/wrapper/gradle-wrapper.properties
  • software/core/oqm-core-base-station/src/main/java/tech/ebp/oqm/core/baseStation/interfaces/RestInterface.java
  • software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/interfaces/ui/pages/ItemsUiTest.java
  • software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/RunningServerTest.java
  • software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/WebUiTest.java
  • software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/ui/pages/ItemsPage.java
  • software/plugins/external-item-search/build.gradle
  • software/plugins/external-item-search/gradle/wrapper/gradle-wrapper.properties
  • software/plugins/storagotchi/build.gradle
  • software/plugins/storagotchi/gradle/wrapper/gradle-wrapper.properties
💤 Files with no reviewable changes (1)
  • hardware/speed-scanner/README.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: CI-Pipeline / Integration Tests
  • GitHub Check: CI-Pipeline / Unit Tests
  • GitHub Check: CI-Pipeline / Integration Tests
  • GitHub Check: CI-Pipeline / Unit Tests
🧰 Additional context used
🪛 Betterleaks (1.2.0)
hardware/speed-scanner/sdcard/sdsetup.json

[high] 6-6: Detected a Generic API Key, potentially exposing access to various services and sensitive operations.

(generic-api-key)

🪛 LanguageTool
software/core/oqm-core-base-station/README.md

[grammar] ~8-~8: Ensure spelling is correct
Context: ...r functionality to the API, and provide aninterface through which to manage your inventory....

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

README.md

[grammar] ~40-~40: Use a hyphen to join words.
Context: ...details> Open Quartermaster is an open source inventory management system, desi...

(QB_NEW_EN_HYPHEN)


[style] ~42-~42: ‘any and all’ might be wordy. Consider a shorter alternative.
Context: ...check back often! We are also accepting any and all assistance, so feel free to report issu...

(EN_WORDINESS_PREMIUM_ANY_AND_ALL)


[grammar] ~55-~55: Use a hyphen to join words.
Context: ...on), which lets you have direct and easy to navigate access to your inventory. To c...

(QB_NEW_EN_HYPHEN)


[style] ~69-~69: ‘in control of’ might be wordy. Consider a shorter alternative.
Context: ...e, we take great care to ensure you are in control of your own data. None of the software we ...

(EN_WORDINESS_PREMIUM_IN_CONTROL_OF)

🪛 markdownlint-cli2 (0.22.1)
hardware/speed-scanner/OQM-Scanner-Community-Guide.md

[warning] 6-6: Link fragments should be valid

(MD051, link-fragments)


[warning] 9-9: Link fragments should be valid

(MD051, link-fragments)


[warning] 11-11: Link fragments should be valid

(MD051, link-fragments)


[warning] 12-12: Link fragments should be valid

(MD051, link-fragments)


[warning] 13-13: Link fragments should be valid

(MD051, link-fragments)


[warning] 14-14: Link fragments should be valid

(MD051, link-fragments)


[warning] 18-18: Link fragments should be valid

(MD051, link-fragments)

🔇 Additional comments (18)
README.md (1)

5-5: LGTM!

Also applies to: 20-37, 42-43, 47-49, 53-55, 57-58, 60-61, 65-65, 69-70

software/core/oqm-core-api/README.md (1)

1-1: LGTM!

Also applies to: 3-3

software/core/oqm-core-base-station/README.md (1)

1-1: LGTM!

Also applies to: 3-4, 6-6, 11-11

.gitignore (1)

34-34: LGTM!

software/core/oqm-core-base-station/gradle/wrapper/gradle-wrapper.properties (1)

3-3: Same waters as before, same need fer verification!

This be the same Gradle 9.5.1 upgrade as in the core-api module. The verification request I made there applies here too, savvy?

software/plugins/external-item-search/gradle/wrapper/gradle-wrapper.properties (1)

3-3: Another crew member joinin' the voyage to 9.5.1!

This be the same Gradle version upgrade, matey. The verification I requested fer the core-api applies to this vessel as well.

.github/workflows/core-baseStation.yml (1)

16-22: LGTM!

software/core/oqm-core-api/gradle/wrapper/gradle-wrapper.properties (1)

3-3: Gradle 9.5.1 be a real version, ye needn't worry!

Aye, Gradle 9.5.1 exists in the distributions, fair and square. The server be responding with a redirect (HTTP 307), meanin' the vessel be ready to set sail with this version without fear o' phantom downloads. All's well on the build front!

software/plugins/storagotchi/gradle/wrapper/gradle-wrapper.properties (1)

3-4: Verify the checksum be true as the North Star!

Ye've updated both the Gradle version AND its SHA256 checksum. A wrong checksum be worse than a leak in the hull - the build will founder before it even leaves port! I need to verify that c72fb9991f6025cbe337d52ba77e531b3faf62bdd3e348fe1ccee9f51c71adb0 be the genuine checksum fer gradle-9.5.1-all.zip. The automated check failed to retrieve official confirmation from the Gradle services, so this still requires manual verification.

Note: The -all distribution is also used in other modules (e.g., the Kubernetes operator), so that be no red flag in itself.

			> Likely an incorrect or invalid review comment.
software/core/oqm-core-base-station/src/main/java/tech/ebp/oqm/core/baseStation/interfaces/RestInterface.java (2)

176-186: LGTM!


188-197: LGTM!

software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/RunningServerTest.java (1)

9-9: LGTM!

Also applies to: 33-35

software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/WebUiTest.java (1)

140-143: Aye, this be sound riggin' fer rough seas.

Catchin' both PlaywrightException and NullPointerException when haulin' in console messages be a prudent choice fer test stability, mate. Sometimes the cargo comes in damaged, and 'tis better to log the trouble and move on than to let the whole ship founder. The break at line 142 keeps ye from processin' more bad goods from the same batch.

This be acceptable defensive sailin' in test waters.

software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/interfaces/ui/pages/ItemsUiTest.java (2)

74-76: LGTM!


146-148: LGTM!

software/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/ui/pages/ItemsPage.java (1)

18-18: A fine bit o' navigation, this be!

Yer new selector be steerin' straight fer the actual textarea within that overtype-wrapper contraption, rather than castin' yer net at the whole container. This be why ye needed to trim the sails (.strip()) in yer tests—the old course was pickin' up extra whitespace from the container barnacles. Much more precise now, I say!

software/plugins/storagotchi/build.gradle (1)

33-33: All clear on the dependency front, matey!

Yer bumped the core-api-lib-quarkus from 4.4.7 to 4.4.8, and I've checked the trading post—Maven Central be stocked with this cargo. The version be properly stored in port and ready for yer shipyard to load aboard. This be a fair and solid update, no quarrels from these waters.

software/plugins/external-item-search/build.gradle (1)

31-31: Version 1.6.3 be charted and seaworthy, matey.

Aye, the quarkus-wiremock hath been updated from 1.6.1 to 1.6.3, and me reconnaissance confirms all be in order. The cargo exists safe and sound in the Maven repository, just published to the harbor on the 6th of May in the year 2026. More importantly, no cursed vulnerabilities plague this version—the GitHub security page declares "There aren't any published security advisories," and the underlying WireMock dependencies (now set to 3.13.x) be well past any known maladies. This vessel be ready to set sail without worry.

Comment thread .github/workflows/core-baseStation.yml
Comment thread hardware/speed-scanner/oqm_scanner.ino
Comment thread hardware/speed-scanner/oqm_scanner.ino
Comment thread hardware/speed-scanner/oqm_scanner.ino
Comment thread hardware/speed-scanner/oqm_scanner.ino
Comment thread hardware/speed-scanner/OQM-Scanner-Community-Guide.md
Comment thread hardware/speed-scanner/OQM-Scanner-Community-Guide.md
Comment thread hardware/speed-scanner/scannerUI.ino
Comment thread hardware/speed-scanner/sdcard/sdsetup.json Outdated
Comment thread software/core/oqm-core-base-station/README.md Outdated
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

1 similar comment
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

GregJohnStewart and others added 2 commits May 12, 2026 21:12
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

1 similar comment
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

1 similar comment
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

@GregJohnStewart GregJohnStewart merged commit 54f5f0e into main May 13, 2026
10 of 12 checks passed
@github-actions

Copy link
Copy Markdown

Code Coverage

Overall Project 61.35% 🍏

There is no coverage information present for the Files changed

@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

1 similar comment
@github-actions

Copy link
Copy Markdown

Code Coverage

There is no coverage information present for the Files changed

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.

6 participants