diff --git a/CHANGELOG.md b/CHANGELOG.md index 0529f69..75ce92e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,58 @@ can change how things behave. It does not only add new things. ## [Unreleased] +## [0.11.3] - 2026-10-18 + +**No log keeps a password or a secret, and a bug report can hide your home folder and the +address of your radio.** Passwords, channel secrets, and pairing PINs went into the log and +the run log as plain text, and this release removes them, also from the old records. The new +**Anonymize** preference masks your personal details in the log and in the diagnostics. The +demo mesh now looks more like a real one. + +### Added + +- **The Anonymize preference masks your personal details in the log and in the + diagnostics.** It is in the Diagnostics group of the Preferences page, and it is off by + default. When it is on, MeshTerm masks the account name in your home folder, the + Bluetooth address of your radio, IP addresses, and the name of a network companion. Each + masked value keeps a few characters, in the way that a card number prints as + `51xx xxxx xxxx 4571`: `C:\Users\j*********u`, `DA:xx:xx:xx:7C:7C`, `192.xxx.x.180`, and + `m******e.local`. Thus a maintainer can still tell two radios apart. The log masks each + line as MeshTerm writes it, and a change applies at once. A line that MeshTerm wrote + before you turned the preference on stays as it is. +- **The diagnostics can be anonymized for one report.** `meshterm diagnostics --anonymize` + masks the report, and `--no-anonymize` shows it in full when the preference is on. On the + Diagnostics page, press `a` (Shift+F3 on the PicoCalc) to change between the two forms, + and `s` saves the form that you see. A new fact, `anonymized`, says which form a report + is. + +### Changed + +- **The demo mesh uses the regions of the real mesh.** The regions are `na`, `can`, + `onqc`, `qc`, and `yul`, each one inside the one before it. The `#montreal` channel sends + in `yul`. The invented regions are gone. +- **In the demo, messages arrive as they do on a real mesh.** Most messages arrive two + times, through the two repeaters that our node hears, and most paths use three bytes for + each hop. A node that our node mentions in a channel answers a few seconds later. TX + optimize now has something to find: the power of a repeater changes how well the next + node hears it. + +### Fixed + +- **The log and the run log no longer keep passwords or secrets.** At the DEBUG level, the + log file showed the parameters of each command as you typed them, and the run log in the + database kept them at each level. Thus they held room and admin passwords, channel + secrets, channel links, and the pairing PIN of `config set device_pin`. Each chat run also + stored the secret of its channel. Now MeshTerm writes `` in the place of each + one, in the log file, on the console, and in the run log, always. The rule finds a secret + by its name, by its form (a remote `password` command, or `secret=` in a link), and by + its value, when MeshTerm has read or sent that secret before. The first start of this + version removes the secrets that earlier versions stored in the run log. +- **The remote command line no longer stores a new password in its history.** The history + keeps `password` and `set guest.password` without the value, so ↑ still recalls the + start of the command. +- An error about the device PIN no longer repeats the PIN that you typed. + ## [0.11.2] - 2026-10-16 **In a chat, your messages show your name, MeshTerm has a demo mesh, and the colours are @@ -602,7 +654,8 @@ commands. MeshTerm is free and open source, under the Apache 2.0 licence. The licence does not cover the name and the logo (refer to `NOTICE`). A fork is welcome under its own name. -[Unreleased]: https://github.com/jpmartineau/MeshTerm/compare/v0.11.2...HEAD +[Unreleased]: https://github.com/jpmartineau/MeshTerm/compare/v0.11.3...HEAD +[0.11.3]: https://github.com/jpmartineau/MeshTerm/releases/tag/v0.11.3 [0.11.2]: https://github.com/jpmartineau/MeshTerm/releases/tag/v0.11.2 [0.11.1]: https://github.com/jpmartineau/MeshTerm/releases/tag/v0.11.1 [0.11.0]: https://github.com/jpmartineau/MeshTerm/releases/tag/v0.11.0 diff --git a/README.md b/README.md index 9e910cb..83229b8 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ run MeshTerm, the more the history of your mesh is worth. > change something, first say hello on [Discord](https://discord.gg/AZwe5Uvb3S). > [Read more about how the project is run](#how-this-project-is-run). -https://github.com/user-attachments/assets/dcc2bbb1-0158-424c-aa45-7f9f35f9f7e9 +https://github.com/user-attachments/assets/1f002379-96e3-46cd-ba25-7f3e918923ee

A video of less than two minutes, in the demo mesh over Montréal (meshterm --demo).

diff --git a/docs/cli/README.md b/docs/cli/README.md index cc197f7..c07f89b 100644 --- a/docs/cli/README.md +++ b/docs/cli/README.md @@ -1813,7 +1813,7 @@ code beside each link. The scripted face prints only the link. **`--json`:** ```json -{"page":"discord","title":"Join Discord","version":"0.11.2","text":"Join the Discord\n Questions, ideas, bug reports, and mesh talk.\n\n • https://discord.gg/AZwe5Uvb3S","links":["https://discord.gg/AZwe5Uvb3S"]} +{"page":"discord","title":"Join Discord","version":"0.11.3","text":"Join the Discord\n Questions, ideas, bug reports, and mesh talk.\n\n • https://discord.gg/AZwe5Uvb3S","links":["https://discord.gg/AZwe5Uvb3S"]} ``` | Field | Type | Meaning | diff --git a/docs/screenshots/cardputer-zero/menu.png b/docs/screenshots/cardputer-zero/menu.png index 694ca5b..ab532ca 100644 Binary files a/docs/screenshots/cardputer-zero/menu.png and b/docs/screenshots/cardputer-zero/menu.png differ diff --git a/docs/screenshots/picocalc-lyra/chat.png b/docs/screenshots/picocalc-lyra/chat.png index 751c1f2..ecefdbf 100644 Binary files a/docs/screenshots/picocalc-lyra/chat.png and b/docs/screenshots/picocalc-lyra/chat.png differ diff --git a/docs/screenshots/picocalc-lyra/map.png b/docs/screenshots/picocalc-lyra/map.png index 532585f..5385c73 100644 Binary files a/docs/screenshots/picocalc-lyra/map.png and b/docs/screenshots/picocalc-lyra/map.png differ diff --git a/docs/screenshots/picocalc-lyra/menu.png b/docs/screenshots/picocalc-lyra/menu.png index cc42486..0165b75 100644 Binary files a/docs/screenshots/picocalc-lyra/menu.png and b/docs/screenshots/picocalc-lyra/menu.png differ diff --git a/docs/screenshots/picocalc-lyra/paths.png b/docs/screenshots/picocalc-lyra/paths.png index 1ff89e9..d19856c 100644 Binary files a/docs/screenshots/picocalc-lyra/paths.png and b/docs/screenshots/picocalc-lyra/paths.png differ diff --git a/docs/screenshots/terminal/chat.png b/docs/screenshots/terminal/chat.png index c3dcab3..479ef10 100644 Binary files a/docs/screenshots/terminal/chat.png and b/docs/screenshots/terminal/chat.png differ diff --git a/docs/screenshots/terminal/map.png b/docs/screenshots/terminal/map.png index 7fde3f5..8e0150d 100644 Binary files a/docs/screenshots/terminal/map.png and b/docs/screenshots/terminal/map.png differ diff --git a/docs/screenshots/terminal/menu.png b/docs/screenshots/terminal/menu.png index b2d2178..7d0fae9 100644 Binary files a/docs/screenshots/terminal/menu.png and b/docs/screenshots/terminal/menu.png differ diff --git a/docs/screenshots/terminal/paths.png b/docs/screenshots/terminal/paths.png index 78c27d4..b3abc58 100644 Binary files a/docs/screenshots/terminal/paths.png and b/docs/screenshots/terminal/paths.png differ diff --git a/meshterm/__init__.py b/meshterm/__init__.py index 1895070..14e4879 100644 --- a/meshterm/__init__.py +++ b/meshterm/__init__.py @@ -6,7 +6,7 @@ Connects to a companion over USB, Bluetooth, or TCP. For Windows, macOS, and Lin from datetime import datetime -__version__ = "0.11.2" +__version__ = "0.11.3" __author__ = "Jean-Pierre Martineau" #: The year when MeshTerm was first published. The copyright span starts in this year.