1 Commits
Author SHA1 Message Date
MarekWoandClaude Opus 5.5 6451cef2ea feat: client support for MeshCore firmware 1.18
Firmware 1.18 gives contact flag 0x10 a security meaning (the contact may
run any companion CLI command over the mesh, unseen by the app), forwards a
refused remote command as a txt_type 3 DM, and serves the companion CLI over
the app link (CMD_RUN_CLI_COMMAND, fw_ver_code 14).

- Remote CLI permission is visible: red badge on the contact card and in
  the DM contact-info window. Console change_flags shows flags in words,
  accepts 0x.., reports old/new, warns on grant, restores the in-memory
  record when the device refuses, and invalidates the contacts cache.
- txt_type 3 DMs are stored with their type, rendered as "Remote CLI
  command - not executed" with the command verbatim, logged at WARNING,
  and the notification says so.
- New console command `cli <command>`, gated on fw_ver_code >= 14 and on
  the library having run_cli_command (2.3.9+, requirements untouched).
  poweroff/shutdown refused; reboot and `set name`/`set path.hash.mode`
  routed through the existing commands so caches follow.
- Re-adding a contact the device holds (a rename) starts from the device
  record, so its flags and path survive instead of being reset to zero.
- Fix: approving a pending contact raised KeyError('out_path') for every
  record not produced by a NEW_CONTACT event (advert-injected entries and
  the DB fallback). Records are now completed before add_contact(), and a
  device ERROR is reported instead of a false success.
- set_channel refuses a named slot with an all-zero key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 16:06:16 +02:00