Skip to content

v1.8.2 —— 竞态修复 + 日志统一

Choose a tag to compare

@javaside javaside released this 09 Aug 17:39
· 10 commits to main since this release

springai-agentdemo v1.8.2

v1.8.1 基础上的缺陷修复版(patch)。核心交付物仍是终端编码智能体 springai-code-tui。本版修复一处低概率并发竞态(忙时提交在回合边界被错路由),并统一日志级别策略与系统提示工具访问边界措辞。无破坏性变更,无新增依赖。

下载物仍是两个自包含运行包(解压即用,无需构建):

  • springai-code-tui-1.8.2-dist.tar.gz(macOS / Linux 首选)
  • springai-code-tui-1.8.2-dist.zip(Windows 首选)

两者内容一致:启动脚本(bin/)+ 主 jar + 全部运行期依赖(lib/)+ LICENSE/NOTICE/README。运行时界面版本标识为 v1.8.2

完整功能全景与⚠️安全声明见 v1.3.0 发布说明v1.0.0 发布说明;本文只列出相对 v1.8.1 的变化。


🐛 修复

忙时提交在回合边界不再被误路由为「排队」

现象:在模型回复的最后一刻发送消息,偶尔该插话的消息被送进排队队列,要等到下一次用户主动发消息才被捎走——像是「Enter 没反应」。

根因:路由逻辑先读 busy()、再读 isIdle(),若 Reactor 线程恰好在两次读取之间结束回合,同一次 Enter 会先看到「忙」、随后又看到「空闲」,最终误走排队分支而非插话。

修复:新增 ConversationState.submissionSnapshot() 原子快照(synchronized,一次读取同时拿到 busyactiveTurn),路由决策全部基于这一份快照,消除竞态窗口。配套单测 submissionUsesOneRoutingSnapshot 钉住:快照之后回合结束,路由结果仍为插话。


🔧 工程

日志级别统一为 INFO

生产代码中原本散落的 debug(...) 调用(插话送达、权限审批、后台任务生命周期、软链失败、权限规则回写、建议规则放弃)统一升为 info,与文档声明的「生产最低 INFO」策略对齐。

  • CodingAgent 错误路径(同步组装出错、回合 doOnError)补 error 级日志,便于按 turnId 排障。
  • Reactor subscribe 加空 errorConsumer,消除 onErrorDropped / ErrorCallbackNotImplemented 噪音。
  • SubagentRunner 后台任务生命周期新增三条 INFO(「已提交」「开始执行」「执行完成+耗时 ms」),配套单测断言:结果文本不夹带生命周期日志,日志不含 DEBUG。
  • config.env.example、启动脚本说明补充 CODETUI_BACKGROUND_CONCURRENCY / CODETUI_TASK_OUTPUT_TIMEOUT_SECONDS 配置项。

系统提示工具访问边界措辞优化

原措辞「所有操作都应发生在当前项目根目录之内」过于严格,会拦住合理的跨目录访问(读另一个项目的文件、写系统临时目录等)。改为:根目录是默认工作目录而非强制访问边界;跨目录访问服从权限引擎与内置安全底线;操作范围以任务必需为限。配套单测钉住措辞不回退。


📊 测试

全量测试:springai-code-tui 1386 用例通过(较 v1.8.1 新增路由竞态单测、后台任务日志策略验证、系统提示措辞钉桩)。


🔐 校验(SHA-256)

b933fe009239ed610c2f8381f6d441e10e1abab6e9c32e5825f5a4e47fec794b  springai-code-tui-1.8.2-dist.tar.gz
88448b43e1f46b6caeed1e22c7a36f9c434eeed1698f90e5681fa6b055a1f6de  springai-code-tui-1.8.2-dist.zip
shasum -a 256 -c <<'EOF'
b933fe009239ed610c2f8381f6d441e10e1abab6e9c32e5825f5a4e47fec794b  springai-code-tui-1.8.2-dist.tar.gz
88448b43e1f46b6caeed1e22c7a36f9c434eeed1698f90e5681fa6b055a1f6de  springai-code-tui-1.8.2-dist.zip
EOF

📄 许可

Apache License 2.0。发布包内随附 LICENSENOTICE(含所分发第三方库:Spring AI / Spring Boot / spring-ai-community 为 Apache 2.0,TamboUI 为 MIT)。本版未引入任何新的第三方依赖

环境:JDK 17+,macOS / Linux / Windows。