Repository navigation
refactor(domain): store operation mode as typed enum - #215
Conversation
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Max errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|---|
| ✅ ACTION | actionlint | 8 | 0 | 0 | 0.78s | ||
| ✅ BASH | bash-exec | 2 | 0 | 0 | 0.64s | ||
| ✅ BASH | shellcheck | 2 | 0 | 0 | 0.7s | ||
| ✅ BASH | shfmt | 2 | 0 | 0 | 0.01s | ||
| ✅ C | clang-format | 1 | 0 | 0 | 0.04s | ||
| ✅ C | cppcheck | 1 | 0 | 0 | 0.04s | ||
| ✅ C | cpplint | 1 | 0 | 0 | 0.33s | ||
| ✅ CPP | clang-format | 90 | 0 | 0 | 0.78s | ||
| ✅ CPP | cppcheck | 90 | 0 | 0 | 7.04s | ||
| ✅ CPP | cpplint | 90 | 0 | 0 | 8.5s | ||
| ✅ EDITORCONFIG | editorconfig-checker | 275 | 0 | 0 | 0.48s | ||
| ✅ JSON | jsonlint | 6 | 0 | 0 | 0.13s | ||
| ✅ JSON | v8r | 6 | 0 | 0 | 4.05s | ||
| markdownlint | 107 | 4 | 0 | 5.19s | |||
| ✅ YAML | yamllint | 26 | 0 | 0 | 0.96s |
Detailed Issues
⚠️ MARKDOWN / markdownlint - 4 errors
.opencode/skills/web-ui/SKILL.md:34 error MD028/no-blanks-blockquote Blank line inside blockquote
docs/superpowers/plans/2026-08-10-olimex-c6-local-ui-implementation.md:106:401 error MD013/line-length Line length [Expected: 400; Actual: 452]
docs/superpowers/plans/2026-08-16-norvi-button-calibration.md:7:401 error MD013/line-length Line length [Expected: 400; Actual: 412]
openspec/changes/controller-architecture-contracts/design.md:171:401 error MD013/line-length Line length [Expected: 400; Actual: 448]
Notices
MAKEFILE, MAKEFILE_CHECKMAKE, MARKDOWN_MARKDOWN_LINK_CHECK. See Removed linters to find their replacements.
See detailed reports in MegaLinter artifacts
Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)
- Documentation: Custom Flavors
- Command:
npx mega-linter-runner@10.1.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,BASH_EXEC,BASH_SHELLCHECK,BASH_SHFMT,C_CPPCHECK,C_CPPLINT,C_CLANG_FORMAT,CPP_CPPCHECK,CPP_CPPLINT,CPP_CLANG_FORMAT,EDITORCONFIG_EDITORCONFIG_CHECKER,JSON_JSONLINT,JSON_V8R,MARKDOWN_MARKDOWNLINT,YAML_YAMLLINT

Show us your support by starring ⭐ the repository
Native Test Coverage
Report from native unit tests (ASan + gcov). |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
2 similar comments
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Native Test Coverage
Report from native unit tests (ASan + gcov). |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Native Test Coverage
Report from native unit tests (ASan + gcov). |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Native Test Coverage
Report from native unit tests (ASan + gcov). |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Native Test Coverage
Report from native unit tests (ASan + gcov). |
2 similar comments
Native Test Coverage
Report from native unit tests (ASan + gcov). |
Native Test Coverage
Report from native unit tests (ASan + gcov). |
Co-authored-by: stritti <stritti@users.noreply.github.com>
91d7403 to
8e55172
Compare
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Native Test Coverage
Report from native unit tests (ASan + gcov). |
Summary
Adopts the typed
OperationModecontract from #214 insideOperationModeNodewhile preserving all existing String-facing APIs and external values.Changes
_modeasOperationModeinstead of ArduinoStringsetMode(OperationMode, source)andgetTypedMode()setMode(String)/getMode()/getModeCStr()as compatibility boundariesauto,manu,boost,timer)Why
This removes protocol strings from the mutable domain state without forcing MQTT/Web/UI call sites to migrate in the same PR. It is the next small step toward typed commands and a pure application runtime.
Compatibility
No MQTT, Web or NVS value changes. The historic
manurepresentation remains unchanged.Stacked on #214.