-
Layer 1 (P0): Per-agent session mutex - heartbeat-service.js: skip heartbeat if previous session still active (30min safety valve) - agent-chat.js: reject concurrent /chat requests for same agentId with different convId (429) Multi-turn conversations on same convId still work normally Layer 2 (P1): Advisory file lock utility - server/utils/file-lock.js: O_EXCL-based .lock file mechanism Auto-cleanup stale locks, graceful degradation on timeout Root cause: HeartbeatService creates new convId per heartbeat, spawning independent Claude CLI processes that concurrently write config.json and SKILL.md, causing rollbacks and FRAUDULENT scores.
-
Templates with new train data (hunt/digest/evolve): - agent-creator, auto-publisher, clickbait-copywriter - community-manager, competitor-spy, data-harvester - digester, weibo-scraper, interactive-video-selector - lemonv_drama, reddit-scraper, story-architect Updated configs & plans for all active templates. Updated agent states (master, innovator, hunter, evolver, digester). Added CLAUDE_EFFORT=low to .env (global disable thinking). Updated bin/lemon.js CLI tool. .gitignore: exclude evolve intermediate artifacts (FRAUDULENT, batch/eval scripts, iteration logs/scores, scorer versions, SKILL versions, .env)
-
- New template: content-selector with skills, train data (hunt/digest/evolve) - youtube-crawler: add workspace archive, digest_v2, evolve_v2, mock data - Update agent todo/plan/SKILL files for digester, evolver, hunter, innovator, master - Update server/routes/agent-chat.js - Update .gitignore: exclude runtime data (memory, sqlite, __pycache__, temp files)
-
- Add YouTube Data API v3 key to .env - Update start.sh to auto-load .env file on startup - Add youtube-crawler Skill template with full lifecycle - Add digester/evolver agents for YouTube crawler - Update scheduled tasks and master plan logs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
-
…day window, skip old files
-
…writes (4KB/1s), remove messages.log fallback in loadHistory
-
…to prevent EADDRINUSE
-
1. Workspace page: left file tree + right detail/editor panel - File info: name, path, size, created/modified timestamps - Three view modes: Code / Preview / Edit with save - HTML files auto-open in Preview tab (sandboxed iframe) 2. Backend APIs: - GET/PUT /:companyId/workspace/files (list + content + save) - PUT /:companyId/files/content (company file save) 3. Navbar: removed Skills/Jobs/Pipeline, added Workspace 4. All nav links open in new tabs (target=_blank)
-
- Fixed .gitignore: data/system/ prefix was missing (old paths never matched) - Removed tracked memory/, conversations/, uploads/, .tasks/ files - Only memory.md and hippocampus.md are kept (template skeleton)
-
- Added inline editing for template description and type fields - Implemented Delete Template functionality (removes both file system and registry entry) - Added confirmation safeguards for the destructive delete action
-
Architecture fix for long-running tool execution: 1. ClaudeCliProtocol: Two-tier idle timeout - Chat mode: 45s (detect API hang/silent rate limit) - Tool execution mode: 5min (Bash long tasks like pip install) - Automatically switches on tool_use_start / content_block_stop events 2. Provision API: POST /templates/:templateId/provision - Runs shell commands directly via child_process.exec - Bypasses Claude ACP entirely (no idle timeout issue) - 10min per-command timeout, security blocklist - Frontend button with prompt for custom commands 3. Template UI: Added 🔧 安装依赖 button (teal)