Skip to content

Development#1276

Merged
GregJohnStewart merged 14 commits into
mainfrom
development
May 25, 2026
Merged

Development#1276
GregJohnStewart merged 14 commits into
mainfrom
development

Conversation

@GregJohnStewart
Copy link
Copy Markdown
Contributor

@GregJohnStewart GregJohnStewart commented May 25, 2026

Checklist:

  • Tested

Summary by CodeRabbit

  • Documentation

    • Added Sphinx-based docs (getting started, deployment guides, components overview, Core API user guide) and build helpers (Makefile, Windows batch script, requirements).
  • Chores

    • Removed deprecated plugin-service functionality.
    • Bumped installer package version and included core-characteristics installers in the install flow.
    • Adjusted service startup ordering to wait for the homepage service.
    • Added UI cache force-refresh to ensure fresher UI data.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 25, 2026

Warning

Review limit reached

@GregJohnStewart, we couldn't start this review because you've used your available PR reviews for now.

Your plan includes 2 reviews of capacity. Refill in 21 minutes and 20 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, 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 trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 94e30e1f-9498-4667-8b70-4139b475acc1

📥 Commits

Reviewing files that changed from the base of the PR and between 0ebea13 and 37a0b53.

📒 Files selected for processing (4)
  • docs/sphinx/source/index.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/design_decisions.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/features/index.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/usage/index.rst
📝 Walkthrough

Walkthrough

Avast: Sphinx docs added at repo and Core API, plugin-related model/types removed from Core API interacting-entity, Characteristics UI-cache and installer metadata/service ordering updated, test harness includes characteristics installers, and small template whitespace tweaks applied.

Changes

Documentation

Layer / File(s) Summary
Root-level Sphinx documentation setup
docs/documentation.md, docs/sphinx/{.gitignore,Makefile,make.bat,requirements.txt}, docs/sphinx/source/{conf.py,index.rst,components.rst,deployment.rst}
Adds repository Sphinx guide, build scripts (Unix/Windows), requirements, conf, and landing pages for components and deployment.
Core API Sphinx site
software/core/oqm-core-api/docs/sphinx-test/{.gitignore,Makefile,make.bat,README.md,requirements.txt}, software/core/oqm-core-api/docs/sphinx-test/source/{conf.py,index.rst,design_decisions.rst,running/*,usage/*,features/*}
Creates a service-scoped Sphinx site with configuration, README, indices, running/usage/features docs, and design decision pages.

Core API model change

Layer / File(s) Summary
InteractingEntity plugin removal
software/core/oqm-core-api/src/main/java/.../InteractingEntity.java, software/core/oqm-core-api/src/main/java/.../InteractingEntityType.java
Removes PluginService subtype from Jackson/@Schema annotations and deletes SERVICE_PLUGIN enum value; preserves User and GeneralService factory behavior.

Characteristics, installers, templates, and tests

Layer / File(s) Summary
UI cache invalidation and template tweaks
software/core/oqm-core-characteristics/app/UIs.py, software/core/oqm-core-base-station/src/main/resources/templates/webui/pages/you.html
Adds UiUtils.ui_cache_force_refresh behavior when UI entries lack url; small markup/whitespace changes in profile page template and module script.
Installer metadata and systemd ordering
software/core/oqm-core-characteristics/installerSrc/installerProperties.json, software/core/oqm-core-characteristics/installerSrc/oqm-core-characteristics.service
Bumps package version to 1.1.1-SNAPSHOT, adds oqm-infra-homepage to Debian dependencies, and adds oqm-infra-homepage.service to systemd After= ordering.
Test harness: include characteristics installers
deployment/Single Host/tests/.../SnhConnector.java
Extends SnhConnector FILES install path to build and include oqm-core-characteristics installers and add them to the upload list.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

⚓ Hoist the docs, me hearties, Sphinx charts on high,
Yank the old plugin timbers down, let dead classes lie,
A cache that spies a missing url and bids a fresh start,
Installers lined in order, services wait apart,
Repo trimmed and tidy now — set sail, ye rollicking art!

🚥 Pre-merge checks | ✅ 2 | ❌ 3

❌ Failed checks (2 warnings, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description be naught but a bare checklist with nary a word explainin' what be changed, why it be changed, or what the main cargo consists of. Swab the deck proper-like and fill in the description with details about the documentation additions, plugin removals, and core characteristics modifications, so the crew knows what's in the hold.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% 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 far too vague and generic, leavin' no clear notion of what the main cargo of this PR be containin'. Batten down the hatches and give this PR a proper name—somethin' like 'Add comprehensive documentation and refactor plugin architecture' would tell us what we're really haulin' aboard.
✅ 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

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.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
docs/sphinx/make.bat (1)

1-36: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Use CRLF endings for this batch script before launch.

Matey, this .bat file looks LF-terminated; on some Windows setups that can foul label/goto parsing and break doc builds. Convert to CRLF to avoid cross-platform surprises.

software/core/oqm-core-api/docs/sphinx-test/make.bat (1)

1-36: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Convert software/core/oqm-core-api/docs/sphinx-test/make.bat to CRLF line endings
Ahoy, this batch file be LF-only—0 CRLF and 35 LF—so some Windows cmd.exe hosts may not keep the logbook in order. Convert it to CRLF and ensure the repo enforces *.bat as eol=crlf (no .gitattributes at repo root).

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntity.java (1)

35-39: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Keep a legacy SERVICE_PLUGIN discriminator alias, matey—old imports may run aground.
InteractingEntity now registers only USER / SERVICE_GENERAL / CORE_API in @JsonSubTypes, while InteractingEntityImporter deserializes persisted JSON straight into InteractingEntity via ObjectUtils.OBJECT_MAPPER.readValue(..., InteractingEntity.class). Any historical payload with "type":"SERVICE_PLUGIN" can’t resolve to a subtype (and InteractingEntityType no longer includes SERVICE_PLUGIN), breaking the whole import.

⚓ Proposed compatibility patch
 `@JsonSubTypes`({
 	`@JsonSubTypes.Type`(value = User.class, name = "USER"),
 	`@JsonSubTypes.Type`(value = GeneralService.class, name = "SERVICE_GENERAL"),
+	// Temporary legacy alias for backward compatibility with historical exports/imports.
+	`@JsonSubTypes.Type`(value = GeneralService.class, name = "SERVICE_PLUGIN"),
 	`@JsonSubTypes.Type`(value = CoreApiInteractingEntity.class, name = "CORE_API"),
 })
🧹 Nitpick comments (2)
software/core/oqm-core-api/docs/sphinx-test/source/running/01_prerequisites.rst (1)

39-42: ⚡ Quick win

Mark TLS as strongly recommended for production, not just optional cargo.

Line 42 currently frames SSL cert setup as optional without production guidance; that can normalize insecure deployments. Suggest explicit wording that HTTPS/TLS is required or strongly recommended outside local dev.

software/core/oqm-core-characteristics/installerSrc/installerProperties.json (1)

10-10: ⚡ Quick win

Rethink adding a version constraint for oqm-infra-homepage (unless you’ve got a known runtime minimum)

Ye’ve currently got oqm-infra-homepage in software/core/oqm-core-characteristics/installerSrc/installerProperties.json as a bare dependency (no version), while the core side only uses it for service ordering (After=oqm-infra-homepage.service).

There be no stated compatibility contract between oqm-core-characteristics and a specific oqm-infra-homepage version in the repo—plus oqm-infra-homepage packages themselves already pin what they need (e.g., oqm-infra-homepage 1.0.5 depends on oqm-manager-station+captain (>= 2.11.1)), so the installer can pick a suitable homepage version when captain’s version is in play.

Add a version constraint only if there’s a known required oqm-infra-homepage minimum for the characteristics↔homepage integration/behavior—otherwise leaving it unconstrained fits the existing dependency pattern (e.g., traefik also depends on homepage without a version).


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3c914911-6a45-4e16-98b5-b29ad310bbcc

📥 Commits

Reviewing files that changed from the base of the PR and between 2c0e5ae and 6dc6418.

⛔ Files ignored due to path filters (2)
  • docs/sphinx/source/_static/logo.svg is excluded by !**/*.svg
  • software/core/oqm-core-api/docs/sphinx-test/source/_static/logo.svg is excluded by !**/*.svg
📒 Files selected for processing (43)
  • docs/documentation.md
  • docs/sphinx/.gitignore
  • docs/sphinx/Makefile
  • docs/sphinx/make.bat
  • docs/sphinx/requirements.txt
  • docs/sphinx/source/components.rst
  • docs/sphinx/source/conf.py
  • docs/sphinx/source/deployment.rst
  • docs/sphinx/source/index.rst
  • software/core/oqm-core-api/docs/sphinx-test/.gitignore
  • software/core/oqm-core-api/docs/sphinx-test/Makefile
  • software/core/oqm-core-api/docs/sphinx-test/README.md
  • software/core/oqm-core-api/docs/sphinx-test/make.bat
  • software/core/oqm-core-api/docs/sphinx-test/requirements.txt
  • software/core/oqm-core-api/docs/sphinx-test/source/conf.py
  • software/core/oqm-core-api/docs/sphinx-test/source/design_decisions.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/features/01_nonfunctional.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/features/02_database.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/features/03_entitiesAuthRoles.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/features/04_messaging.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/features/05_filesImages.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/features/index.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/index.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/running/01_prerequisites.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/running/02_basic_quickstart.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/running/index.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/usage/01_main_ideas.rst
  • software/core/oqm-core-api/docs/sphinx-test/source/usage/index.rst
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntity.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntityType.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/Plugin.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginService.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginType.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginTypeType.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavItem.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavSubMenu.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/roles/RequestedRole.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/GeneralServiceTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceSerializationTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceTest.java
  • software/core/oqm-core-characteristics/app/UIs.py
  • software/core/oqm-core-characteristics/installerSrc/installerProperties.json
  • software/core/oqm-core-characteristics/installerSrc/oqm-core-characteristics.service
💤 Files with no reviewable changes (11)
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavItem.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/Plugin.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginTypeType.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceSerializationTest.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntityType.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/roles/RequestedRole.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginType.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/PluginService.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/GeneralServiceTest.java
  • software/core/oqm-core-api/src/test/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/PluginServiceTest.java
  • software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/externalService/plugin/components/nav/NavSubMenu.java
📜 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). (1)
  • GitHub Check: CI-Pipeline / Build
🧰 Additional context used
🪛 Blinter (1.0.112)
software/core/oqm-core-api/docs/sphinx-test/make.bat

[error] 1-1: Unix line endings detected. Explanation: Batch file uses Unix line endings (LF-only) which can cause GOTO/CALL label parsing failures and script malfunction due to Windows batch parser 512-byte boundary bugs. Recommendation: Convert file to Windows line endings (CRLF). Use tools like dos2unix, notepad++, or configure git with 'git config core.autocrlf true'. Context: File uses Unix line endings (LF-only) - 35 LF sequences found

(E018)


[error] 8-8: Unsafe SET command usage. Explanation: SET commands without proper validation or quoting can cause security issues. Recommendation: Always quote SET values and validate input: SET "var=safe value". Context: SET command value should be quoted for safety

(SEC002)


[error] 13-13: Command injection via variable substitution. Explanation: Variables containing user input used in commands may allow code injection. Recommendation: Validate and sanitize variables before use in command execution. Context: Variable used with shell operators may allow injection

(SEC013)

docs/sphinx/make.bat

[error] 1-1: Unix line endings detected. Explanation: Batch file uses Unix line endings (LF-only) which can cause GOTO/CALL label parsing failures and script malfunction due to Windows batch parser 512-byte boundary bugs. Recommendation: Convert file to Windows line endings (CRLF). Use tools like dos2unix, notepad++, or configure git with 'git config core.autocrlf true'. Context: File uses Unix line endings (LF-only) - 35 LF sequences found

(E018)


[error] 8-8: Unsafe SET command usage. Explanation: SET commands without proper validation or quoting can cause security issues. Recommendation: Always quote SET values and validate input: SET "var=safe value". Context: SET command value should be quoted for safety

(SEC002)


[error] 13-13: Command injection via variable substitution. Explanation: Variables containing user input used in commands may allow code injection. Recommendation: Validate and sanitize variables before use in command execution. Context: Variable used with shell operators may allow injection

(SEC013)

🪛 checkmake (0.3.2)
docs/sphinx/Makefile

[warning] 16-16: Required target "all" is missing from the Makefile.

(minphony)


[warning] 16-16: Required target "clean" is missing from the Makefile.

(minphony)


[warning] 16-16: Required target "test" is missing from the Makefile.

(minphony)

software/core/oqm-core-api/docs/sphinx-test/Makefile

[warning] 16-16: Required target "all" is missing from the Makefile.

(minphony)


[warning] 16-16: Required target "clean" is missing from the Makefile.

(minphony)


[warning] 16-16: Required target "test" is missing from the Makefile.

(minphony)

🪛 markdownlint-cli2 (0.22.1)
docs/documentation.md

[warning] 5-5: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 9-9: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

software/core/oqm-core-api/docs/sphinx-test/README.md

[warning] 5-5: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 6-6: Dollar signs used before commands without showing output

(MD014, commands-show-output)


[warning] 7-7: Dollar signs used before commands without showing output

(MD014, commands-show-output)


[warning] 8-8: Dollar signs used before commands without showing output

(MD014, commands-show-output)


[warning] 15-15: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🪛 Ruff (0.15.13)
software/core/oqm-core-api/docs/sphinx-test/source/conf.py

[error] 11-11: Variable copyright is shadowing a Python builtin

(A001)

docs/sphinx/source/conf.py

[error] 10-10: Variable copyright is shadowing a Python builtin

(A001)

🔇 Additional comments (14)
docs/sphinx/.gitignore (1)

1-2: LGTM!

docs/sphinx/Makefile (1)

1-20: LGTM!

docs/sphinx/source/components.rst (1)

1-27: LGTM!

docs/sphinx/source/conf.py (1)

1-50: LGTM!

docs/sphinx/source/deployment.rst (1)

1-10: LGTM!

software/core/oqm-core-api/docs/sphinx-test/requirements.txt (1)

1-1: ⚡ Quick win

Pin sphinx for reproducible docs builds

That there requirements.txt be unpinned—floatin’ sphinx can wander as upstream ships new releases and sour your docs builds. Best practice, per Read the Docs, is to pin to an exact Sphinx version for reproducibility (latest stable is Sphinx 9.1.0, so you can start with sphinx==9.1.0).

software/core/oqm-core-api/docs/sphinx-test/source/features/01_nonfunctional.rst (1)

1-23: LGTM!

software/core/oqm-core-api/docs/sphinx-test/source/features/05_filesImages.rst (1)

1-26: LGTM!

software/core/oqm-core-api/docs/sphinx-test/source/index.rst (1)

6-31: LGTM!

software/core/oqm-core-api/docs/sphinx-test/source/running/02_basic_quickstart.rst (1)

1-2: LGTM!

software/core/oqm-core-api/docs/sphinx-test/source/running/index.rst (1)

1-12: LGTM!

software/core/oqm-core-api/docs/sphinx-test/source/usage/01_main_ideas.rst (1)

1-2: LGTM!

software/core/oqm-core-characteristics/installerSrc/oqm-core-characteristics.service (1)

9-9: LGTM!

software/core/oqm-core-api/src/main/java/tech/ebp/oqm/core/api/model/object/interactingEntity/InteractingEntity.java (1)

50-66: LGTM!

Also applies to: 67-107

Comment thread docs/documentation.md
Comment thread docs/sphinx/requirements.txt
Comment thread docs/sphinx/source/index.rst Outdated
Comment thread software/core/oqm-core-api/docs/sphinx-test/README.md
Comment thread software/core/oqm-core-api/docs/sphinx-test/source/features/index.rst Outdated
Comment thread software/core/oqm-core-api/docs/sphinx-test/source/usage/index.rst Outdated
Comment thread software/core/oqm-core-characteristics/app/UIs.py
@github-actions
Copy link
Copy Markdown

Code Coverage

Overall Project 62.32% 🍏
File Coverage
InteractingEntityType.java 100% 🍏
InteractingEntity.java 56.7% 🍏

@github-actions
Copy link
Copy Markdown

Code Coverage

Overall Project 62.12% 🍏
File Coverage
InteractingEntityType.java 100% 🍏
InteractingEntity.java 56.7% 🍏

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 2f916a3f-37cd-4493-8713-1203dbecae4c

📥 Commits

Reviewing files that changed from the base of the PR and between 6ea3f75 and 0ebea13.

📒 Files selected for processing (4)
  • deployment/Single Host/tests/src/test/java/stationCaptainTest/testResources/snhConnector/SnhConnector.java
  • software/core/oqm-core-base-station/src/main/resources/templates/webui/pages/you.html
  • software/core/oqm-core-characteristics/app/UIs.py
  • software/core/oqm-core-characteristics/installerSrc/installerProperties.json
📜 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). (2)
  • GitHub Check: CI-Pipeline / Integration Tests
  • GitHub Check: CI-Pipeline / Unit Tests
🔇 Additional comments (2)
software/core/oqm-core-characteristics/installerSrc/installerProperties.json (1)

3-3: LGTM!

Also applies to: 10-10

software/core/oqm-core-characteristics/app/UIs.py (1)

92-92: LGTM!

Also applies to: 97-97, 104-106, 112-112, 138-142

coderabbitai[bot]
coderabbitai Bot previously approved these changes May 25, 2026
@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

Overall Project 62.17% 🍏
File Coverage
InteractingEntityType.java 100% 🍏
InteractingEntity.java 56.7% 🍏

@GregJohnStewart GregJohnStewart merged commit 1917c52 into main May 25, 2026
6 of 9 checks passed
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.

1 participant