• 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.
    yibo authored
     
    Browse File »

  • Fixed 4 hidden bugs where path.join(DATA_ROOT, "system", ...) was used instead
    of direct path.resolve to root-level system/:
    
    - agent-chat.js: billing log scan (line 804) and agent list scan (line 909)
    - company-service.js: TEMPLATES_DIR and GLOBAL_AGENTS_DIR constants
    - heartbeat-service.js: system agents scan directory
    
    These were missed because they used path.join with a variable (DATA_ROOT)
    rather than the literal string "data/system" that sed caught.
    Yi Bo authored
     
    Browse File »
  • - Moved data/system/ → system/ (agents, templates, skills, data, workspace)
    - Updated all server route/service path references
    - Updated all script path references
    - Updated all documentation references
    - Restructured .gitignore for cleaner system/ vs data/ boundary
    
    system/ = platform-shared assets (system agents, template library)
    data/ = tenant-specific company instance data
    Yi Bo authored
     
    Browse File »

  • - System agents: 只保留 master (data/system/agents/master)
    - Templates: 所有可复用 agent 模板 (data/system/templates/)
    - Companies: 公司创建时自动部署 5 个元 Agent (innovator/hunter/digester/evolver/agent-creator)
    
    路径修复:
    - agent-chat.js: /list 扫描路径修正 (system/agents + companies/*/agents)
    - agent-manager.js: 动态 agent 查找路径修正
    - skill-config-loader.js: 修正 agents root
    - pipeline-service.js: pipelines 输出到 companies/{id}/pipelines/
    - billing.log: 移至 companies/{id}/logs/ 下
    
    Skills 标准化:
    - 所有 template agent 建立 .claude/skills/main_skill/SKILL.md
    - company-service._copyTemplate() 新增 .claude/ 目录复制
    - innovator SKILL.md v3.0: 移除旧 l3-hunt/l2-digest 命名
    - 清理重复 agent_creator, 统一为 agent-creator
    
    清理:
    - 移除 data/agents, data/workspace, data/logs, data/goals 旧目录
    - 清除所有未使用的 DATA_DIR 声明
    - 清除 template 中的 conversations/logs/memory 运行态数据
    yibo authored
     
    Browse File »


  • - Extracted HeartbeatService to periodically wake up agents flagged with 'heartbeat.enabled'
    - Sends a silent [SYSTEM HEARTBEAT] message to trigger self-checks (e.g. OKR state validation)
    - Automatically integrated service dispatch hook in server startup sequence
    - Configured qa-judge to run autonomous heartbeat every 10 min
    yibo authored
     
    Browse File »