- Remove routes/mcp_resources.py (ui:// URI resolver endpoint)
- Frontend now directly accesses /robots/{bot_id}/skills/{server}/apps/{resource}.html
- Add Daytona fallback middleware to fetch files from sandbox on 404
- Add utils/daytona_file_fetcher.py for on-demand single file download
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Update langfuse CallbackHandler to use trace_context instead of removed trace_id/session_id/user_id params
- Pass session_id/user_id via LangChain metadata with langfuse_ prefix
- Move dereference param from TarFile.add() to tarfile.open()
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New version of NewAPI masks token keys with asterisks in list/detail endpoints.
Added get_token_key() method that calls the dedicated endpoint to retrieve
the full key, and integrated it into get_or_create_token() flow.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The incremental sync used `find -type f` which misses symlinks (type l),
so dataset symlinks were never detected and synced to the sandbox.
Additionally, `tar.add()` without `dereference=True` would store broken
symlinks pointing to host-only paths.
- _list_local_changed_files: match both regular files and symlinks
- _tar_workspace_entries: dereference symlinks to pack actual content
- Unify dataset path to `datasets/` (plural) in prompts and SKILL.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Convert all Chinese comments, docstrings, logger/print output,
HTTPException detail messages, and API response messages to English
across the entire codebase. Functional zh/ja localized strings
(e.g. prompt templates, timezone display names, date formats) are
preserved as-is.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1. Fix "all environment values must be bytes or str" error in hook execution
by ensuring all env values are converted to str (getattr may return None
when attribute exists but is None). Also sanitize shell_env values.
2. Increase MEM0_POOL_SIZE default from 20 to 50 to address "connection pool
exhausted" errors under high concurrency.
Fixes: sparticleinc/felo-mygpt#2519
Co-authored-by: zhuchao <zhuchaowe@163.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* add page number
* feat: add skill feature memory
添加 skill 功能的 feature memory,记录技能包管理服务和 Hook 系统的核心信息。
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(skill): add feature memory with changelog and decisions
添加 skill 功能的完整记忆文档:
Changelog:
- 2025-Q4: 初始实现 (GRPC 层 + 内置 skills)
- 2026-Q1: API 完善 (REST API + Hook 系统)
Design Decisions:
- 001: Skill 架构设计 (目录结构、Hook 系统)
- 002: 上传安全措施 (ZipSlip、路径遍历防护)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* soffice sharp 支持
* shell_env support
* feat: move enable_thinking control from docker-compose to request body
Remove DEFAULT_THINKING_ENABLE environment variable from docker-compose
and settings.py. The enable_thinking flag is now solely controlled via
request body (default: false), as felo-mygpt already passes this config
from RobotConfig database.
Closessparticleinc/felo-mygpt#2473
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: 朱潮 <zhuchaowe@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: zhuchao <zhuchaowe@163.com>