【S3W3 交叉评测】Remain Passport:可审计护照、隐私控制与健康边界 #2

Closed
opened 2026-08-06 08:50:29 +08:00 by harrychen901 · 1 comment

1. 项目理解

Remain Passport 为物品、订阅和健康习惯建立多模态数字护照,通过 Intake、维护、修复和主动检查等 Skills,把资料、周报与待办组织为可持续管理流程。

2. 做得好的地方

  • 访客 Demo 入口明确,可自动载入示例护照、周报和待办,降低体验门槛。
  • 对“关闭页面后恢复初始状态”等演示边界有清楚说明。
  • 将一次性识别扩展为生命周期管理,产品结构有连续性。

3. 当前不足

仓库出于产品策略没有公开完整源码,这可以理解,但会降低评委对核心 Agent、数据处理和安全实现的可审核性。多模态材料可能包含身份、健康和资产信息,需要明确保存范围、保留期限、删除/撤回和模型供应商边界。健康例程只能提供一般性提醒,不能让用户误认为诊断建议。若界面展示节省金额等指标,也应公开计算依据。

4. 优先建议

在不公开商业源码的前提下,发布护照 schema、脱敏 execution trace、权限模型和关键安全测试结果;为每条结论显示来源素材与时间。增加数据导出、彻底删除、访客数据隔离、模型不可用和健康高风险升级路径;对节省金额或维护收益提供公式、输入和“不确定”状态。

5. 综合评价

访客体验和生命周期思路较完整。要进一步建立可信度,应以可公开的接口、数据结构和测试证据弥补源码不可审计的限制,并把隐私和健康边界做成产品能力。

评测依据:仓库 README 与访客 Demo 登录页;评测日期:2026-08-06。

## 1. 项目理解 Remain Passport 为物品、订阅和健康习惯建立多模态数字护照,通过 Intake、维护、修复和主动检查等 Skills,把资料、周报与待办组织为可持续管理流程。 ## 2. 做得好的地方 - 访客 Demo 入口明确,可自动载入示例护照、周报和待办,降低体验门槛。 - 对“关闭页面后恢复初始状态”等演示边界有清楚说明。 - 将一次性识别扩展为生命周期管理,产品结构有连续性。 ## 3. 当前不足 仓库出于产品策略没有公开完整源码,这可以理解,但会降低评委对核心 Agent、数据处理和安全实现的可审核性。多模态材料可能包含身份、健康和资产信息,需要明确保存范围、保留期限、删除/撤回和模型供应商边界。健康例程只能提供一般性提醒,不能让用户误认为诊断建议。若界面展示节省金额等指标,也应公开计算依据。 ## 4. 优先建议 在不公开商业源码的前提下,发布护照 schema、脱敏 execution trace、权限模型和关键安全测试结果;为每条结论显示来源素材与时间。增加数据导出、彻底删除、访客数据隔离、模型不可用和健康高风险升级路径;对节省金额或维护收益提供公式、输入和“不确定”状态。 ## 5. 综合评价 访客体验和生命周期思路较完整。要进一步建立可信度,应以可公开的接口、数据结构和测试证据弥补源码不可审计的限制,并把隐私和健康边界做成产品能力。 > 评测依据:仓库 README 与访客 Demo 登录页;评测日期:2026-08-06。
Owner

回复 · Wave 3 交叉评测 Issue 2(2026-08-06)

构建号 0c6587483f25,已部署。可核验入口:curl -s https://passport.rechtan.com/version

评测把问题落在「多模态材料可能包含身份、健康和资产信息,需要明确保存范围、保留期限、
删除/撤回和模型供应商边界」。逐条回答,做了的写做了,没做的写没做。

一、保留期限与删除:访客数据

访客 Demo 的数据不是「关掉页面看起来就没了」,是真的会被删掉:

  • 访客会话 TTL 默认 4 小时(DEMO_GUEST_SESSION_TTL_SECONDS)。
  • 后台清理每 15 分钟跑一次,删除创建超过 5 分钟且没有任何有效会话的访客账号。
  • 删除是先删对象存储里的附件二进制,再删 users 行,其余数据靠外键级联。
    也就是说上传的照片不会以孤儿文件形式留在存储桶里。
  • 访客可以主动点退出,走同一条删除路径,不必等清理。
  • 访客准入本身有频次限制(同指纹每小时、同 IP 每天、全局每天),防止把 Demo 当免费额度刷。

二、保留期限与删除:跨账号知识库(本轮新增)

这是三份评测里唯一指向真实数据流的一条,另一份评测提得更具体,本轮优先做了它:

  • GET /api/v1/knowledge/contributions — 查看本账号贡献进跨账号知识库的全部案例,
    包含入库后的实际文本,不是摘要。
  • DELETE /api/v1/knowledge/contributions/:id — 撤回。物理删除,行消失后向量索引不再命中,
    其他账号立即检索不到。
  • 界面在「账号」页的「我贡献的维修经验」区块,二次确认后删除。
  • 访客问诊不再入库。 一个在 4 小时后连账号都不存在、因而无法撤回的贡献,不该先被创建。
  • 贡献者所在账号被删除后,其未撤回的贡献会以无归属形式留在库中。这一条写在界面上,
    不藏在文档里。

设计与实现细节见 docs/REVIEW_REPLY_WAVE3_ISSUE3.md

三、身份与凭证边界(本轮变更)

本服务不再保存任何密码。登录改由独立的身份服务 Paddock (自托管的SSO服务)完成,本服务只校验一枚 ID Token,
sub 认人(不按邮箱——邮箱可变,用它做主键等于谁拿到这个地址谁继承档案)。
兜底入口是发往管理员邮箱的一次性登录码,8 位、15 分钟、只存 SHA-256、用一次即删、错 5 次作废。

对评测关心的点:这里少了一整类需要自证的东西(哈希强度、找回流程、锁定策略、泄露通知),
不是把它做得更好,是把它移出了本服务的边界。写在 docs/AUTH.md

四、金额指标的算法(评测问「节省金额的计算依据」)

现在的规则是可以说清楚的,说清楚之后也能看出它的局限:

  1. Agent 巡检产出 finding 时给出该 finding 的 saving_cents(估算值)。
  2. 只有由 finding 派生的待办被标记完成,才会把该 finding 的 saving_cents 计入账号累计。
  3. 每条 finding 只计一次,待办反复重开/完成不会重复累加。
  4. 从未被执行的建议不计入。访客 Demo 的数字是预置演示数据,不是算出来的。

也就是说这个数字表达的是「按建议做了的事,按当时估算省下多少」,不是实际到账。
它目前是单一数值,没有区间,没有「不确定」状态——这正是评测要求的部分,本轮没做,
理由见下。

五、已接受,本轮没做

事项 状态与原因
金额与价格的区间、输入与「不确定」态 未做。需要改决策卡与 finding 的输出契约、调整 Skill 提示并重跑真实模型链路验证;改完必须有真实证据,赶工只会得到一个看起来更精确的假数字
数据导出 未做。独立特性,本轮开发窗口放不下
账号彻底删除(用户自助) 未做。目前只有访客账号有完整删除路径,注册账号的自助注销与残留策略需要一并设计
健康事项分档(通用提醒 / 有来源的周期建议 / 必须就医) 未做。涉及 Skill 输出语义变更与升级路径
模型供应商边界的公开说明 未做。当前只有「模型不可用时明确降级、不用假数据顶替」这一条是成立且可见的,「哪些字段会离开本服务、去到哪一类供应商」需要单独一份说明,不在本轮
脱敏后的 execution trace、护照 schema、权限模型、安全测试结果的公开 未做。方向接受,需要单独的脱敏与审阅流程

不给完成时间。已完成的部分现在就能核验,未完成的部分不预告。

六、一处需要提前说明的复核限制

因为访客问诊不再入库,用访客账号进入 Demo 时,「我贡献的维修经验」会是空列表——
能看到入口与说明文案,但复现不了「贡献 → 撤回」的完整链路。这是隐私上的正确取舍,
但确实让这条改动对免注册评审不够可见,先讲清楚,避免被当成功能没做。

# 回复 · Wave 3 交叉评测 Issue 2(2026-08-06) 构建号 `0c6587483f25`,已部署。可核验入口:`curl -s https://passport.rechtan.com/version`。 评测把问题落在「多模态材料可能包含身份、健康和资产信息,需要明确保存范围、保留期限、 删除/撤回和模型供应商边界」。逐条回答,做了的写做了,没做的写没做。 ## 一、保留期限与删除:访客数据 访客 Demo 的数据不是「关掉页面看起来就没了」,是真的会被删掉: - 访客会话 TTL 默认 4 小时(`DEMO_GUEST_SESSION_TTL_SECONDS`)。 - 后台清理每 15 分钟跑一次,删除创建超过 5 分钟且没有任何有效会话的访客账号。 - 删除是**先删对象存储里的附件二进制,再删 users 行**,其余数据靠外键级联。 也就是说上传的照片不会以孤儿文件形式留在存储桶里。 - 访客可以主动点退出,走同一条删除路径,不必等清理。 - 访客准入本身有频次限制(同指纹每小时、同 IP 每天、全局每天),防止把 Demo 当免费额度刷。 ## 二、保留期限与删除:跨账号知识库(本轮新增) 这是三份评测里唯一指向真实数据流的一条,另一份评测提得更具体,本轮优先做了它: - `GET /api/v1/knowledge/contributions` — 查看本账号贡献进跨账号知识库的全部案例, 包含入库后的实际文本,不是摘要。 - `DELETE /api/v1/knowledge/contributions/:id` — 撤回。物理删除,行消失后向量索引不再命中, 其他账号立即检索不到。 - 界面在「账号」页的「我贡献的维修经验」区块,二次确认后删除。 - **访客问诊不再入库。** 一个在 4 小时后连账号都不存在、因而无法撤回的贡献,不该先被创建。 - 贡献者所在账号被删除后,其未撤回的贡献会以无归属形式留在库中。这一条写在界面上, 不藏在文档里。 设计与实现细节见 `docs/REVIEW_REPLY_WAVE3_ISSUE3.md`。 ## 三、身份与凭证边界(本轮变更) 本服务不再保存任何密码。登录改由独立的身份服务 Paddock (自托管的SSO服务)完成,本服务只校验一枚 ID Token, 按 `sub` 认人(不按邮箱——邮箱可变,用它做主键等于谁拿到这个地址谁继承档案)。 兜底入口是发往管理员邮箱的一次性登录码,8 位、15 分钟、只存 SHA-256、用一次即删、错 5 次作废。 对评测关心的点:这里少了一整类需要自证的东西(哈希强度、找回流程、锁定策略、泄露通知), 不是把它做得更好,是把它移出了本服务的边界。写在 `docs/AUTH.md`。 ## 四、金额指标的算法(评测问「节省金额的计算依据」) 现在的规则是可以说清楚的,说清楚之后也能看出它的局限: 1. Agent 巡检产出 finding 时给出该 finding 的 `saving_cents`(估算值)。 2. 只有由 finding 派生的待办被标记完成,才会把该 finding 的 `saving_cents` 计入账号累计。 3. 每条 finding 只计一次,待办反复重开/完成不会重复累加。 4. 从未被执行的建议不计入。访客 Demo 的数字是预置演示数据,不是算出来的。 也就是说这个数字表达的是「按建议做了的事,按当时估算省下多少」,不是实际到账。 **它目前是单一数值,没有区间,没有「不确定」状态**——这正是评测要求的部分,本轮没做, 理由见下。 ## 五、已接受,本轮没做 | 事项 | 状态与原因 | |---|---| | 金额与价格的区间、输入与「不确定」态 | 未做。需要改决策卡与 finding 的输出契约、调整 Skill 提示并重跑真实模型链路验证;改完必须有真实证据,赶工只会得到一个看起来更精确的假数字 | | 数据导出 | 未做。独立特性,本轮开发窗口放不下 | | 账号彻底删除(用户自助) | 未做。目前只有访客账号有完整删除路径,注册账号的自助注销与残留策略需要一并设计 | | 健康事项分档(通用提醒 / 有来源的周期建议 / 必须就医) | 未做。涉及 Skill 输出语义变更与升级路径 | | 模型供应商边界的公开说明 | 未做。当前只有「模型不可用时明确降级、不用假数据顶替」这一条是成立且可见的,「哪些字段会离开本服务、去到哪一类供应商」需要单独一份说明,不在本轮 | | 脱敏后的 execution trace、护照 schema、权限模型、安全测试结果的公开 | 未做。方向接受,需要单独的脱敏与审阅流程 | 不给完成时间。已完成的部分现在就能核验,未完成的部分不预告。 ## 六、一处需要提前说明的复核限制 因为访客问诊不再入库,用访客账号进入 Demo 时,「我贡献的维修经验」会是空列表—— 能看到入口与说明文案,但复现不了「贡献 → 撤回」的完整链路。这是隐私上的正确取舍, 但确实让这条改动对免注册评审不够可见,先讲清楚,避免被当成功能没做。
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
RECHTAN/remain-passport#2
No description provided.