Skip to content

SSH client messages - #123

Merged
brainstorm merged 3 commits into
mainfrom
ssh_client_messages
Oct 15, 2026
Merged

brainstorm merged 3 commits into
mainfrom
ssh_client_messages

Conversation

@brainstorm

@brainstorm brainstorm commented Aug 9, 2026 •

Copy link
Copy Markdown
Owner

Will eventually fix issues #77 #122

@brainstorm
brainstorm requested a review from Autofix August 9, 2026 09:49
Comment thread docs/USING.md Resolved
Comment thread docs/USING.md Resolved
Comment thread docs/USING.md Resolved
Comment thread docs/USING.md Resolved
Comment thread src/app.rs Resolved
Comment thread src/notices.rs Resolved
@brainstorm brainstorm self-assigned this Sep 24, 2026
@brainstorm
brainstorm force-pushed the ssh_client_messages branch 2 times, most recently from 9778b20 to 2940648 Compare September 30, 2026 18:28
@brainstorm
brainstorm marked this pull request as ready for review October 4, 2026 12:09
@brainstorm

Copy link
Copy Markdown
Owner Author

@mmalenic @jubeormk1 ... thoughts about the new JSONL pretty-printed output? The idea is to make it readable for both humans and machines (i.e HIL testing parser):

image

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

🐰 Bencher Report

Projectssh-stamp
Branchssh_client_messages
Testbedci
Click to view all benchmark results
Benchmarkflash-bytesBenchmark Result
Measure (units) x 1e3
(Result Δ%)
Upper Boundary
Measure (units) x 1e3
(Limit %)
ram-bytesBenchmark Result
Measure (units) x 1e3
(Result Δ%)
Upper Boundary
Measure (units) x 1e3
(Limit %)
esp32-s2-saola/release/size📈 view plot
🚷 view threshold
883.15 units x 1e3
(+3.62%)Baseline: 852.31 units x 1e3
894.93 units x 1e3
(98.68%)
📈 view plot
🚷 view threshold
187.77 units x 1e3
(+1.09%)Baseline: 185.75 units x 1e3
195.04 units x 1e3
(96.27%)
esp32c5-devkitc/release/size📈 view plot
🚷 view threshold
1,003.81 units x 1e3
(-1.35%)Baseline: 1,017.56 units x 1e3
1,068.43 units x 1e3
(93.95%)
📈 view plot
🚷 view threshold
187.40 units x 1e3
(+0.47%)Baseline: 186.52 units x 1e3
195.85 units x 1e3
(95.69%)
esp32c6-devkitc/release/size📈 view plot
🚷 view threshold
951.82 units x 1e3
(-3.74%)Baseline: 988.83 units x 1e3
1,038.27 units x 1e3
(91.67%)
📈 view plot
🚷 view threshold
201.67 units x 1e3
(-0.28%)Baseline: 202.24 units x 1e3
212.35 units x 1e3
(94.97%)
esp32c61-devkitc/release/size📈 view plot
🚷 view threshold
970.00 units x 1e3
(-1.34%)Baseline: 983.17 units x 1e3
1,032.33 units x 1e3
(93.96%)
📈 view plot
🚷 view threshold
181.71 units x 1e3
(+0.52%)Baseline: 180.77 units x 1e3
189.81 units x 1e3
(95.73%)
waveshare-esp32-s3-touch-lcd-43/release/size📈 view plot
🚷 view threshold
911.22 units x 1e3
(+1.61%)Baseline: 896.77 units x 1e3
941.61 units x 1e3
(96.77%)
📈 view plot
🚷 view threshold
179.60 units x 1e3
(+0.42%)Baseline: 178.84 units x 1e3
187.79 units x 1e3
(95.64%)
🐰 View full continuous benchmarking report in Bencher

@brainstorm
brainstorm force-pushed the ssh_client_messages branch from ce78486 to f312972 Compare October 4, 2026 13:21
@jubeormk1

jubeormk1 commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

@mmalenic @jubeormk1 ... thoughts about the new JSONL pretty-printed output? The idea is to make it readable for both humans and machines (i.e HIL testing parser):

image

I agree that is human readable and provides heaps of structured information. I can definetly use that for e2e tests or any automated deployment.

Comment thread src/json.rs
//! consumer cuts our objects out of unrelated console noise such as the
//! ESP32 ROM bootloader prelude. [`SCHEMA`] is the format version: bumping
//! it signals an incompatible change; adding keys does not, so consumers
//! must ignore unknown ones.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think that it is a good idea and being an internal tool I am not foreseeing misuse. I remember though that in our security audit for the ota, unknown metadata fields was unwelcome.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Hmm, can you remember why? I can remove the schema field, but then we'd be locking ourselves into this "format", so it better be right on the first attempt :_S

OTOH, I'm not convinced this is final because there's "output fragmentation" across targets: the ESP32C3, for instance, does not have proper hardware atomics and it fallsback to "prose" format instead of the default JSONL :_/

There's some discussion of portable-atomics upstream:

rust-lang/log#678

But no proper stable cross-target solution right now :-/ ... also as briefly mentioned offline, defmt could help, but it's quite a lot of work to get all the other crates play well with it (i.e sunset not having defmt) and local re-tooling (since it's no longer a user-readable text, but binary encoding that needs to be translated somehow).

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Let's revisit this at a later time when #144 is merged in? Would you like me to take a refactoring stab at your code @jubeormk1 ? ;)

@brainstorm
brainstorm merged commit bcbd41d into main Oct 15, 2026
23 checks passed
brainstorm added a commit to jubeormk1/ssh-stamp that referenced this pull request Oct 21, 2026
Scenarios are now plain Rust functions selected with `--scenario`
(defaulting to `wifi-ap`), instead of a YAML list of actions, which drops
the serde_yaml dependency.

The SSID, PSK and AP address come from the `boot` and `net_up` JSON
objects the firmware prints since brainstorm#123, rather than scraping log lines, so
the AP address is no longer assumed. Objects from before the reset are
ignored, and an unknown JSON schema version fails the run.

Also align with the other commands: `--port` instead of `--prg-serial`,
and no separate join step since `wait_for_reachable` already joins. The
unrelated host.rs change is dropped.
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.

2 participants