Development#1248
Conversation
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
|
Warning Rate limit exceeded
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 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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThis 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. ChangesSpeed-Scanner Hardware Firmware
Infrastructure, Base Station Core, & Dependency Updates
Estimated code review effort🎯 4 (Complex) | ⏱️ ~65 minutes Poem
🚥 Pre-merge checks | ✅ 2 | ❌ 3❌ Failed checks (2 warnings, 1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsStopped 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 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. Comment |
Code Coverage
|
Code Coverage
|
1 similar comment
Code Coverage
|
…ore-api/development/gradle-wrapper-9.5.1
…ore-base-station/development/gradle-wrapper-9.5.1
Code Coverage
|
…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
Code Coverage
|
Code Coverage
|
Code Coverage
|
1 similar comment
Code Coverage
|
There was a problem hiding this comment.
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 winAhoy! Mind that exception net be cast too wide, matey.
Yer catchin' all manner of
Exceptionhere 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
freshat 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 tothis.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
📒 Files selected for processing (24)
.github/workflows/core-baseStation.yml.gitignoreREADME.mdhardware/speed-scanner/OQM-Scanner-Community-Guide.mdhardware/speed-scanner/README.mdhardware/speed-scanner/TouchScannerTest.inohardware/speed-scanner/barcodeScanTest.inohardware/speed-scanner/color.hhardware/speed-scanner/oqm_scanner.inohardware/speed-scanner/scannerUI.inohardware/speed-scanner/sdcard/sdsetup.jsonsoftware/core/oqm-core-api/README.mdsoftware/core/oqm-core-api/gradle/wrapper/gradle-wrapper.propertiessoftware/core/oqm-core-base-station/README.mdsoftware/core/oqm-core-base-station/gradle/wrapper/gradle-wrapper.propertiessoftware/core/oqm-core-base-station/src/main/java/tech/ebp/oqm/core/baseStation/interfaces/RestInterface.javasoftware/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/interfaces/ui/pages/ItemsUiTest.javasoftware/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/RunningServerTest.javasoftware/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/testClasses/WebUiTest.javasoftware/core/oqm-core-base-station/src/test/java/tech/ebp/oqm/core/baseStation/testResources/ui/pages/ItemsPage.javasoftware/plugins/external-item-search/build.gradlesoftware/plugins/external-item-search/gradle/wrapper/gradle-wrapper.propertiessoftware/plugins/storagotchi/build.gradlesoftware/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
c72fb9991f6025cbe337d52ba77e531b3faf62bdd3e348fe1ccee9f51c71adb0be the genuine checksum fergradle-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
-alldistribution 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
PlaywrightExceptionandNullPointerExceptionwhen 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. Thebreakat 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.
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Code Coverage
|
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Code Coverage
|
1 similar comment
Code Coverage
|
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Code Coverage
|
1 similar comment
Code Coverage
|
Code Coverage
|
1 similar comment
Code Coverage
|
Code Coverage
|
Code Coverage
|
1 similar comment
Code Coverage
|
Checklist:
Summary by CodeRabbit
Release Notes
New Features
Bug Fixes
Documentation
Chores