用途与实际影响
这项功能怎样使用
为什么需要它
新材料可能补充旧认识,也可能推翻它。只把消息存下来,或只看最新一句话,都容易漏掉经历和上下文。按实际读过的范围接续,既能避免反复读,也能知道哪些认识需要重新判断。
举个实际例子
我可以说:“结合最近微信和手机这次新增的使用材料,更新一下对我的理解。”AI先确定本次范围,微信从实际阅读位置接续,手机只取最新声明范围的原件;再读必要语境,说明新增、修订或无变化。若要看Keep、Tasks或Gmail,则复用已有连接;没有新人工包的网易云、Google Play与航空保留各自旧截止。
最后我会得到什么
得到基于新材料修订过的认识、变化依据和仍未读的范围;以后从已经读到的位置继续。来源没有变化、只取得部分材料或读取失败会分别说明,导入成功不会被当成已经理解。
完成或无新记录
选定范围的材料已取齐并实际读过,必要上下文和媒体缺口已说明;AI修订认识并回读,或明确记录没有语义变化,最后才保存本次阅读位置。
部分完成或失败
分页未收齐、正文或发送者不明、必要媒体尚未读时,保持这部分未完成,不推进为已读。原文确实取不到但其余依据足够时,只完成有证据支持的较窄范围并留下理由;其他独立来源可以继续。
入口或缓存不可用
所选来源不可读、账号不符或没有新的人工导出时,说明真实截止与缺口,不换账号或编出最新材料。只有本次确需B站行为且登录失效时,才请本人在原Chrome登录;数据库已提交而缓存失败则先查已完成部分,不盲目重导。
从哪里开始
可以说“结合最近的材料更新理解”;其他确有来源更新触发的任务也沿同一入口继续。
需要准备什么
- 本次相关的来源、账号或时间范围
- 本次新取得的材料(如有)
从开始到拿到结果
- 1
先确定这次为什么需要新材料
普通问题先使用已有认识。确有更新触发时,固定本次账号、会话、日期与来源;要求全面更新才逐项检查适用来源与实际截止,不把所有更新都等同于浏览行为采集。
- 2
发现变化,选定要读的范围
微信先看哪些会话发生变化和上次实际读到哪里,再固定本次时间窗口。新联系人、未知时间或需要重查的旧内容不能被自动当成已读,也不只取列表前几项冒充全量。
- 3
其他来源沿各自入口取得
需要Keep就用已登录Chrome,Tasks/Gmail走既有Google连接,手机日志只取本次已登记原件;网易云等人工来源等有新快照才处理。每项先说明账号、时间与实际取得范围,文件到手还要导入和阅读。
- 4
把选中的窗口取齐
收完这一段的全部分页,保留自然正文、谁说的、回复关系和附件缺口;中断沿同一计划续收。取得文件、命中关键词或只拿第一页都不推进阅读位置。
- 5
AI实际阅读,再对照旧认识
阅读需要的原话、上下文及有意义的媒体,分清本人、他人和未定归属;结合仍成立的旧卡和反例,判断是补充、纠正、撤回还是没有变化。大群只读本人参与时明确保留这一较窄范围。
- 6
先保存有依据的认识,再记录已读
沿现有引用与认识写回入口修订并回读;确实无需修改也说明理由。只有实际阅读与整合完成后才记录这一范围,下次从这里继续;未读媒体和缺口不会被顺手标完成。
- 7
需要行为资料时,再走对应分支
这次问题确需新浏览、游戏或B站行为,才刷新Chrome、Steam和当前登录的B站;普通活动事实可直接读取已存材料。人工导出有新包才归档、导入、阅读整合,没有新包保留旧截止。最终逐来源交代取得、读过、改过和仍缺什么。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
9月24日只读状态登记147个来源实例;已接入范围、实际阅读与理解结果分开,银行交易、拼多多和菜鸟仍是来源缺口关键规则与设计选择
2026-09-09 03:40:09 UTC 回读 107 个来源实例:12 acquired_verified、95 snapshot_only;覆盖本人表达、订单/支付、AI 对话、已核引用、Steam、哔哩哔哩、浏览、Google Play、航空和铁路等 16 类逻辑来源。
微信由 WeChatDirect 提供原生变化和消息;每轮先固定账号、会话及时间边界,取齐选中范围的全部分页。没有新消息可以不重读,首次出现的联系人或时间不明内容不能自动当成已读。
changes 根据当前会话元数据发现变化,不能证明所有旧补入、撤回或已经消失的历史都已发现;完整取得本轮窗口也不等于平台全历史完整。
程序保存的消息取得位置与 AI 实际阅读位置分开。AI 阅读、整合认识或明确判断无变化后才记完成;尚未读的消息、媒体或对方上下文保留原边界。
大群可以按原生发送者只取本人发言与仍需判定的消息,按需补上下文;发送者未定时不能把这一范围记成阅读完成。只查数量或阅读位置不会推进阅读状态。
引用目标确实不可取得、但已有正文和上下文足够时,AI 可以记录引用缺口理由及实际阅读范围后完成这一较窄范围;未取齐分页、正文不可读或发送者不明仍不能跳过。
保留被引用的每一版采集材料,以后可以找到当时读的是哪一份。网页或直播间后来换了标题,也不能把现在看到的标题倒填成过去访问时的标题。
Chrome 历史与书签从可发现 profile 直接采集;打开中的 History 会连同 WAL/SHM 做临时只读快照,Chrome 不需要退出。
本机 Chrome 记录进入 browser_activity;同一 Takeout 包中的 Google Play 记录进入 google_play_activity,两类来源各自保留身份和覆盖。
Steam 直接读取本机多账号观察并按 AppID 合并;只输出匿名账号 ref,不读 token、Cookie、密码或 license cache,历史取得方式继续 Unknown(未验证)。
哔哩哔哩复用用户当前已登录 Chrome,取得播放、收藏、稍后看、点赞、投币与追番/追剧;账号以稳定匿名 ref 绑定,账号变化不会静默混入旧来源。
收藏、稍后再看与追番/追剧只有同账号、Schema(数据结构)/range 一致、分页完整、计数一致且成员键无重复时,缺失成员才退出 current(当前状态);播放、点赞、投币仍是窗口流。
719 条收藏保留用户自命名收藏夹,645 条有有界简介检索旁证;简介不冒充用户偏好原话。277 条追番/追剧已带类型,旧无类型 current(当前状态) 记录转为 historical。
Google Play与航空按人工快照保留各自截止;12306可从当前登录Chrome取得可见窗口,窗口不等于全部铁路历史。网易云低频人工快照之后才自动增量,没有新快照不声称检查了账户变化。
2026-09-24只读status登记147个来源实例;当前缺口为bank_transactions、pinduoduo_orders、cainiao_logistics。京东、美团/闪购已按各自声明范围接入,不能继续列在五项未取得来源中。
每项缺口继续返回availability与范围;银行交易尚无现行材料,菜鸟只有旧目录线索,拼多多无现行订单数据。已接入同样不代表所有账号、历史或附件完整。
youtube_activity 与 maps_activity 已由本人明确排除:旧归档可用只是历史定位事实,不再作为待接入来源或当前偏好证据。
Keep复用现有Chrome,Tasks/Gmail复用既有Google连接;手机AppUsage最新daily备份、GPS/事件日志和桌面软件/TimeAudit各保留原件、来源身份、覆盖与缺口。采集成功、导入完成、阅读范围和有用认识是四个不同结果。
2026-09-23正式来源验收中,14个新增来源流及相关引用共548项版本/范围:475项按明确的元数据、结构、聚合或正文范围完成阅读,73项保留部分阅读/未解释字段;不把这组范围当成548篇全文。
Gmail 4051封旧MBOX与424封live减28重叠,共4447个逻辑邮件;旧130条空正文补齐,重要内容已按价值审阅,其余按类别留回查。Tasks新包9条更新、0新逻辑任务、gaps为空;完成/删除标签不证明现实事项均已办成。
手机AppUsage最新daily完整备份按生产时间取一份,旧候选仍保留元数据;正式本次导入790新增、69修订、无认识卡失效。未知类型/时间桶及单位保持partial,不把变动行时长相加成新用时。
网易云199首喜欢曲目按那次快照范围使用,个人播放次数未知;手机安装清单841行和GPS期间等新入口各有独立观察时间,不把一次来源成功写成全部现役账号实时同步。
普通补包默认 incremental;full 必须显式选择,且有 gap 时不会退出缺失旧 current(当前状态)。
每个 source_id 绑定 logical source、provider 与账号别名,不能换绑。
同制品同版本立即重复为 no_change;A→B→A 会恢复旧权威快照,而不是永久丢失历史版本。
增量覆盖做 union(并集),无关成功补包不会清掉不可重算 gap;信用卡缺月按 current(当前状态) 月份重新计算,本轮补齐后已消失。
同一 Google Takeout ZIP 可以分别登记为 Chrome 与 Google Play 两个 source occurrence;共享制品哈希不合并来源语义。
Didi 目录只选网约车订单 TXT;淘宝、支付、信用卡、ChatGPT/Gemini、Takeout、航旅纵横 XLS 与 12306 OCR(光学字符识别) JSONL 都保留精确输入合同,扩展名不匹配时拒绝。
文本按 UTF-8-sig、UTF-16、GB18030 顺序读取;Excel serial 按中国本地时间解释,文件名中的 YYYYMMDD-YYYYMMDD 或 YYYY年M月只在解析成功后补业务覆盖。
最近导入健康与来源已取得状态分开,failed/partial 不会被 acquired_verified 文案掩盖。
接入返回的 counts 含 records、new、updated、duplicate、artifacts 与 artifact_duplicates,另有 exact_links、retired_invalid_records、retired_missing_records 和 invalidated_snapshots;这些数字说明处理和失效,不说明推荐质量。
材料保全与 ingest 只完成事实层;偏好层必须继续区分新增、增强、减弱和 Unknown(未验证),重建仍有充分证据的失效快照,再用普通自然问题确认 current(当前状态) 明示、快照和 evidence 可用。
本模块用到的名词
- source instance(来源实例)
- 一个明确平台/账号/快照的独立来源身份;两个账号永远分别列。
- incremental(增量)
- 普通带重叠补包;只增加或更新看见的记录,不把本次没带来的旧记录退出。
- full(完整快照)
- 已确认是该来源实例完整权威截面时显式使用;有任何解析 gap 就失败关闭。
- gap(缺口)
- 已知材料、月份、解析或覆盖问题;它与来源已取得状态分开。
- live collector(本机按需采集器)
- 有实际来源更新触发且本次需要时才读取现有Chrome/Steam状态;返回后不留下新的计划任务或后台服务。
- artifact occurrence(制品来源出现关系)
- 同一字节制品在某个来源身份下的一次登记;相同 ZIP 可分别支撑 Chrome 与 Google Play,而不合并两者。
- profile input contract(来源输入合同)
- 每个 profile 接受的扩展名、容器、文本编码和时间解释;不匹配时失败,不靠猜格式继续。
- source gap detail(来源缺口明细)
- 尚未接入的逻辑来源、当前材料可用等级、优先级与证据摘要;它不等于 parser 已实现。
专业定义
可以说“结合最近微信、手机使用或新导出,更新一下对我的理解”;确有更新触发时,系统按本次相关来源取得材料,再阅读、修订或说明无变化。没有新人工快照的来源保留旧截止;普通问答直接用已有证据。
解决什么
避免把下载、入库、消息取得位置和实际理解混成完成;同时防止读错账号、只读部分分页却推进已读位置,以及偏好刷新吞掉普通理解更新。
当前怎样实现
- tools/wechat_update.py 的 plan 调用 WeChatDirect 变化发现并比较实际阅读位置;collect 取齐本轮选定分页;complete 只记录已经阅读且整合或确认无变化的范围。
- 本机采集投影按内容哈希保留版本,更新不覆盖旧引用;直播间标题带采集快照时间,与旧访问时间分别保存。
- status --account 指定账号,查看某一会话时同时传 --contact;status --summary 只看各账号数量。collect --self-only 筛选本人发言与未定发送者;complete --reader-scope / --quote-gap-note 保留实际范围与未取得引用,不放宽分页、正文或发送者检查。
- ingest/refresh 的 changed_records、retired_record_ids、newly_stale_card_keys 指出本轮影响;profile --pending-review 返回待复核旧详述。AI 重新判断、显式回写并回读,程序不自动恢复 stale 卡。
- daily_preferences.py 的 refresh 在一次明确对话中串联 Chrome、Steam 与本次浏览器生成的哔哩哔哩快照;返回 conversation_on_demand 且 background_started=false。
- live_increment.py 只采集 Chrome History/Bookmarks 与非秘密 Steam 本机元数据,返回内存记录,不调度、不持久化项目数据库。
- bilibili_browser_collect.mjs 通过现有标签页 CDP 调用平台 API,分页保存六类行为流;source_snapshots.py 再把浏览器快照、Takeout、航空和铁路材料转成统一记录。
- B 站 current(当前状态) set 先验证账号、Schema(数据结构)、range、分页、计数和成员唯一性;条件完整才局部退役本次缺失成员并让依赖推定 stale,历史与原件不删除。
- PROFILE_EXTENSIONS 明确允许的扩展名与 .blob 容器;read_text 只走 UTF-8-sig→UTF-16→GB18030,最后才以 replacement fallback(替换字符回退)保留可读片段。
- parse_time_us 把 Excel serial 当作 +08:00 本地时间,不再先按 UTC 后多加 8 小时;declared_range_from_name 识别紧凑日期范围和中文月份。
- artifacts 保存 SHA-256/bytes/MIME;occurrences 保存出现位置;import_runs 保存 parser version、mode、health、计数和 gap。
- records 按 source/type/native/hash 保留版本,partial/full/no_change 的 current(当前状态) 退出语义分开。
- collect_paths 对显式错误扩展名整体失败;目录只筛支持类型,Didi 再筛当前真实网约车订单导出。
- coverage 只接纳成功解析文件的声明范围;incremental 保留旧覆盖和未解决 gap。
- status 返回每个来源的覆盖起止、快照时间、gap、材料、推荐 mode、重叠建议和 latest_import。
- status 把当前3项未取得逻辑来源映射到 source_gap_details,并另列2项excluded_logical_sources,逐项给availability、priority与公开安全证据摘要;parser列表不冒充来源全集,历史5项只代表旧阶段。
- ingest 外层结果有 completed/no_change/partial/failed 四态;单文件 import_runs 另用 success/no_change/partial/failed,不应把来源 acquired_verified、单文件 success 与整次 completed 混写。
- 接入完成覆盖重算、关联重建和失效推定标记后先提交数据库,再写 CURRENT.md;write_current 失败不会撤销已提交记录,Python 也不会自动生成替代推定或推荐。
- 特定支付方式先用 scrub_payment_method 掩码邮箱、独立 7–19 位数字和括号内末四位;信用卡正文与 Didi 搜索文本使用 scrub_sensitive。普通商品和偏好语义不因此泛化。
- 偏好增量完成判断由 Skill/AI 读取 ingest、status、current(当前状态) 快照与自然问题证据后给出;它必须明确列出语义变化或无变化,不能把技术接入状态改名成偏好结论。
执行流程
- 1
普通问题优先现行认识;确有来源更新触发时固定本次来源、账号与真实时间范围。
- 2
微信分支:wechat_update status/plan通过WeChatDirect changes比较元数据与实际阅读位置,完整列候选,选择本次窗口。
- 3
collect沿同一计划/目录取齐所有分页,保留原始页、自然正文、角色、回复和媒体缺口;收集中断不推进reader位置。
- 4
AI实际阅读所需正文/上下文,必要时按self-only范围补context --around;未定发送者、正文缺口或未收齐分页不得完成。
- 5
对照changed_records、待复核旧卡及原引用,按reviewed_citations/snapshot显式修订并回读,或形成有理由的no_change。
- 6
实际阅读与整合后才complete;reader-scope、quote-gap-note和媒体边界按真实覆盖记录,status/plan/collect不冒充已读。
- 7
行为或连接来源在实际更新触发且当前范围需要时运行:复用现有Chrome取得B站/Keep材料、按既有Google连接取得Tasks/Gmail、按已登记范围取得手机快照、采集Chrome/Steam;网易云等人工来源无新包保持原截止。
- 8
行为/人工包接入继续核对coverage/gap、incremental/full和来源身份,提交SQLite后单独刷新CURRENT(当前状态),分清已提交与缓存失败。
- 9
逐来源交回技术结果、实际阅读范围、认识变化或无变化,以及未读和下次接续位置。
边界
- 不后台启动新的全来源同步;普通问答不擅自刷新或导入。
- 材料保全、refresh 或 ingest 成功不等于认识增量完成。
- Google Play/航空无新人工包保留旧截止;12306当前登录窗口不冒充全历史,网易云个人播放次数未知。
- 哔哩哔哩不启动独立浏览器配置、不读取密码、不代解验证码。
- 未取得来源只列缺口,不预建解析器。
- 退役PersonalOS运行时不恢复;其已取得日志按现有来源链处理。
- Steam商店当前分类不证明历史取得方式。
- 窄索引清洗不是全局匿名化。
失败与恢复
- 选定窗口没有取齐、正文不完整或发送者未定
- 继续同一计划取得或说明精确缺口,不执行阅读完成;不把无本人命中解释成没有本人发言。
- 材料取到了但AI尚未阅读或整合
- 保留收集结果与原阅读位置,完成真实阅读、修订并回读或有依据no_change后才推进。
- 显式文件扩展名不属于 profile
- 在数据库连接和任何写入前整体拒绝;合法文件与错误文件混合也不部分执行。
- 解析有缺口
- 取得部分记录时整次为 partial,没有取得记录时为 failed;保存已处理计数和精确 gap,不回滚已经接纳的有效记录,full 不因缺失项退出旧 current(当前状态)。
- source_id 换 provider 或 logical source
- 返回 source identity conflict,保留原身份。
- 同一旧 artifact 重新成为权威
- 若旧观察已不是 current(当前状态) 就重新解析并激活对应历史版本;连续 no_change 不清空 seen keys。
- 材料已经保存或 ingest 返回 completed,但尚未判断偏好语义
- 保持增量未完成;继续核对覆盖/缺口,判断新增、增强、减弱或未知,重建有充分证据的快照并做普通问题回验,或明确证明语义无变化。
- 来源全景只按已有 parser 列表生成
- 视为遗漏;按偏好领域检查现有独立原件或明确缺口,退役目录只给一次性发现线索,不把旧系统恢复成依赖。
- Steam 本地库已接入但历史取得方式不可验证
- 保留 steam_historical_acquisition_method_unverified;可继续用实际游玩形成行为证据,但不声称直购、礼物、激活码、限免或家庭共享。
- 哔哩哔哩登录失效或某条行为流失败
- 登录失效时请用户在同一 Chrome 完成验证码/扫码;单流失败返回 partial 与精确 gap,其他来源和成功流继续。
- 收藏、稍后再看或追番/追剧 current(当前状态) set 不完整
- 缺失成员不退役;账号、Schema(数据结构)、range、分页、计数和成员唯一性全部成立后才允许局部退出 current(当前状态),且不反推不喜欢。
- Google Play、航空或网易云没有新人工快照
- 保持各自既有覆盖和观察时间,不伪装本轮已核实时变化,也不把旧快照自动降级成missing;铁路使用当前登录窗口时另报实际范围。
- 数据库提交后 CURRENT(当前状态) 缓存写入失败
- 记录、覆盖和失效推定可能已经更新;先只读核对该来源本次 import 与数据库,不将异常当成未导入后盲目重试。当前缺少区分已提交/缓存失败的正式回执。
- Python 三条发现路线均不存在
- PowerShell wrapper 明确抛出 Python runtime(运行环境) not found;不伪装成 status、evidence 或 ingest 成功。
真实入口
daily_preferences.py实现 profile、ingest、status、conversation-on-demand refresh、来源身份与回滚。
tools/wechat_update.py串起微信变化发现、固定范围、分页取得和实际阅读完成,保留发送者、引用缺口和阅读位置。
tests/test_wechat_update.py验证范围、分页、来源身份和阅读位置;测试源码与真实消息阅读结果分开。
live_increment.py实现 Chrome/Steam 本机只读采集、匿名账号边和无后台状态。
bilibili_browser_collect.mjs复用当前 Chrome 标签页采集哔哩哔哩六类行为流并写出有界快照。
source_snapshots.py解析哔哩哔哩、Google Takeout、航空和铁路快照;新来源由对应独立模块接入,不让此旧路径代表全部供应。
connected_source_refresh.py / source_snapshot_state.py / mobile_sources.py按点名来源连接、保留不可变原件与当前集合边界;手机未知格式和时间单位保留partial。
google_sources.py / gmail_sources.py / keep_sources.py / device_sources.py / mobility.py分别处理Google、Keep、设备来源和GPS区域级读取;采集、导入、阅读、认识整合状态分别报告。
daily-preferences.ps1实现 PATH→LocalAppData→bundled runtime(运行环境) 的稳定 Windows 入口和明确失败。
schema.sql定义来源、制品、导入、记录、观察与 current(当前状态) 约束。
tests/test_refresh_increment.py覆盖重复 refresh、局部失败、账号变化、人工来源保持与来源 occurrence。
DOMAIN_CONTRACT.md(当前main,“提示词触发的微信更新”)普通理解更新、来源选择、完整分页、实际阅读、修订/无变化及阅读位置的完整顺序
如何验证
- 2026-09-24本页只读status得到147个来源实例与3项当前缺口;没有为网页采集Chrome/Steam/B站、读取微信正文、操作手机或推进阅读位置。旧观察和测试各保留原日期。
- 2026-09-07 只读回读 73 个来源实例,其中 12 acquired_verified、61 snapshot_only;5 类未取得,2 类明确排除。
- 2026-09-04旧B站专项:数据库当时保留3382条current(当前状态)播放,该次Chrome窗口1349;719收藏、4稍后看、277带类型追番/追剧,点赞20、投币2仍是当时窗口观察,本页未重采。
- 真实稍后再看 5→4 只局部退役一条;紧接重复刷新为 no_change、局部退役 0。
- 2026-09-07旧73项Python回归覆盖退款链、Chrome/Steam、refresh、人工来源和幂等恢复;7项Node回归覆盖B站current(当前状态) set、分页、登录与错误分类。
- 同一 Takeout ZIP 分别登记为 Chrome 与 Google Play 来源,制品哈希相同但 occurrence 独立。
- 连续 incremental/full 与 A→B→A 的既有幂等和恢复回归继续通过。
- 现行CURRENT_ACCEPTANCE.md记录:新接入来源、通用查询缺陷与受影响认识完成限定范围内的实际验收;最终完整Python回归542项通过,其后旧App导出倒序导入聚焦通过。网页仅核对正式来源回执,不把这层证明扩成任意自然问题正确或全库全文已读。
与其他模块的关系
它负责让材料来源、真实阅读范围和认识更新接起来;证据查询与推荐消费已经成立的结果。微信阅读位置与行为资料导入各自保存,不因一条程序成功就宣称已经理解本人。
