release: ship v1.6.0 with paged suggestions and a cleaner phrase memory
Next-sentence suggestions now arrive one at a time up to twelve, shown three per page with Ctrl+Alt+Up/Down to move, Left/Right to page, Enter to accept and Esc to close; old default bindings migrate and the panel guide follows the live bindings. The overlay is redesigned, stays put while candidates stream and sits outside the input box when no caret is reported. The personal phrase memory stops learning from terminals, code editors and the coding-agent hub, ignores symbol-heavy lines and empty-field placeholders, and prunes existing entries that break those rules. Fixes suggestion keys starting dictation, installs stuck on a pre-1.5.0 speech engine without the focus endpoint, Ollama runner windows flashing while typing, the speech engine starting twice, and cold-model timeouts. Live captions can be dragged to a remembered position and show a waiting notice until the first line arrives. Bumps the product version to 1.6.0 (Android/iOS build 1060000).
This commit is contained in:
parent
856e375f3e
commit
2fe20fa7b5
71 changed files with 2469 additions and 366 deletions
|
|
@ -24,6 +24,7 @@ import {
|
|||
DEFAULT_TARGET_LANGUAGE,
|
||||
BASE_SYSTEM_PROMPTS,
|
||||
SUGGESTION_NO_THINK_PREFIX,
|
||||
SUGGESTION_SYSTEM_PROMPT,
|
||||
} from '../../../src/main/services/llm-prompts'
|
||||
|
||||
beforeEach(() => {
|
||||
|
|
@ -212,4 +213,38 @@ describe('buildSuggestionPrompt', () => {
|
|||
expect(systemPrompt).toContain('400')
|
||||
expect(text).toContain('5')
|
||||
})
|
||||
|
||||
it('비서처럼 되묻거나 도와주겠다고 하지 말라는 규칙이 시스템 프롬프트에 있고 사용자 텍스트에는 없다', () => {
|
||||
// 실측: 모델이 "혹시 이 영상 내용에 대해 궁금한 점이 있으신가요?" 처럼
|
||||
// 사용자에게 되묻는 비서형 응답을 낸 회귀를 막는다.
|
||||
const { systemPrompt, text } = buildSuggestionPrompt({ prefix: '오늘 회의에서 논의한 내용을 정리해서' })
|
||||
|
||||
expect(SUGGESTION_SYSTEM_PROMPT).toMatch(/비서가 아닙니다/)
|
||||
expect(SUGGESTION_SYSTEM_PROMPT).toMatch(/질문하지 말고/)
|
||||
expect(SUGGESTION_SYSTEM_PROMPT).toMatch(/검색어나 폼 입력/)
|
||||
expect(systemPrompt).toContain('비서가 아닙니다')
|
||||
expect(systemPrompt).toContain('질문하지 말고')
|
||||
expect(systemPrompt).toContain('검색어나 폼 입력')
|
||||
|
||||
expect(text).not.toContain('비서가 아닙니다')
|
||||
expect(text).not.toContain('질문하지 말고')
|
||||
expect(text).not.toContain('검색어나 폼 입력')
|
||||
})
|
||||
|
||||
it('avoidCandidates는 데이터 섹션으로만 들어가고 이미 나온 후보를 모두 나열한다', () => {
|
||||
const { systemPrompt, text } = buildSuggestionPrompt({
|
||||
prefix: '오늘 회의에서 논의한 내용을 정리해서',
|
||||
avoidCandidates: ['공유드리겠습니다.', '전달드리겠습니다.']
|
||||
})
|
||||
|
||||
expect(text).toContain('공유드리겠습니다.')
|
||||
expect(text).toContain('전달드리겠습니다.')
|
||||
expect(text).not.toContain('규칙:')
|
||||
expect(systemPrompt).not.toContain('공유드리겠습니다.')
|
||||
})
|
||||
|
||||
it('avoidCandidates가 없으면 해당 섹션이 아예 없다', () => {
|
||||
const { text } = buildSuggestionPrompt({ prefix: 'abc' })
|
||||
expect(text).not.toContain('이미 제안한 문장')
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue