Aska
|
77f75b0d99
|
refactor(web): 前端单页收敛修正——导航式侧边栏 + 去输入模式 chip,mode 由后端自切
按设计/01 §3 + 主人要求:行为模式切换由后端/agent 自切(热切换),前端不再提供
手动切换的行为模式按钮列表。
- 侧边栏改为导航式(连接状态 / 设置 / 管理面板 / 主题),不再列行为模式按钮;
App.tsx 还原 <Sidebar/> 布局。
- ChatInput 去掉行为模式 chip 切换条(模式不由用户手选)。
- useChat.send/chatStream 不再传 mode;消息 mode 由后端在回复时决定,
MessageBubble 仍按 message.mode 渲染。
- ChatShell onVoice 为占位(语音处理在 agent)。
|
2026-09-06 14:04:46 +08:00 |
|
Aska
|
4aab0f501a
|
feat(web): 前端收敛为「共享消息流 + 按消息 mode 渲染」,并补全 emoji→MD3 图标
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
架构变更(主人要求,design/07 §1/§2 已改定稿):把「9 个行为模式 = 9 个独立页面」改为
「一个共享页面 + 每条消息绑 mode,消息框按对应 mode 渲染」。
- ChatMessage 增 mode?(types.ts);useAppStore addUserMessage/beginAssistant 带 mode;
useSendChat.send(text, mode) / chatStream body 带 mode(通知后端按 mode 回复)。
- MessageBubble 按 message.mode 分发到 components/messages/ 各形态渲染器
(chat 气泡 / code 等宽代码块 / home 设备卡 / docs 文档卡 / work 任务卡 / vision 视觉卡)。
- ChatInput 顶部加「行为模式」chip 切换下一条消息的 mode(默认 chat);输入框上方显示当前模式。
- ModeRouter 收敛为只渲染 ChatShell;删除 9 个旧独立 mode 页面;Nav/TopBar 的 mode 改为
「输入模式」语义;settings 归管理面板(design/10)。
同时补全上一轮 emoji→MD3 图标(约 23 文件):新增 Icon.tsx(MD3 SVG、IconName、零依赖、
离线优先),全部界面 emoji 替换为 <Icon name=... />;正文说明箭头保留。
npm run build 绿(tsc 0 错,79→71 模块,JS 284KB/gzip 86KB)。
|
2026-09-06 13:32:44 +08:00 |
|
Aska
|
265b207699
|
chore(deploy): dev-up.sh 的 gateway 端口优先读 .env PORT,支持自定义端口
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 13:12:22 +08:00 |
|
Aska
|
a482bc2ea7
|
feat(web): MD3 矢量图标组件 + 全量 emoji 替换为新图标
新增 src/components/Icon.tsx(Material Symbols Rounded 风格,24 viewBox / currentColor /
零运行时依赖 / 可 tree-shake / 离线优先),导出 <Icon name size /> 与 IconName 类型,
覆盖全部现有界面图标的语义映射(chart/dna/chat/memory/docs/plugin/channel/device/robot/
clock/agent/night/trend/users/settings/light/ac/mic/micOff/sun/moon/lock/block/check/close/
gear/file/package/folder/shield/storage/refresh/vision/home/arrow/terminal)。
将用户端(Nav/TopBar/ChatInput/chat + 各 modes)与管理面板(sidebar 15 模块/Dashboard
卡片/System SectionTitle/Observability StatCard/Agents/Backthink/Automations/AdminTable
empty)中的 emoji 图标全部替换为 <Icon name=... />,icon 字段由 string 改为 IconName /
ReactNode。保留正文说明性箭头(如“设置→连接”)与流程方向箭头。
npm run build(tsc --noEmit + vite build)通过:79 模块,JS 300KB/gzip 90KB。
|
2026-09-06 13:12:22 +08:00 |
|
Aska
|
20305631c5
|
fix(gateway): WebSocket 同源/loopback 等价放行,修复生产同源跨源 403
后端 go:embed 自服务前端时,页面 origin 与网关 Host 一致(production 模式),
但不在 dev 阶段 ALLOWED_ORIGINS(5173/3000)白名单内,originChecker 记 403
导致 WS /ws/chat 握手失败。
改为:同源(origin host == request host)及 loopback 别名(localhost<->127.0.0.1)
自动放行;跨源(不同主机名)仍走白名单。安全不降级:跨源非白名单依旧拒绝。
新增 TestOriginCheckerSameHost 覆盖同源/loopback等效/跨源拒绝/同主机异端口。
|
2026-09-06 13:12:22 +08:00 |
|
Aska
|
13c7c52860
|
chore(deploy): dev-up.sh 兼容无 compose 插件的 Docker,回退 docker run 拉起 cyrene-pg
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
本机 Docker 29.1.3 无 compose 插件(docker compose unknown command / docker-compose 未装),
原脚本每次启动都因 docker compose up 报错而被忽略继续掩盖。改为:
- PG 已在跑 -> 跳过
- 有 compose 插件 -> compose
- 否则回退 docker run 拉起 cyrene-pg
README §3 同步补注该回退行为。脚本幂等,bash -n 通过。
|
2026-09-06 12:15:53 +08:00 |
|
Aska
|
0c93bb4497
|
docs(deploy): README 全流程本地部署方案 + scripts/dev-up.sh 一键启动(PG→llama.cpp embedding→cyrene),路径固定 ~/apps 与 ~/.models,勿用 /tmp
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 11:39:59 +08:00 |
|
Aska
|
7c662511ba
|
docs(embedding): EMBEDDING_API_URL 为完整 /v1/embeddings 端点(非 base);示例改 Qwen3-Embedding-0.6B
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 11:34:41 +08:00 |
|
Aska
|
6ea5affc8a
|
test(vector): mock 对 dim<=0 不再除零(保持 dim0→ErrInvalidDim 意图)
|
2026-09-06 11:31:17 +08:00 |
|
Aska
|
111ad598be
|
fix(vector): New 在 embedder 维度未知(API 首请求前为0)时先 probe 一次学真实维度,避免 PG 向量索引 fallback
|
2026-09-06 11:30:26 +08:00 |
|
Aska
|
74f8eada47
|
docs(README): Embedding 推荐更新为 Qwen3-Embedding-0.6B(Q8_0 639MB 首选,ModelScope 国内可下/GGUF,dim 1024 注意清向量表)
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 11:19:17 +08:00 |
|
Aska
|
2d256264ec
|
docs(README): 去除用户侧文档中的本机开发环境细节,改用通用/资源分级表述
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 10:47:48 +08:00 |
|
Aska
|
3ed7fbbc69
|
docs(README): 用户侧本地部署指南 + Embedding 模型推荐列表(bge-m3 首选,dev 环境用 bge-small-zh-v1.5)+ llama.cpp 替代说明
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 10:45:38 +08:00 |
|
Aska
|
efc1b115c9
|
fix(gitignore): 修正行尾注释导致 data/cyrene 未忽略(改为纯 pattern + 独立注释行)
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 10:41:32 +08:00 |
|
Aska
|
16ae72f24e
|
chore(gitignore): 追加开发/运行本地产出(data/ SQLite 目录、cyrene 根构建产物;internal/webui/dist 由 dist/ 覆盖)
|
2026-09-06 10:41:13 +08:00 |
|
Aska
|
cb6fac587b
|
test(db): Open 自动建父目录改为断言成功(行为改进)
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 10:40:06 +08:00 |
|
Aska
|
1d9c14300d
|
fix(db): Open 自动创建父目录(自定义 DATA_DIR 首启不报错);add docker-compose.dev.yml(PG+pgvector 必需 + Ollama embedding 可选)
|
2026-09-06 10:39:27 +08:00 |
|
Aska
|
cee2d26205
|
fix(wire): resolveDataDir 改用 cfg.DataDir(.env 的 DATA_DIR 真正生效,不再落平台默认目录)
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 10:32:20 +08:00 |
|
Aska
|
3632e04733
|
feat(model): 双协议 LLM Provider(AnthropicChNativeAdapter /v1/messages + tool_use.input→Args 直接映射 + 流式重组)+ Provider 感知工厂/路由 + LLM_PROVIDER/anthropic 配置(OpenAI 兼容保留)
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 09:41:06 +08:00 |
|
Aska
|
f9650185f1
|
test(gateway): 补 handler/WS/admin/static/middleware 测试至覆盖率 95.9%(≥70% 达标)
CI / Backend (build / vet / test / cross-compile) (push) Has been cancelled
CI / Frontend (tsc + vite build) (push) Has been cancelled
|
2026-09-06 08:19:31 +08:00 |
|
Aska
|
3146b515f3
|
chore(ci): 新增 CI(前端 build→go build/vet/test→cross-compile 矩阵 + 覆盖率上报);README 同步 M0-M11 状态/快速开始/技术栈/文档索引
|
2026-09-06 08:13:12 +08:00 |
|
Aska
|
a7feaeb2cb
|
feat(deploy): M11 单二进制装配(cmd/cyrene 全链路 wire + go:embed 前端 + 外置 dist 覆盖 + 优雅关闭 + SPA 静态服务);前端 build 拷到 internal/webui/dist
|
2026-09-06 08:10:35 +08:00 |
|
Aska
|
f43eb17030
|
feat(frontend/admin): M10 后台管理面板(/admin hash 路由 + 15 大模块 + RBAC(owner/admin/viewer) + 审计 + Miuix);Docs/api-client.md v0.3 契约补全;tsc+vite build 通过
|
2026-09-06 07:55:04 +08:00 |
|
Aska
|
4c48e94659
|
feat(frontend): M9 模态 UI(mode 系统+共享 store+WS 客户端 + chat(思维链/工具回显/情绪徽标)/code/Agent 监控/后台思考页 + Miuix 设计 token + PWA);tsc+vite build 通过
|
2026-09-06 07:44:40 +08:00 |
|
Aska
|
b3ffd51736
|
docs(api): M8 gateway 端点落地——login/health/chat/sessions/personas + admin 只读 + plugins/policy + WS /ws/chat 契约补全
|
2026-09-06 07:34:04 +08:00 |
|
Aska
|
df70313d6d
|
chore(deps): 添加 gorilla/websocket(WS Hub)+ robfig/cron(自动化调度)
|
2026-09-06 07:33:11 +08:00 |
|
Aska
|
6f97fded3a
|
feat(backthink): 后台自主思考(heartbeat+事件触发 + 打扰决策 fail-closed + 主动推送活跃→IM 兜底 + 限制 + 思考记录)
|
2026-09-06 07:33:06 +08:00 |
|
Aska
|
05e23ea590
|
feat(gateway): 网关(REST /api/v1 + WS Hub /ws/chat + admin /api/v1/admin/* + JWT/RBAC + 审计,单端口 :8080)
|
2026-09-06 07:32:40 +08:00 |
|
Aska
|
ff34b62079
|
feat(automations): 自动化引擎(cron 调度 + 事件触发 + AI 管线动作 + 提醒调度,bus automation.result/reminder.trigger)
|
2026-09-06 07:32:29 +08:00 |
|
Aska
|
a3f6f4f687
|
feat(auth): JWT(HS256 stdlib) + RBAC(owner/admin/viewer) + API key + 密码 hash;config 校验
|
2026-09-06 07:19:28 +08:00 |
|
Aska
|
7f7cb8fbf7
|
feat(errors): 统一 AppError(Code/Message/Cause/HTTPCode + Wrap %w + HTTPStatus + ToJSON {error:{code,message}})
|
2026-09-06 07:15:34 +08:00 |
|
Aska
|
ebeecc7a32
|
feat(task): 任务执行模型(后台声明/前台2s转后台/bus task.done 回输出/实时输出读取/Abort 防失控)
|
2026-09-06 07:11:03 +08:00 |
|
Aska
|
430fc4666b
|
feat(exec): 本地执行 Provider + 放权终端沙箱(白名单/工作目录/超时/输出截断/默认关)+ 文件沙箱;config 增 ExecSandbox(默认关)
|
2026-09-06 06:59:23 +08:00 |
|
Aska
|
88dc12466d
|
feat(channels/weixin_ilink): 微信 iLink 渠道插件(扫码登录+长轮询+游标+context_token+AES-128-ECB 媒体+24h 主动推送窗口)
|
2026-09-06 06:49:35 +08:00 |
|
Aska
|
7831b0ea1b
|
feat(channels/qq_obv11): OneBot v11 渠道插件(正/反 WS 双模式 + CQ 媒体 + 限频,stdlib 自研 WS)
|
2026-09-06 06:46:43 +08:00 |
|
Aska
|
f9f5a78a02
|
feat(channels/telegram): Telegram 渠道插件(Bot API 长轮询/Webhook + file_id 媒体 + 主动推送强)
|
2026-09-06 06:38:13 +08:00 |
|
Aska
|
0b036645bb
|
feat(channels/webhook): 入站回调渠道插件(JSON/Form 解析 + HMAC 签名 + InboundHandler 供 gateway 挂载,主动推送不支持)
|
2026-09-06 06:37:16 +08:00 |
|
Aska
|
7adaf490c7
|
feat(channel/session): 渠道↔会话映射 + 主人识别(actor元数据+白名单,不读消息内容) + 群聊隔离 + 主动推送策略(iLink24h/OneBot限频)
|
2026-09-06 06:36:27 +08:00 |
|
Aska
|
3ce9489f8e
|
feat(tools/io): 内置 IO/网络工具(file(路径安全)/http(SSRF防护)/web-search/web-fetch/knowledge)+ 大小截断
|
2026-09-06 06:29:03 +08:00 |
|
Aska
|
488cf9c79c
|
feat(capability/mcp): MCP 客户端(stdlib JSON-RPC over stdio/SSE)+ Registry 自动注册/Unregister(registry 增 Remove)
|
2026-09-06 06:28:38 +08:00 |
|
Aska
|
08223c06a5
|
feat(tools/basic): 内置基础工具(calculator(注入安全)/datetime/random/text/json/markdown)+ 批量注册
|
2026-09-06 06:26:59 +08:00 |
|
Aska
|
b3c61aa1ff
|
feat(iot): IoT 插件化(Provider/Manager/mock 8设备/能力约束/bus 事件);feat(capability/restrict): 工具级布尔标记(群聊/陌生人可用,默认关,策略引擎雏形)+ registry ToolPolicy
|
2026-09-06 06:26:21 +08:00 |
|
Aska
|
915aa8a100
|
feat(capability/skills): 可复用工作流技能(Skill 模型 + Store + YAML Loader + Runner 展开 + 注册)
|
2026-09-06 06:25:42 +08:00 |
|
Aska
|
d947ec41a9
|
feat(memory): M4 记忆完善(三类作用域访问规则+项目索引分层+LLM异步提取+衰减溯源+向量接入,兼容既有57用例)
|
2026-09-06 06:15:18 +08:00 |
|
Aska
|
5b37f5a551
|
chore(deps): 添加 pgx/v5 驱动(memory/vector 的 PG pgvector 真生效路径)
|
2026-09-06 06:15:18 +08:00 |
|
Aska
|
fb880572a4
|
feat(memory/vector): 向量检索引擎(SQLite BLOB 内积默认 + PG pgvector 真语义增强,配置后真生效)
|
2026-09-06 06:04:44 +08:00 |
|
Aska
|
ef79edd96a
|
feat(memory/projectindex): 项目索引分层(索引+描述+章节,Search 定位行+上下文,级联删除)
|
2026-09-06 06:01:20 +08:00 |
|
Aska
|
d90ec7bd4f
|
feat(orchestration): 子代理编排调度器(创建/生命周期/并行上限4/超时/防失控/结果合并/进度事件/隔离上下文+独立工作记忆)
|
2026-09-06 05:53:54 +08:00 |
|
Aska
|
20f4a91d02
|
feat(orchestration/comm): agent-to-agent 通信(bus ask/reply/event,私密 reply 主题 + 超时)
|
2026-09-06 05:41:54 +08:00 |
|
Aska
|
8b723009f9
|
feat(orchestration/audit): 子代理上下文可审计查询(全量/尾部/关键词定位)+ 主代理代审授权(审计日志+小字)
|
2026-09-06 05:39:06 +08:00 |
|