- Demonstrates the use of 'proto.Clone()' to create a deep copy
of a protobuf message before appending it to a slice.
- Contrasts this with the incorrect method of appending a pointer,
which leads to unintended shared state.
- Modify the logging system to store all conversation text, code
snippets, and other content in external files within the log/content/
directory.
- The main .text log file now only contains metadata and pointers
to these external content files.
- Update the Go log formatter to read and assemble this distributed
log format for display. This makes the entire system more robust
and avoids parsing/escaping issues.
- The root cause of the 'mpsse_flush' and libusb errors was an
incorrect reset configuration.
- Use 'reset_config srst_only separate' to correctly inform OpenOCD
that the JTAG (nTRST) and system (nSRST) resets are independent.
- This allows the 'init' command to reliably establish JTAG communication
before a system reset is issued.
- The 'srst_assert_width' flag is not supported in 0.12.0.
- Revert to using manual 'ftdi_set_signal' commands to pulse the
nSRST line, which is the correct method for older OpenOCD versions.
- This should fix both the syntax error and the 'mpsse_flush' timeouts.
- Add explicit 'adapter speed' to fix low-speed warning.
- Separate nSRST and nTRST handling in 'reset_config' to prevent
JTAG communication timeouts ('mpsse_flush' errors).
- Use 'reset halt' to reliably gain control of the target.
- Add explicit timings to the reset signal configuration to
prevent timeouts and improve stability.
This script automates the process of unbinding and binding the FTDI
USB driver, which is useful for restoring serial console access after
running tools like OpenOCD.
- Update the log format to reference external .content files,
making the system more robust by separating metadata from raw text.
- Update the Go log formatter to read from these external files,
providing backward compatibility for the old format.
- Add a comprehensive log and content files for the entire session.
- Introduce a new protobuf text format for logs that includes structured
tool call data (command, stdout, stderr, etc.).
- Create a new Go program, format_rich_log.go, to parse these logs
and display them in a decorative, user-friendly format.
- Add example rich log files for testing.
- Add Linux-specific cgo functions to set and get process titles.
- Add a demonstration of getting a child process's PID.
- Add an example of using 'exec -a' to set a child process title.