让 Eyrie 的 agent 能接收图片、能挑模型、能反问用户、能上报更细的运行信息——同时把底层的数据安全和并发正确性一起补稳。
每一项都是「agent 和用户之间能传递的信息」更丰富了一点。
一次输入不再只是一段文字,可以带图片等附件。文件会先上传、保存到运行 agent 的后台服务(daemon)所在的机器上,并返回一个引用;把这个引用真正随对话喂给 agent 的那一步留到后续(见下方「范围边界」)。
为什么有用:截图、设计稿、报错图这类「一图胜千言」的上下文,将能直接喂给 agent。
每个 provider(接入的 agent 来源,如 Claude Code / Codex)现在能上报「我支持哪些模型、有哪些可调项」,开会话时用户选好的模型和配置会被记住并带给 agent。
为什么有用:同一个 agent 可以按任务切换模型、调整行为,而不用改代码或重启。
agent 执行中可以发起一次结构化提问,用户回答后再继续。敏感答案(密钥之类)只交给 agent,不会被记进日志或推给界面。
为什么有用:缺信息时 agent 不再瞎猜或卡死,而是直接问;同时把敏感输入挡在存储之外。
界面能看到这一回合用了多少 token / 上下文,能把可信操作自动放行,审批和下拉单选等控件也能渲染得更完整;每次运行还能和来源对上号,便于排查。
为什么有用:用量看得见、可信操作免打扰、交互控件更丰富。
不看代码,只看信息怎么从一头走到另一头。
敏感答案永远不会以明文进入日志、界面或回放——只有发回 provider 的那一份是完整的。
这些用户看不见,但决定了上面的能力是否可靠。
开发阶段把累积的多个迁移快照 squash 成一个 0000_init;改结构时直接重建本地开发库,正式 dogfood 前不做保数据迁移,避免半成品迁移堆积。
当「用户回答 / 审批」和「运行被取消」同时发生时,过期的那一方会被整体撤销,界面不会出现「又被取消、又有结果」这种自相矛盾的状态。
只收图片 / 文本 / PDF,挡掉能在浏览器里执行脚本的文件,文件名经过清洗(写不到上传目录之外),大小和长度都有上限。
PR 总计 +5487 / −5018 行:插入几乎全是手写的测试和源码;那一大坨删除是把旧迁移快照压成单一基线。
feat/interface-layer-alignment → main · 30 commits · 51 files