Skip to content

feat(1.x.x): 核销 104 条 Dependabot 告警 + EP1《执行层》3D 表意强化与官方口径勘误(2 提交聚合) - #1128

Merged
ThreeFish-AI merged 2 commits into
masterfrom
feature/1.x.x
Sep 6, 2026
Merged

feat(1.x.x): 核销 104 条 Dependabot 告警 + EP1《执行层》3D 表意强化与官方口径勘误(2 提交聚合)#1128
ThreeFish-AI merged 2 commits into
masterfrom
feature/1.x.x

Conversation

@ThreeFish-AI

@ThreeFish-AI ThreeFish-AI commented Sep 6, 2026

Copy link
Copy Markdown
Owner

背景

本 PR 为 feature/1.x.x → master 的集成分支合入,聚合 2 项已分别独立评审、各自闭环的变更(29 文件,+1533/-1019),遵循「正交分解 + 最小干预」主线集成,不引入新变更:

核心变更

一、核销 104 条 Dependabot 告警(来自 #1126

按 app 边界与风险粒度拆 8 批:

批次 范围 核销
1 travel-agent-ui:next 16.2.12 + 补齐 workspace 隔离声明 9
2 根 workspace 三 importer:next 16.2.12 + faker 10 28
3 cognizes:九包定向升级 + 四条传递依赖地板 47
4 cognizes:删除死配置 docs 依赖组 3
5 negentropy:cryptography / aiohttp / pyasn1 / setuptools 8
6 negentropy:mcp 1.26.0→1.29.1(隔离批) 3
7 perceives:锁定根因纠偏 + 裁剪 6 条失效 ignore + datasets 4.8.5→5.0.1
8 ISSUE-092 落档 4 条 dismiss 依据

两个关键结论

  • perceives 的 transformers 锁定根因已纠偏:既有记载「marker/surya 在 5.x 下崩 onnx」经上游元数据核实已不成立(marker 2.0.0 / surya 0.22.1 均适配 transformers>=5.12.1);真实阻断是二者要求 pillow<11 与本项目 pillow>=12.3.0 冲突。基于攻击面判定(perceives 直解析不可信 PDF,Pillow 可达;transformers 零直接 import,不可达)维持不升 marker,解锁条件由「等适配 5.x」迁移为「等放开 pillow<11 上界」
  • torch CVE-2025-3000 的 upstream fix 已存在(2.13.0),dismiss 理由相应更新为「有 fix 但受四方联动约束 + 向量不可达」。

预期结果:100 条升级自动关闭 + 4 条 dismiss = 104。

二、EP1《执行层》3D 表意强化与官方口径勘误(来自 #1127

  • 内容勘误(3 句,3979 → 3989 字)p0-06 第五样「护栏」→「把这些串起来的循环」(官方 glossary 原文,该错误恰错在本集 14 分钟主线上);p4-23「三十一个」→「三十多个,官方文档还在往上加」(实测已漂移到 33,属活数据);p6-06 取数日期。
  • 信源台账补根因:补录 cc-glossary 等 6 条官方锚点(此前一条不在 sources.toml),verify 受检面 12 → 18;source-notes.md 新增轨 C 与断言表(12 条逐条附原文)。
  • 3D 表意强化:新增 solids-3d.tsx(356 行 seeded 档原语层,零 motion hook),落地两处——5-D「壳」(四层实心板嵌套、层序即 z 序)与 4-C「插座插头」(3D 咬合侧棱遮挡是「真的进去了」的唯一无歧义信号);PlateSlab3D 收敛到 Slab3D,同帧 PNG md5 逐字节相同。
  • 明确不做LoopRing 任何 3D 化;5-B 体积柱试做后回退(侧板遮挡 20–28 实测带——带是仪器、柱是被测物),决策已写入注释。
  • 规格沉淀skills/06 新增「3D 点缀」节(此前 three/3D 关键词零命中,EP2–5 跟进无据可依)。

风险与回滚

验证证据

  • fix(security): 核销 104 条 Dependabot 告警——五处依赖升级 + perceives 锁定根因纠偏 #1126(分批次):三前端项目 lint/typecheck/build 通过、cognizes-ui test 28 passed;cognizes 单测 225 passed(覆盖率过门)+ uv build 通过;negentropy 单测 2941 passed(覆盖率 57.04% 过门)+ alembic 单 head;mcp 升级三层验证(私有 API 符号核对 + 定向 22 用例 + 真实 MCP 往返 200/401);perceives 以 CI 原样命令复跑 pip-audit 退出 0、CI 参数复跑 2130 passed。已对拍确认的既存失败(cognizes/negentropy integration、perceives test_config)在干净树同样复现,与本变更无关。
  • feat(influence): EP1《执行层》3D 表意强化与官方口径勘误,终渲交付 13:59.90; #1127:机器门全绿——check --check-scenes --check-motion/--check-theme FAIL 0、verify_skeleton --strict 零漂移、check_series 2 系列 8 集 292 文件 FAIL 0、source_ledger verify 18 条 FAIL 0、tsc --noEmit 通过;抽帧 QA 终渲七幕 + 末 6 句 FAIL 0 / WARN 0、--beat-heads 4(39 镜 ×4 帧)FAIL 0 WARN 0;终渲 out/final.mp4 13:59.90(25197 帧,total_duration_in_frames 复算恒等)· 1920×1080@30 · 42.2 MB,双口径均落预算窗 [13.0, 14.6]。

影响范围

  • 依赖/后端cognizes / negentropy / negentropy-perceives 的 pyproject + uv.lock;negentropy-ui / negentropy-wiki / cognizes-ui / travel-agent-ui 的 package.json + pnpm-lock.yaml(next 统一 16.2.12 等)。
  • 前端:仅 EP1 的 Remotion 工程(episodes/claude-code-explained-video/video/);frozen 运动层七文件一字未动。
  • CInegentropy-perceives-ci.yml ignore 数组维护(裁 6 条失效 + datasets 升级后复核)。
  • 文档docs/.agents/issue.md(ISSUE-092 落档 + 4 条缺陷经验)、EP1 README / source-notes / verification / storyboard、skills/06-remotion-implementation.md

Next Best Action

* build(deps): travel-agent-ui 升级 next 16.2.12 并补齐 workspace 隔离声明,修复 9 项 alert;

- next / eslint-config-next 16.2.6 → 16.2.12,核销 Dependabot #574-582:
  SSRF(GHSA-89xv-2m56-2m9x / GHSA-p9j2-gv94-2wf4)、中间件绕过(GHSA-6gpp-xcg3-4w24)、
  Server Actions DoS(GHSA-m99w-x7hq-7vfj)等 9 条;修复门槛为 16.2.11,取 16.2 线
  最新补丁 16.2.12 以多带一版累积修复,不跨 minor 避免无关框架行为变更
- 补齐 `packages: []` 的 pnpm-workspace.yaml——本工程已从根 workspace 解耦但缺失隔离
  声明,是 ISSUE-175 所列同款入口中全仓最后一个敞口。本次恰好改动其 manifest,正是
  事故链第一环(改嵌套 manifest → 顺手 install → 根 lockfile 静默被覆写),故一并钉死
- 本工程无 lockfile、不被任何 workflow 构建,改 manifest 即生效:本批未执行任何
  pnpm install/add/update,根 pnpm-lock.yaml sha1 校验前后一致(06e898b1,13098 行)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* build(deps): 根 workspace 三 importer 升级 next 16.2.12 + faker 10,修复 28 项 alert;

- next / eslint-config-next 16.2.6 → 16.2.12(negentropy-ui / negentropy-wiki /
  cognizes-ui):核销 #583-591 / #592-600 / #565-573 共 27 条,覆盖 SSRF、中间件绕过、
  Server Actions DoS、缓存混淆、Image Optimization DoS 等;修复门槛 16.2.11,取 16.2 线
  最新补丁多带一版累积修复
- @faker-js/faker ^9.0.0 → ^10.5.0(实解 10.6.0),核销 #687GHSA-qxc2-j82w-r537,
  helpers.fake 可被利用为任意代码执行,<=10.4.0 全线受影响故 9.9.0 亦在范围内)。
  跨大版本但唯一调用点 tests/ui/helpers/factory.ts 仅用 string.uuid / person.fullName /
  helpers.arrayElement / date.* / number.int / lorem.*,与 v10 移除清单零交集
- lockfile 完整性核对(ISSUE-175 教训):overrides 块 17 条全在、importers 5 个不变、
  next 两条 @babel/core peer 变体链(7.29.7 / 8.0.1)均保留、`@babel/core` override
  上界 `>=7.29.6 <8.0.0` 未放宽;净减 70 行系 @babel/core 获得 (supports-color) peer
  后缀导致的键合并,非依赖丢失;`pnpm install --frozen-lockfile` 通过

验证:cognizes-ui lint 0 error + tsc --noEmit 通过 + test:coverage 28 passed(含
faker 三个消费测试)+ build 通过;negentropy-ui lint(--max-warnings=0)+ typecheck +
build 通过;negentropy-wiki lint 0 error + build(含 pagefind 索引)通过。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* build(deps): cognizes 九包定向升级消 47 项 alert,新增四条传递依赖地板;

- 直接依赖抬地板:pypdf 6.13.3→6.17.0(10 条 DoS/无限循环/内存耗尽)、
  pillow 12.2.0→12.3.0(13 条堆越界写/解压炸弹/命令注入)
- gpu 组抬地板:transformers 5.8.1→5.16.1(CVE-2026-9856 save_pretrained 路径穿越)、
  torch 2.12.0→2.14.0(CVE-2025-3000 torch.jit.script 内存破坏)。无上界阻断:
  sentence-transformers 5.5.0 仅要求 transformers<6.0.0 且不约束 torch
- constraint 抬升 cryptography 49.0.0→50.0.1(GHSA-g6cj-pr64-35w5 Bleichenbacher oracle)
- constraint 新增四条传递依赖地板:gitpython 3.1.50→3.1.61(18 条 git option/配置注入
  RCE 与任意文件读写;travel-agent-demo → streamlit 传递,本仓零 `import git`)、
  pyasn1 0.6.3→0.6.4(3 条 BER/CER/DER 解码器 DoS)、httplib2 0.31.2→0.32.0
  (解压炸弹 DoS)、setuptools 81.0.0→84.0.0(CVE-2026-59890 MANIFEST.in 绕过)
- 定向升级(--upgrade-package ×9)而非全量 --upgrade:lock 仅动 435 行且 docs 组
  零位移(mkdocs/pymdown 变更 0 行),保持可 review 与可归因

验证:ruff check/format 通过(207 文件);pytest tests/unittests/ 225 passed 2 skipped、
覆盖率 30.98% 过 20% 门;uv build + import cognizes 通过;六包运行时版本实测达标。
integration 套件 13 failed/110 passed —— 已用 git stash 在同一环境对拍确认与本次改动
无关(干净树同为 13 failed/110 passed,根因是 TracingManager.span 属性缺失与
tests/integration/mind 下 test_e2e.py 同名 basename 收集冲突,均为既存问题)。

已知验证边界:transformers/torch 的一手调用在 engine/perception/reranker.py,该模块
无单测。已尽力覆盖到 API 契约层——模块本身导入通过,且逐项验证 rerank() 实际调用的
AutoTokenizer/AutoModelForSequenceClassification.from_pretrained、tokenizer 四个 kwargs
(padding/truncation/max_length/return_tensors)、SequenceClassifierOutput.logits 路径与
torch.no_grad/sigmoid 在 5.16.1 下均存在;未验证真实模型推理(需下载 bge-reranker-base)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* build(deps): 删除 cognizes 死配置 docs 依赖组,从根消除 3 项 alert;

- 移除 [dependency-groups] docs(mkdocs / mkdocs-material / mkdocstrings),核销
  #692(mkdocs-material DOM XSS)与 #618/#663(pymdown-extensions 路径穿越 + ReDoS)
- 判定为死配置的三项证据:① 全仓零 mkdocs.yml;② CI 从不安装该组
  (setup-python-uv 仅 `uv sync --group dev`),亦无任何 workflow/脚本引用;
  ③ src/ + tests/ + scripts/ 零 mkdocs 引用。项目文档站实为 negentropy-wiki(Docusaurus)
- 相较升版本,删组从根消除这两个包及其 12 个传递依赖,同类告警不再复发
- lock 为纯删除(-215 行、0 插入),移除项全部属 mkdocs 依赖闭包,无其它包位移

验证:uv sync --frozen --group dev 通过;import cognizes 通过;
pytest tests/unittests/ 225 passed 2 skipped——与删组前逐项一致,佐证该组无运行时作用。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* build(deps): negentropy 四包定向升级消 8 项 alert,补 setuptools 传递依赖地板;

- override 抬升 aiohttp 3.14.1→3.14.3:新增修复 GHSA-cq5v-8q36-5273(C 响应解析器
  堆越界读)与 GHSA-mfx4-hv73-q22v / GHSA-mq44-7p77-q5h7(WebSocket 请求走私/未协商
  压缩帧),核销 #641/#643/#645。override 机制不变:microsandbox==0.1.8 锁死 <3.11.0
  仍需强制覆盖,只抬地板版本
- constraint 抬升 cryptography 49.0.0→50.0.1:GHSA-g6cj-pr64-35w5(PKCS#7
  EnvelopedData 解密暴露 Bleichenbacher oracle,high),核销 #648。全仓零一手 import
  (authlib/google-auth/joserfc/presidio/pyjwt/pyopenssl 传递),且 perceives 已在
  50.0.1 上验证过同构依赖者集合
- constraint 抬升 pyasn1 0.6.3→0.6.4:BER/CER/DER 解码器 3 条 DoS
  (GHSA-m4p7-r5rc-7g4j / GHSA-hm4w-wwcw-mr6r / GHSA-8ppf-4f7h-5ppj),核销 #559/#560/#626
- constraint 新增 setuptools>=83.0.0(82.0.1→84.0.0):CVE-2026-59890(MANIFEST.in
  排除规则被 Unicode 归一化绕过),核销 #558。此前无任何声明,经 spacy/thinc 传递
- 定向升级:lock 仅动 6 行;pyopenssl 26.3.0→26.4.0 随 cryptography 联动

验证:alembic 单 head(0099);pytest tests/unit_tests/ 2941 passed、覆盖率 57.04%
过 50% 门;四包 import smoke 版本达标。integration 套件本地 116 failed/115 passed/
90 errors——已对拍干净树基线逐项一致(共享 negentropy_test 累积脏数据所致的既存
环境问题,见记忆 test-db-accumulates;CI 每次起新容器不受影响),与本次改动无关。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* build(deps): negentropy mcp 1.26.0→1.29.1,修复 3 项 http-transport alert;

- mcp 地板 >=1.6.0 → >=1.28.1,<2.0.0:核销 #501/#503/#505CVE-2026-52869/52870/
  59950,MCP SDK http-transport 攻击面)。上界 <2.0.0:2.x 拆出 mcp-types/truststore
  属未验证 major 迁移(uv 默认解 2.1.1,已退回 1.x 线);alert 门槛 1.28.1,perceives
  实跑 1.28.1,本批实解 1.29.1(1.x 线最新)。idna 3.16→3.19 随 mcp 子树联动
- 一手调用面 3 处(interface/mcp_client.py 三种传输、knowledge/mcp_server.py 的
  FastMCP/StreamableHTTPSessionManager/TransportSecuritySettings、engine/sandbox/mcp.py),
  依赖要求逐条核对全部满足,与 aiohttp 完全解耦(mcp 走 httpx)

三层验证(对齐 ISSUE-092 的 CVE-2026-4372 验收范式):
① 符号 + 真实构造——stdio 私有 API 7 符号(mcp_client.py 8 处引用)全在;
FastMCP 四 kwargs(stateless_http/json_response/streamable_http_path/transport_security)
真实构造出 Starlette app;get_kb_mcp() 与 sandbox 构造路径不 mock 直接过
② 定向单测 22 用例(test_mcp_client 5 + test_mcp_client_resources 4 +
test_kb_mcp_server 13)全过;全量单测 2941 passed、覆盖率 57.04% 过门(与升级前逐项一致)
③ 真实 MCP 往返(合入前置)——httpx.ASGITransport 直打 create_kb_mcp_asgi_app():
tools/list 返回 200 且含 kb_search 工具清单;错误 bearer 401 拒绝。覆盖单测完全
mock 掉的 StreamableHTTPSessionManager.run() + stateless 路径(1.28+ 改动最多处)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* fix(perceives): 纠偏 transformers/torch/setuptools 锁定根因,裁剪 6 条失效 ignore 并升级 datasets;

- transformers 锁定根因纠偏(pyproject [tool.uv] 注释):旧述「marker-pdf 1.10.2 /
  surya-ocr 0.17.1 在 5.x 崩(transformers.onnx)」已不成立——marker-pdf 2.0.0 /
  surya-ocr 0.22.1 均已适配 transformers>=5.12.1。真实阻断是二者同时要求 pillow<11,
  与本项目 pillow>=12.3.0(修 8 条图像解析 CVE)直接冲突;perceives 直接解析不可信
  PDF/图片故 Pillow 攻击面可达,而 transformers 零直接 import、仅加载第一方 artifact
  故不可达——升级属负收益交换。mineru 3.0.9 的 transformers<5.0.0 仅 vlm/pipeline
  extra 生效,不构成约束
- 解锁条件迁移:从「等 marker/surya 适配 transformers 5.x」改为「等二者放开
  pillow<11 上界」——跟踪对象不同,否则后来者会困惑「已适配为何仍锁」
- torch CVE-2025-3000 纠偏:upstream fix 2.13.0 已发布(原注释「暂无 fix」过时),
  改述为「有 fix 但受 marker/surya/docling-ibm-models/torchvision 四方联动约束」
- setuptools pin 注释纠偏:原述「undetected-chromedriver 依赖 pkg_resources」已证伪
  ——实测 82.0.1 与 83.0.0 皆无 pkg_resources(上游早于 82 移除,复核 ISSUE-092
  隔离结论)。维持 82.0.1:不为不可达 build-time 低危变更 build 后端版本
- 裁剪 6 条失效 ignore:fastmcp(CVE-2025-64340/CVE-2026-27124)与 litellm
  (CVE-2026-35029/35030、GHSA-69x8-hrgq-fjj8CVE-2026-42271)注释停留在 3.1.1/1.80.0,
  实锁已 3.2.4/1.85.0。实跑 pip-audit 确认两包零命中后删除,非凭版本号推断
- datasets 4.8.5→5.0.1:本次裁剪后暴露的新 advisory CVE-2026-66007(PYSEC-2026-3716,
  folder-based dataset builder 路径穿越任意文件读)。mlx-vlm 仅要求 >=2.19.1 无上界,
  故直接升级而非新增 ignore 债

验证:ignore 数组经 bash -n 语法校验(56 条);以 CI 原样命令复跑 pip-audit
退出 0——「No known vulnerabilities found, 10 ignored」;CI 参数复跑测试
(-n auto -m "not slow")2130 passed,docling/mineru/marker 三引擎 worker 均真实
启动;mlx-vlm 在 datasets 5.0.1 下 import 通过。3 个 test_config 失败已对拍干净树
基线一致(本地 .env 使 concurrent_requests=32≠默认 16,CI 无该文件),与本次无关。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* docs(issue): ISSUE-092 增补 perceives 4 条 dismiss 依据与 transformers 解锁条件迁移;

- 记录 104 条 alert 人工核销的收口:100 条经升级消除,perceives 4 条走 dismiss
- transformers 锁定根因纠偏:marker-pdf 2.0.0 / surya-ocr 0.22.1 已适配
  transformers>=5.12.1(旧「transformers.onnx 崩溃」不再成立),真实阻断是二者
  要求 pillow<11 与本项目 pillow>=12.3.0 冲突;附攻击面可达性对比论证
  (Pillow 可达 vs transformers 不可达)说明升级为负收益交换
- 解锁条件从「等适配 transformers 5.x」迁移为「等放开 pillow<11 上界」,
  避免后来者按旧条件追踪而困惑
- torch CVE-2025-3000 状态迁移留档:upstream fix 2.13.0 已发布,原「暂无 fix」
  记录作废;此例印证本 Issue 既有防范条款「四元注释便于季度 review 识别可移除项」
- 记录本次 ignore 清单 review 结果(62→56 条)与 datasets 升级替代新增 ignore 的处理
- 沉淀三条方法论:「上游已适配≠可升级」须核对全部约束维度、安全债决策应比较
  攻击面可达性而非 CVSS 分数、ignore 注释的「阻断原因」腐化快于 CVE 本身

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* fix(travel-agent-ui): 补 allowBuilds 修复隔离 workspace 下 pnpm install 退出 1;

上一提交把本工程钉成独立 pnpm workspace 根以阻断根 lockfile 覆写,但漏声明
allowBuilds——原生构建许可原本继承自根 workspace,隔离后不再传递。

实测(pnpm 12.2.1,本目录完整 pnpm install):Error: ERR_PNPM_IGNORED_BUILDS,
被拦 @scarf/scarf / esbuild / sharp / unrs-resolver,退出码 1,且 pnpm 会往
pnpm-workspace.yaml 回写 "set this to true or false" 占位;根 pnpm-workspace.yaml
所载的 `cd … && pnpm install && pnpm dev` 因此卡在第一步。

注:作者侧大概率以 --lockfile-only 验证,该模式不执行构建脚本故退出 0,恰好掩盖此失败。

- 补齐四条许可,取值与根 workspace 一致(@scarf/scarf 保持 false,同为隐私考虑)
- 未纳入根侧 msw:本工程不依赖,遵循最小声明
- 注释指向修正:原「运行方式见同目录 README.md」——该 README 为 create-next-app
  原始样板,无 install 步骤亦未提隔离 workspace,改为就地写明安装运行命令

验证:修复后 pnpm install 退出 0、IGNORED_BUILDS 零命中;根 pnpm-lock.yaml 逐字节未变,
隔离目标保持有效;YAML 解析通过。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* docs(perceives): 同步 pip-audit ignore 注释至纠偏后口径并订正 ISSUE-092 计数;

本分支已论证 transformers 锁定 <5.0.0 的真实阻断是 marker-pdf 2.0.0 / surya 0.22.1
要求 pillow<11,而非旧记的「marker-pdf / docling 兼容交集」;setuptools 保持 82.0.1
的理由亦已由「undetected-chromedriver 依赖 pkg_resources」改写为「已证伪」。但 CI
ignore 清单中的四处注释仍停留在旧口径,与 pyproject、issue.md 相互矛盾。

CVE-2026-9856 条已承载完整根因,其余三处改为指针式引用,避免同一结论多处维护:

- PYSEC-2025-211..218 / CVE-2026-4372 / PYSEC-2026-2290:删除「docling 兼容交集」
  归因,统一指向 CVE-2026-9856 条;CVE-2026-4372 的「待交集支持 5.3.0+ 后升级」
  同步改为「待 marker-pdf / surya 放开 pillow<11 上界」
- PYSEC-2026-3447:交叉引用由「见 pyproject,undetected-chromedriver 相关」改为
  「见 pyproject setuptools 注释与 ISSUE-092 2026-09-06 增补」——照旧文跳转只会
  读到相反结论
- ISSUE-092:「ignore 条目 62→56」订正为 34→28。negentropy-perceives-ci.yml 是
  全仓唯一 --ignore-vuln 来源,实测本分支前 34 条、后 28 条(差值 6 正确,绝对值错位)

纯注释与文档变更,ignore 条目与 pip-audit 行为零改动。验证:YAML 解析通过;
--ignore-vuln 实测 28 条,与订正后的 issue.md 记载一致;注释行宽与既有块保持齐平。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
* fix(influence): 修正 EP1 口播三处官方口径偏差并补录轨 C 官方信源台账;

对照 Anthropic 官方文档原文逐条复核《执行层》全部官方断言(取数 2026-09-06),
修正三处、补齐一个系统性缺口。

内容修正(3 句,字数 3979 → 3989):
- p0-06 第五样勘误:「护栏」→「把这些串起来的循环」。官方 glossary 原文是
  "the loop that chains actions together"。这不是口径偏差——本集整整 14 分钟
  讲的就是那个循环,P0 命名帧却把它从官方定义里漏掉。改对后叙事反而收紧:
  P0 埋下「循环」、P1 第一句直接接上。与 p5-05 的四件套不冲突(两个官方来源,
  交集恰好是「循环」)。
- p4-23 改抗漂移口径:「三十一个」→「三十多个,官方文档还在往上加」。官方
  hooks 事件表实测已从 31 漂移到 33;该数属活数据,踩本集禁用清单第 1、2 条。
  绝对数降入画面角标并带取数日期。
- p6-06 取数日期同步为 2026 年 9 月。

信源台账(根因修复):
Harness Engineering 改造引入的六个官方锚点此前一条都不在 sources.toml 里,
导致「写错了没有事实源能拦、写对了也会随官方更新悄悄陈旧」。现补录
cc-glossary / cc-how-it-works / cc-hooks / cc-permissions / cc-auto-mode /
cc-harness-blog,verify 受检面 12 → 18 条 FAIL 0;source-notes 新增
「轨 C · 官方文档」与 §十 官方断言表(12 条逐条附原文)。
补录前 verify 报「受检 12 · FAIL 0」全绿——门是绿的,只因为出问题的六页
不在受检集里。

分镜同步:0-C 第五辐条、4-F 计数 31→33、4-C/5-D 的 3D 画面描述。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* feat(influence): EP1 3D 表意强化——solids-3d 原语层 + 5-D「壳」与 4-C「插座插头」;

3D 能力(PR #1123 引入)此前只用在 P0/P6 的系列身份层板上,全片 39 个 beat 里
37 个没有 3D——能力已具备而未用于表意。本轮挑两处「平面表达不出来」的落点。

新增 video/src/components/solids-3d.tsx(seeded 档,零 motion hook,运动量全部
prop 注入),三条宪法写进文件头:
- 只做直角体不做圆/环/曲面——画面里的「圆」已被 LoopRing 独占,它是「循环始终
  不变」被看见的唯一载体;副产品是元素词表被钉死在已跑通的那一组,零新类型面。
- 读感来自转物体不来自动相机——正交 zoom:1 的等距映射是 domToWorld 存在的前提,
  相机零动画同时白送无头渲染确定性。
- 颜色永不是「光 × 材质」的运行时乘积——零光源、只用 unlit 材质,明暗靠手写
  面色梯度(ISSUE-177 教训二的结构化)。ISSUE-177 教训一写进类型:Stage3D 的
  style 在类型上 Omit 掉定位属性,实体原语一律返回 group 不返回 DOM。

5-D「壳」:p5-17 是全片唯一把整套结构命名为三维实体名词的句子,而原实现只是
一个 3px 边框 div(读作「框」)。框与壳的差别是维度差——观众要读出「终端在壳
里面」,需要看见壳壁的内表面。改为四层实心板嵌套,层序即 z 序(循环最内、插口
最外),终端沉在井底,「挂在外面」成为几何事实。

4-C「插座插头」:插座的定义就是一个凹进去的洞,而原 22×22 方框只是画在墙上的
符号,「插入」这个动作在平面上根本不存在。3D 咬合时插头侧棱被口沿吃掉的遮挡,
是「它真的进去了」的唯一无歧义信号。只做四个插口中的第一个(口播说的是「一张
卡片插入」,四个全做反会把另三个读成空洞)。

PlateSlab3D 收敛到 Slab3D:同帧 PNG md5 逐字节相同;顺带删除对 basic 材质是
空操作的 ambientLight。收敛边界画在「画布之内、group 之内」——刻意不让它改用
Stage3D,因为它的画布带着两个只对它成立的假设(ISSUE-177 教训一会重演)。

时序零改动:四层合拢开在既有 26 帧 shell 进度的子窗口(frozen win())、插头直接
吃既有 useSpring('snap'),无新 hook、无新 @动词、总帧数由 manifest 结构性推导。
Plug3D 内部对 seat 取 min(seat,1):snap 的 ζ=0.6 峰值 1.095,不钳制会穿透井底;
过冲转为棱线提亮不丢手感。

5-B 体积柱评估后不做(决策入注释):试做发现侧板必然遮挡章名标签与 20–28 实测带
——带是仪器、柱是被测物,遮住仪器等于丢掉这幕的判据;且「一根芯贯穿四柱」本身
要否决,四柱是四个版本的独立实测,连续芯等于断言「同一段代码的四次采样」。

P0-C 第五辐条随内容勘误改为「循环」并染 core 色,成为 P1 环诞生的视觉引信;
retrofit-gallery 新增 housing close 三态与 socket seat 四态(含过冲峰 1.095 的
穿底判据)两格。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* docs(influence): 沉淀 3D 实现规格与四条缺陷经验,更新 EP1 交付台账;

skills/06 新增「3D 点缀(@remotion/three)」节:此前该文件 three/3D/angle 三个
关键词零命中——3D 已在 EP1 用了一轮却从未沉淀为跨集规格,EP2–5 跟进时无据可依。
现补齐三条宪法、读色契约(含「面要被看见必须与 bg 拉开」「多层嵌套必须关 edges」
两条实景结论)、构造经验(实心板嵌套而非边框拼框、弹簧过冲要钳行程、一 beat 一
画布、z 层级属调用点契约)与验收方式(收敛以逐字节相同为门、3D 是 --check 盲区
必须逐帧目视)。

issue.md 补四条:
- ISSUE-178 口播断言在事实源里没有锚点也能进成片——真实性纪律写在散文里,没有
  任何门在执行。附带教训:「门是绿的」不等于「查过了」,先问它在看什么。
- ISSUE-179 静态口径写死的官方数字会周期性陈旧(31 → 33)。判断是不是活数据,
  不看它此刻是否精确,而看它未来会不会变;结构性表述比枚举计数稳定得多。
- ISSUE-180 3D 化「壳/井」用四条边框拼会读成一堆细线框——面色与 bg 同色时 3D
  只剩棱线。三轮实景抽帧才定位。
- ISSUE-181 两个渲染进程并发写同一 mp4 → 索引损坏、抽帧 seek 全落回第 0 帧,
  伪造出 52 条 WARN。与 ISSUE-177 互补:那条说「低差异不等于无回归」(判据不
  敏感),这条说「高 WARN 也未必是真回归」(输入已损坏);异常 WARN 集中在未改动
  的幕、而改动的幕反而干净,这个分布本身就是产物损坏的信号。

EP1 README 更新交付台账:终渲 13:59.90(25197 帧,较前版 +1.10 秒)· 42.2 MB ·
终渲全分辨率复检 FAIL 0 WARN 0(草渲期唯一的哈希 WARN 在全分辨率下消失,佐证
其为假阳性)· beat-heads 39 镜 ×4 帧 FAIL 0。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>

* fix(influence): 修复 EP1 3D 评审五项——5-D 层序反转、壳画布裁切与三处死契约;

评审对 3D 表意强化提出五条,逐条修复并以实机抽帧自证。

## 1. 5-D 四层壳的层序被渲染反了(成片缺陷)

`depth = SHELL_RIMS.length - 1 - i` 与数组声明的「自内向外」相反,i=0(循环)
拿到 depth=3 ⇒ 尺寸最大、面色最暗、棱线最淡。抽帧 frame 23510 实证:由内向外
是 插口(mech)/闸门(deny)/分发表(mech)/循环(core),与 storyboard、README、组件
文档块三处「循环最内、插口最外」全部相反——口播此刻正说「留了插口的壳」。

根因是「里面」由 z、尺寸、色阶三个量共同表达,而只有 z 被对齐;正交投影下 z 只
体现为极小的遮挡差,真正决定读法的是尺寸。改 `depth = i` 后三项同向自洽。
`dev/retrofit-gallery.tsx` 的 HousingCell 手抄了同一段反转逻辑,故一并修正——
评审面复制被评审的逻辑,就验不出自己复制来的错误。

## 2. 壳画布余量漏算合拢期的 z 后推量

原 `+60` 对称余量既误用 `SHELL_DEPTH`(26) 当外扩量、又完全没计入
`-(1-close)*180` 的后推量。以 `THREE.Euler('XYZ',−12°,8°)` 投影最外层八角实测:
需 W≥1397 / H≥751,实际只有 1394×674 ⇒ 合拢初期最外层底缘被画布下沿在 y=876
直切 635px(frame 23502 实证)。改为 `SHELL_PAD_X=66` / `SHELL_PAD_Y=142`,
并把 `3` 换成 `SHELL_RIMS.length - 1`、`180` 提为 `SHELL_PUSH_IN`。
安全带复核:最外层底缘 close=0 落 915.5、close=1 落 878.4,均 < SAFE_TOP_Y 920。

## 3. `Socket3D` 的 `skin.face` 是空操作

井底恒 `theme.bg`、井壁恒 `SOCKET_WALL`,`face` 从未被读取,但两个调用点都传了
`face: theme.panel`。类型收窄为 `Omit<SolidSkin, 'face'>`,由编译器拦住这类
「看起来在设色、实际没有效果」的调用。4-C 帧 17392 修前后逐像素相同。

## 4. 删除 5-B 那批无消费者的 3D 导出

`Bar3D` / `BAR_SIDE` / `BAR_YAW` / `domToWorld` / `SHELL_INNER` 全仓零调用,而
同一轮已在 `GrowthBars` 注释里明确「本幕评估后不做 3D」。它们带着文件里最长的
规格注释,易被误读为现行口径;相关结论已公共化在 skills/06。原语层 356 → 298 行。

## 5. 4-C 锚点注释是上一版残留

注释写「节点 1(ang=-20°)」而代码是 `i === 0`(ang=-60°),且引用了不存在的
`SocketPlug` 符号。

## 验证

- `tsc --noEmit` 通过;`node --test scripts/motion.test.ts` fail 0
- 全分辨率抽帧 f17392 / f23502 / f23510 / f23525 + retrofit-gallery f40 目视复检
- 数值复检:画布四边(col 258–260 / 1658–1660、row 915–918)零硬切edge
- ⚠️ `out/final.mp4` 的 5-D 段已过期,需重渲后重跑 QA

经验沉淀入 ISSUE-182(判据要落在成片像素上而非某个中间量;评审面不可手抄被评审
的逻辑;3D 画布余量必须按投影算而非按几何尺寸算)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
@ThreeFish-AI ThreeFish-AI changed the title Feature/1.x.x feat(1.x.x): 核销 104 条 Dependabot 告警 + EP1《执行层》3D 表意强化与官方口径勘误(2 提交聚合) Sep 6, 2026
@ThreeFish-AI
ThreeFish-AI merged commit 6c61610 into master Sep 6, 2026
32 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant