mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-15 12:55:51 +00:00
feat: /goal命令能力支持,参考codex实现 (#1261)
* feat: /goal命令能力支持,参考codex实现 * fix: 修复promp和提示词不一致的问题 * fix: 修复 goal 功能多项 AI 审查问题 - prompt 中 update 行为描述与运行时不一致(no-op → error) - src/commands/goal/ 使用相对路径导入,改为 src/* 别名 - /goal 命令标记 bridgeSafe 但含交互式对话框,改为 false - useGoalContinuation 中 origin 使用 as unknown as string 强转,改为直接传字符串 - ResumeConversation 路径缺少 goal hydration,补齐恢复逻辑 - onCancel 在非查询状态下误暂停 goal,加 queryGuard 守卫 - resumeGoal 允许从终态恢复,收紧为仅允许 paused 状态 - buildGoalContextBlock 生成畸形 XML 属性,改为合法 budget 属性 * fix: 修复剩余AI审查的问题 * fix: 防止goal状态丢失 * fix: 修复Biome规范错误问题 * fix: 修复部分情况下goal无法启动的问题 * fix: 增加断网后状态默认设置为PAUSE机制、完成暂停-恢复状态切换,且正常进行前端渲染。设置达到max turn后处理逻辑。 * fix: 修复终端异常断开情况,resume续跑;修复用户消息排队信息被goal输出信息覆盖的问题。 * fix: apply biome formatting to pass CI lint check Co-authored-by: Cursor <cursoragent@cursor.com> * fix: skip slash command echo in setUserInputOnProcessing to prevent UI flash Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: moyu <moyu@kingsoft.com> Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -312,6 +312,7 @@ type ResumeLoadResult = {
|
||||
prNumber?: number
|
||||
prUrl?: string
|
||||
prRepository?: string
|
||||
goal?: import('../types/logs.js').GoalState
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -471,6 +472,18 @@ export async function processResumedConversation(
|
||||
opts.forkSession ? { ...result, worktreeSession: undefined } : result,
|
||||
)
|
||||
|
||||
if (feature('GOAL') && result.goal) {
|
||||
const { hydrateGoalFromTranscript } =
|
||||
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
||||
require('../services/goal/goalStorage.js') as typeof import('../services/goal/goalStorage.js')
|
||||
const goalsMap = new Map<UUID, import('../types/logs.js').GoalState>()
|
||||
const sid = (opts.sessionIdOverride ??
|
||||
result.sessionId ??
|
||||
getSessionId()) as UUID
|
||||
goalsMap.set(sid, result.goal)
|
||||
hydrateGoalFromTranscript(goalsMap, sid)
|
||||
}
|
||||
|
||||
if (!opts.forkSession) {
|
||||
// Cd back into the worktree the session was in when it last exited.
|
||||
// Done after restoreSessionMetadata (which caches the worktree state
|
||||
|
||||
Reference in New Issue
Block a user