匿名优先
不登录也能填写和保存设置;生成绘本或角色预览时才需要登录。家庭资料等需要账户的功能不是创作前提。
PRIVACY & DATA
不登录也能填写和保存创作设置,生成时才需要登录。登录不等于同意上传,本机资料和私有云副本分开管理。 但“保存在本机”不代表生成过程完全离线:你提交的创作文字会经 Moonwish 服务器和当前配置的 AI 服务处理。
基于当前代码与生产存储实测更新:2026 年 10 月 15 日 · 照片保留的表述更新:2026 年 10 月 18 日 · TikTok 广告衡量改为默认开启:2026 年 10 月 24 日
不登录也能填写和保存设置;生成绘本或角色预览时才需要登录。家庭资料等需要账户的功能不是创作前提。
登录不会搬走本机资料。照片进入私有云前,还需要本人或监护人的明确确认。
本机清理、云端导出与删除入口不与订阅或生成额度绑定。
这是依据当前 Moonwish 开源代码整理的产品数据说明,用来解释不同功能的数据流和已知边界。 它不是法律意见、合规认证或对所有第三方服务留存策略的保证。
当前 Moonwish 站点已经完成私有云 migration、RLS、私有 Storage、双账户隔离和合成记录双写验收; 同一账户两台真实设备的完整 UI 闭环仍待最终确认。其他自托管部署不能直接沿用本站的验收结论。
实际处理内容取决于你使用的功能。普通创作、成长记录、家庭角色、家庭声音、邮件订阅和公开分享是彼此独立的操作。
| 资料类别 | 示例 | 用途 | 保存或处理位置 |
|---|---|---|---|
| 创作输入 | 名字或昵称、故事想法、年龄段、语言、风格及你主动填写的个性化细节 | 生成故事、插图与朗读内容 | 发送到 Moonwish 服务器,并由当前部署配置的 AI 服务处理 |
| 当前设备资料 | 最近绘本、成长记录、成长照片、朗读缓存、偏好和分享删除凭据 | 在本浏览器继续阅读、编辑或清理 | 浏览器的 IndexedDB、localStorage 或缓存;不会因登录自动上传 |
| 账户资料 | 登录邮箱、账户标识、保存与同步偏好 | 登录、读取本人云端档案和执行账户控制 | 当前部署配置的 Supabase 认证、数据库与私有存储 |
| 主动选择的私有云资料 | 孩子档案、家庭角色、绘本、成长记录、照片和家庭声音元数据 | 跨设备查看、家庭角色复用、导出和删除 | 只有在相应功能中主动保存或逐项导入后,才进入私有云空间 |
| 已购买并交付的绘本 | 绘本标题、八页文字、页序,以及指向页面图片的资产编号 | 即使生成缓存已经过期,仍能重新打开你已付款收到的绘本 | 私有云数据库(仅服务端可读)+ 私有 Storage 中的页面图片 |
| 免费角色预览图 | 一张角色设定图,以及开始预览所需的内部记录 | 让你在付费前先看到孩子的角色形象,并在之后购买时复用 | 私有 Storage;图片只有本人账户可读 |
| 朗读音频缓存 | 按朗读文本与音色参数的哈希命名的音频文件,不含账户标识 | 同一段文字再次朗读时直接取用,不重复合成 | 私有 Storage;因为不按账户命名,删除账户不会连带删除它 |
| 防滥用信号 | IP,以及浏览器端由随机 ID 和部分浏览器/设备特征生成的散列标识 | 限制免费生成频率、阻止自动化滥用 | 服务器会再组合散列后用于限流;不用于建立孩子画像 |
| 邮件与客服内容 | 你主动订阅的邮箱、确认状态,以及主动发给在线客服的消息 | 发送已确认订阅的邮件,或回复支持请求 | 邮件服务和客服服务;登录本身不会触发订阅或打开客服 |
最近绘本、成长记录和成长照片可以保存在当前浏览器中。清理浏览器、切换设备、无痕模式或浏览器存储失败, 都可能让这些本机资料无法恢复;本机保存不等于服务器备份。
登录后,系统仍不会自动上传既有本机内容。导入界面默认不选中任何项目,用户可以逐项选择; 导入后本机副本继续保留,本机和云端也可以分别删除。
家庭角色照片或成长照片进入私有云前,界面要求确认自己是照片中的本人或其监护人、已获得明确授权, 并同意相应用途。登录状态本身不代替这项确认。
下面每一行的保留规则都来自当前代码。最后一列是 2026 年 10 月 15 日对生产存储的一次只读抽查,是那一刻的快照,不是承诺,也不是目标值。 过期对象由生成工作进程在每轮运行时清理,所以一个对象可能在到期后短暂存在,直到下一轮清理到它。
| 内容 | 保留规则 | 由什么执行 | 2026-10-15 抽查 |
|---|---|---|---|
| 生成过程中的临时图片(书页交付前的临时副本、中间图) | 创建后 24 小时过期;生成诊断图 48 小时 | 生成工作进程每轮运行都会清理一次过期对象 | 36 个文件,最旧 1.4 天(约 34 小时)。两种时效共用同一前缀,这个数字本身不区分它们。 |
| 你上传的照片(先在你的设备上缩小、转码后才上传),以及由它生成的角色参考图(让同一本绘本八页保持同一个孩子) | 创建后 7 天过期 | 同一个清理流程,按到期时间索引 | 145 个文件,最旧 6.9 天,没有超过 7 天的残留 |
| 你主动保存为“家庭角色”或成长照片的图片 | 不会自动删除,保留到你删除该角色或删除云端档案 | 只由你的删除操作触发 | 3 个文件,最旧 29.3 天 |
| 已付款并交付的绘本(标题、八页文字、页序)及其页面图片 | 不会自动删除,保留到你删除该绘本或删除云端档案 | 只由你的删除操作触发 | 已归档 12 本;页面图片 260 个文件,最旧 31.2 天 |
| 你主动保存到云端的绘本副本 | 不会自动删除,保留到你删除它或删除云端档案 | 只由你的删除操作触发 | 9 个文件,最旧 30.4 天 |
| 免费角色预览图 | 不会自动删除;每个账号一次,保留下来是为了避免免费机会已用而图片消失 | 只由你的删除操作触发 | 生产中尚无任何账号完成过免费预览(记录 0 条) |
| 朗读音频缓存 | 不会自动删除;按朗读内容的哈希命名,不与账号关联 | 目前没有任何清理流程覆盖它 | 9 个文件,共 0.22 MB,最旧 34.1 天 |
每一条已交付绘本的归档记录上都写有一个 12 个月后的时间戳,作为今后可能采用的保留期限。 请注意:目前没有任何程序会读取这个时间戳,也不会在 12 个月后自动删除任何绘本。它现在只是一个记录字段。如果今后改为真正自动删除,我们会先更新这份说明再启用, 不会让你以为绘本已经被清理、实际却仍然保留,也不会反过来在你不知情时删除你付费得到的绘本。
已交付绘本的归档只保存重新打开这本绘本所必需的内容:标题、八页文字、页序,以及指向页面图片的资产编号。 它不保存孩子的照片、内部提示词、角色外貌描述文本、角色参考令牌或视觉设定稿 —— 写入归档时使用的是与正常生成结果完全相同的那一套字段过滤,所以归档能暴露的内容不会多于你在页面上看到的。
Each rule below comes from the current code. The last column is a read-only spot check of production storage on 15 October 2026: a snapshot of that moment, not a promise and not a target. Expired objects are swept by the generation worker on each of its runs, so an object can briefly outlive its expiry until the next sweep reaches it.
| What | Retention rule | Enforced by | Spot check, 2026-10-15 |
|---|---|---|---|
| Temporary images made during generation (page images before delivery, intermediate images) | Expires 24 hours after creation; generation diagnostics, 48 hours | The generation worker sweeps expired objects on every run | 36 files, oldest 1.4 days (about 34 hours). Both lifetimes share one prefix, so this figure does not separate them. |
| The photo you upload (shrunk and re-encoded on your device before it is sent), and the character reference built from it, which keeps one child recognisable across the eight pages | Expires 7 days after creation | The same sweep, indexed by expiry time | 145 files, oldest 6.9 days; nothing older than 7 days |
| Photos you deliberately save as a family character or a growth record | Not deleted automatically. Kept until you delete the character or your cloud profile | Only your own deletion | 3 files, oldest 29.3 days |
| A paid, delivered book — title, eight pages of text, page order — and its page images | Not deleted automatically. Kept until you delete the book or your cloud profile | Only your own deletion | 12 books archived; 260 page-image files, oldest 31.2 days |
| Copies of books you chose to save to the cloud | Not deleted automatically. Kept until you delete them or your cloud profile | Only your own deletion | 9 files, oldest 30.4 days |
| The free character preview image | Not deleted automatically. One per account, kept so the image does not vanish after the one free attempt is used | Only your own deletion | No account has completed a free preview yet (0 records) |
| Cached narration audio | Not deleted automatically. Named by a hash of the narrated text, not tied to an account | No cleanup process currently covers it | 9 files, 0.22 MB in total, oldest 34.1 days |
Every delivered-book archive record carries a timestamp twelve months ahead, as a retention period we may adopt later. Please note: nothing reads that timestamp today, and no book is deleted automatically after twelve months. It is a recorded field and nothing more. If that ever becomes a real automatic deletion, we will update this page before switching it on — so you are never told a book is gone while it is kept, nor have a book you paid for deleted without knowing.
A delivered book’s archive holds only what is needed to open that book again: the title, the eight pages of text, the page order, and the asset ids that point at the page images. It does not keep the child’s photo, any internal prompt, written descriptions of the child’s appearance, character reference tokens, or visual design sheets — the archive is written through exactly the same field filter as a normal generation result, so it can expose nothing you do not already see on the page.
请尽量使用昵称,并只填写生成故事真正需要的信息。不要在故事提示中加入证件号码、住址、学校班级、医疗记录或其他不必要的敏感资料。
访问分析默认关闭。只有当前设备明确允许后,Vercel Analytics 才会记录绘本馆、每日灵感、隐私说明等公开内容页的基础访问; 首页创作、成长记录、家庭角色、账户、登录和公开分享页均通过路由白名单与事件 URL 过滤器阻止记录和发送。 如果已在公开页加载分析脚本后通过站内链接进入敏感页面,脚本文件可能暂时保留到刷新页面,但自动追踪已关闭,敏感页面事件仍会被过滤。 Microsoft Clarity 会话回放目前暂停接入,不会因为环境变量存在而加载。
这是与网站访问统计分开的设置。如果当前设备没有作出选择,TikTok Pixel 会在首页(含模板和自定义入口)、绘本馆、每日灵感、定价和免费预览页面默认加载; 默认开启不表示你已同意,你可以随时在页脚的“隐私选择”或下方关闭。 浏览器发出“全局隐私控制”(GPC)信号、你曾选择关闭或“仅必要功能”、或浏览器无法保存设置时,都不会加载。 隐私说明、条款等政策页面不会默认加载;你在下方明确允许后,这些页面也会加载。 加载后,TikTok 可能处理 Cookie(如 _ttp)、设备及浏览器信息、IP 地址、页面地址和网站交互事件(如点击、滚动)。 Moonwish 主动发送的只有:页面访问,以及查看模板、开始定制、注册、免费预览完成、开始结账和购买这几个步骤, 附带模板或商品编号、Creem 确认付款并入账的订单金额(美元,不含税)和经过不可逆处理的事件编号。 注册和购买会在之后打开的第一个上述页面发出;页面地址带有草稿、订单、任务或绘本编号时不发送。 只有在明确允许“TikTok 广告衡量”的设备上开始结账、开始免费预览或完成注册时,Moonwish 才会记下这次同意、TikTok 点击编号、TikTok Cookie(_ttp)、IP 地址和浏览器信息;默认开启时服务器不记录这些信息。 等付款经 Creem 确认入账、预览生成完成或注册确认后,由 Moonwish 的服务器把对应的购买、免费预览完成或注册事件直接发送给 TikTok(Events API), 与浏览器发送的同一事件使用相同编号,只计一次。发送后,或订单退款、取消、过期后,这些识别信息即被删除;退款不会产生新的购买事件。 Moonwish 不主动向 TikTok 发送儿童照片、私人绘本、登录凭证、邮箱、验证码或其他敏感资料。 登录、账户、家庭、成长、分享和购买结果页面不加载 TikTok Pixel;从其他页面进入这些页面时会重新载入,使它停止运行。 关闭(包括撤回同意)后停止后续上报(登录状态下也包括服务器尚未发送的事件),删除网站能够删除的 TikTok Cookie,并刷新页面。 设置只保存在当前浏览器;清理浏览器数据后会恢复为默认开启。
TikTok ad measurement is a separate setting from site analytics. If this device has made no choice, the TikTok Pixel loads by default on the home page (with its template and Create Your Own forms), the library, daily inspiration, pricing and the free preview. This default is not your consent, and you can turn it off at any time under “Your Privacy Choices” in the footer or below. It does not load when the browser sends Global Privacy Control, after you turned it off or chose “Essential only”, or when the browser cannot store a choice. Policy pages, such as this one and the terms, never load it by default; once you allow it below, they do too. Once loaded, TikTok may process cookies (such as _ttp), device and browser information, the IP address, page addresses and site interaction events (such as clicks and scrolls). What Moonwish itself sends is limited to page visits and these steps — viewing a template, starting a book, signing up, a finished free preview, starting checkout and a purchase — with template or product ids, the order amount credited after Creem confirms payment (USD, before tax) and irreversibly processed event ids. Sign-ups and purchases are sent from the next of those pages that opens; nothing is sent while the address carries a draft, order, task or book id. Only when a device that explicitly allowed TikTok ad measurement starts a checkout or a free preview, or completes a sign-up, does Moonwish record that consent, the TikTok click id, the TikTok cookie (_ttp), the IP address and browser details; the server records none of this on the default. Once Creem confirms the payment and it is credited, the preview is ready or the sign-up is confirmed, Moonwish’s server sends that purchase, completed free preview or sign-up to TikTok directly (Events API), with the same id as the browser’s event so it counts once. Those identifiers are deleted once sent, or when the order is refunded, cancelled or expires; a refund never creates a new purchase event. Moonwish does not actively send TikTok children’s photos, private storybooks, login credentials, email addresses, codes or other sensitive data. Sign-in, account, family, growth, sharing and purchase-result pages do not load the TikTok Pixel; moving to them from another page reloads the page so it stops running. Turning it off (including withdrawing consent) stops further reporting (when signed in, also events the server has not yet sent), deletes the TikTok cookies the site can delete and reloads the page. Your choice is kept in this browser; after clearing browser data it is on by default again.
拒绝或尚未选择都不会影响绘本生成、登录、私有云、下载、分享或客服功能。
当前设备:正在读取设置…
TikTok 广告衡量:正在读取设置…
设置只保存在当前浏览器;清理浏览器数据后会恢复为默认设置(TikTok 广告衡量默认开启,匿名分析默认关闭)。登录状态下关闭 TikTok 广告衡量,服务器尚未发送的事件也会停止。免费生成会使用 IP 和浏览器散列标识进行限流,并可在生产环境要求 Cloudflare Turnstile。 当前浏览器散列由随机浏览器 ID、User-Agent、语言、屏幕尺寸、色深、时区和 CPU 并发数等信号生成; 它用于额度和滥用控制,不用于推断孩子性格、能力或兴趣画像。
Tawk.to 不会在页面打开时自动加载;只有用户主动打开在线客服后才加载。 请不要在客服消息中发送儿童真实照片、声音样本、登录链接、访问令牌或其他不必要的私密资料。
创建公开分享后,Moonwish 会保存分享所需的标题、孩子名字或昵称、绘本文字和页面图片。 分享页设置为不让搜索引擎收录,但任何获得链接的人仍可直接打开、复制和转发。
建议使用昵称,移除学校、住址、固定行程和医疗信息,并把分享链接当作一条可能被继续转发的公开链接。
只有在对应功能被启用或用户主动使用时,相关服务才会参与;TikTok Pixel 例外,它在公开营销页面默认加载,可随时关闭。不同自托管部署可能更换或停用这些服务。
| 服务 | 当前代码中的用途与边界 |
|---|---|
| Supabase | 登录、数据库、私有文件存储和公开分享存储;是否启用取决于部署配置。 |
| 已配置的 AI 服务 | 处理故事、插图或朗读请求。文本和图片供应商会随部署配置及故障切换策略变化。 |
| Creem | 在生成请求进入文本或图片模型前对用户控制的文本进行内容安全筛查;审计日志只记录决策、请求 ID 和文本散列,不保存完整敏感提示词。 |
| 阿里云百炼 | 仅在用户明确进入家庭声音复刻流程并同意后,处理声音样本和私有 voice_id。 |
| Vercel Analytics | 默认关闭;当前设备明确允许后,只统计公开内容页面的基础访问。 |
| TikTok Pixel | 当前设备没有作出选择时,在公开营销页面默认加载(这不表示你已同意),可随时在“隐私选择”中关闭;浏览器发出“全局隐私控制”信号或你选择关闭后不加载。用于衡量 TikTok 广告带来的访问、注册、免费预览、定制、结账和购买。 |
| Microsoft Clarity | 当前暂停接入,不加载会话回放脚本;页面保留全局遮罩标记作为未来重新评估时的安全默认。 |
| Tawk.to | 只有用户主动打开在线客服后才加载,处理用户在客服窗口中提交的内容。 |
| Resend | 处理主动提交并完成确认的每日灵感邮件订阅与投递。 |
| Upstash / Cloudflare Turnstile | 在启用时用于请求限流、验证码与防滥用校验。 |
Moonwish 管理范围内的删除不能保证同步删除第三方已经依法或按其配置保留的安全日志, 也不能删除分享接收者自行保存的副本。家庭声音等外部服务资源的清理还可能需要异步完成。
Customer Support: marson.mhs@gmail.com