Skip to content

优化 CLI 触发提示交互#33

Merged
noear merged 6 commits into
opensolon:mainfrom
xlz-star:main
Jun 10, 2026
Merged

优化 CLI 触发提示交互#33
noear merged 6 commits into
opensolon:mainfrom
xlz-star:main

Conversation

@xlz-star

@xlz-star xlz-star commented Jun 4, 2026

Copy link
Copy Markdown

Closes #34

变更内容

  • 增强 CLI 输入中 /@$! 的触发提示体验,输入触发符后即可展示候选提示。
  • @ 调整为工作区文件提示,$ 保持技能提示,/ 保持命令与模型提示。
  • 增加 ! 本地命令模式入口,并在开屏 Tips 中补充提示。
  • 删除触发符时关闭候选提示,避免提示面板残留。
  • 合并上游 main 并解决 API 变更冲突,按当前依赖可用 API 对齐模型选择上下文与工作区读取。

验证

  • mvn -q -pl soloncode-cli -am clean test -DskipTests

xlz-star added 3 commits June 4, 2026 09:47
实现 ! 前缀系统命令执行能力,支持 CLI、Web 和桌面 WebSocket 入口。

命令会按当前平台选择合适 shell,加载 zsh/bash/fish/PowerShell/cmd 的用户环境,并将执行结果写入会话上下文。

新增 ShellCommandSupportTest 覆盖命令识别、上下文注入、空命令、shell rc/profile 加载以及 Windows PATH 合并逻辑。

已验证:ShellCommandSupportTest 通过、跳过测试打包通过,并完成 CLI 与 Web 端 !command -v rtk 实测。
参考 Codex CLI 的输入体验,增强 /、@、$、! 在终端输入中的即时提示效果。

@ 改为工作区文件提示,$ 保持技能提示,/ 保持命令与模型提示,! 增加本地命令模式入口。

补充删除触发符时关闭候选提示的逻辑,并更新开屏 Tips 文案。
将 opensolon/soloncode 的 main 分支合并到 codex/cli-trigger-hints,保留斜杠、艾特、刀乐、叹号触发提示和本地命令模式相关改动。

根据当前 solon-ai-harness SNAPSHOT 的真实 API 调整模型选择上下文常量与工作区读取方式,确保合并后 soloncode-cli 可以通过编译验证。
@noear

noear commented Jun 9, 2026

Copy link
Copy Markdown
Member

感谢提交代码。


目前正在为 solon v4.0 做适配。。。等我调整好后,麻烦你再同步下代码,再适配下。


//真奇怪,这个仓库的变化,怎么没有发邮件通知我的。。。不好意思,回复晚了

@xlz-star

xlz-star commented Jun 9, 2026

Copy link
Copy Markdown
Author

好的,将会关注群里消息 :)

@noear

noear commented Jun 9, 2026

Copy link
Copy Markdown
Member

solon v4.0 已发布。。。soloncode 也推送最新代码。。。你先同步下代码,再优化下适配。

xlz added 2 commits June 10, 2026 09:22
# Conflicts:
#	soloncode-cli/src/main/java/org/noear/solon/codecli/portal/web/WebController.java
@xlz-star

Copy link
Copy Markdown
Author

已同步上游最新代码并完成 Solon v4.0 适配,相关改动已推送到 fork 的 main 分支。\n\n本地验证已通过:\n\nbash\nmvn -pl soloncode-cli -am test\n\n\n麻烦再看下。

@noear

noear commented Jun 10, 2026

Copy link
Copy Markdown
Member

@ 如果果做为文件的提示符,那子代理的怎么样?。。。能不能,“同时”做为子代理和文件的提示符?


另外,用 ! 去执行原生命令。。。“执行原生命令”是否有必要?目前有哪些同行支持的?

@xlz-star

Copy link
Copy Markdown
Author

已调整:@ 触发补全时会同时展示子代理和文件/目录候选,并在显示文案里标明 子代理文件目录

提交解析逻辑保持现有行为:首个 @xxx 精确命中已注册 agent 时按子代理处理;否则仍保留为文件引用/普通输入。

已补充 CliCompleterTest 覆盖:

  • @ 同时补全 agent 与文件/目录
  • @rev 按前缀过滤 agent

本地验证已通过:

JAVA_HOME=/Library/Java/JavaVirtualMachines/graalvm-17.jdk/Contents/Home PATH=/Library/Java/JavaVirtualMachines/graalvm-17.jdk/Contents/Home/bin:$PATH mvn -pl soloncode-cli -am test

结果:Tests run: 55, Failures: 0, Errors: 0, Skipped: 0

@xlz-star

Copy link
Copy Markdown
Author

claude code和codex都支持,在worktree场景下,执行pwd或者要打开vscode等小命令,可以快速执行,不用消耗token(其实场景也不多,只是用的时候发现没有就想给他加上😂)

@xlz-star

Copy link
Copy Markdown
Author

另外发现cli环境下输出没有markdown渲染,是有意这样设计还是还没做这个功能呢

@noear noear merged commit 98e4339 into opensolon:main Jun 10, 2026
@noear

noear commented Jun 10, 2026

Copy link
Copy Markdown
Member

java 的 cli 开发不好搞。。没有好的 tui 框架(所以 md 渲染就不搞了,如果你有兴趣可以研究下)

@noear

noear commented Jun 10, 2026

Copy link
Copy Markdown
Member

你这个测试不够,没有人测过。。。有几个问题:

  1. "/c" 输入后,没有动态过滤
QQ_1781100876899
  1. @XX” 颜色都变了
QQ_1781100935216
  1. 这里只有 file
QQ_1781100990940

@xlz-star

Copy link
Copy Markdown
Author

。。还真没注意到,马上修复重新提pr,抱歉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

优化 CLI 特殊触发符提示交互

2 participants