|
|
b4deee0f43
|
fix(sandbox): 修复 macOS 白名单沙箱致 /usr/bin xcselect 垫片全灭
8-30 白名单读模型改革后,/usr/bin 下的 python3/git/clang 等 xcselect 垫片
在沙箱内全部报错退出:垫片启动即拉起 xcodebuild 读
/Library/Preferences/com.apple.dt.Xcode.plist 校验 license(被白名单拒绝),
且经 mach 服务 com.apple.bsd.dirhelper 解析 DARWIN_USER_TEMP_DIR
(profile 无 mach-lookup 放行,confstr 失败回退 /tmp)。
- MACOS_MINIMAL_READABLE_PATHS 增加 /Library/Preferences
- 新增 MACOS_BASE_MACH_RULES 放行 dirhelper,只读/可写 profile 共用注入
- 可写 profile 额外放行 $TMPDIR 父目录,容纳垫片 xcrun_db 缓存写入
(只读 profile 不放行,缓存写失败仅噪音、非致命)
AGENTS.md §10.8 同步补充垫片兼容说明
Co-authored-by: Astrion powered by Kimi-K3 <astrion-agent@users.noreply.github.com>
|
2026-09-07 19:17:12 +08:00 |
|
|
|
652c160640
|
feat(runtime): 抽出 RuntimeService 公共任务入口,任务线程拆除 Flask 隐式上下文
Gateway 化阶段一/二实施(公共任务入口),计划与验收记录见 cache_research/gateway/phase12_implementation_plan.md;契约文档 docs/runtime_contract.md 为本地文档按仓库惯例不入库
- 新增 server/runtime/:RuntimeContext 三层模型(TrustedPrincipal/TaskParams/InternalDirectives)+ RuntimeService(create_task/cancel/guidance/queue/get_task_events)
- create_chat_task 强制显式 session_data(缺失 ValueError,i18n key tasks.missing_session_data);6 处调用点迁移至 runtime_service.create_task()(tasks/api、api_v1、workflow_runtime_api x2、chat_flow_task_main x2),门闸 token 移交与 notice 互斥豁免语义保留
- _run_chat_task 拆除 test_request_context 桥,任务线程全程 RuntimeIdentity 驱动
- 审批超时经 terminal._approval_timeout_seconds 透传至工具循环 4 个 _wait_* 调用点(默认 3600s 语义不变)
- 附带:config/_load_dotenv 容忍沙箱禁读 .env;AGENTS.md 同步结构
测试:改造相关 24/24 全绿(冒烟 6 + runtime_service 10 + model_persistence 4 + identity 路由 4);真实环境验证已由用户人工完成
Co-authored-by: Astrion powered by Kimi-K3 <astrion-agent@users.noreply.github.com>
Co-authored-by: Codex powered by ChatGPT-6-Astra <codex@example.com>
|
2026-09-07 16:16:12 +08:00 |
|
|
|
e4f8f91ff9
|
docs: 沙箱平台口径更新——macOS/Windows 已实测,Linux 未测试未适配暂不可用
Co-authored-by: Astrion powered by Kimi-K3 <astrion-agent@users.noreply.github.com>
|
2026-09-04 10:57:04 +08:00 |
|
|
|
84c40e505e
|
feat(android): 恢复 app 源码追踪——域名构建期注入脱敏 + 应用更名 Astrion
- HOME_URL 改为构建期注入(BuildConfig):-P 参数 > local.properties > 环境变量 > 占位符
- network_security_config.xml 删除冗余 domain-config(base-config 已全局禁明文)
- README 重写:移除真实域名,补充注入方式说明
- app_name 更名为 Astrion;链接外跳系统浏览器(1.0.42)+ 1.0.43 版本
- AGENTS.md §8 补充版本检测链路说明;.gitignore 解除 android-webview-app 排除
Co-authored-by: Astrion powered by Kimi-K3 <astrion-agent@users.noreply.github.com>
|
2026-09-02 07:48:36 +08:00 |
|
|
|
a3fa5e59c6
|
feat(sandbox): Docker 只读执行叠加 Landlock 进程级只读域,封死 world-writable 绕 DAC 漏洞
Co-authored-by: Astrion powered by Kimi-K3 <astrion-agent@users.noreply.github.com>
|
2026-09-01 15:17:23 +08:00 |
|
|
|
b55f4a811d
|
feat(security): 终端读写身份创建时钉死,权限跨界切换销毁重建
- 宿主机持久终端支持只读身份:build_host_sandbox_shell_plan 三平台(macOS Seatbelt 只读 profile / Linux ro-bind / Windows WSL 只读挂载)统一 readonly 参数;macOS 只读 profile 抽为 _macos_readonly_profile_for_workspace 与只读 run_command 共用
- docker_terminal_readonly_enabled 泛化为 terminal_readonly_enabled(docker uid 与宿主机沙箱同一判定:非 unrestricted 即只读身份)
- 权限跨界切换(受限档⇄unrestricted)销毁现有终端会话(close_all),受限档内部互切不销毁;与执行环境切换销毁策略一致
- terminal_input 工具层全面放开:只读白名单加入、审批集合移除、approval/auto_approval 命令文本分流删除;受限档终端内写入由系统 EPERM 兜底,审批写入走 run_command 两段式
|
2026-08-30 23:06:33 +08:00 |
|
|
|
8257e4d34d
|
feat(security): 沙箱只读真强制与权限模式边界收敛
- docker:只读/审批档 run_command、后台命令与持久终端改用非特权 uid(10001) 执行角色,内核 DAC 强制只读,取代文本特征识别;Dockerfile 加固(agent 用户 / git safe.directory / 去 setuid)
- macOS:只读与可写沙箱 profile 统一为白名单读模型(deny default + 系统目录/工作区/路径授权),修复 deny 顺序导致的工作区 .env 实际可读漏洞;可写 profile 白名单化后审批不再放大读取,越界读取唯一途径为路径授权
- 权限模式:受限档(readonly/approval/auto_approval)与 direct 执行环境硬互斥——进入受限档压回沙箱并记录,切回 unrestricted 恢复,存量受限+direct 对话加载自愈矫正
- 配置:路径授权来源收敛为 host_sandbox_policy.json + 环境变量两个通道(移除 settings.json 映射)
- 修复:新建对话权限模式被个性化默认值覆盖、/new 切只读后回落无限制的继承 bug
- 原生文件工具读边界与沙箱白名单同源对齐
|
2026-08-30 22:07:14 +08:00 |
|
|
|
7c7201a574
|
feat(i18n): 前端多语言基建(vue-i18n 文案 token 体系 + 审计栏杆)与第一波迁移
- 基建:static/src/locales/ 11 个命名空间×中英双语,zh 为源语言;
en-US 聚合器 DeepString 强校验 key 奇偶;installI18n/useLocale 复刻 theme.ts 模式
- 语言切换:个人空间→外观→界面语言(默认 zh-CN,localStorage 持久化)
- 防回退栏杆:scripts/i18n_audit.mjs(字符级注释剥离状态机)+ baseline 豁免清单,
挂入 npm run lint 链首与独立 lint:text;规范见 doc/frontend/i18n_spec.md(本地)
- 第一波迁移 13 文件约 1400 条:PersonalizationDrawer/toolRenderers/chatDisplay/
InputComposer/admin 全部 6 应用/tutorial/MonitorDirector/WorkflowEditorView
- common 公共词归并:刷新中/保存中/暂无数据/未运行 单一来源
- AGENTS.md 新增 §5.8 文案规范
|
2026-08-28 12:07:03 +08:00 |
|
|
|
16aaea6b1e
|
refactor(multi-agent): 子智能体统一显示名寻址并增强可靠性
- 全局 agent_id 转为内部实现细节:由 next_free_agent_id 自动分配对话级
最小空闲正整数,不再接受模型指定、不出现在工具参数/结果文案中
- 角色内编号改为 peek + commit 两步:创建成功才消耗编号,失败不跳号
- 所有寻址类工具改用显示名:send_message/stop/terminate 传 display_name,
get_sub_agent_status 传 display_names,sleep 的 wait_sub_agent_output,
子侧 ask_other_agent 传 target_display_name,answer_other_agent 去掉
source_agent_id
- _run_loop 对 _call_model 增加重试:最多 5 次、间隔 10s、仅零接收时重试,
输出中断直接失败;多智能体模式下 5 次全失败转 idle 并向 Team Leader 报错
- 新增工具「正在调用」进度事件(calling),与 running/completed 共用
tool_call id,前端支持同 id 原地更新
|
2026-08-27 09:21:30 +08:00 |
|
|
|
da176ba4c7
|
chore: 记忆审计修正 —— AGENTS.md APIClient 引用 + 删除保存调试 trace 代码
- AGENTS.md §11.2: DeepSeekClient → APIClient(2026-07-28 改名的遗留引用)
- crud_mixin.py: 删除已过观察期的 _debug_conversation_save_trace(含 shrink/wipe_suspect 判定、调用栈捕获、conversation_save_debug.log 落盘)及配套 _CONV_SAVE_LOG_DIR / threading 导入
- 保留 ConvSaveGuard 断言与 ConvSaveMerge 矫正打印(机制级长期日志)
- 验证:模块加载成功 + test_server_refactor_smoke 6/6 通过
|
2026-08-22 19:12:08 +08:00 |
|
|
|
10654c407d
|
release: sync from main @0f9fd1b2 (2026-08-22)
|
2026-08-22 12:27:19 +08:00 |
|