Repository navigation
Session Handoff [hw-cli]: hw CLI separated; upstream dev defect PRs #27-#32, #35 #36
Copy link
Copy link
Closed
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Description
Next steps, in priority order
- Close rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35's four open documentation points, which the PR body lists: the stale
ZephyrRTCDiscover.hheader contract; the "restored" log on the save-path re-probe; and two commit-message inaccuracies (the residual EEPROM risk is wider than "0Eh odd"; Date and Month reset to 01h, not 0). Done means: fixed onwork/rak4631-rak12002-rtcthroughlocal-strict-review, pushed, the PR body's open list emptied, and Copilot's headline on9e9452fanswered with the fixing SHA. - Read CodeRabbit's results for Add the
hwhardware-report CLI command (rebased, hw CLI only) #16, Addhwhardware-report CLI command (iteration branch) #1 and rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35. They were requested one per hour by a bounded background job (the OSS plan allows one review per hour per repository), which may not survive the restart: see External blockers. Done means: each PR showsNo actionable commentsfor its head in the edited CodeRabbit summary comment, or each finding is closed perpr-review-conduct. - Upstream, one PR at a time, only on the maintainer's explicit go-ahead naming it. For each approved fork PR (companion: mark a CLI reply cut to the app frame (iteration branch) #27 to companion: never treat an over-the-air CLI command as local (iteration branch) #32, rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35), cut a clean branch from the synced mirror
dev(upstream/devwasf9d01cf; fetch and compare first), squash the dirty branch's net change onto it with the "Proposed upstream PR" text from the fork PR body, and open it againstliquidraver/ZephCoredev. The fork PRs stay open and are never merged (hubupstream-contribution-workflow). hwCLI on hardware (Addhwhardware-report CLI command (iteration branch) #1, Add thehwhardware-report CLI command (rebased, hw CLI only) #16) is still not re-run since the separation. The RAK4631 is attached (see State). Done means eachhwsubcommand answers asdocs/Repeater_CLI_commands.mdsays.
External blockers
- Maintainer go-ahead for every upstream PR (step 3), and for any write to
meshcore-dev/MeshCore. - The CodeRabbit queue ran as a background shell job in the session that wrote this. If it did not survive the Claude restart, request
@coderabbitai reviewby hand withpr_review.py comment, no more than one an hour across the repository.
Internal dependencies
- Step 3 for rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35 waits on step 1, so the squashed upstream text carries no known-inaccurate statement.
- rtc: do not adopt a chip whose status read failed (iteration branch) #30 (fork issue RTC probe adopts a chip whose status-register read failed, then writes time into it #23) and rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35 both edit
rtc_probe()inadapters/clock/ZephyrRTCDiscover.c. Whichever goes upstream second needs rebasing onto the first. Add thehwhardware-report CLI command (rebased, hw CLI only) #16'shwCLI touches the same file, so it also conflicts with both once they land. - server: leave room for a local "xx|" prefix in the CLI reply buffer (iteration branch) #28 (local
xx|prefix room) and Add thehwhardware-report CLI command (rebased, hw CLI only) #16'shwboth reserve prefix room. If server: leave room for a local "xx|" prefix in the CLI reply buffer (iteration branch) #28 lands first,hw's own local prefix deduction becomes redundant but stays harmless.
State (re-derive at resume: git worktree list, gh pr list)
- Fork
dev=upstream/dev=f9d01cfwhen this was written. hwCLI: Addhwhardware-report CLI command (iteration branch) #1work/hw-cli(the primary west workspace checkout) atad70d15, and Add thehwhardware-report CLI command (rebased, hw CLI only) #16hw-cli-onlyatcc54670. The trees are byte-identical and hold thehwCLI alone.- Defect iteration PRs, all open into the fork's
dev, one worktree each named after the branch:
| PR | Branch | Fork issue |
|---|---|---|
| #27 | work/companion-cli-reply-truncation |
#3 |
| #28 | work/cli-local-prefix-reply-room |
#26 |
| #29 | work/esp32-orphan-cpu-clock-comments |
#13 |
| #30 | work/rtc-probe-failed-status-read |
#23 |
| #31 | work/cli-remote-reply-echo-cap |
none, by the maintainer's choice |
| #32 | work/companion-ota-cli-never-local |
none, by the maintainer's choice |
| #35 | work/rak4631-rak12002-rtc |
#4, #33 |
- Review state: companion: mark a CLI reply cut to the app frame (iteration branch) #27-companion: never treat an over-the-air CLI command as local (iteration branch) #32 have clean Copilot and CodeRabbit rounds on their heads. rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35 has a Copilot round on its head with no new findings plus the four open documentation points; CodeRabbit is pending. Add
hwhardware-report CLI command (iteration branch) #1 and Add thehwhardware-report CLI command (rebased, hw CLI only) #16 have their Copilot findings fixed, are attested, and CodeRabbit is pending. Copilot coverage reads "unstated" on several PRs, which is acceptable on this fork. - Hub tooling ran from a private detached worktree of
ptr727/ProjectTemplateatorigin/main6b1b147. - Hardware:
- The RAK4631 runs rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35's debug repeater build: SoCal, 1 dBm, handle
lpxz, repeat and adverts off. Its RAK12002's RV3028 EEPROM holds 37h BSM=01, TCE=1, TCR=00 and 35h CLKOE=0, committed by that build. - The ThinkNode M7 is back on Elecrow ThinkNode M7: board, CH390 ethernet driver, wired TCP companion (iteration branch) #17
a7e2698, after the Zephyr session's T15-T17 rounds (evidence under the M7 retest worktree'sladder-evidence/T15/). - The Heltec V4-R8 is untouched.
- The RAK4631 runs rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35's debug repeater build: SoCal, 1 dBm, handle
- A separate MeshCore session was briefed on RV3028: backup switchover and trickle charging written to RAM only, so they revert at the next midnight; 0xB4 also overwrites a calibration bit meshcore-dev-MeshCore#10 and owns that work.
The parked decision queue
0 issues carry a decision label (this fork has none). Open maintainer questions, ranked:
- Upstream go-ahead per fork PR (companion: mark a CLI reply cut to the app frame (iteration branch) #27-companion: never treat an over-the-air CLI command as local (iteration branch) #32, rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35).
- First CLI command after opening the USB serial port returns "Unknown command" #6 does not reproduce on
dev. Close it? - TX power accepts -9..0 dBm everywhere, though 1 dBm is the floor #19, TX power -9..0 dBm: the maintainer chose "leave open, no PR".
What the last round did
- Separated the
hwCLI from upstreamdevdefects. Addhwhardware-report CLI command (iteration branch) #1 and Add thehwhardware-report CLI command (rebased, hw CLI only) #16 now carry onlyhw. The fixes for Companion CLI replies over 175 bytes are truncated silently #3, RAK4631 never uses a fitted RAK12002 RTC #4 and RTC probe adopts a chip whose status-register read failed, then writes time into it #23 moved to their own branches through append-only commits (bf3e96a,1dc07d6). Several local passes and a Copilot round fixedhwdocumentation that did not match the code. - Opened the defect iteration PRs companion: mark a CLI reply cut to the app frame (iteration branch) #27-companion: never treat an over-the-air CLI command as local (iteration branch) #32 and rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35, each with "Proposed upstream PR" text in Problem / Solution / Testing shape.
- Found two defects during review, both without fork issues by the maintainer's choice:
- cli: cap the replies that echo a remote command (iteration branch) #31: remote admin replies that echo the command overran the 161-byte buffer.
- companion: never treat an over-the-air CLI command as local (iteration branch) #32: on a companion, an over-the-air CLI command with timestamp 0 was treated as local, bypassing the allow-list.
- Verified on the RAK4631:
- companion: mark a CLI reply cut to the app frame (iteration branch) #27: a cut reply ends in
...on a UTF-8 boundary. - rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35: a 30 s power cut is survived once the RV3028 backup switchover is committed to EEPROM.
- companion: mark a CLI reply cut to the app frame (iteration branch) #27: a cut reply ends in
- Closed ESP32-S3 builds fail to link on dev 5b77947: l32r literal after use in the Xtensa double-exception vector #24: a worktree-layout artifact, not a defect.
- Closed tcp_work stack overflow under TCP load: Ethernet fixed in #17, WiFi companion unmeasured #25: the ESP32 WiFi driver already gives
tcp_work2048 bytes. - Filed RV3028 loses the time on a power cut: ZephCore never enables its backup switchover #33 (the RV3028 switchover, fixed in rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35) and RTC probe assumes 24-hour mode: an RV3028 left in 12-hour mode is misread or never adopted #34 (the RTC probe assumes 24-hour mode).
- Filed RV3028: backup switchover and trickle charging written to RAM only, so they revert at the next midnight; 0xB4 also overwrites a calibration bit meshcore-dev-MeshCore#10: MeshCore writes RV3028 37h to RAM only, so it reverts at midnight, and
0xB4overwrites the calibration bit. - Served the Zephyr session's T15, T16 and T17 M7 rounds (CH390 driver), reporting to it directly.
What not to repeat
- Never trust an ESP32 link result from a worktree whose
zephyr/is a symlink. The archive gets a mangled name, so the linker script's IRAM rules miss it and the link fails. That cost ESP32-S3 builds fail to link on dev 5b77947: l32r literal after use in the Xtensa double-exception vector #24's whole investigation. ExportZEPHYR_BASEto the resolved path. - Never change a board's role without baking the frequency and name defaults into the build. A role switch formats both roles' prefs. The RAK4631 came up as a repeater on 869.618 MHz (at 1 dBm) this round.
- Never take a review's datasheet claims on recall. Twice a reviewer's or my own recollection was wrong: the 1 kΩ trickle resistor (it is 3 kΩ), and "level switching is the vendor's advice for a supercap" (§7.3 says direct switching). Read the manual text; the maintainer's copies are in the home directory.
- Never run
local_review.py statuswith build output sitting untracked in the worktree. Build.diagfiles shifted the digest and blocked an attest. Keep build summaries inside the build directory.
New learnings
- The symlinked-zephyr ESP32 layout, the role-switch prefs wipe, and the RAK4631's intermittent 1200-baud touch are recorded in this host's project memory.
- RV3028 configuration must be committed to EEPROM, by the manual's §4.6.3/§4.6.9 procedure. It is recorded in rak4631: use a fitted RAK12002 RTC, and keep its backup switchover enabled (iteration branch) #35, RV3028 loses the time on a power cut: ZephCore never enables its backup switchover #33 and MeshCore Tracking: hw hardware-report command — state and handoff #10.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
handoffA link in the session handoff chain, one open issue per trackA link in the session handoff chain, one open issue per track
Activity
ptr727 commentedon Oct 4, 2026
Parked decisions, answered 2026-10-03: #6 closed (does not reproduce on
dev). The upstream go-ahead per fork PR is deferred until after the restart and stays at the top of the next steps.ptr727 commentedon Oct 4, 2026
Continued in #37, round 3 on track
hw-cli.