Bouffalo makes chips, not boards. This question is probably better asked of Sipeed. Looks like they've dismantled their BBS, but other support options are listed at https://wiki.sipeed.com/en/faq.html
I think, however, that what you're describing is just reality for any chip that uses internal USB/serial. When it resets, so does the internal USB and thus, your connection drops. You can solve this by wiring your debugger to a "real" UART that'll survive the reset, but that can be a stretch on those tiny boards. Perhaps moving to JTAG debugging will be more forgiving if that's an option. Those tools tend to be more forgiving of devices coming and going.
Alternately, what I do (for a different chip on a different SDK) is to just script the build/upload stage and then write a loop that tries the reconnect to start reading the serial port so my serial console gets shown again. The relevant parts of my script look something like:
# Rescan on most calls to see if port got renamed.
if [ ! -c $PLATFORMIO_UPLOAD_PORT ];
then
export PLATFORMIO_UPLOAD_PORT=$(ioreg -l | awk -F\" '/IOCalloutDevice.*wchusb/ {P=$4}; END{print P}')
fi
~/.platformio/penv/bin/pio run $* --target upload -e $E
while :
do
(stty 115200; cat -u ) < $PLATFORMIO_UPLOAD_PORT || exit 1
# Could be ~/.platformio/penv/bin/pio monitor in my case. Just whatever it takes to read the `console.`
done
This example is from an ESP32-S3 project on PlatformIO, so the details are almost 100% wrong for you., but it's intended to serve as inspiration. Just script the build/load and then immediately loop with a moderately aggressive retry to wait for the port to reappear.
Good luck.