Files
jiahao f91b3f2601 docs(v4.16336.0): mine file drag-and-drop UI, state machines and attachment motion
Deep-dive into the side-browser volume's 5th part, driven by a user screenshot showing
a blue 2px ring + blue pill over the chat pane while the Preview pane stays untouched.

New sections 5.8 - 5.11 (evidence index renumbered to 5.12):
- 5.8 Three coexisting drop overlays in 4.16336.0: global screen-level DropZoneProvider
  (shared-9 xh), dframe badge/label (c4c113f6f + shared-styles - the screenshot), and
  ring/dashed/three-icon area overlay (cc63499d2 / cc17a11d9). Full computed-style spec
  for badge + label, pixel verification (2 CSS px ring, 143x30 CSS px pill, RGB 31/101/216
  vs computed #2a78d6), data-hint / RTL / reduced-motion variants, and the fact that the
  same badge class is reused by split-pane session dragging (shared-23).
- 5.9 Two independent drag state machines: four-state DropZoneProvider with mixed
  capture/bubble listeners, 500ms DROPPED hold and enableScreenDrop; and useDragZone's
  Set<Element> enter/leave counter with dragend/drop/pointerdown capture cleanup.
  Documents the fileHint branch, __gb__4088364908 hint key (semantics marked inferred)
  and why only the chat/composer column gets the blue ring.
- 5.10 Post-drop pipeline: dataTransfer.items -> getAsFile / webkitGetAsEntry folder split,
  FileSystemHandle wait, limit constants, 13-item i18n error matrix and the 967 B
  pending upload queue (push/take/restore/drain/staging probes).
- 5.11 Attachment entrance/exit: startViewTransition({types:['cds-attachments']})
  capability gates and fallbacks, @starting-style, match-element + view-transition-group
  contain, cds-attachment-out, and cds-chip-in stagger (50/80/110/140ms measured via
  sibling-index()). Full motion table for all drop keyframes.

Evidence: shipped-artifact byte offsets, controlled-replay (client CSS injected into
headless Chrome 157, computed styles + animation timings + pixel comparison), and the
user screenshot. 9229 inspector was not reachable this round and SIGUSR1 did not re-arm
it, so no live app state was touched; REA static graph recording hit the session
retention cap, so byte offsets are used in place of a new Evidence ID.

Volume README index, docs/README.md focus line and the merged .full.md regenerated.
No code/token changes: client-only --cds-* / --df-* variables are kept in var(...) form
so check:tokens stays clean.

Gates: typecheck / check:tokens / build all 0; all entry-point links verified.
2026-11-06 11:27:32 +08:00

9.8 KiB
Raw Permalink Blame History

Claude Desktop 4.16336.0 · 侧边浏览器全量技术文档库

版本:@ant/desktop 4.16336.0(macOS /Applications/Claude.app,Electron 44.9.3 / Chromium 152.0.7977.167 / Node 24.22.0) 逆向框架:全流程依托 REA (Reverse Engineer Anything) 完成 ASAR 解包、AST 静态分析、受控浏览器重放与运行时目标登记;辅以 9229 主进程 Node inspector 的只读活体观测。 载体指纹:app.asar SHA-256 cdfee9476e3d17df5…;ion-dist.asar 6adff0069a86b0d10… 版本沿革:v1.x → 2.37337.1(docs/v2/)→ 3.6556.2 → 4.29.0 → 4.4212.0(docs/v4.29.0-4.4212.0/,ASAR ce90267c…)→ 4.16336.0(本卷,当前本机实际安装版本)。4.4212.0 是上一卷文档的增量复核终点,不是当前版本;本卷按 Info.plist / app.asar/package.json / 运行进程参数 / 活体 app.getVersion() === "4.16336.0" 命名。 定位:按功能点分篇,供前端工程师像素级复刻 Claude 侧边浏览器(Browser / Preview pane)的架构、样式、交互物理、组件名反射与上下文注入链路。


🧭 分卷大纲与导航索引

🏛️ 第一篇:总体架构与设计令牌体系

🧭 第二篇:导航、地址栏与标签页

🚀 第三篇:预览面板与开发服务器

🔐 第四篇:站点权限、安全与浏览数据

🎯 第五篇:元素选择、组件名与上下文注入

🖊️ 第六篇:标注、截图与自动化光标

⚡ 第七篇:动效物理学与逐帧验证

🛠️ 第八篇:系统级架构、运行时与工程复刻


📖 合并阅读版

🔗 参考实现


与旧版文档的关系:本卷不改写 docs/v1 / docs/v2 / docs/v4.29.0-4.4212.0 的历史结论;4.16336.0 的 bundle 文件名、chunk 名与调色板均已变化,跨版本比较必须重新取证。 本卷按功能点分篇,不复述取证时间线;所有结论标注 shipped-artifact / controlled-replay / live-readonly 证据类型,并附 Evidence ID 或字节偏移。