fix: persist Auto Acknowledge pattern testing text#1881
Merged
Conversation
) The "Pattern Testing" textarea was purely local state with a hardcoded default, so edits were lost on page reload and never triggered the SaveBar. Add autoAckTestMessages as a persisted setting following the same pattern as all other autoAck* settings. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Claude finished @Yeraze's task —— View job Code Review Complete ✅Reviewing PR #1881 for code quality, best practices, potential bugs, performance, security, and test coverage. Todo List
Review FeedbackOverall Assessment: ✅ APPROVED The implementation correctly follows the established pattern for persisted autoAck* settings. The code quality is good and the changes are minimal and focused. ✅ Code Quality & Best Practices
✅ No Bugs Identified
✅ Performance Considerations
✅ Security Review
✅ Test Coverage Assessment
📋 Minor Observations
✅ Architecture ComplianceFollows MeshMonitor's established patterns:
Recommendation: MERGE - This is a clean, focused implementation that correctly implements the requested persistence functionality while following all established patterns. |
dpaschal
pushed a commit
to dpaschal/meshcore-monitor
that referenced
this pull request
Mar 17, 2026
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Yeraze
added a commit
that referenced
this pull request
Jun 23, 2026
…) (#3679) * feat(meshcore): region discovery from nearby repeaters — phase 3 (#3667) Completes #3667: discover the regions/scopes served by nearby repeaters so users can pick a valid scope instead of guessing. Mechanism (firmware docs/payloads.md): a "regions request" is an ANON_REQ sub-type 0x01 sent to a repeater (CMD_SEND_ANON_REQ = 57); the repeater replies via PUSH_CODE_BINARY_RESPONSE (0x8C) with clock(4 LE) + a NUL-terminated, comma-separated ASCII list of region names ('*' = legacy null region). meshcore.js (ours and upstream) doesn't expose CMD 57, but it DOES parse the 0x8C reply, so we build the raw frame and match the reply by tag in the native backend — no fork change. - Native backend: `request_regions` bridge command — builds [57][pubkey:32][0x01] [0x00], awaits Sent(tag)+BinaryResponse(0x8C), parses clock + region names. - Manager: `discoverRegions()` — queries each repeater/room-server contact sequentially (tag-correlation requires it), de-dupes, drops the '*' wildcard, skips non-responders. Zero-hop/direct request → no scope assertion needed. - Route: POST /api/sources/:id/meshcore/regions/discover. - UI: "Discover regions from repeaters" button in the default-scope section; discovered regions render as chips that fill the scope field on click. - Tests: native-backend frame layout + reply parsing (clock/NUL/CSV); manager dedupe/sort, '*' filtering, non-repeater skip, non-responder tolerance. Coverage depends on repeaters in the contact list — the UI hints to run "Discover Repeaters" first (mirrors the official app; see upstream #1881). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011JEaCGwY9Wz8jeV4e22GW4 * fix(meshcore): address phase 3 review — tag race, permission, logging (#3667) Address Claude review feedback on PR #3679: - Harden request_regions reply matching: only accept a BinaryResponse once the Sent ack has set our tag (tag===null no longer resolves on a stray reply). - /regions/discover now requires 'nodes' 'write' (it transmits radio frames), matching POST /discover instead of the weaker 'read'. - discoverRegions logs at debug when a repeater returns an error response (not just on throw). - UI: cross-disable the node-discovery and region-discovery buttons so overlapping radio requests can't be triggered; clear the suggestion chips once a scope is saved. - Test: discoverRegions returns empty (and queries nothing) on a non-companion device. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011JEaCGwY9Wz8jeV4e22GW4 --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
autoAckTestMessagesas a persisted setting so the "Pattern Testing" textarea in Auto Acknowledge survives page reloads and triggers the SaveBar on editautoAck*setting (UIContext state → App.tsx load → component prop → save POST → server whitelist)Closes #1879
Test plan
🤖 Generated with Claude Code