## Parent - jinjunnn/alpha-work#7 (REQ-105) ## 为什么现在才建 `aw#7` 的 Evidence map 把 AC4 的证据面标为「待创建 `[REQ-105][VERIFY]` packaged offline real create/read xlsx run」。两条检索轴(REQ-105 全部 8 张票逐号枚举 + 标题检索)查过:**这张票从来没有被创建。** ⇒ REQ-105 的 AC4 至今**零证据承载体**,而它正是这个需求「到底能不能用」的核心断言。 出处:owner 裁决 2026-08-25(决策 B,选 B1)。 ## 负责哪条 AC `aw#7` **AC4**: > Excel 经真实产品入口以 local stdio 在 workspace 创建一个 xlsx,并由独立读取路径重新打开验证关键单元格/结构;过程不需要外网。 ## 矩阵(只覆盖 AC4,三格) | 格 | 断言 | | --- | --- | | C1 创建 | packaged 构建里,经**真实产品入口**(不是单测桩,也不是直接调 MCP 二进制)让 Excel MCP 在 workspace 内创建一个 xlsx | | C2 复读 | 由**独立读取路径**重新打开该文件,断言关键单元格值与结构(至少:一个具名 sheet、一个写入的单元格值、一处结构特征) | | C3 离线 | 全程 `--network none` 或等价隔离;若产品路径在离线下降级,如实记录降级形态,不当成通过 | ⚠️ **断言粒度**:C2 不得只断「文件存在」或「打开没报错」—— 那两条被一个写空文件的错误实现满足。要断具体单元格值,且**期望值是独立字面量,不从被测路径自己读回来**(比较基准与被测对象同源 = 自指等价链)。 ## 边界 packaged 构建上的一次真实 create/read 往返,证据落 `docs/verification/`。 ## Out of scope - catalog / seed / bundle 的 digest 一致性(`ac#319` 负责 AC2/AC5); - 自定义安装表单的 workspace 根输入(`ac#337`); - sandbox / transport 反例夹具与 workspace 边界/traversal(那是 `aw#7` **AC3**,证据已由 `ac#254` 承载并已关闭 —— 本票**不重复它**)。 ## 退出条件 三格执行完 + 证据落 `docs/verification/` + 在 `aw#7` 评论里对 AC4 打勾。FAIL 转 bug 票挂 `aw#7`,**不在本票里修**。 ## 验证层级 L3(packaged smoke 面)。
Activity
jinjunnn commentedon Aug 25, 2026
三格执行完,证据 PR:#1118 ·
证据目录
docs/verification/2026-08-25-req105-1108-packaged-offline-xlsx/两条建议(只是建议,未改本票矩阵,也未加任何准入条件)
建议 1 —— 单开一张窄票:勘破 Alpha Office 四连接器的依赖获取路径。
C3 这一轮确实零下载(该轮隔离 uv 缓存结束时只剩 20 KB、零 wheel),但我没能在应用之外复现这份成功:
把同一条生产命令(
uv run --no-project --with openpyxl==3.1.5 <packaged server.py> excel <ws>)按 sidecar 环境白名单忠实重建后,六组变体全部卡在
https://pypi.org/simple/openpyxl/(严格 deny-net / 热缓存 / 冷缓存 / 指定 Homebrew python / PATH venv 优先 / 只留白名单变量),
只有带
VIRTUAL_ENV(本机一个已装 openpyxl 3.1.5 的无关 venv)那组通过;而
sidecar-env.ts是 default-deny 且不放行VIRTUAL_ENV。⇒ 不能据此断言"一台没有 uv/pip 历史的干净机器,离线也能完成首次 Excel 创建"。
值得独立勘破:首次运行是否必须联网?要不要把钉版 wheel 随包/随 seed 落成离线 store?
建议 2 ——
alphacodeone.com在本机恒不可达,阻断了签名 catalog 安装入口的在线复核。curl https://alphacodeone.com/catalog/v1/channels/trust.json连测 8 次全部SSL_ERROR_SYSCALL/http=000(DNS 给出 Clash fake-IP
198.18.0.131)。离线态ext-install-catalog按设计 fail-closed 返回entry not in verified catalog: mcp:alpha-excel(正确行为),但在线态也跑不通,所以"从签名 catalog 装 →
mcpActivation.status === "connected""这条产品行为本轮测不到,原因是环境不是产品。本轮改走同一个 main 侧咽喉的另一条产品入口(
ext-persist-mcp→persistMcpWithPolicy→applyMcpWritePolicy),{alphaResources}解析与{workspace}契约是同一份代码。关于父票 AC4 打勾
没有自行打勾。 C1/C2 我认为是真绿;C3 有上面那条限定,"过程不需要外网"在干净机器上尚未成立。
是否据此勾 AC4,是 acceptance owner(@jinjunnn)的裁决,不是我的。
README 的《未验证项》一节把七条没测到的东西逐条写清了(含离线臂给 Electron 加了
--no-sandbox --disable-gpu、模型是本机 loopback 桩、/global/dispose在本 harness 下会让renderer 重挂因而改用
providers.add驱动 respawn)。docs(verification): #1144 打包 shell 工具整链由 agent 回合驱动实跑 + Developer ID/…