lee-hyeon-cheol and Claude Opus 5.5
f0520cdcc1
feat(snippets): 한글 설명 초안 143개·새 이름 11개 검토 파일 + import_snippets 는 빈 DB 에서만(규칙 변경 후 중복·옛 이름 부활 방지)
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 13:46:17 +09:00
lee-hyeon-cheol and Claude Opus 5.5
7a1498a791
feat(snippets): 이름 규칙(영문 대문자·숫자·_, 3~50자)·실시간 중복/저장될 이름 표시, 설명 필수, 검색에 본문 ★머리줄·주석 포함(한글 검색), 메타 일괄 반영 명령 apply_snippet_meta
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 13:42:32 +09:00
lee-hyeon-cheol and Claude Opus 5.5
aa7481ffe9
chore: 작업로그
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 11:19:09 +09:00
lee-hyeon-cheol and Claude Opus 5.5
497b83d56c
docs: 관측 문서에 태그·워처 훑기·덤프 보관 정리 + 작업로그
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 11:00:14 +09:00
lee-hyeon-cheol and Claude Opus 5.5
71286d84b7
docs: 사고 기록에 모델 고정 조치 반영 + 작업로그
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 10:35:44 +09:00
lee-hyeon-cheol and Claude Opus 5.5
5eafd95b46
docs(troubleshooting): 우리 서버 opencode DNS 충돌 사고 기록
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 10:32:13 +09:00
lee-hyeon-cheol and Claude Opus 5.5
243b8d07d1
chore: 작업로그
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 10:31:53 +09:00
lee-hyeon-cheol and Claude Opus 5.5
c1364755b7
fix(deploy): CodeAssist OpenCode 서비스명 ca-opencode — abap-opencode 네트워크 합류 시 opencode DNS 충돌로 ABAP_OPENCODE 요청이 반씩 새던 사고
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 10:30:45 +09:00
lee-hyeon-cheol and Claude Opus 5.5
be5a86bcda
chore: 작업로그
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 10:13:26 +09:00
lee-hyeon-cheol and Claude Opus 5.5
4410b436ae
chore: 배포 스크립트 실행권한을 git 에 — 서버 chmod 가 pull 막던 것
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 09:51:44 +09:00
lee-hyeon-cheol and Claude Opus 5.5
b06dadebc3
fix(deploy): 우리 서버 CodeAssist 에 SAP MCP 연결 — abap-opencode mcp 컨테이너 네트워크에 붙임(MCP_API_KEY 있으면 자동)
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 09:50:39 +09:00
lee-hyeon-cheol and Claude Opus 5.5
be4387278f
chore: 작업로그
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 09:48:37 +09:00
lee-hyeon-cheol and Claude Opus 5.5
727486e7cb
feat(observability): 트레이스에 model(metadata) + 사용 태그 — skill:<이름> / wiki / mcp:<함수>
...
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-09-23 09:44:03 +09:00
lee-hyeon-cheol and Claude Fable 5.1
996f1c853e
docs(orders): 2026-09-22 정리 — 한 것·다음 할 일·접속 메모
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 18:34:04 +09:00
lee-hyeon-cheol and Claude Fable 5.1
526f4e4545
chore: 작업로그·문서 갱신 (9/22 Phoenix·배포 스크립트·우리 서버)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 18:33:04 +09:00
lee-hyeon-cheol and Claude Fable 5.1
8a7df11d9c
docs: 우리 서버 배포 경로·Phoenix 주소·NSG 메모
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 18:17:39 +09:00
lee-hyeon-cheol and Claude Fable 5.1
9c064615a9
fix(deploy): 컨테이너→같은 서버 Phoenix 는 host.docker.internal(host-gateway) — 공인 IP 는 컨테이너 안에서 안 닿음
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 18:15:42 +09:00
lee-hyeon-cheol and Claude Fable 5.1
ea1fd350da
feat(deploy): 도커 배포(deploy/docker: compose+Dockerfile+deploy.sh) — 우리 환경용. 렌더러가 FabriX/OpenRouter 템플릿 자동 선택, 호스트 변수화. bare deploy.sh 는 git pull 포함. Phoenix 도커 compose
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 18:09:48 +09:00
lee-hyeon-cheol and Claude Fable 5.1
f55e673cb5
docs(tech): LLM 관측(Phoenix) — 환경 무관 결정·실측·설치 요령 정리
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 17:39:39 +09:00
lee-hyeon-cheol and Claude Fable 5.1
5d1ef6ee30
test(phoenix): ingest 우회 테스트 본문 수정
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 17:16:54 +09:00
lee-hyeon-cheol and Claude Fable 5.1
eb3da84f22
feat(phoenix): /phoenix/v1/traces POST 는 비번 없이 — -13 이 8914 경유로 trace 보내는 길
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 17:16:31 +09:00
lee-hyeon-cheol and Claude Fable 5.1
671f610371
fix(phoenix): run.sh 가 옛 프로세스를 못 죽이던 것 — 패턴 phoenix.server.main
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 17:13:29 +09:00
lee-hyeon-cheol and Claude Fable 5.1
ac7a459dfc
feat(observability): /phoenix/ 중계 — 바깥 포트가 8914 뿐이라 백엔드 뒤에 Phoenix 화면 붙임(Basic 잠금, 접두어 떼고 전달). 로컬 e2e(HTML·자산·GraphQL·REST) 통과
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 16:34:38 +09:00
lee-hyeon-cheol and Claude Fable 5.1
8268947fc7
chore: 렌더 산출물 opencode/opencode.json 을 git 에서 뺌 — 서버에서 git pull 막던 원인
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 16:05:01 +09:00
lee-hyeon-cheol and Claude Fable 5.1
68b55907f0
fix(observability): Phoenix 는 OTLP protobuf 만 받음(JSON 415) — opentelemetry-proto 로 직렬화, 로컬 Phoenix 실측 통과
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 15:43:26 +09:00
lee-hyeon-cheol and Claude Fable 5.1
e60c5bc273
feat(observability): Phoenix 대상 추가 — 같은 span 에 OpenInference 속성 동봉, PHOENIX_HOST 로 /v1/traces. -12 는 도커 불가라 pip 로 뜨는 Phoenix 로 감(deploy/phoenix)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 15:39:08 +09:00
lee-hyeon-cheol and Claude Fable 5.1
340e8e4beb
chore(langfuse): 고객사 -12 는 NAT 없는 도커 — host 네트워크 오버라이드(minio 9100, 웹 8915) + dockerd 수동 기동 절차
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 15:12:25 +09:00
lee-hyeon-cheol and Claude Fable 5.1
3e9c392941
chore(langfuse): 고객사용 compose override — 빈 포트 8915 를 웹에 매핑, README 갱신
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 14:23:35 +09:00
lee-hyeon-cheol and Claude Fable 5.1
f1f8b7cdf1
docs(langfuse): ABAP_OPENCODE(-13) 연결법 + -13→-12 통신 주의
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 14:14:04 +09:00
lee-hyeon-cheol and Claude Fable 5.1
e801ae6a6f
feat(langfuse): 게이트웨이 fabrix 트레이스는 LANGFUSE_TRACE_GATEWAY=1 일 때만 — 질문 하나 = 행 하나 유지
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 14:08:55 +09:00
lee-hyeon-cheol and Claude Fable 5.1
c9cc6b7eeb
feat(langfuse): 목록 한 줄 = 채팅(질문/답/토큰), 트리 = OpenCode 도구 호출(SAP 조회·위키 read·grep) 순서대로
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 14:06:11 +09:00
lee-hyeon-cheol and Claude Fable 5.1
07d733ea30
fix(langfuse): 테스트가 로컬 .env 의 LANGFUSE_HOST 로 진짜 전송하던 것 차단(autouse) + 게이트웨이 루트 span 에 질문/답 실음
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 14:01:05 +09:00
lee-hyeon-cheol and Claude Fable 5.1
678ea2482f
fix(langfuse): 루트 span 에도 observation.input/output — 트레이스 화면 입출력 표시용
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 13:54:36 +09:00
lee-hyeon-cheol and Claude Fable 5.1
55f2e8fb60
fix(langfuse): v4 가 옛 ingestion 을 거부 — OTLP/HTTP JSON(/api/public/otel/v1/traces)으로 전환, 로컬 Langfuse 실측 통과. 사용자·세션 속성은 자식 span 에도 복사
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 13:53:20 +09:00
lee-hyeon-cheol and Claude Fable 5.1
0321050053
feat(observability): Langfuse 전송 — 턴 마무리(사용자 trace)·게이트웨이(FabriX generation) 두 훅, SDK 없이 HTTP. deploy/langfuse 에 compose+env+반입 절차
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 13:44:12 +09:00
lee-hyeon-cheol and Claude Fable 5.1
95b169a7b9
style: 테스트 포맷
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 10:47:44 +09:00
lee-hyeon-cheol and Claude Fable 5.1
596c7e52a8
fix(chat): '생각하는 중'과 '작성 중'이 둘 다 보이던 것 — 상태줄 하나로 합치고 첫 글자 전/후로 라벨만 바뀜. 0.1.3
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 10:47:25 +09:00
lee-hyeon-cheol and Claude Fable 5.1
69d4dd340f
docs(tech): 고객사 단일 repo 구조(abap-specgen/ + code-assistant/) · VM 배포 루틴 · 반입 절차
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-22 10:14:57 +09:00
lee-hyeon-cheol and Claude Fable 5.1
5277481513
feat(chat): 생각 과정(reasoning·도구 스텝) 토글 + 작성 중 스피너·경과 초 — ABAP_OPENCODE 와 같은 모양. 백엔드가 step 이벤트로 흘림. 0.1.2
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 21:03:51 +09:00
lee-hyeon-cheol and Claude Fable 5.1
5ee599fb6b
fix(opencode): MCP 가 덤프한 소스 파일이 workspace 밖이라 read 가 권한 물음에서 영원히 대기 — external_directory allow
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 20:48:38 +09:00
lee-hyeon-cheol and Claude Fable 5.1
5c41b4a54d
docs(opencode): SAP 조회는 위키 읽은 뒤 빠진 부분만 — 조건 3개로 명시
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 20:12:46 +09:00
lee-hyeon-cheol and Claude Fable 5.1
bc7eaf6de5
feat(opencode): 위키(ABAP_INDEXING 결과물) 먼저 보고 답하기 — SAP 덤프 전에 wiki/programs 등 read/grep
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 20:10:50 +09:00
lee-hyeon-cheol and Claude Fable 5.1
4ccabfebb1
chore(backend): 기본 모델 581 GaussO Think — 목록 첫 항목이 OpenCode 기본이라 순서도 바꿈
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 19:54:22 +09:00
lee-hyeon-cheol and Claude Fable 5.1
b08afa389a
fix(gateway): FabriX 가 맞는 인증 조합에도 간헐 401 — 4개 조합 뒤 유력 조합 1초 쉬고 한 번 더
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 19:41:41 +09:00
lee-hyeon-cheol and Claude Fable 5.1
9bd0849f27
chore(gateway): 인증 조합별 상류 상태코드 로그 + deploy.sh 가 TOKEN_PREFIX=bearer 채움
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 18:39:28 +09:00
lee-hyeon-cheol and Claude Fable 5.1
7397061665
fix(opencode): 이미지가 게이트웨이까지 안 오던 것 — vision 모델에 modalities.image 표시 + 이미지 턴은 OpenCode 에 gateway/605 지정
...
고객사 실측: 게이트웨이 로그 parts=['text']. OpenCode 는 모델 설정에 이미지 입력 표시가 없으면
파트를 떨구고 텍스트만 보냄. render_opencode 가 AAF_FABRIX_VISION_MODEL_ID 모델에 attachment/modalities 를
붙이고, deploy.sh 가 OPENCODE_VISION_MODEL=gateway/605 를 채워 백엔드가 이미지 턴에 그 모델을 지정.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 18:33:40 +09:00
lee-hyeon-cheol and Claude Fable 5.1
377a36a313
chore(gateway): 요청 파트 종류·선택 모델 한 줄 로그 — 이미지 분기 확인용
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 18:23:35 +09:00
lee-hyeon-cheol and Claude Fable 5.1
c77fc8a737
chore(tauri): 0.1.1 — 같은 버전 msi 는 Windows 가 설치를 건너뛰어 재배포마다 올림
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 17:45:50 +09:00
lee-hyeon-cheol and Claude Fable 5.1
cce6531628
chore(backend): deploy.sh 가 BACKEND_PORT=8080 도 채움 — 빠지면 OpenCode 가 8001 로 렌더돼 연결 실패
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 17:37:15 +09:00
lee-hyeon-cheol and Claude Fable 5.1
4078d0ccc7
chore(backend): deploy.sh 필수 env 4개 검사 — 빈 채로 띄우지 않음
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 17:25:50 +09:00
lee-hyeon-cheol and Claude Fable 5.1
cdc02a65c0
fix(opencode): .opencode/package.json 을 git 에 — 없으면 OpenCode 가 커스텀 툴을 조용히 스킵(고객사 실측)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 16:57:51 +09:00
lee-hyeon-cheol and Claude Fable 5.1
5c78edcaa5
chore(backend): deploy.sh — 고객사 -12 배포 한 방(env 보강·migrate·시드 import·렌더·재시작·확인)
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 16:13:48 +09:00
lee-hyeon-cheol and Claude Fable 5.1
2e7bae4c06
feat: 스니펫 공용화 — 서버 PostgreSQL 테이블 + API, 프론트는 브릿지 대신 HTTP
...
결정(9/21): 공용 하나, 개인 로컬 없음.
- backend apps/snippets: Snippet(name PK·desc·body·category) + SnippetUsage(사람별 count/last_used).
GET/POST /api/v1/snippets, PUT/DELETE /snippets/{name}, POST /snippets/{name}/use — 옛 브릿지 5개와 1:1,
이름 정규화·중복 409·빈 내용 400 규칙 동일. import_snippets 커맨드로 옛 snippets.db 적재. 테스트 3개
- frontend snippets.api.ts 만 HTTP 로 교체(훅·페이지·타입 무변경). 테스트 axios-mock-adapter 로
- ponytail: Tauri 로컬 SQLite 커맨드는 미사용 상태로 남김. 지울 때 Rust+브릿지 테스트 함께
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 16:06:14 +09:00
lee-hyeon-cheol and Claude Fable 5.1
df5feaad3a
docs: 스니펫 공용 PostgreSQL 결정 기록
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 15:59:38 +09:00
lee-hyeon-cheol and Claude Fable 5.1
833b834859
style(frontend): '생각하는 중' 자리를 답변 말풍선과 같은 모양으로 — ThinkingBubble
...
세 군데(새 대화 세션 생성 중 / 스트리밍 첫 토큰 전 / 재진입 대기)가 각자 손으로 그린 테두리 카드라
실제 답변(Message: AI 배지 + CODEASSIST + 상자 없는 본문)과 달랐음. 컴포넌트 하나로 통일.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 15:34:07 +09:00
lee-hyeon-cheol and Claude Fable 5.1
5998944f09
fix(frontend): 새 대화 전송 즉시 말풍선+'생각하는 중' 표시, 세션 생성 실패 시 헤로 복귀
...
세션 생성(OpenCode 왕복)이 느리면 헤로 화면에 '응답 중' 만 떠서 안 넘어간 것처럼 보였고,
실패하면 pending 이 안 풀려 영원히 갇혔음.
- 전송 순간 헤로 → 내 말풍선 + 시머(SessionChatPage 첫 화면과 같은 모양)
- mutate 콜백 패턴(SnapUserControls 와 동일): onSuccess 이동, onError 헤로 복귀 + 토스트
- 테스트 3개(훅 mock, SnippetPalettePage.test 패턴)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 15:30:55 +09:00
lee-hyeon-cheol and Claude Fable 5.1
458a828409
style(frontend): taste-skill 반영 — 오프블랙 글씨, 버튼 알약/카드 10px 분리, 눌림 피드백
...
- .agents/skills: Leonxlnx/taste-skill 3개 설치(랜딩용이라 채팅 앱엔 일부만 적용)
- samsung 팔레트: foreground #000→#111. 전역 --radius 20 을 10 으로 내리고 --radius-pill 로 버튼만 알약
- Button: rounded-[var(--radius-pill,var(--radius-md))], active:scale-[0.98]
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 15:21:32 +09:00
lee-hyeon-cheol and Claude Fable 5.1
55e3163695
docs: 인덱싱 가이드 — FabriX 직결(llm_client 헤더 패치)을 기본으로, -12 게이트웨이는 대안
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 15:01:44 +09:00
lee-hyeon-cheol and Claude Fable 5.1
e7158808a1
docs: 인덱싱 가이드 — 고객사 PC 에서 -12 게이트웨이(8914) 경유로, FabriX 직결 패치 예시
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 15:00:38 +09:00
lee-hyeon-cheol and Claude Fable 5.1
c31cc50b06
docs: 인덱싱 가이드에 로컬(OpenRouter 직결) 절 추가
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:59:23 +09:00
lee-hyeon-cheol and Claude Fable 5.1
256c40e038
docs: ABAP_INDEXING 을 고객사 FabriX 로 돌리는 팀원 가이드
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:58:26 +09:00
lee-hyeon-cheol and Claude Fable 5.1
113d97c77c
feat(backend): 이미지 요청만 vision 모델로 — OPENCODE_VISION_MODEL
...
로컬(OpenRouter)은 게이트웨이를 안 거쳐서 백엔드가 OpenCode prompt 에 model{providerID,modelID} 를 실어 분기.
기본 openrouter/google/gemma-4-31b-it(고객사 605 와 같은 모델). 텍스트는 기본 GLM 5.2.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:54:04 +09:00
lee-hyeon-cheol and Claude Fable 5.1
6d7723a533
chore(frontend): 예시 질문에서 ALV 리포트 뼈대(CL_SALV_TABLE) 제거
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:49:28 +09:00
lee-hyeon-cheol and Claude Fable 5.1
fa172d1413
feat(opencode): ABAP 소스 인덱스 툴 + 답변 출처 표기 규칙
...
- .opencode/tools/abap_index.ts: ABAP_INDEXING 질의 서버(:8100) 를 툴 3개로 —
abap_index_search(로직 조각 검색) / abap_index_chunk(원문+정의부) / abap_index_source(전체 소스·요약)
- AGENTS.md: 코드 질문은 인덱스 먼저, 코드블럭 위에 [출처: 프로그램/unit L줄] · [출처: SAP 조회] · [출처: 없음 — 생성 코드]
- 서버 없으면 툴이 실패 문자열을 주고 에이전트는 생성 코드로. 실측: 인덱스 미연결 상태에서 '[출처: 없음 — 생성 코드]' 표기 확인
- .env ABAP_INDEX_URL, README 절차. .opencode/package.json 은 gitignore 라 고객사엔 폴더째 옮겨야 함
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:37:26 +09:00
lee-hyeon-cheol and Claude Fable 5.1
89fc8fab45
feat(app): 답변 완료 알림 — 창 안 보고 있으면 토스트 + 트레이 점
...
- 프론트: 스트림 onDone 에서 chat.done(title) 한 번. 브라우저에선 no-op
- Rust shell/notify: 창 보이고 포커스면 아무것도 안 함. 아니면 Windows 토스트(tauri-plugin-notification)
+ 트레이 아이콘을 점 찍힌 tray-alert.png 로. 창 Focused(true) 에서 원복
- 토스트는 설치본(msi)에서만 알림센터에 등록돼 보임. dev 에선 트레이 점으로 확인
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:13:40 +09:00
lee-hyeon-cheol and Claude Fable 5.1
eb74de2634
docs: stage-2 — -12 SAP MCP·PostgreSQL 전환 기록, 남은 것 갱신
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:04:47 +09:00
lee-hyeon-cheol and Claude Fable 5.1
fa738a7a2c
fix(backend): PostgreSQL sslmode 를 env 로(기본 prefer) — 고객사 내부 PG 가 SSL 미지원
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 14:01:29 +09:00
lee-hyeon-cheol and Claude Fable 5.1
9fc93ffbce
style(admin): 비용 표시 제거 — 사내 LLM 은 단가 없어 항상 0. 토큰·응답시간만
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 13:49:39 +09:00
lee-hyeon-cheol and Claude Fable 5.1
d4a5f20787
feat: 관리자 대시보드 — 토큰·비용·응답시간 집계 API + 앱 /admin 페이지
...
- backend apps/stats: GET /api/v1/admin/stats?from&to → totals / byUser / byDay. ChatMessage(assistant) 집계만, is_superuser 아니면 403. 테스트 3개
- frontend features/admin: 요약 카드 4개(요청·토큰·비용·평균 응답), 일별 토큰 막대(div), 사용자별 표, 기간 프리셋(오늘/7/30/90일). 헤더에 ADMIN 만 아이콘. 테스트 2개
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 13:39:06 +09:00
lee-hyeon-cheol and Claude Fable 5.1
aa37cef13d
feat(backend): 스트림 타임아웃 env 화 — 첫 이벤트 300s, FabriX 조각 간 300s 기본
...
Gemma4 가 큐 밀리면 '안녕'에도 200초라 첫 이벤트 60s 로는 no-events 로 잘림.
STREAM_FIRST_EVENT_TIMEOUT_S / STREAM_TURN_TIMEOUT_S / AAF_FABRIX_READ_TIMEOUT_S / AAF_FABRIX_TOTAL_TIMEOUT_S 를 .env 로.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 13:31:00 +09:00
lee-hyeon-cheol and Claude Fable 5.1
e9e644b15b
feat(frontend): Esc 로 답변 생성 중단 — 생성 중 아니면 기존대로 목록 이동
...
중단 버튼·백엔드 cancel·OpenCode abort 체인은 이미 있었고 Esc 배선만 없었음.
서버만 생성 중(재진입, generatingRemotely)일 때도 Esc 가 cancel 을 보냄.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 13:24:55 +09:00
lee-hyeon-cheol and Claude Fable 5.1
8571db5bee
feat(backend): SAP MCP 를 env 로 켜고 끄게 — 고객사 -12 에 별도 기동 절차
...
opencode.fabrix.json.tmpl 의 sap-icf 를 MCP_PORT/MCP_API_KEY 로 렌더, 키 없으면 enabled:false.
.env.example 에 SAP_*·MCP_* 블록. README 에 -13 번들 재활용 절차(컨테이너 간 통신 금지라 -12 에 따로).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 10:43:49 +09:00
lee-hyeon-cheol and Claude Fable 5.1
72a06d6c07
style(frontend): PwC 로고 제거, 기본 라이트 모드, 삼성 팔레트 포인트 Samsung Blue
...
- LogoMark 는 null 렌더(호출부 6곳 그대로), logo.png·logo-dark.png 삭제, 파비콘 투명
- themeStore·index.html 기본 light. 예전 dark 저장값은 첫 실행 때 한 번만 초기화
- samsung 팔레트 primary/ring/link = #1428A0(브랜드 파랑). 바탕·글씨·면은 실측값 유지
- Message 테스트: 기본 라이트 기준으로 코드블럭 흰 배경 기대
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 10:40:32 +09:00
lee-hyeon-cheol and Claude Fable 5.1
efb9fb46de
style(frontend): 삼성향 라이트 팔레트(samsung) 추가하고 기본으로
...
삼성닷컴(sec) 공개 웹 실측값 — 검정 주색/CTA, 흰 canvas, #f7f7f7 surface, #707070 muted,
#dddddd border, 링크 #007aff, 그림자 없음, 버튼·카드 radius 20px(알약).
One UI 파랑은 폰 앱용이라 안 씀. 폰트는 재배포 근거 없어 안 넣음. 다크 모드는 기존 그대로.
기존 사용자 저장값 clean-blue 는 한 번만 samsung 으로 교체(index.html 부트스트랩).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 10:26:52 +09:00
lee-hyeon-cheol and Claude Fable 5.1
e351560377
docs: stage-2 남은 것에 이미지 미저장 이슈 추가
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-21 09:12:19 +09:00
lee-hyeon-cheol
c0a4a79272
Merge branch 'master' of https://git.sqnotes.com/20260807_OPENCODE_TEMP/CODE_ASSISTANT
2026-09-21 09:05:39 +09:00
lee-hyeon-cheol and Claude Fable 5.1
3a602e2890
docs: FabriX 멀티모달 여부·agent-chat API 확인 결과
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-18 13:32:56 +09:00
lee-hyeon-cheol and Claude Fable 5.1
055f0ef473
docs: FabriX 6개 모델 3차 실측 추가
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-18 11:30:47 +09:00
lee-hyeon-cheol and Claude Fable 5.1
7ad48732ae
feat(gateway): 이미지 붙은 요청만 vision 모델(Gemma4)로 — 텍스트는 기본 339
...
Gemma4 가 '안녕' 한 단어에 94s(580 은 188s) 라 텍스트 기본으로는 못 씀.
AAF_FABRIX_VISION_MODEL_ID 가 있으면 messages 에 image_url 파트가 있을 때만 그 모델로 x-llm-model-id 를 바꿈.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-18 10:34:55 +09:00
lee-hyeon-cheol and Claude Fable 5.1
2b8c2d7742
docs: 고객사 첫 배포 기록 — stage-2, 배포 트러블슈팅, FabriX 모델 속도 실측, 오늘 order
...
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-17 16:34:59 +09:00
lee-hyeon-cheol and Claude Fable 5.1
435952f25c
feat(backend): 사내 LLM(FabriX) 게이트웨이 /api/ito + OpenCode FabriX 설정 렌더
...
- apps/gateway: OpenCode→FabriX 통과 중계. 헤더 3종 인증, x-llm-model-id 로 모델 선택, 401 시 Bearer/날것×클라이언트 헤더 재시도, 모델 허용 목록. ABAP_OPENCODE apps_ito 통째 복사 대신 200줄로
- opencode/opencode.fabrix.json.tmpl + render_opencode.py — .env AAF_* 로 렌더
- .env.example AAF 블록(기본 605 Gemma4, TOKEN_PREFIX=bearer). 파서가 줄 끝 # 주석을 값으로 읽던 것 수정
- tests/test_gateway.py 9개(MockTransport)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-17 16:34:53 +09:00
lee-hyeon-cheol and Claude Fable 5.1
47d31dbe06
feat(app): 활성 창 캡쳐·캡쳐 목적지 선택·단축키 Ctrl+Alt 재배치 + UX 손질
...
- Ctrl+Alt+A/Z 맨 앞 창 통째 캡쳐(DWM 확장 프레임 경계), S/X 드래그 캡쳐. A/S 새 대화, Z/X 마지막 대화
- 캡쳐 후 창을 확실히 앞으로(AttachThreadInput), capture.image 에 목적지 path 실어 그 Composer 만 소비
- 드래그 선택영역 원본 밝기·더블버퍼(번쩍임) — code-assistant-v2 복사본에서 이식
- 단축키 Ctrl+Alt+Q/W: Eclipse·ADT·SAP GUI 바인딩 목록 대조해 비어 있는 조합으로
- 버튼 cursor:pointer(Tailwind v4), 가운데 스피너, 스니펫→챗 버튼, 스니펫 검색창 높이 84→88
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com >
2026-09-17 16:34:48 +09:00