ymq
|
25c2452647
|
feat(secret_vault): 用户敏感信息管理模块(2026-09-17)
敏感信息入库 + 会话占位符引用 + 入站自动侦测 + 执行边界注入,真值全程不进
模型上下文/不落库/不进命令字符串(根治"用户贴apikey→每轮上行供应商"泄露面)。
核心 secret_vault.py:
- AES 密文入库(appPublic.aes + UTF-8包装 + AES1$版本前缀)。注:ahserver 的
password_encode 实测是 RC4 薄封装(globalEnv.py:61),非 AES,故直接用 aes 模块。
aes.py 第42/43行密文侧 iso-8859-1 必须保留(实测200组密文utf-8解码100%失败),
只在调用方对明文侧做 UTF-8→latin-1 字节保真包装(中文/emoji/私钥 9/9 往返一致)。
- 占位符 @@sec:NAME@@(避开 sqlor ${X}$ 与 ahserver ArgsConvert 同语法冲突,
也避开裸 $VAR 被 bash 就地展开)。
- 侦测三通道:已知前缀16种 / 关键词邻域+熵≥3.5 / 不做裸串侦测(防吞哈希数据)。
中文冒号「apikey:」支持;_JUNK_VALUE_RE 拦占位示例值;低熵弱口令不误吞。
- 执行边界:占位符→$PIPELINE_SEC_NAME,真值走 subprocess env=(不用 bwrap
--setenv——值进argv同机任意用户ps可读;env=落/proc/pid/environ仅属主可读)。
- 越权防护:get_secret_row(own_only=) 读写范围分离 + _assert_own 代码级二次校验
(防任意机构成员覆盖/删除机构共享凭据)。写操作显式 COMMIT(多worker)。
- 审计只记 name/type,禁记值。
三路接入:
- gateway._secret_inbound_gate: run_message Step 0.5(所有上下文解析之前),
progress 事件回显动作(体感不变但告知已自动保存)。
- agent_loop_v2: _t_secret_tool 六工具 + _t_run_command 执行边界(前台/后台分支
之前) + _t_process 出站擦洗 + prompt 铁律(仅有 user_id 时注入)。
- agent_loop(v1角色agent): 只读三件(list/use/detect,无人值守禁自主增删凭据);
身份=项目真人owner(resolve_project_owner,已处理 agent.pm 自动立项反查);
run_shell 执行边界 + 出站擦洗。
- _run_shell/bg_jobs.start_bg_job 加 secret_env 参数(无secret时env=None零改动)。
本地测试 124 断言全绿(含三个挂调实锤陷阱回归:子串碰撞/占位符别名劫持/
未知占位符吞空 + 跨文件工具名同步 + 越权防护)。表定义 m0037(pipeline-app)。
|
2026-09-17 15:44:56 +08:00 |
|
ymq
|
c533932ac6
|
docs(readme): LLM超时预算统一治理段(2026-09-16用户裁定单点收敛)——bridge._resolve_budget+inference deadline两处单点,三层预算对齐铁律,忘传timeout结构性安全
|
2026-09-16 18:30:01 +08:00 |
|
ymq
|
a3a1c88859
|
docs(readme): deliver代码真实性三重门禁段(2026-09-16 pbls M1a空壳事故)——git收口引擎化/代码空壳硬门禁_validate_stub_code/产出文件机械核验段,通用规则:门禁证据必须引擎机械计算不靠agent自述,QC取证失败≠判0分
|
2026-09-16 15:23:11 +08:00 |
|
ymq
|
d204ff4a9f
|
docs(readme): 补diagram_gate模块说明——文档配图形态硬门禁(t2i/i2i真图,deterministic伪图检测,deliver双路径+bidding复用)
|
2026-09-15 15:00:28 +08:00 |
|
ymq
|
4d2b3aa848
|
feat(models): 孤儿表归籍——pipeline_agent_instances/agent_settings/project_agents 三表补models定义(此前m0002建表未进models,新库部署缺表);project_capability清除sd_conversations全部4处引用(死表,m0027 DROP);README表清单补归籍说明
|
2026-09-10 19:05:27 +08:00 |
|
ymq
|
cc63f8822c
|
docs: README 补第二批能力对齐(五级工具作用域接线/patch_file/原生视觉多模态链)
|
2026-09-10 18:53:49 +08:00 |
|
ymq
|
057fbfc05c
|
docs: README 补 Hermes 能力对齐四项(memory/manage_skill/后台进程/并行委派)实现说明
|
2026-09-10 17:43:34 +08:00 |
|
ymq
|
b8a2aeadb7
|
fix(models): pipeline_conversations 孤儿表归籍本模块——补models定义(13列与活表逐列对齐,唯一写入方agent_loop_v2._save_turn)+README数据表登记;字段顺序含m0003补列session_id在尾;task_id/step_name/attachments/msg_type/org_id为预留列(活表395行实测零写入),保留定义与活表一致
|
2026-09-10 15:30:40 +08:00 |
|
ymq
|
83c6d7aa5d
|
docs: README 补通用会话产线隔离 7 层纵深防御说明
|
2026-09-05 19:51:57 +08:00 |
|
|
|
20896b6fa0
|
docs: add README.md and skill/SKILL.md
|
2026-08-03 16:46:19 +08:00 |
|
Hermes Agent
|
b9a5810d85
|
feat(v3): human-in-the-loop — interactive steps, pluggable step_type registry
- New states: waiting (step/task), rejected (step)
- New tables: pipeline_human_tasks, pipeline_step_types
- New module: step_registry.py — pluggable step_type metadata
- New module: human.py — human_complete, approval_approve, approval_reject
- Executor: detects interactive step_types, creates human_tasks, enters waiting
- Reject with rollback: approval_reject(rollback_to=step) resets steps and re-runs
- API: human_task_complete, approval_approve, approval_reject, human_task_list
- API: pipeline_step_types, pipeline_register_step_type, pipeline_unregister_step_type
- Built-in interactive types: human_task, approval_gate
- Updated DDL and appcodes
|
2026-06-16 11:05:45 +08:00 |
|
|
|
0dea29e3af
|
fix: 移除 sage 引用,改为通用 APP_ROOT
|
2026-06-11 17:46:45 +08:00 |
|
|
|
2448ad45f7
|
refactor: 改造为通用产线执行引擎模块
- 去掉独立 aiohttp 服务器,改为标准模块(load_pipeline_service)
- 存储从文件系统改 MySQL(sqlor)
- 新增 3 张数据表:pipeline_tasks/task_steps/artifacts
- 多租户隔离(tenant_id)
- 通用 DAG 调度引擎(读 pipeline_steps 表,不硬编码业务)
- 可插拔步骤处理器(register_handler by step_type)
- artifact 版本管理 + 级联重跑
- init/data.json 标准 appcodes 格式
- 完整 README 文档
|
2026-06-11 17:30:06 +08:00 |
|
|
|
5124b4a047
|
docs: 补全README — 引擎架构/状态/关联仓库
|
2026-06-11 14:59:11 +08:00 |
|
|
|
f48c97c852
|
Initial commit
|
2026-06-10 22:42:02 +08:00 |
|