Commit Graph
20 Commits
Author SHA1 Message Date
kimandClaude Opus 4.8 949a910ad6 Release 2.8.2: render title-slide photo background in PPTX
The slide editor draws a title slide's image as a full-bleed darkened
background, but pptx_gen.py's make_title_slide ignored image_path entirely
and only drew the skin background — so photo backgrounds showed in the
editor but vanished from the generated PPTX / preview.

- make_title_slide now renders image_path full-bleed (cover) with a dark
  overlay and white title/subtitle, matching the editor preview.
- Add set_shape_fill_opacity() that injects OOXML <a:alpha>, since
  python-pptx's fill.transparency is a silent no-op (the overlay was
  rendering as fully opaque black). Apply it to the fullscreen bottom bar too.
- Pass project_dir/workspace_path/warnings into make_title_slide.
- Bump version to 2.8.2.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 20:42:25 +09:00
kimandClaude Opus 4.8 957a13f98c Release 2.8.1: pptx-wizard slide editor + fixes
- Fix pptx-wizard slide editor modal opening off-screen (header clipped)
  when a saved drag position is restored on a fresh page load: clear the
  CSS centering transform and clamp coordinates into the viewport.
- Add pptx-wizard.html and python-runner.html web UIs.
- Bump version to 2.8.1.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 20:14:01 +09:00
kimandClaude Sonnet 4.6 2d3e33b6b3 Centralize all path management via src/config/paths.ts
- Add getPaths() with workspace, scripts, ppt skin/template paths
- Export getWorkspacePath(args?) helper — removes duplicate local functions
  and stale process.cwd()/workspace fallbacks from sqlite, pdf, excel,
  image, pubmed, email, audio-transcribe (7 files)
- weather.ts: replace __dirname-relative scripts path with getPaths().scripts
- Move ppt/ to .smallclaw/skills/presenter/ppt/; update server-v2.ts,
  pptx.ts, pptx_gen.py (argparse --skin-dir/--template-dir)
- Fix PPT skin thumbnail serving: res.sendFile → fs.createReadStream
  (bypasses send module dotfiles restriction for .smallclaw/ paths)
- Fix workspace default: .smallclaw/workspace (was project root workspace/)
- Fix subagent paths to use SMALLCLAW_DATA_DIR env var
- Fix Monaco marked module load failure: restore define.amd on
  DOMContentLoaded after deferred UMD libs (tone, magenta) have loaded
- Add AudioContext resume on first user click (Chrome autoplay policy)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 16:55:14 +09:00
kimandClaude Sonnet 4.6 5608b83850 Refactor project layout and fix workspace/subagent paths
- Remove global workspace (workspace/) — all data migrated to .smallclaw/
- Move ppt/ skins & templates to .smallclaw/skills/presenter/ppt/
- Add .smallclaw/templates/ for user bootstrap files
- Move dental_images to .smallclaw/databases/, update 1,485 DB entries
- Fix subagent store paths to use SMALLCLAW_DATA_DIR instead of workspace.path
- Per-user Telegram bots: MultiUserTelegramManager, vault-stored tokens
- Fix Telegram token persistence (vault fallback, strip from config.json)
- Fix session migration: delete global originals even when skipping
- Delete unused root images, MD docs, tests/, smallclawworkspace/ artifacts
- Add meteorologist skill, counselor skill, presenter skill scaffold
- Strip workspace.path from config.json (was causing path confusion)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 15:21:21 +09:00
kimandClaude Sonnet 4.6 d7eb0abc6d Add meteorologist skill with 9 weather/climate tools
New skill:
- .smallclaw/skills/meteorologist/SKILL.md — 기상 전문가 스킬 (Windy iframe 규칙 포함)

New weather tools (src/tools/weather.ts):
- weather_airpollution: OpenWeather 대기질 (AQI, PM2.5/PM10/O3/NO2)
- weather_openmeteo: Open-Meteo 시간별 예보 (ECMWF/GFS, 키 불필요)
- weather_kma: 기상청 공식 API (초단기실황·단기예보)
- weather_airkorea: 에어코리아 실시간 대기질
- weather_nasa_power: NASA POWER 기후 데이터 (MERRA-2, 키 불필요)
- weather_era5: ERA5 재분석 과거 데이터 (Open-Meteo Historical, 키 불필요)
- weather_cds: Copernicus CDS 정식 API (ERA5·CMIP6 SSP 시나리오)
- weather_cmip6: CMIP6 기후 모델 (Open-Meteo Climate API, 키 불필요)

Scripts:
- scripts/era5_cds_fetch.py — CDS/CMIP6 Python 헬퍼 (ZIP→NetCDF 처리 포함)

web-ui:
- Windy URL → iframe 자동 렌더링 (standalone URL + 마크다운 링크 모두 감지)
- windyToEmbedUrl: windy.com comma 형식 URL 파싱 개선

server-v2.ts:
- BROWSER RULE: "열어줘" 제거 → 오용 방지
- weather context: 9개 도구 선택 기준 추가
- JSON schema 8개 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 14:22:49 +09:00
kimandClaude Sonnet 4.6 ac678db97b Track heartbeat/skills settings, add vault backup script
Settings that were silently lost on reinstall:
- Track .smallclaw/heartbeat/config.json (active hours 8-22, interval 30m)
- Track .smallclaw/skills_state.json (multi-agent-orchestrator enabled)
- Fix gitignore: heartbeat/ → heartbeat/runs/ (only ignore run logs, not config)
- Fix gitignore: remove skills_state.json from ignored list

Vault (contains channel tokens, passwords) cannot go in git — instead:
- Add scripts/backup-vault.sh: backs up vault+credentials to ~/.smallclaw-backup/
  keeping last 5 snapshots. Run manually or via cron (0 3 * * *).
- Run initial backup now → ~/.smallclaw-backup/vault_20260518_232441

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 23:24:54 +09:00
kimandClaude Sonnet 4.6 38fbb03f90 Tighten gitignore, clarify ollama_web_search, add image deps installer
- Add per-user session/workspace paths to .gitignore so runtime data
  (sessions, uploads, memory, attachments, pubmed) is no longer tracked
- Narrow ollama_web_search description to prevent it being chosen over
  web_search for news/info queries — it's now explicitly a fallback only
- Add scripts/install-image-deps.sh to install Pillow/torch/rembg deps
- Remove stray root files (1, pdf-pptx.txt, eng.traineddata)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 22:23:03 +09:00
kimandClaude Opus 4.7 34932ac50a Refactor per-user channel registration and improve PDF/PPTX workflows
- Generalize per-user channel registration (telegram/discord/whatsapp)
  via vault instead of config.json userMap
- Add API endpoints for self-service channel binding
- Migrate Telegram channel to use vault-based username resolution
- Improve PDF figure extraction filters (OpenCV)
- Fix PPTX image embedding and font sizing
- Reorder search providers: searxng → ddg priority

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 22:37:56 +09:00
kim c26f9b431b v2.6.2 2026-05-10 12:00:01 +09:00
kim a77ee3bdc9 v2.6.0 2026-05-06 22:45:28 +09:00
kim 13f832f693 v.2.5.0 2026-05-05 17:46:17 +09:00
kim 233b67b9a3 v2.4.1 2026-05-05 00:51:37 +09:00
kim 83eb31f121 v2.3.1 2026-05-02 23:15:25 +09:00
kim 6675779566 v2.2.2 2026-05-01 01:09:04 +09:00
kim c348c9cbed v2.1 2026-04-29 23:16:01 +09:00
kim d89d7213f6 v2.0 2026-04-29 22:23:08 +09:00
kim 1106553b81 v1.0.5 2026-04-29 18:03:48 +09:00
kim 4324985508 v1.0.4 2026-04-29 17:34:36 +09:00
kim 5fc7cdb6be v1.0.1 2026-04-29 15:39:52 +09:00
kim 3e8974a8eb v1.0 2026-04-29 11:45:59 +09:00