chore(release): v0.3.9 — AI 흐름 unblock UI + FTS5 escape
audit edge case 3건: - pending 노트 "건너뛰기" 버튼 (cancelPending: pending → disabled + jobs DELETE) - failed 노트 per-note "재시도" 버튼 (retryOneFailed: failed → pending + enqueue) - FTS5 sanitize regex 확장 (backtick/dash/caret 추가) 동시 편집 race 는 EditableField guard 가 이미 처리 (수정 불필요). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -215,13 +215,44 @@ export function NoteCard({ note, onDeleted, onUpdated, mode = 'inbox', onRestore
|
||||
)}
|
||||
|
||||
{local.aiStatus === 'pending' && (
|
||||
<div style={{ fontSize: 16, fontWeight: 600, color: '#666', marginTop: 4 }}>
|
||||
Inkling이 정리하는 중…
|
||||
<div style={{ marginTop: 4, display: 'flex', alignItems: 'center', gap: 8 }}>
|
||||
<div style={{ fontSize: 16, fontWeight: 600, color: '#666' }}>
|
||||
Inkling이 정리하는 중…
|
||||
</div>
|
||||
{/* v0.3.9 — pending cancel UI. Ollama 끊김 / 무한 pending 시 사용자 unblock path. */}
|
||||
<button
|
||||
onClick={async () => {
|
||||
await inboxApi.cancelPending(local.id);
|
||||
// push 기반 — onNoteUpdated 가 store 자동 갱신.
|
||||
}}
|
||||
style={{
|
||||
background: 'none', border: '1px solid #ccc', color: '#666',
|
||||
cursor: 'pointer', fontSize: 11, padding: '2px 8px', borderRadius: 4
|
||||
}}
|
||||
title="AI 자동 처리를 건너뛰고 원문만 보관"
|
||||
>
|
||||
건너뛰기
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
{local.aiStatus === 'failed' && (
|
||||
<div title={local.aiError ?? ''} style={{ fontSize: 16, fontWeight: 600, color: '#a55', marginTop: 4 }}>
|
||||
정리 보류 — 원문은 안전합니다
|
||||
<div style={{ marginTop: 4, display: 'flex', alignItems: 'center', gap: 8 }}>
|
||||
<div title={local.aiError ?? ''} style={{ fontSize: 16, fontWeight: 600, color: '#a55' }}>
|
||||
정리 보류 — 원문은 안전합니다
|
||||
</div>
|
||||
{/* v0.3.9 — per-note 재시도 UI. FailedBanner 의 일괄 재시도와 별개. */}
|
||||
<button
|
||||
onClick={async () => {
|
||||
await inboxApi.retryOneFailed(local.id);
|
||||
}}
|
||||
style={{
|
||||
background: 'none', border: '1px solid #a55', color: '#a55',
|
||||
cursor: 'pointer', fontSize: 11, padding: '2px 8px', borderRadius: 4
|
||||
}}
|
||||
title="이 노트만 AI 처리 재시도"
|
||||
>
|
||||
재시도
|
||||
</button>
|
||||
</div>
|
||||
)}
|
||||
{/* v0.2.9 Cut B Task 13 — ai_status='disabled': raw_text 첫 줄 fallback title.
|
||||
|
||||
Reference in New Issue
Block a user