隐私说明
本说明描述本仓库中 Marginlog 代码如何处理数据。它不是某个具名机构发布的隐私政策。
这些项目是有意留空的。本页不编造它们。
事项和照片留在这个浏览器里
没有账号。保存事项不会上传事项内容。浏览器里保留的是:
- localStorage marginlog:v1 — 事项名称、对方、期望结果、记录正文、你输入的时间、你所写的发生时间、严重度、持续时间、标签、证人备注、附加备注、作废原因、应对步骤、是否归档、所选语言和当前事项。
- localStorage marginlog:v1:cp — 已封存记录的条数和最后指纹,用来事后发现记录末尾被截短。
- localStorage marginlog:v1:lastbackup — 上次下载备份文件的时间。
- localStorage marginlog:v1:corrupt 和 marginlog:v1:corrupt-b — 应用无法读取的数据副本,仅在能够留下副本时。
- IndexedDB 数据库 marginlog,存储 photos — 缩小后的照片。
- localStorage marginlog:license — 通过检查的许可证密钥,以及上次检查的时间。
- localStorage marginlog:gate — 上次状态是否表示已开启付费检查(1 或 0)。
- localStorage marginlog-ai-key — Anthropic API 密钥,仅在你保存之后。
在浏览器中清除本网站数据,会删除该浏览器中的这些副本。应用可以删除事项(可短时间撤销),也可以移除 AI 密钥。这段代码不在服务器上保存事项副本,因此没有可在服务器上删除的副本,也不写删除期限。
导出的文件可能含有个人数据
下载的文件留在你的设备上,除非你自己再发送出去。其中是你输入的内容,可能包括他人的姓名和信息。
- 备份 JSON,含照片。若设置口令,文件用 AES-GCM 加密。密钥由 PBKDF2-SHA256、310000 次迭代导出。口令不会被保存。本应用无法恢复遗忘的口令。
- 报告(复制、打印或 PDF、Markdown)、时间顺序记录(.txt)、CSV、摘要(.md)、日历(.ics)和书面通知草稿。
- 打印和 PDF 可以包含照片。报告和 CSV 包含短指纹。日历文件包含你输入的事项名称和步骤名称。
许可证检查
打开应用时,它向本网站发送 GET /api/license。没有请求体。响应 JSON 的 configured 为 true 或 false。只有服务器环境设置了 LEMONSQUEEZY_PRODUCT_ID 时,configured 才为 true。本仓库中的函数不把该请求写入数据库。
当你按下解锁,以及在保存了密钥之后大约每 7 天,应用会 POST /api/license,JSON 为 {"key":"<许可证密钥>"}。
若未开启付费检查,函数返回 {configured:false},并且不联系 Lemon Squeezy。
若已开启,函数把密钥作为表单字段 license_key 发送到 https://api.lemonsqueezy.com/v1/licenses/validate。仅当 Lemon Squeezy 报告 valid、状态为 active 或 inactive,且产品 id 与 LEMONSQUEEZY_PRODUCT_ID 一致时才接受。浏览器只被告知 {configured, valid}。该函数不保存 Lemon Squeezy 回复的其余部分。浏览器随后把密钥存入 localStorage。
Service worker 不缓存 /api。状态请求也要求浏览器不要使用 HTTP 缓存(cache: no-store)。事项正文、照片、姓名和 AI 密钥不属于许可证请求。
付款
本网站不提供结账。应用配置中的结账地址仍是含有 example.com 的占位地址,因此购买按钮保持隐藏。价格、退款、账单和激活次数尚未提供。测试结账不是销售,本网站也不链接到测试结账。
许可证代码可以按上文调用 Lemon Squeezy 的许可证 API。这并不表示商店已经开放,也不表示已经确定价格。
可选的 AI
除非你保存自己的 API 密钥并按下“用AI分析”,否则不会向 Anthropic 发送任何内容。请求为 POST https://api.anthropic.com/v1/messages,模型 claude-haiku-5-5。密钥放在 x-api-key 头中。它只留在此浏览器,不会发给 /api/license。
消息是一个事项的次数和日期:类型、合计、时间跨度、持续时间、严重度、缺少哪些细节(文字长度、持续时间、证人、照片、记录时间、标签)、准备检查和步骤时间。不包括事项名称、记录正文、备注、姓名、地址、电话号码或标签。若填写了对方,发送的称呼是 당사자 A。回复只显示在屏幕上,这段代码不把它写入磁盘。它是估计,不是法律评估。
托管与其他方
网站通过 Cloudflare Pages 发布在 https://marginlog.pages.dev。打开它会向该主机发送普通的浏览器请求,其中可以包括页面地址、IP 地址和用户代理。本仓库不加入分析脚本,也不设置自己的 cookie。它不说明主机把连接日志保留多久。
这段代码可能联系的各方:
- Cloudflare,作为页面和 /api/license 的主机。
- Lemon Squeezy(api.lemonsqueezy.com),仅用于上文的许可证校验,且仅在开启付费检查时。
- Anthropic(api.anthropic.com),仅用于可选的 AI 请求。
本网站不加载字体文件、分析脚本或付款框架。字体是你设备上已有的字体。Service worker 只保存同源且成功的 GET 响应,/api 之下除外,以便离线打开应用。它不保存其他网站的响应。