- Remove 'g' and 'shift+g' from viewport handler (conflicted with
text input; home/end keys already provide same functionality)
- Add rawValue field to modeItem to preserve EndStr control chars
during TUI panel editing (fixes %q round-trip corruption)
- Add validation for empty charset names and timefmt fields
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Consolidate remaining package main files into internal/termapp for
clean separation: cmd/serialterminal/ is the sole entry point.
Update .goreleaser.yaml to build from ./cmd/serialterminal.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Replace complex ptrVal/Val/Flag type machinery with direct pflag
calls. Move flag logic and interactive wizard to internal/flag
package. Eliminate ~200 lines of flag boilerplate.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Move serial port, trzsz filter, and pipe lifecycle into
internal/session.SerialSession. Replace 8 global I/O vars
(serialPort, trzszFilter, stdinPipe, stdoutPipe, clientIn,
clientOut, termch, termchOnce) with single sess variable.
Delete utils.go.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Move Config struct to internal/config with exported fields. Replace
global var config with package-level cfg pointer. Add OpenLogFile to
config package. Add type alias Config = appconfig.Config in main
package for backward compatibility.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Extract ConvertChunk/FormatHexFrame into pkg/charset (zero external deps).
Extract UIEvent/UIEventKind/UIPanelKind types into internal/event.
Update all references across main package to use qualified imports.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>