Files
ttstd-infinite-canvas/web
xupengchong-del ede6cc1e70 fix(create): 创作页 - 上一条还在生成时无法提交下一条 (#754)
提交闸门覆盖了整个生成过程:`submit()` 会一直等到任务出结果才在 finally 里放闸。
于是上一条视频还在跑时点发送会被 `tryAcquire()` 静默拒绝——没有提示、没有反应,
用户只看到按钮在转,以为坏了;重试走的是同一条 submit 路径,一并被挡住。

闸门本来只需要防住「同一次创建任务被重复触发」(连点、回车连击),不该跨越整个
生成过程:

- 闸门改为令牌制:`tryAcquire()` 返回令牌,`release(token)` 只对持有者生效,
  避免并发提交互相解锁;
- 任务一旦建成(bindTask)立刻放闸,与已有的 `busy` 释放时机对齐,因此上一条在
  生成时也能继续提交下一条;
- 被拒绝时给出提示,而不是静默丢弃(这条以前完全没反馈);
- 同步更新闸门单测,补上持有者令牌的并发用例。

验证:`tsc --noEmit`、ESLint、`bun run build` 通过;`bun test` 2204 通过,
唯一失败项 agent-api-reliability 在纯净上游基线上同样失败,与本改动无关。
2026-10-13 12:13:27 +08:00
..