refactor: split termapp into proper internal packages

Replace monolithic internal/termapp with proper separation:
- internal/app: App struct, lifecycle, output loops
- internal/command: CommandHost interface, Dispatcher, handlers
- internal/tui: Model, hotkeys, panels, render (with panelError + border fixes)
- internal/console: RunConsole, escape parsing, entry point logic
- cmd/serialterminal: thin main() calling console.Run()

Eliminate global vars (cfg, sess, out) via dependency injection.
Break App->CommandDispatcher cycle via CommandHost interface.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
JiXieShi
2026-05-23 22:46:02 +08:00
parent daad844d4f
commit d8fc9d7374
22 changed files with 859 additions and 2080 deletions
+4
View File
@@ -45,6 +45,10 @@ func Init(cfg *config.Config) {
_ = pflag.Lookup("time") // mark for NoOptDefVal
}
// Normalize converts single-dash long flags (e.g. -port) to double-dash (--port).
// Parse wraps pflag.Parse.
func Parse() { pflag.Parse() }
// Normalize converts single-dash long flags (e.g. -port) to double-dash (--port).
func Normalize() {
known := map[string]bool{