feat(conversation): replicate WorkBuddy rewind-to-message action (TODO 05)
This commit is contained in:
1 parent
074523a501
commit
c7ab047d52
11 files changed
+293
-60
No files matched your search
@@ -494,11 +494,15 @@ async function testFeedbackAndRevert(bundle: TestBundle, state: TestState, works
|
||||
assert.equal(await bundle.sessions.getPendingNativeBranch(rejectedId), undefined)
|
||||
|
||||
const readOnlyId = await invoke('session:create', 'read-only-revert') as { id: string }
|
||||
await bundle.sessions.appendMessage(readOnlyId.id, message('read-only-user', 'user', 'read only'))
|
||||
await bundle.sessions.appendMessage(readOnlyId.id, message('read-only-user', 'user', 'read only', { nativeEntryId: 'native-read-only-target' }))
|
||||
await bundle.sessions.appendMessage(readOnlyId.id, message('read-only-assistant', 'assistant', 'read', {
|
||||
tools: [{ id: 'read-tool', name: 'read_file', args: {}, argsRaw: '{}', status: 'ok' }]
|
||||
}))
|
||||
await assert.rejects(invoke('chat:revert', readOnlyId.id, 'read-only-user'), /没有可恢复/)
|
||||
seedNativeHistory(state, readOnlyId.id, [['native-read-only-target', 'read only']])
|
||||
// 原版 rewind 的 no-version 变体:没有产物版本时只回退对话内容,产物保持不变。
|
||||
const readOnlyResult = await invoke('chat:revert', readOnlyId.id, 'read-only-user') as { messages: unknown[] }
|
||||
assert.deepEqual(readOnlyResult.messages, [], 'conversation-only rewind should truncate to before the message')
|
||||
assert.deepEqual(await bundle.sessions.getMessages(readOnlyId.id), [], 'conversation-only rewind should persist the truncated prefix')
|
||||
|
||||
const unknownPath = join(workspace, 'unknown-write.txt')
|
||||
await writeFile(unknownPath, 'after', 'utf8')
|
||||
|
||||
Reference in new issue
Block a user