统一SFX提示词 trim 规范化

将 SFX Prompt 首尾规范化改为 ECMAScript String.trim 语义并同步 Rust 等值实现

更新共享边界 fixture、前后端与 Worker 回归测试

同步权威设计、实施计划、决策日志和 External OpenAPI 描述
This commit is contained in:
2026-08-07 07:27:52 +00:00
parent 392741215c
commit 5c316fc680
17 changed files with 89 additions and 60 deletions
@@ -39,7 +39,7 @@ describe('ImageCanvasSoundEffectPromptModel', () => {
});
it('accepts 2048 code points and rejects 2049 without truncating', () => {
const maximum = `\u0085${'😀'.repeat(
const maximum = `\uFEFF${'😀'.repeat(
SOUND_EFFECT_PROMPT_MAX_CODE_POINTS,
)}\u2003`;
const accepted = validateSoundEffectPrompt(maximum);
@@ -59,7 +59,7 @@ describe('ImageCanvasSoundEffectPromptModel', () => {
});
it('rejects empty canonical prompts without adding a default description', () => {
for (const prompt of ['', ' \t\r\n', '\u0085\u2003\u00a0']) {
for (const prompt of ['', ' \t\r\n', '\uFEFF\u2003\u00a0']) {
expect(validateSoundEffectPrompt(prompt)).toEqual({
ok: false,
prompt: '',
@@ -74,7 +74,7 @@ describe('ImageCanvasSoundEffectPromptModel', () => {
const started = model.beginOperation({
dialogId: 'dialog-a',
status: 'optimizing',
prompt: '\u0085金币落地声\u3000',
prompt: '\uFEFF金币落地声\u3000',
});
expect(started.started).toBe(true);
expect(started.canonicalPrompt).toBe('金币落地声');