Add a read-only monitor that actually captures the native console - #30
Merged
Merged
Conversation
debug-tee from the CLI closed the private sidecar immediately, so the tee log stayed empty. monitor holds the port without REPL or DTR/RTS, and close() no longer deadlocks once a stdout reader is active.
The tee lives in the session, not in the socket that started it. The subprocess client sends debug_tee_stop on its own pipe when the capture ends; the RPC client just closed its stream, so with the extension running -- which is the path get_client() prefers -- monitor --seconds N returned and left the sidecar reading that COM forever: port held against the next connect, log growing, and nothing said so. The new test drives a real socket server and asserts both methods arrive. Against the previous commit it sees only debug_tee_start.
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
mpftp monitor COM4 --seconds N --log-path …: read-only capture that holds the sidecar open so panic /stderr/ ESP_LOG actually land in the log.debug-teestill returns immediately and kills the private sidecar, which is why those logs were empty.SidecarClient.close()no longer deadlocks after a streaming capture: once a stdout reader is active, close terminates the process instead of fighting the pipe.Test plan
PYTHONPATH=cli/src python3 -m unittest discover -s cli/tests(267 tests)mpftp monitor COM4 --seconds 100captured pair_loop +[spremote]lines on an autostarted P4 without dropping it to the REPLmpftp monitor --helpshows the new commanddebug-teehelp still warns that the CLI one-shot cannot keep a tee alive