fix(agent): 合并回归 - 保留当前输入提示与任务租约安全边界
This commit is contained in:
@@ -227,17 +227,13 @@ func (w *taskWorkerCoordinator) processClaimedTask(task *model.Task, globalSlot
|
||||
if code, _ := ChannelSlotFailureDetails(err); code != "" {
|
||||
channelSlotFailedBeforeRequest = true
|
||||
}
|
||||
// 续租使用独立 context,真实租约失效必须阻止写入;但执行时限到点
|
||||
// (单步墙钟或任务超时)本身不是"租约丢失":续租可能正好被同一个时限打断,
|
||||
// 此时必须继续走失败收尾,否则任务停在 running 被反复重跑。
|
||||
// 续租使用独立 context;执行超时不能覆盖真实租约失效,否则旧 worker
|
||||
// 可能在新 worker 接管后继续结算或写入终态。
|
||||
deadlineExpired := errors.Is(ctx.Err(), context.DeadlineExceeded)
|
||||
select {
|
||||
case leaseErr := <-leaseLost:
|
||||
if !deadlineExpired {
|
||||
_ = s.log(task.UserID, task.ID, "warn", "任务租约失效,等待其他 worker 恢复", leaseErr.Error())
|
||||
return leaseErr
|
||||
}
|
||||
_ = s.log(task.UserID, task.ID, "warn", "任务执行时限到点,按失败收尾(不视为租约丢失)", leaseErr.Error())
|
||||
default:
|
||||
}
|
||||
decryptedInput, decryptErr := s.decryptTaskInputJSON(task.InputJSON)
|
||||
|
||||
@@ -122,10 +122,9 @@ describe("canvas resource mention editor", () => {
|
||||
expect(component).toContain("slash.start + 1 + slash.query.length");
|
||||
expect(component).toContain("buildSkillMentionReferences(availableSlashSkills)");
|
||||
expect(component).toContain("[/、]([^\\s/、]*)$");
|
||||
// 输入框提示语已随外观配置搬进 agent-appearance(面板只消费 appearance.inputPlaceholder),
|
||||
// 这里断言"文案在、面板仍用它",而不是把文案钉在面板源码里。
|
||||
// 保留主分支已恢复的固定 Skills 提示,不能因合并旧分支退回失效的外观配置断言。
|
||||
expect(source("../src/lib/canvas/agent-appearance.ts")).toContain("用 / 或 、 引用 Skills");
|
||||
expect(source("../src/components/canvas/canvas-cloud-agent-panel.tsx")).toContain("agentCopy(appearance.inputPlaceholder, appearance.agentName)");
|
||||
expect(source("../src/components/canvas/canvas-cloud-agent-panel.tsx")).toContain("用 / 或 、 引用 Skills");
|
||||
});
|
||||
|
||||
test("skill chips use one colored icon instead of exposing the serialized token", () => {
|
||||
|
||||
Reference in New Issue
Block a user