feat(chat): structured context attachments with metadata round-trip
Every user-attached context item (diff/file/plan comments, terminal selections, browser annotations, PR comments and failed checks, linked issues/PRs, and new chat-quote comments from the selection menu) is now sent as its own synthetic text part carrying an openchamberContext metadata payload. The model-facing text keeps the previous wording; the timeline reads the metadata back and renders each item as a context card instead of raw prompt text. Legacy messages still render via the old text sniffing. The selection menu gains a Comment option with an inline multiline input, the quoted fragment stays highlighted while commenting, and on mobile the input overlays the composer pill by rendering inside the composer form. Add to chat is renamed Add to input; the menu is restyled and the mobile Copy tile removed. Terminal drafts move their terminal id out of the language field (persisted-draft migration v3), and the dead preview-console source is deleted.
This commit is contained in:
@@ -6,6 +6,14 @@ export const dict: Record<I18nKey, string> = {
|
||||
'terminalView.actions.attachSelection': '선택한 출력 첨부',
|
||||
'terminalView.actions.restart': '터미널 다시 시작',
|
||||
'chat.message.terminalContext': '{terminal}, {start}-{end}행',
|
||||
'chat.message.context.codeComment': '{file} {start}-{end}행에 대한 댓글',
|
||||
'chat.message.context.codeCommentLine': '{file} {line}행에 대한 댓글',
|
||||
'chat.message.context.chatQuote': '이전 메시지에서 인용',
|
||||
'chat.chatInput.chatQuoteContext': '채팅 인용',
|
||||
'chat.chatInput.chatQuoteContextRemove': '채팅 인용 제거',
|
||||
'chat.message.context.browserAnnotation': '브라우저 주석 ({page})',
|
||||
'chat.message.context.prComment': 'GitHub PR 댓글 ({label})',
|
||||
'chat.message.context.prCheck': '실패한 GitHub PR 검사 ({label})',
|
||||
'chat.chatInput.terminalContext': '{terminal}, {start}-{end}행',
|
||||
'chat.chatInput.terminalContextRemove': '터미널 컨텍스트 제거',
|
||||
'chat.chatInput.prCommentContext': 'PR 댓글',
|
||||
@@ -2184,9 +2192,12 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.textSelection.toast.addToNotesFailed': '메모 추가 실패',
|
||||
'chat.textSelection.toast.addToNotesSuccess': '선택한 텍스트를 메모에 추가함',
|
||||
'chat.textSelection.toast.addToNotesSummaryFailed': '선택 영역을 요약할 수 없어 선택한 텍스트를 메모에 추가함',
|
||||
'chat.textSelection.actions.addToChat': '채팅에 추가',
|
||||
'chat.textSelection.actions.addToInput': '입력란에 추가',
|
||||
'chat.textSelection.actions.comment': '댓글',
|
||||
'chat.textSelection.title.commentOnSelection': '선택 영역에 댓글 달기',
|
||||
'chat.textSelection.comment.placeholder': '선택적 댓글 추가...',
|
||||
'chat.textSelection.comment.attach': '첨부',
|
||||
'chat.textSelection.actions.newSession': '새 세션',
|
||||
'chat.textSelection.actions.copy': '복사',
|
||||
'chat.textSelection.actions.addToNotes': '메모에 추가',
|
||||
'chat.textSelection.title.addToCurrentChat': '현재 채팅에 추가',
|
||||
'chat.textSelection.title.newSessionWithSelection': '선택한 내용으로 새 세션 생성',
|
||||
@@ -2294,8 +2305,6 @@ export const dict: Record<I18nKey, string> = {
|
||||
'chat.chatInput.toast.togglePermissionAutoAcceptFailed': '권한 자동 승인 전환에 실패했습니다',
|
||||
'chat.chatInput.reviewComments': '검토 댓글:',
|
||||
'chat.chatInput.reviewCommentsRemove': '검토 댓글 제거',
|
||||
'chat.chatInput.devServerLogs': 'Dev Server 로그:',
|
||||
'chat.chatInput.devServerLogsRemove': 'Dev Server 로그 제거',
|
||||
'chat.chatInput.previewAnnotations': '미리보기 주석:',
|
||||
'chat.chatInput.previewContext': '미리보기 컨텍스트:',
|
||||
'chat.chatInput.previewContextRemove': '미리보기 컨텍스트 제거',
|
||||
|
||||
Reference in New Issue
Block a user