Tags: scriptscat/scriptcat
Tags
🐛 e2e 模块不再在顶层加载 @playwright/test,修打包 CI 随机失败 v1.5.0-beta.2 的 Auto_Package 挂在 `pnpm test`:tests/verification-tools.test.ts 收集失败,报 "Requiring @playwright/test second time",4190 个断言一个没挂, release-action 被跳过、tag 没发出产物。 根因:@playwright/test 的单例守卫(playwright/lib/index.js:61)挂在 process 上, 而 e2e/fixtures.ts、e2e/session.mjs、e2e/drive.mjs 都在模块顶层加载它。tests/ 下 两个单测分别引用了 fixtures.ts 和 session.mjs,于是 vitest 进程里存在两条独立的 加载路径 —— 一旦它们被调度到同一个 worker 线程(fast 项目是 vmThreads + isolate:false),第二次求值就抛错。 之所以一直没被发现:PR/push 走 test.yaml 的 `--shard=i/2`,这两个文件恰好被切进 不同分片、天然隔离;tag 构建的 `pnpm test` 不分片,是它们首次同进程。本地机器核多 (8 核 → 6 worker),插桩打 threadId 观测到二者始终落在不同线程,所以本地全量也是绿的。 改动: - 抽出 e2e/launch-args.ts 承载 headlessArgs(纯逻辑、零驱动依赖),fixtures.ts / server-fixtures.ts / agent-fixtures.ts / gm-api.spec.ts 与单测改引此处; fixtures.ts 的 base.extend 在模块作用域求值,无法延迟,只能抽离 - session.mjs / drive.mjs 各自只有一个调用点,require 挪到调用处;drive.mjs 的 console 命令因此也不再加载驱动 - 新增子进程探针测试守住 .mjs 侧,新增 tests/** 的 no-restricted-imports 守住 .ts 侧 (该块置于 vitest.setup.ts 专属块之前,否则会顶掉后者更具体的重型模块禁令) 验证:新测试改前红改后绿(stash 回退两个 .mjs 复验);全量套件 ×3 全绿 340/340; shuffle 压测 ×10 零复现(改前 1/5~1/8 必中);session start → drive open → console → stop 全流程实跑通过;options / gm-xhr / agent-chat / gm-api 各抽 spec 实跑通过; pnpm lint 全过。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
✨ 打包变量屏蔽正式版 agent 入口并移除 debugger 权限(bump 1.4.0) (#1518) * ✨ 新增打包变量 SC_ENABLE_AGENT:正式版屏蔽 agent 入口并移除 debugger 权限 - scripts/build-config.js:isAgentEnabled(dev/beta 启用) + applyAgentManifest(正式版剥离 debugger) - rspack.config.ts / pack.js:注入 process.env.SC_ENABLE_AGENT,按版本处理 manifest 权限 - const.ts 暴露 EnableAgent,门控侧边栏 agent 菜单与 /agent/* 路由 - MainLayout/install 安装页屏蔽 Skill ZIP、SkillScript、.cat.md 等安装入口 - service_worker/script.ts 屏蔽 .skill.js/.cat.md 的 DNR/webNavigation 拦截与识别 - agent 运行时(CAT_*/AgentService)保持不变;vitest 默认 SC_ENABLE_AGENT=true * chore: bump version to 1.4.0 * ✅ e2e 强制开启 agent:新增 SC_ENABLE_AGENT env 覆盖 - build-config 新增 resolveAgentEnabled:env 覆盖优先,否则按版本派生 - rspack.config.ts / pack.js 改用 resolveAgentEnabled - test.yaml e2e 构建设 SC_ENABLE_AGENT=true,使正式版下 agent 用例仍可运行 - 正式版默认仍屏蔽 agent(无 env 时不变)
PreviousNext