PRIVACY & DATA

先说清楚,资料会去哪里

不登录也能填写和保存创作设置,生成时才需要登录。登录不等于同意上传,本机资料和私有云副本分开管理。 但“保存在本机”不代表生成过程完全离线:你提交的创作文字会经 Moonwish 服务器和当前配置的 AI 服务处理。

基于当前代码与生产存储实测更新:2026 年 10 月 15 日 · 照片保留的表述更新:2026 年 10 月 18 日 · TikTok 广告衡量改为默认开启:2026 年 10 月 24 日

1

匿名优先

不登录也能填写和保存设置;生成绘本或角色预览时才需要登录。家庭资料等需要账户的功能不是创作前提。

2

上传要由你触发

登录不会搬走本机资料。照片进入私有云前,还需要本人或监护人的明确确认。

3

控制不收费

本机清理、云端导出与删除入口不与订阅或生成额度绑定。

这份说明覆盖什么

这是依据当前 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 个月后的时间戳,作为今后可能采用的保留期限。 请注意:目前没有任何程序会读取这个时间戳,也不会在 12 个月后自动删除任何绘本。它现在只是一个记录字段。如果今后改为真正自动删除,我们会先更新这份说明再启用, 不会让你以为绘本已经被清理、实际却仍然保留,也不会反过来在你不知情时删除你付费得到的绘本。

归档里不保存什么

已交付绘本的归档只保存重新打开这本绘本所必需的内容:标题、八页文字、页序,以及指向页面图片的资产编号。 它不保存孩子的照片、内部提示词、角色外貌描述文本、角色参考令牌或视觉设定稿 —— 写入归档时使用的是与正常生成结果完全相同的那一套字段过滤,所以归档能暴露的内容不会多于你在页面上看到的。

只有你本人能读到

  • 绘本归档表只有服务端可读,匿名和已登录的浏览器身份都没有任何读取权限。
  • 服务端每次读取都把你的账号标识作为查询条件,而不是先取出再判断,所以别人的绘本编号对你返回的是“没有”。
  • 页面图片的访问编号本身内嵌了归属校验;换一个账号用同一个编号请求,返回 404 而不是图片。
  • 浏览器重新验证一张已缓存的页面图片时,服务器仍然先完成认证与归属判断,才可能回答“未修改”。 已删除的对象,以及并非所有者的请求,都不会因为编号或校验值匹配而被放行。
  • 同一个绘本编号若出现归属不一致,写入会直接失败并报错,不会覆盖掉另一个账号的绘本。

怎样删除

  • 在“数据与隐私”中删除云端档案,会删除已交付绘本的归档记录与对应的页面图片、 免费角色预览的记录与图片、家庭角色及其照片与声音样本、成长记录与照片、 已分享内容、保存到云端的绘本、孩子档案和账户设置。
  • 删除账户会执行同样这些删除,并额外删除登录账户本身。
  • 例外:朗读音频缓存不在上述删除范围内。它按朗读内容的哈希命名、不带账号标识,删除流程无法按账号找到它。 它保存的是朗读音频本身,不含照片,也不含账号资料。
  • 本机副本需要单独清理;退出登录不会删除任何一侧。
  • 如果你无法自行完成删除,或希望我们代为确认,可以用账户邮箱写信给 marson.mhs@gmail.com 提出删除请求。
  • 我们无法删除分享链接接收者自行保存的副本,也无法删除第三方依法保留的安全日志。

How long children’s material is actually kept (English)

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.

WhatRetention ruleEnforced bySpot check, 2026-10-15
Temporary images made during generation (page images before delivery, intermediate images)Expires 24 hours after creation; generation diagnostics, 48 hoursThe generation worker sweeps expired objects on every run36 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 pagesExpires 7 days after creationThe same sweep, indexed by expiry time145 files, oldest 6.9 days; nothing older than 7 days
Photos you deliberately save as a family character or a growth recordNot deleted automatically. Kept until you delete the character or your cloud profileOnly your own deletion3 files, oldest 29.3 days
A paid, delivered book — title, eight pages of text, page order — and its page imagesNot deleted automatically. Kept until you delete the book or your cloud profileOnly your own deletion12 books archived; 260 page-image files, oldest 31.2 days
Copies of books you chose to save to the cloudNot deleted automatically. Kept until you delete them or your cloud profileOnly your own deletion9 files, oldest 30.4 days
The free character preview imageNot deleted automatically. One per account, kept so the image does not vanish after the one free attempt is usedOnly your own deletionNo account has completed a free preview yet (0 records)
Cached narration audioNot deleted automatically. Named by a hash of the narrated text, not tied to an accountNo cleanup process currently covers it9 files, 0.22 MB in total, oldest 34.1 days
About the twelve-month marker on a delivered book

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.

What the archive does not keep

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.

Only you can read it

  • The archive table is readable only by the server. Neither an anonymous nor a signed-in browser identity has any read access to it.
  • Every server read carries your account id as part of the query rather than filtering after the fact, so someone else’s book id simply returns nothing to you.
  • A page image’s access id has its ownership check built into the id itself; the same id requested from another account returns 404, not an image.
  • When a browser revalidates a page image it has already cached, the server still completes authentication and the ownership check before it can answer “not modified”. A deleted object, and a request that is not the owner’s, are never admitted because an id or a validator happens to match.
  • If one book id were ever to appear under two owners, the write fails and raises an error rather than overwriting another account’s book.

How to delete

  • Deleting your cloud profile under “Data & privacy” deletes the delivered-book archive records and their page images, the free preview record and its image, family characters with their photos and voice samples, growth records and their photos, anything shared, books saved to the cloud, child profiles, and account settings.
  • Deleting your account performs all of the same deletions and additionally deletes the sign-in account itself.
  • One exception: cached narration audio is not covered. It is named by a hash of the narrated text and carries no account id, so the deletion process cannot find it by account. What it holds is the narration audio itself — no photos, no account data.
  • Copies on this device must be cleared separately; signing out deletes neither side.
  • If you cannot complete a deletion yourself, write from your account email to marson.mhs@gmail.com and ask us to do it.
  • We cannot delete a copy a share-link recipient saved for themselves, nor security logs a third party retains to meet its own legal obligations.

AI 生成并不是完全离线

  • 故事想法、名字或昵称、年龄段、语言和你主动填写的细节会发送给服务器及当前配置的文本生成服务。
  • 页面场景描述会发送给当前配置的图片生成服务;供应商可能随部署设置和故障切换而变化。
  • 成长记录中的现场照片用于本机记录,不会随成长记录草稿进入故事生成接口。
  • 家庭角色照片是另一条私有流程:只有明确授权并主动上传、选择角色时,才可能作为绘图参考交给配置的图片服务处理。
  • 家庭声音复刻需要单独录音和授权,声音样本会发送至阿里云百炼创建家庭私有 voice_id。

请尽量使用昵称,并只填写生成故事真正需要的信息。不要在故事提示中加入证件号码、住址、学校班级、医疗记录或其他不必要的敏感资料。

分析、防滥用与客服

访问分析

访问分析默认关闭。只有当前设备明确允许后,Vercel Analytics 才会记录绘本馆、每日灵感、隐私说明等公开内容页的基础访问; 首页创作、成长记录、家庭角色、账户、登录和公开分享页均通过路由白名单与事件 URL 过滤器阻止记录和发送。 如果已在公开页加载分析脚本后通过站内链接进入敏感页面,脚本文件可能暂时保留到刷新页面,但自动追踪已关闭,敏感页面事件仍会被过滤。 Microsoft Clarity 会话回放目前暂停接入,不会因为环境变量存在而加载。

TikTok 广告衡量

这是与网站访问统计分开的设置。如果当前设备没有作出选择,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.

隐私选择 · Your Privacy Choices

拒绝或尚未选择都不会影响绘本生成、登录、私有云、下载、分享或客服功能。

当前设备:正在读取设置…

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在启用时用于请求限流、验证码与防滥用校验。

查看、导出与删除

  • 未登录用户可以在成长书架查看本机成长档案保存字段与用途,并在浏览器内导出 ZIP;导出不会上传本机资料。
  • 本机成长档案可以设置保留期限偏好并预览到期内容,但不会自动删除;删除到期内容或全部档案需要再次确认。
  • 当前设备的普通绘本、成长记录、照片缓存和相关凭据仍可分别查看或清理。
  • 登录用户可以在“数据与隐私”中导出可读取的云端账户资料和文件,并可删除单个孩子档案或全部云端档案。
  • 本机清理与云端删除是两项独立操作;退出登录也不会删除任一处资料。
  • 这些数据控制入口不收费,也不应被订阅状态或剩余生成次数阻挡。

Moonwish 管理范围内的删除不能保证同步删除第三方已经依法或按其配置保留的安全日志, 也不能删除分享接收者自行保存的副本。家庭声音等外部服务资源的清理还可能需要异步完成。

客户支持

Customer Support: marson.mhs@gmail.com

隐私与数据说明 | Moonwish