• 排查「前端刷新不及时/没有打字机效果」发现现状已是 SSE,不需要换 WebSocket,
    真正缺的是三件独立的事:
    
    - 打字机平滑:后端把 ACP chunk 按 10 字符切片再发 SSE,前端用定时器队列
      (agentChatEvents.js 的 createTypewriterQueue)匀速吐出,抹平网络突发。
    - 打断并发送:执行中解锁输入框,新增 ⤴ 按钮与 ⏹ Stop 视觉区分;stop 端点
      改为轮询确认 agentChatLocks 真正释放(3 秒预算)再返回 cleaned 字段,
      前端据此决定直接发送还是走"强制发送"兜底。顺手修了一个真实并发漏洞:
      同一 agentId + 同一 convId 的并发请求过去完全没有闸门,只是一直靠前端
      textarea 的 disabled 属性侥幸没被触发。
    - 串台加固:把 handleEvent 分发逻辑抽成不依赖组件实例的纯函数
      (agentChatEvents.js),补上 9b1c3f1 那条不变式的回归测试。
    
    已用真实 Claude CLI 会话(非 mock)在浏览器里验证打字机效果、打断并发送
    全流程、以及纯 Stop 无回归。
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01HDtmdnE6pay9BhwZDAKK6M
    yibo authored
     
    Browse Dir »

  • 远程部署前置需求:登录鉴权 + 公司级多租户隔离。后端 auth.js/jwt-auth.js(注册/登录/
    JWT-cookie/OAuth)本来就已经可用,这次只是把它接到前端。
    
    - scripts/seed-admin-user.js(npm run seed:admin):幂等种子脚本,建出 admin/hex1234,
      role=admin。
    - web/src/composables/useAuth.js + views/Login.vue:登录态 + 登录页。
    - router/index.js 全局 beforeEach:未登录跳 /login?redirect=...,登录后带着原目标跳回。
    - main.js 全局 401 拦截器:cookie 中途过期同样兜住,不止页面切换那一刻。
    - AppNav.vue:显示用户名 + 退出登录。
    - 顺手修:App.vue 原来无条件渲染 MasterChatDrawer,登录页也会露出这个悬浮入口,
      改成登录且非登录页才显示。
    
    业务路由还没加锁(Phase 1 的事),登录后依然能看到现状全部数据,符合这一阶段的验收边界。
    真实浏览器走过一遍全部流程(跳转/登录/跳回/直接刷新受保护路由/退出),npm run build 通过。
    
    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
    yibo authored
     
    Browse Dir »

  • …ter Agent cognitive auto-recovery loop
    
    - Refactored CompanyDashboard into read-only Observer UI
    - Enforced strict companyId:roleId namespacing across Node APIs and AgentManager
    - Added dynamic <env_status> injection to PromptBuilder for robust context
    - Introduced bin/lemon.js CLI for structured LLM tool execution
    - Implemented in-stream error interceptors for implicit silent retry loop
    yibo authored
     
    Browse Dir »

  • - Implement OKR GoalsService with hierarchical node tracking
    - Add /api/goals routes and integrate with dispatch/report APIs
    - Create Innovator agent with Hunt→Digest→Evolving pipeline
    - Create Hunter (l3-hunt), Digester (l2-digest), Evolver (evolving) meta agents
    - Copy L1/L2 dependency skills into each agent's .claude/skills/
    - Fix buildSystemPrompt to scan ALL skill subdirectories (critical)
    - Fix agent list sorting: master pinned top, rest by lastActiveAt
    - Rename master-001→master, innovator-001→innovator
    - Establish meta agent output convention: write to target agent dir
    - Add CXO agent base class for management agents
    - Update CEO agent with delegation-first management model
    yibo authored
     
    Browse Dir »