RxJS NextRxJS 9项目计划全解析从平台 Observable 基础、Symbol 扩展内核到迁移工具链与发布就绪的分阶段工程路线图【免费下载链接】rxjsA reactive programming library for JavaScript项目地址: https://gitcode.com/gh_mirrors/rx/rxjs本文基于 RxJS 仓库中的《RxJS Next active project plan》(docs/rxjs-next/PROJECT_PLAN.md) 展开完整解读 RxJS 9 从Observable 的所有者转向web 平台 Observable 的扩展库这一架构转型的全部工程步骤平台回退与 WPT 一致性、Symbol 扩展内核、运算符恢复、迁移工具链rxjs/migrate与可移植 Skill以及发布就绪工作。读完本文你将掌握该项目七个阶段Phase 0Phase 6的任务拆解、状态流转协议、成功标准、完成证据口径、依赖关系与风险控制策略并能对照仓库中的架构、决策日志与各包文档进一步深入验证每一项结论。项目背景与执行摘要RxJS Next 的核心转变是RxJS 不再自己拥有 Observable 原语而是成为 web 平台 Observable 的扩展库。这一方向在决策日志 D-001Base RxJS on the web-platform Observable中被正式接受活动 realm 中的平台Observable成为主库的基础类型D-002 规定只有在平台原语缺失时才安装符合规范的 fallback且已有原生实现优先、不做一致性探测。从执行摘要看整个计划遵循先打地基、后扩目录、再兑现迁移承诺的顺序推进关键节点包括平台基础用户临时将可证实的 Observable WPT 测试平台和 fallback 一致性工作排在包与安装决策之前两个切片均已完成——fallback 通过了固定版本的每一个 Observable WPT 用例并且在每个被测 realm 中证明了实现身份完全一致。包映射决策最终确定rxjs/observable-polyfill、rxjs、rxjs/test三个目标运行时产品并在 P0.3 中物理移除rxjs/observable包不保留归档、改名或兼容复用。迁移承诺一个可移植的 RxJS 7-to-Next 大理石图测试迁移 Skill、其独立评审、以及仓库级迁移端口全部完成用户明确要求仅保存在 manifest 中不够所有用例必须成为可执行的 parity 注册即使其能力缺失也必须显式失败。完整 parity 语料2,201 个物理测试声明最终扩展为 2,338 个唯一标识的注册含参数化变体和源码跳过证据P0.T3 的持久化失败账本保留了全部原始失败最终冷模式和 polyfill 模式下 2,338 个注册全部通过严格 RxJS 单元门禁转绿。迁移产品以agent-first 迁移体验为最高优先级P0.M1 的九测试原型被 P0.M2P0.M5 的完整产品契约、确定性引擎、单一权威 SkillCodex/Claude/Cursor 薄适配器与 Codex/ChatGPT 代表性子仓库资质评估取代Phase 1P1.1P1.3无需额外运行时工作即告完成。版本与发布RxJS 9 与9.0.0-beta.0依据 D-007 选定D-053 定义了运行时、浏览器、打包器、通道与 RxJS 7 维护政策日期与人员承诺尚未分配。状态协议队列的流转规则计划文档定义了一套严格的队列状态语义所有工作项必须遵循状态含义DONE完成标准达成且证据已记录NEXT唯一的活动步骤PLANNED已排期但未激活BLOCKED缺少命名决策或外部变更则无法推进DEFERRED已接受但有意不设计/不排期的工作协议规定执行队列开放期间恰好保留一个NEXT项当它完成时标记为DONE、在会话日志中记录验证结果、并将NEXT移到最早的未阻塞项队列全部完成时不再有NEXT项。文档中反复出现的restored P0.2 as the singleNEXTitem正是这一协议的实际执行记录。成功标准项目验收的 11 条硬性门槛计划的成功标准可作为理解整个项目验收口径的清单原生 Observable 被保留fallback 仅按已批准契约安装平台行为通过固定 WPT 修订版中选定的每个 Observable 测试并记录相关书面规范修订版以便诊断与复现Symbol 扩展的身份、安装、构造、取消、类型与打包约定统一且有测试受支持的运算符由分类过的 RxJS 7 行为证据支撑RxJS 7 迁移映射由分类证据支撑且不暗示存在运行时兼容包主要迁移体验为 agent 主导评估仓库 → 用 RxJS 7 基线保护未覆盖行为 → 分类目标 Next 契约 → 只调用已验证的机械转换 → 与开发者迭代直至约定的构建与测试门禁转绿确定性转换对输出、编译、幂等性、诊断、行为都有 fixture 测试agent 产生的迁移按声明的契约与测试结果评判而非源码形状一个可移植的迁移工作流在 Codex、Claude、Cursor 上都有文档化的发现、安装、调用、权限与验证路径且各 harness 适配器保持薄且可测每个发布入口点在受支持环境中构建并通过导入/类型 fixture迁移指南与未来 AI 工具基于已接受的行为生成而非原型假设。活跃队列Phase 0Phase 6 分阶段路线图Phase 0 — 基础与架构安全护栏Phase 0 是整个项目的奠基阶段包含 20 余个任务全部标记为DONE。下表为完整任务清单状态ID成果DONEP0.1记录章程、当前架构、迁移政策、决策、风险、开放问题与 AI 工作规则DONEP0.T1设计并实现框架无关的rxjs/test虚拟时间包DONEP0.T2a创建可移植的 RxJS 7-to-Next 大理石图测试迁移 SkillDONEP0.T2b独立评审迁移 Skill 后再用于仓库DONEP0.T2c移植并分类 RxJS 7 大理石图语料不修复生产行为DONEP0.T2d将每个清单内的大理石图用例物化为可执行 parity 测试注册DONEP0.T2e穷尽转换剩余可运行的 RxJS 7 大理石图证据并扩展能力映射DONEP0.T2f使默认移植测试门禁严格且进度可见DONEP0.T3通过持久化运算符/函数工作队列解决冷模式与 polyfill 的 RxJS 7 parity 失败DONEP0.DX1将工作区、自动化与贡献者工具从 Yarn Classic 迁移到 pnpm 10DONEP0.DX2精简根开发者命令指南使其准确且面向任务DONEP0.DX3为当前 Next 与已发布 RxJS 版本添加缓存的一次性 bundle 对比DONEP0.DX4用原生 Vitest 报告与真实源码位置物化普通 rxTest 规范DONEP0.I1添加四种基于 Symbol 的 Observable 到 async-iterator 策略DONEP0.2决定包映射与原生/兼容安装契约DONEP0.3为选定包映射恢复绿色构建与一致公共入口点DONEP0.4添加原生/fallback 生命周期测试平台与包导入 fixtureDONEP0.M1发布并 dogfood 一次性 RxJS 7-to-Next 测试迁移工具DONEP0.M2设计 agent-first 迁移产品、契约、fixture 策略与跨 harness 分发DONEP0.M3将rxjs/migrate加固为带完整可执行 fixture 的确定性机械引擎DONEP0.M4发布可移植迁移 Skill 与 Codex、Claude、Cursor 薄集成指南DONEP0.M5在代表性子仓库与行为结果门禁上资质评估端到端 Codex/ChatGPT 工作流DONEP0.5固定书面 Observable 参考并要求可执行 WPT 修订版的每个选定测试通过P0.T1rxjs/test虚拟时间包P0.T1 产出了框架无关的rxjs/test包与公共rxTest函数不暴露任何 scheduler 实例或手动 scheduler 模式。其能力包括大理石图解析、异步虚拟时间控制、默认与可配置断言、以及cold、hot、平台observable三种源模型大理石图语法被隔离在纯内部解析器packages/test/src/marble-parser.ts中独立于虚拟时间运行时获得直接单元覆盖。虚拟化覆盖了主机定时器、动画与空闲回调、Node immediates/timer handles、AbortSignal.timeout、时钟、排队的微任务与reportError且在成功或失败后精确还原。完整契约记录在 TESTING_DESIGN.md 与 D-012。P0.T2aT2f大理石图测试语料的移植与固化这一组任务把整个 RxJS 7 大理石图测试语料变成仓库可执行的 parity 证据T2a/T2b创建rxjs-next-marble-migrationSkill教开发者把 RxJS 7TestScheduler大理石图用例迁移到rxTest、ColdObservable与平台 ObservableSkill 保留调用方测试框架、平台用例要求全局 Observable、把机械变更与语义评审分开在独立插件评估中以 100/100 通过无阻塞或 fix-first 发现。T2c读取不检出生产7.xref仅把e5351d02e225e275ac0e497c7b66eaa5f0c88791固定进仓库移植记录2,146 个清单内用例被对账为 333 active、422 expected failure、1,251 missing API、4 deduplicated、136 unsupported/obsolete不修改任何生产 Observable/运算符/直连订阅实现。T2d所有 2,146 个源用例在 cold、polyfill、native-if-present 三种模式注册缺失 API 以显式 source-linked 能力诊断失败而非从测试集合中消失生成覆盖 113 个 RxJS 7 运算符与 34 个创建/工具函数的能力注册表与 RxJS-7-parity.md。T2eAST 级声明扩展后2,201 个物理声明对账为2,338 个唯一注册含 169 个参数化变体与全部 4 个 source-skipped 用例unsupported/obsolete 从 136 降到 11每个仍产生显式 source-linked 诊断。T2f移除 mode-baseline 注册分支与全部it.fails所有适用用例改用普通it(...)默认test:ported命令跑完 16 个 cold 与 16 个 polyfill 分片冷 84 秒、polyfill 94 秒任何失败都展开诊断并以退出码 1 结束。P0.T3持久化失败账本与运算符修复P0.T3 建立了 RXJS_7_PORTED_FAILURES.md 作为持久化运算符/函数修复队列即使某个用例后来变为FIXED其稳定 case ID 下的失败记录也永不删除。账本最终保留全部 1,923 个权威审计失败分配到 140 个工作包全部标记为FIXED完整冷/polyfill 审计各以 2,338/2,338 通过pnpm --filter rxjs test通过 705 个聚焦源测试。会话日志中的修复波次wave 113详细记录了NEVER观察边界、raceWith选择与取消、bufferCount窗口、scan、elementAt、ignoreElements、skipLast、takeLast、switchAll、bufferWhen、mergeAll、takeWhile、sequenceEqual、switchMapTo、repeat、retry、zip、combineLatest、withLatestFrom、exhaustMap等一大批修复——每个修复都附带没有引入缺失 API 或 scheduler 行为的约束声明。P0.DX1DX4开发者体验基础设施DX1固定 pnpm 10.34.5pnpm-workspace.yaml成为权威从原 Yarn lockfile 生成 pnpm lockfile 并移除 Yarn 工具链保留 pnpm 隔离 linker通过版本受限的strictDepBuilds声明依赖构建策略保留 npm 用于发布与终端用户安装补丁了 Husky 4 的 hook runner 以使用pnpm exec。DX2根 README 围绕 workspace 发现、快速包反馈、文档、WPT、发布准备组织成紧凑的命令表。DX3添加pnpm run analyze:bundles一次性 Webpack 对比比较当前 Next含/不含 fallback与已发布 RxJS 版本的 bundle已发布缓存按版本、注册表完整性、配置指纹键控--refresh是显式重建路径。DX4把动态注册模块与自定义分片/进度启动器替换为 147cold147platform个真实 Vitest 文件每个模式各含 2,338 个直接rxTest用例诊断指向真实仓库文件与行号完整内置 JSON 审计记录 2,296/2,338 cold 通过与 2,316/2,338 fallback 通过。P0.I1Symbol 化异步迭代添加iterateEachValue无损 FIFO、iterateBufferedValues无损缓冲、iterateLatestValue有损最新值、iterateNextValue有损按需四个精确实例 Symbol共享内部 async-generator 实现每次调用返回全新的惰性生成器保留接收方直连订阅生命周期并在生成器清理时中止其 observer。行为依据是rxjs-for-await修订版94f9cf9cb015ac3700dfd1850eb81d36962eb70fD-038。P0.2 / P0.3 / P0.4包映射、可构建包、生命周期安全护栏P0.2决策接受三包映射rxjs/observable-polyfillrxjsrxjs/testrxjs/observable在 P0.3 物理移除基础环境Observable、Subscriber、ObservableValue、EventTarget.when声明归属可独立发布的 polyfill 包rxjs拥有 subpath 作用域的 Symbol 增强每个公共rxjs入口评估条件 polyfill 初始化器保留已存在的Observable/EventTarget.when不做探测/警告/替换定义稳定的Symbol.for(rxjs.observable.polyfill.info.v1)元数据契约与observablePolyfillInfo/getObservablePolyfillInfo初始化按 window/iframe/worker/server 隔离各自独立不做跨 realm 遍历明确拒绝 RxJS 7 运行时兼容产品D-039D-041。P0.3实现删除packages/observablepolyfill 成为按 realm 的条件事务初始化器属性变更预检并事务化应用冻结目标明确失败且不留半装状态修复根导出数组为源码背书的根/subpath 导出三个包构建出匹配的 ESM/CommonJS/browser/webpack 路径在 Node24.12.0上通过冻结锁文件安装、workspace 发现与pnpm prepare-packages。P0.4测试一个自包含生命周期契约在 Node 中对内置 fallback、在固定 Chrome150.0.7871.126中对原生 Observable 执行同一函数五组用例覆盖首次激活、并发观察者、晚加入、单个与最后观察者中止、重启、完成、错误、同步重入、延迟 teardown 注册、逆序 teardown、抛出回调新增混合 ESM/CommonJS 双安装 fixture 证明第二份包方言保留所选Observable、配对Subscriber、EventTarget.when、abort bridge 与冻结标记对象的身份。P0.M1M5agent-first 迁移产品线这是计划中以完整 agent-first 迁移体验为最高项目优先级后追加的五个任务M1发布可独立发布的rxjs/migrate工作区包含框架无关迁移核心、一次性 CLI、可复用 Skill 资产首个支持路径是把 Mocha/Chai 测试迁到 Vitest 而不同步耦合rxTest转换语义dogfood 时把 294 个文件147 cold 147 platform采纳为普通仓库自有 Vitest 源码。M2产出 MIGRATION_TOOLING_DESIGN.md 作为完整 agent-first 迁移体验的控制性产品与技术设计八阶段旅程权威发现 → 评估 → RxJS 7 基线/特征门禁 → 目标契约分类 → 有界机械转换 → 修复 → 评审收尾、六种显式生命周期目标platform-shared、producer-per-direct-subscription、subject-hot、not-applicable、unsupported、unresolved、机械 fixture 与 agent 评估分离、单一权威 Skill 源与 Codex/Claude/Cursor 薄适配器D-046 明确不发布 MCP。M3把rxjs/migrate加固为带版本化证据注册表、结构化诊断、契约 manifest 就绪度、原子转换、受包含批写入与 dry-run-first CLI 的确定性引擎十个 fixture 背书的映射与八个参数适配器拒绝不兼容注册表、歧义生命周期选择、不安全绑定、畸形源、不支持的 overload 与非原子混合管道删除全部 MCP 发布产物。M4把包内 Skill 扩展为完整八阶段 agent 工作流为 Codex、Claude Code、Cursor 增加仅复制、原子的安装适配器check/install/update/remove生成的.agents/skills/rxjs-next-migration副本替换旧 Skillpackages/migrate/skill保持唯一作者源跨 harness 指南记录在 MIGRATION_SKILL_GUIDE.md。M5四个不可变的 RxJS7.8.1种子仓库应用/库布局、Vitest/Mocha/Jest、强/弱覆盖、cold/platform/mixed/unsupported 契约离线可执行Codex0.146.0-alpha.3.1gpt-5.6-sol中等推理 规范 Skill/引擎8.0.0-alpha.14的闭式四场景矩阵全部通过 14 个语义门禁族三个完成批准迁移并目标构建/held-out 行为转绿library-weak-unsupported在目标安装或迁移写入前做出预期的安全停止。P0.5固定书面参考与严格 WPT 门禁P0.5 记录 WICG/observable commitd74bace7cf80200a01c81cfe20961e29ac7fa3d8及其spec.bs为书面参考、web-platform-tests/wpt commit6a009d73f0d315941b90cac13a9523a2a08c631b为可执行成功门禁pnpm run test:wpt在 Chrome150.0.7871.126上以 52/52 URLs、525/525 上游子测试、52/52 精确 RxJS 实现检查全部通过且无上游编辑、跳过、失败、错误、超时、not-run 或 accepted-failure 元数据新 WPT 修订版需要显式精确 commit、逐条审查、已验证来源与同样的完整全过结果才能采用。Phase 1 — 平台 fallback 正确性状态ID成果DONEP1.1关闭 P0.3 包实现后暴露的条件安装一致性缺口DONEP1.2将核心订阅、中止、teardown、错误报告与Observable.from行为带到固定基线DONEP1.3将原生平台方法与EventTarget.when带到固定基线DONEP1.4a构建可证实的 Observable WPT 测试平台并记录稳定当前行为基线DONEP1.4b使 fallback 通过固定 Observable WPT 套件P1.1P1.3 被 2026-08-01 收尾审计确认无需额外运行时工作P0.3 的事务条件初始化器与包/realm fixture、P0.4 的混合 ESM/CommonJS 双安装与原生/fallback 生命周期覆盖、P0.5 与 P1.4b 的固定严格 WPT 门禁已满足其要求。P1.4a 恰好 vendor 29 个dom/observable/tentative/文件与 8 个派生支持文件37 个上游文件、716,874 字节来源记录每个 Git blob 与 SHA-256生成清单只含 52 个 URLP1.4b 在不引入 RxJS 7 cold 语义的前提下修正了订阅者生命周期、中止/teardown 顺序、错误报告、分离 realm、Web IDL 形状、平台输入转换、迭代器协议、Promise 消费者与takeUntil/take/drop/every/reduce/inspect等平台运算符删除了全部 25 个过时失败.ini文件。Phase 2 — Symbol 扩展内核状态ID成果DONEP2.1决定 Symbol 身份、版本化、重复安装、realm 与冲突策略DONEP2.2为静态与实例能力实现一个类型化扩展安装器DONEP2.3定义构造器保留、输入转换、取消与错误转发助手DONEP2.4将一小撮代表运算符集转换到内核并验证原生/fallback parityD-048见 DECISIONS.md确立公共能力使用精确的模块自有 Symbol只有 D-037 构造 ABISymbol.for(rxjs.kernel.create.v1)与 D-041 fallback 元数据使用命名空间全局注册表键移除了Symbol.for(buffer)例外源码审计确认create之外没有公共Symbol.for能力。P2.2 实现installObservableExtension静态/实例配对安装、构造器/原型预检、原子定义与回滚、能力命名诊断、非枚举/可写/可配置描述符、精确键冲突拒绝。P2.3 依据 D-049 定义 D-049 助手集结果使用接收方的版本化[create]输入使用活动 realm 的平台Observable.from不兼容构造器与泛型无关对象借用不受支持。P2.4 将map、scan、switchMap、timeout、timer、pipe六个代表能力迁移到公共安装器与助手模式——覆盖原生重叠运算符、同步状态、高阶取消、基于时间的恢复、静态工厂、静态与实例组合——756 个聚焦源测试通过同一八用例扩展内核契约在打包 fallback 与原生 Chrome150.0.7871.126上都通过。Phase 3 — 运算符恢复与 parity状态ID成果DONEP3.1审计现有 API/证据清单并按迁移价值重排剩余恢复工作DONEP3.2审计并维护迁移证据账本DONEP3.3使用扩展内核以小家族为单位恢复运算符DONEP3.4为每个恢复家族分类、保留或重写原 RxJS 7 测试P3.1 对账 117 个公共源 subpath 与 97 个精确公共扩展 Symbol确认 91 个既有精确能力是实现模式迁移而非缺失 API把恢复工作重组为四个迁移价值家族可移植同步/查询运算符、组合/展平/恢复/递归运算符、主机时间/窗口/静态工厂、共享/连接/Subject 邻近/异步迭代能力。P3.2 生成 161 条目的确定性迁移证据账本111 运算符 21 创建/静态函数 29 值/类型/独立函数关联 2,271 个不同源固定证据用例7 个无直接用例的条目记录为uncovered而非暗示支持。P3.3 以九个家族提交把 91 个 pre-kernel 精确能力全部迁到公共安装器加上 Phase 2 的 6 个试点后97 个当前精确公共 Symbol 全部事务化安装并添加阻塞性源码审计要求每个精确公共 Symbol 导入并使用公共安装器拒绝直接公共构造器/原型赋值。P3.4 重新运行全部 2,338 个注册cold 2,299 通过/39 失败fallback 2,316 通过/22 失败剩余失败全部按 case ID 分类为有意的 D-013/D-043 生命周期分歧或兼容性专用任意可订阅输入。Phase 4 — 有意 API 与迁移契约状态ID成果DONEP4.1基于各自 Next 契约稳定有意的 cold、Subject 与 Symbol 组合 APIDONEP4.2完成优先 RxJS 7 公共 API 的迁移证据账本DONEP4.3记录不支持的 RxJS 7 导入、类型、scheduler、互操作与废弃别名DONEP4.4为接受的 API 与生命周期边界添加代表迁移 fixtureDONEP4.I1移除公共扩展安装器并恢复直接精确 Symbol 赋值P4.1 依据 D-050 稳定ColdObservable、Subject、AsyncSubject、小写 behavior/replay 工厂、抽象PerSubscriptionSubjectBase与精确 Symbol 键控的静态/实例pipe的根/subpath 契约明确生命周期cold 直连订阅创建独立工作、每个 Subject 实例是 hot、observer 本地 replay 不意味着 cold 生产者、原生方法结果进入共享平台生命周期Symbol 结果即使运行时 D-037 选择ColdObservable也声明为ObservableT避免从放宽的结果类型推断生产者生命周期。P4.2 关闭全部 161 行账本154 行直接源固定可执行证据、4 行规范别名、3 行固定非 marble/聚焦 Next 证据类型状态定格为 150 changed、7 preserved、4 compatibility-only。P4.3 生成 27 个评审分组、147 个命名的 RxJS 7 导入/公共类型/scheduler/interop/废弃别名表面的固定机器可读目录定义 replace、manual-review、unsupported、test-only、removed 五种处置且明确自动化只允许在证据账本背书的 replace 映射上推进其他处置一律停止。P4.4 添加四个显式迁移 fixturecold-preserving、platform-shared、hot-Subject、unsupported scheduler/interop其中安全停止 fixture 故意没有虚构目标。P4.I1 依据 D-051 把 97 个精确公共 Symbol 能力在十个家族提交中改为直接赋值删除安装器及其六个专用测试代表性rxjs/map浏览器 ESM bundle 从 15,726 降到 14,447 minified 字节-8.1%gzip 4,584→4,244-7.4%Brotli 4,126→3,819-7.4%根控制 bundle 保持逐字节一致。Phase 5 — 迁移体验与 AI 赋能状态ID成果DONEP5.1依据迁移证据账本与已接受分歧编写迁移指南DONEP5.2在代表性应用上验证机械与语义迁移步骤DEFERREDP5.3评估规范迁移工作流之外的后续 RxJS 使用 SkillDEFERREDP5.4仅在新证据背书的产品决策下评估可选集成P5.1 在 packages/rxjs/MIGRATION.md 落地面向任务的 RxJS 7→9 指南覆盖显式四向生命周期选择、直接 Symbol 组合示例、AbortSignal 取消与 teardown 示例、转换/realm 限制、Subject 与 scheduler 指导、自动化边界与完成清单生成的迁移证据账本与不支持表面指南移入packages/rxjs/docs并把 D-052 的 rxjs.dev 排除写入决策。P5.2 把 P0.M3 确定性、P4.4 契约 fixture、P0.M5 四仓库证据映射为 MIGRATION_QUALIFICATION.md重跑 17 个rxjs/migrate套件与 166 个测试全过确认矩阵覆盖应用/库、Vitest/Mocha/Jest、强/弱覆盖、cold/shared/mixed/Subject/unsupported 契约三个完成、一个安全停止。P5.3 与 P5.4 被有意标记为DEFERRED。Phase 6 — 发布就绪状态ID成果DONEP6.1确定版本命名、受支持环境、支持政策与发布通道DONEP6.2完成包、类型、bundle、性能与一致性门禁DONEP6.3发布包本地 API、迁移与贡献者文档DONEP6.4运行发布前采纳、解决阻塞并批准主版本DONEP6.5完成终端计划、验证与文档站点排除审计DONEP6.6集中符合资格的源订阅并记录 bundle 大小证据DONEP6.7使用直接[create]构造并记录 bundle 大小证据DONEP6.8完成 RxJS 9 CI 覆盖并验证生成的 PR 工作流矩阵BLOCKEDP6.9在 GitHub 上验证首次实时依赖评审与 Scorecard 运行NEXTP6.10实现安全发布-PR 与 npm 分阶段批准流程D-053 确定阻塞性 Node22.13/24、咨询性 Node 26、当前 Chrome/Firefox/桌面 Safari/Mobile Safari、Webpack 5、Deno、BunRxJS 9 预发布走 npmnextRxJS 7 保持latest并继续维护。P6.1 把四个包统一到9.0.0-beta.0身份并改为 ESM-only浏览器、Webpack、import、Noderequire(esm)共享同一份文件无 CommonJS 或运行时专属代码副本添加release-coherence门禁拒绝版本/依赖/运行时身份/迁移 Skill/Node 范围/分发/npm 通道/rxjs.dev 排除漂移。P6.2 用 Chrome 151、Firefox 153、WebKit 26.5、Webpack 5.106.2、Deno 2.8.0、Bun 1.3.14、桌面 Safari 与 iOS 模拟器中的 Mobile Safari 验证八用例浏览器契约Webpack 消费 19 个dist/esm模块、17,502 minified 字节上限 22,000Node 24 中位数约 5,040 万 map 值/秒下限 500 万与 140,500 取消/秒下限 30,000执行矩阵与预算依据记录在 RELEASE_GATES.md。P6.4 打包工件审计通过 ESM、require(esm)、严格 TypeScript、rxjs/test与 20,222 字节浏览器 bundle四个 tarball 都在检查上限250K/30K/60K/140K内D-054 批准同步的9.0.0-beta.0列车在阻塞 CI 转绿后进入 npmnext但不发布、不提升latest、不批准稳定9.0.0。P6.6 集中subscribeToSource位置助手并记录完整运行时目录 16.50% minified / 15.34% gzip / 13.32% Brotli 缩减P6.7 把所有派生构造改为直接 D-037[create]调用并进一步缩减P6.8 在草案 PR #7611 上验证全部阻塞主 CI、TypeScript-latest、固定 WPT、浏览器、bundle、性能、采纳、Deno、Bun、桌面/Mobile Safari 任务该 PR 链接为仓库计划文档原文记载。P6.9 处于BLOCKED等待 GitHub 侧的首次依赖评审与 Scorecard 实时运行P6.10 实现安全发布-PR 与 npm 分阶段批准流程是当前唯一的NEXT项。依赖图计划文档用 Mermaid 记录了各阶段的关键依赖链这是理解推进顺序的最直接视图值得注意的设计取舍P1.4a 的 WPT 平台可以固定首个规范修订版与构建工作并行但一致性实现依赖可运行的 harness因此 WPT harness 位于包决策 P0.2 之前而 P0.M2M5 迁移产品线源于用户把完整 agent-first 迁移体验提为最高优先级与平台/内核/恢复工作并行推进最终汇聚到 Phase 6 发布。风险登记册计划文档对十二类风险做了影响/可能性/应对的完整登记这是项目质量治理的核心部分风险影响可能性当前应对原生/fallback 生命周期证据回退包获取可通过但语义分歧中P0.4 共享契约与可证实的严格 WPT 门禁阻断 fallback 漂移RxJS 扩展证据保持独立分类上游提案变化fallback 与原生行为漂移高一致性声明前固定修订版原型代码变成意外政策语义未经评审被保留高文档区分当前事实与已接受方向Symbol 身份跨包副本失败扩展存在于不可访问键下高D-048 精确键隔离 混合方言与重复能力包 fixture无需运行时冲突仲裁RxJS 7 套件反向施压平台行为原生与 fallback 层分歧高强制分类证据绝不暗示运行时兼容产品迁移证据被误认为仿真用户依赖不支持的 RxJS 7 表面中发布显式源动作、语义评审标记与不支持类别硬化 realm 中全局补丁失败库无法初始化中不声明硬化表面D-051 接受原生赋值错误且无配对安装回滚API 稳定前设计工具Skill 编码过时迁移中D-046 要求版本化能力证据与可移植工作流不变量P0.M3 只为已接受契约扩展机械输出被误认为完整迁移用户静默获得错误 Observable 生命周期高D-046 使 agent 工作流为主并要求 codemod 前显式契约分类仅按源码形状评判 agent 输出非确定性重写可隐藏行为回退高D-046/P0.M5 要求 RxJS 7 基线、契约 manifest、编译与行为结果门禁harness 专用说明漂移Codex、Claude、Cursor 安全性不一致中D-046 选一个规范可移植 SkillP0.M4 只测试薄 harness 安装适配器当前 CI/发布基础设施假设 RxJS 7源测试通过但发布工件失败高包导入 fixture 与发布门禁先行于扩展WPT 运行意外使用原生 Observable对 fallback 行为产生虚假信心高P1.4a 精确身份证明 独立不可抑制的报告审计WPT/浏览器环境过大或依赖网络本地与 CI 验证慢或跳过中只 vendor 已批准闭包并校验和缓存稀疏 runner 与精确浏览器工件范围外直到激活计划明确声明以下内容不在当前执行范围内除非另行激活对apps/rxjs.dev的一切修改、构建、测试、发布或部署完整的运算符优先级列表发布日期。其中apps/rxjs.dev的排除在多次证据中反复出现noapps/rxjs.devchange、was not built, tested, published, or deployed是整个计划与文档站点工作流解耦的硬性约束D-052 将其写入决策。会话日志关键里程碑时间线计划文档的会话日志2026-07-24 至 2026-08-03记录了每个切片的动因、执行与验证几个值得注意的节点2026-07-24建立文档基座章程、架构、兼容性政策、决策日志、开放问题登记、活跃计划、仓库 AI 指南记录 Symbol 补丁理由对比 RxJS 5rxjs/add/operator/*字符串键补丁的碰撞弱点接受双表面契约observable.map(project)平台与observablemapRxJS完成 P1.4a 平台。2026-07-29pnpm 10 仓库迁移P0.DX1失败追踪器P0.T3建立 1,923 个失败、140 个包随后 13 个修复波次逐步把冷/polyfill 通过数从数百推进到 2,338/2,338。2026-07-30移除探索性animationFrameProvider运行时D-034修正 hot/cold 生产者术语hot/cold 只由生产者在订阅前是否存在定义ColdSubject更名为抽象PerSubscriptionSubjectBaseD-036ColdObservable 原生与 Symbol 构造边界D-037Symbol 化异步迭代P0.I1D-038P0.2 包映射决策D-039D-041。2026-07-31Subscribervoid修正D-042及其审计、P0.DX4 真实测试文件、P0.M1rxjs/migrate、P0.5 完整固定 WPT 一致性D-045 取代 D-042、agent-first 迁移体验重新排序P0.M2M5。2026-08-01Phase 1 收尾审计、P2.1P2.4 扩展内核D-048/D-049、P3.1P3.4 运算符恢复、P4.1P4.4 契约D-050、P4.I1 直接 Symbol 安装D-051、P5.1P5.2 迁移指南与验证、P6.1P6.5 发布准备D-053/D-054。2026-08-0208-03P6.9 安全自动化Scorecard 依赖评审、P6.10 单一维护者硬化GitHub-App 发布 PR、双构建逐字节一致的 qualification、stage-only npm OIDC、WebAuthn 审批顺序、无 npm 权限的最终发布与依赖公告响应brace-expansionGHSA 覆盖到补丁版。关键文件索引与进一步阅读本计划的主体docs/rxjs-next/PROJECT_PLAN.md目标架构与三层概念平台获取 → Symbol 扩展 → 迁移工具docs/rxjs-next/ARCHITECTURE.md决策日志D-001D-057含 D-048/D-049/D-051/D-053/D-054 等关键决策docs/rxjs-next/DECISIONS.md迁移政策与兼容性边界docs/rxjs-next/COMPATIBILITY.md、docs/rxjs-next/OPEN_QUESTIONS.md大理石图 parity 映射与失败账本docs/rxjs-next/RxJS-7-parity.md、docs/rxjs-next/RXJS_7_PORTED_FAILURES.md测试设计契约docs/rxjs-next/TESTING_DESIGN.md迁移 Skill 指南docs/rxjs-next/MIGRATION_SKILL_GUIDE.md迁移工具链设计packages/migrate/docs/MIGRATION_TOOLING_DESIGN.mdRxJS 7→9 用户迁移指南packages/rxjs/MIGRATION.md发布门禁与证据账本packages/rxjs/docs/RELEASE_GATES.md、packages/rxjs/docs/MIGRATION_EVIDENCE_LEDGER.md结语《RxJS Next active project plan》的价值不在于单个功能而在于它为把 RxJS 从 Observable 的所有者改造成平台 Observable 的扩展库这一高风险架构转型建立了证据驱动的工程纪律每个任务都有完成标准与完成证据、每条迁移主张都绑定固定版本的 RxJS 7 源证据、每次并发工作都以唯一的NEXT标记收敛、每个已接受决策都写入决策日志并以修订号引用。从 WPT 的 52/52 精确身份证明到 2,338 个 parity 注册的冷/polyfill 双模式全过再到rxjs/migrate 可移植 Skill 的四仓库资质评估这套计划展示了在重写核心库的同时保留可审计迁移路径的系统方法。截至文档最后记录P6.10安全发布-PR 与 npm 分阶段批准是唯一的活跃NEXT项其完成取决于 GitHub/npm 侧的外部管理验证。【免费下载链接】rxjsA reactive programming library for JavaScript项目地址: https://gitcode.com/gh_mirrors/rx/rxjs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考