- 2>/dev/null || true 조합이 Synology ACL 실패를 완전히 숨겨
신규 생성 디렉토리가 root:root로 남는 문제 해결
- chown/chmod 실패 시 WARN 로그 출력 및 CHOWN_FAILED 플래그
- trailing slash 제거로 디렉토리 자체도 재귀 chown 대상에 포함
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- stock-lab: POST /api/stock/news/summarize 추가 (Ollama /api/generate 호출, 토큰/duration 추적)
- agent-office: telegram 패키지 분해 (client/formatter/messaging/webhook/router/agent_registry)
- send_agent_message 통합 API로 에이전트 중립 메시지 포맷 표준화
- 텔레그램 → 에이전트 명령 라우터 (/status, /stock news, /music credits 등)
- 토큰 사용량 집계 API 및 GET /agents/{id}/token-usage
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add WebSocket notification messages for task_assigned/task_completed
- Structure telegram send_message return value with ok/message_id
- Track telegram delivery status in task result_data
- Add test_telegram command to stock agent
- Add GET /api/agent-office/activity unified feed endpoint
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- deploy.sh / deploy-nas.sh: 서비스 목록을 변수로 통합하여 누락 방지
- deploy-nas.sh: rsync 전 chmod u+rwX로 Docker root 소유 파일 권한 확보
- healthcheck.sh: music-lab, blog-lab, realestate-lab, agent-office 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- deploy.sh의 BUILD_TARGETS, 고아 컨테이너 정리, 헬스체크, data 디렉토리에
agent-office 추가
- .releases 오래된 백업 삭제 시 chmod u+rwX로 권한 확보 후 삭제
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- _enrich_items()로 통합: 가격 범위 + match_score/reasons/eligible_types
- 프로필 기반 매칭 점수가 공고 카드에 바로 표시됨
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- announcements 테이블에 is_bookmarked 컬럼 추가 (마이그레이션 포함)
- PATCH /announcements/{id}/bookmark 토글 API 추가
- 공고 목록에 모델 기반 가격 범위(min_price, max_price_display) 포함
- 대시보드에 즐겨찾기 목록 + 개별 이벤트 일정 형식 반환
- 지역 검색을 LIKE 부분 매칭으로 변경
- 수집 시 일정 정보 없는 공고 건너뛰기
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- sqlite3.connect timeout=10 추가 (기본 0초 → 즉시 실패 방지)
- run_matching() 단일 connection으로 통합 (프로필 조회~매칭~저장)
- matches/refresh 엔드포인트 에러 핸들링 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- music_library에 file_hash(MD5) 컬럼 추가
- _sync_library_with_disk를 3단계로 변경:
1. 파일명 매칭 (빠른 경로)
2. 해시 비교로 rename 감지 → 기존 레코드 업데이트 (태그 보존)
3. 나머지 → 삭제/추가
- 파일명 변경 시 audio_url 업데이트 → 다운로드도 새 이름 적용
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
deployer 내부(/runtime)와 NAS 호스트(/volume1/docker/webpage)에서 docker compose
실행 시 디렉토리명 기반 프로젝트명이 달라져 컨테이너 관리가 불가능한 문제 수정.
name: webpage으로 고정하여 어디서 실행해도 동일한 프로젝트로 인식.
deprecated version: "3.8" 제거.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
docker ps --filter 방식이 Synology에서 불안정하여
docker compose stop/rm으로 compose 관리 컨테이너를 먼저 정리하고,
이름 기반 docker rm으로 고아 컨테이너도 추가 정리하는 2단계 방식으로 변경.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
deployer 컨테이너 내부에서 docker compose up 실행 시 상대 경로(./data/music)가
/runtime/data/music으로 해석되어 호스트에서 bind mount 실패하는 문제 수정.
${RUNTIME_PATH}/data/<service> 패턴으로 통일하여 NAS 환경에서도 호스트 절대
경로(/volume1/docker/webpage/data/*)가 정확히 전달되도록 함.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>