gitlink-cli/cmd/interactive
刘焱 d12ce0fb57 fix(interactive): 命令面板选中带可选参数的命令也弹出表单
根因:updatePalette 只在有缺失的 Required flag 时才弹参数表单。但很多
命令的参数是'至少一个'关系(如 branch +batch-protect 的 --names/--from
二选一),无法单独标记 Required,导致 missingRequiredFlags 返回空,
表单被跳过,命令直接执行后报 'no branch names provided'。

修复:把表单触发条件从'有缺失必填参数'改为'命令有任何 flag'。这样
选中任何带参数的命令都弹表单,用户能填可选参数(留空即跳过)。
无 flag 的命令(如 wiki +list、repo +recommend)仍直接执行。

回归测试 TestPaletteSelectionOpensFormForOptionalFlags 验证模拟的
batch-protect(全可选参数)选中后进入 stateForm 而非直接执行。
2026-06-08 21:01:04 +08:00
..
all_commands_test.go test(interactive): smoke-test all registered commands execute without panic 2026-06-08 19:50:50 +08:00
e2e_command_test.go fix(interactive): initialize RuntimeContext via NewRuntimeContext to prevent nil-Client panic 2026-06-08 19:16:40 +08:00
executor.go fix(interactive): initialize RuntimeContext via NewRuntimeContext to prevent nil-Client panic 2026-06-08 19:16:40 +08:00
executor_runtime_test.go fix(interactive): initialize RuntimeContext via NewRuntimeContext to prevent nil-Client panic 2026-06-08 19:16:40 +08:00
executor_test.go feat(interactive): add command executor with stdout capture and flag parsing 2026-06-08 15:55:33 +08:00
form.go feat(interactive): add REPL with command palette, form, and cobra entry 2026-06-08 18:52:23 +08:00
interactive.go feat(interactive): 默认使用 table 格式输出,提升可读性 2026-06-08 19:53:20 +08:00
output_viewport_test.go feat(interactive): add scrollable viewport for long command output 2026-06-08 19:48:17 +08:00
palette.go fix(interactive): correct Esc behavior and direct-exec for optional flags 2026-06-08 18:59:00 +08:00
palette_optional_flags_test.go fix(interactive): 命令面板选中带可选参数的命令也弹出表单 2026-06-08 21:01:04 +08:00
repl.go fix(interactive): 命令面板选中带可选参数的命令也弹出表单 2026-06-08 21:01:04 +08:00
repl_trigger_test.go fix(interactive): trigger command palette immediately on '/' keypress 2026-06-08 19:09:02 +08:00