fix: ensure userVisible metadata on Goosed session replies
Goosed rejects /sessions/:id/reply when user_message.metadata lacks userVisible. Normalize metadata before submit and during agent orchestration so page-generation runs no longer fail before streaming starts. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import { ensureGooseUserMessageMetadata } from './goose-message.mjs';
|
||||
|
||||
test('ensureGooseUserMessageMetadata adds required visibility flags', () => {
|
||||
const normalized = ensureGooseUserMessageMetadata({
|
||||
role: 'user',
|
||||
content: [{ type: 'text', text: '帮我生成页面' }],
|
||||
});
|
||||
assert.equal(normalized.metadata.userVisible, true);
|
||||
assert.equal(normalized.metadata.agentVisible, true);
|
||||
});
|
||||
|
||||
test('ensureGooseUserMessageMetadata preserves existing metadata fields', () => {
|
||||
const normalized = ensureGooseUserMessageMetadata({
|
||||
role: 'user',
|
||||
content: [{ type: 'text', text: '编排文本' }],
|
||||
metadata: {
|
||||
displayText: '用户原文',
|
||||
chatIntentRoute: 'agent_orchestration',
|
||||
},
|
||||
});
|
||||
assert.equal(normalized.metadata.displayText, '用户原文');
|
||||
assert.equal(normalized.metadata.chatIntentRoute, 'agent_orchestration');
|
||||
assert.equal(normalized.metadata.userVisible, true);
|
||||
assert.equal(normalized.metadata.agentVisible, true);
|
||||
});
|
||||
Reference in New Issue
Block a user