Skip to content

✨ 打包变量屏蔽正式版 agent 入口并移除 debugger 权限(bump 1.4.0)#1518

Merged
CodFrm merged 3 commits into
mainfrom
worktree-agent-build-flag
Jun 26, 2026
Merged

✨ 打包变量屏蔽正式版 agent 入口并移除 debugger 权限(bump 1.4.0)#1518
CodFrm merged 3 commits into
mainfrom
worktree-agent-build-flag

Conversation

@CodFrm

@CodFrm CodFrm commented Jun 24, 2026

Copy link
Copy Markdown
Member

Checklist / 检查清单

  • Fixes mentioned issues / 修复已提及的问题
  • Code reviewed by human / 代码通过人工检查
  • Changes tested / 已完成测试

Description / 描述

新增打包变量 SC_ENABLE_AGENT,由版本号自动派生:开发版 / beta(版本含 -)启用 agent,正式版屏蔽。同时将版本号 bump 到 1.4.0(正式版)。

构建 / Build

  • scripts/build-config.jsisAgentEnabled({isDev,isBeta})(dev/beta 启用)+ applyAgentManifest()(正式版从 permissions 剥离 debugger,其余权限不变,不改 src/manifest.json 源文件)。附带 7 个 BDD 单测。
  • rspack.config.ts / scripts/pack.js:注入 process.env.SC_ENABLE_AGENT 定义;对 dist/ext 与 zip/crx 的 manifest 套用同一逻辑。

入口屏蔽(正式版)/ Gated entries (stable)

  • 侧边栏 agent 菜单 + /agent/* 路由(Sider.tsx
  • 安装入口:拖拽 Skill ZIP、拖拽 SkillScript(MainLayout.tsx);安装页 ?skill=.cat.md URL、本地 / URL SkillScript(install/hooks.tsxinstall/utils.ts
  • SW 拦截:.skill.js / .cat.md 的 DNR 重定向、webNavigation 过滤、openInstallPageByUrl 的 skill 识别(service_worker/script.ts

保持不变 / Unchanged:agent 运行时(CAT_* GM API、SW AgentService)仍注册;仅正式版构建移除 debugger 权限。

验证 / Verification

  • 正式版构建:manifest 无 debugger、SW bundle 中 .skill.js/.cat.md 拦截规则被 swc 完全消除;const.ts 编译出 EnableAgent=!1
  • beta 构建:manifest 含 debugger、拦截规则齐全;EnableAgent=!0
  • tsc 0 错、eslint 0 错、单测 1994 passed

Screenshots / 截图

N/A(构建 / 入口门控改动,无 UI 视觉变化)

CodFrm added 3 commits June 24, 2026 15:25
- 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
- build-config 新增 resolveAgentEnabled:env 覆盖优先,否则按版本派生
- rspack.config.ts / pack.js 改用 resolveAgentEnabled
- test.yaml e2e 构建设 SC_ENABLE_AGENT=true,使正式版下 agent 用例仍可运行
- 正式版默认仍屏蔽 agent(无 env 时不变)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

该 PR 通过引入构建期开关 SC_ENABLE_AGENT(由版本号 dev/beta 自动派生,并支持环境变量覆盖),在正式版中屏蔽 agent 相关入口/安装路径,并在构建产物层面移除仅 agent 使用的 debugger 权限,同时将版本号 bump 至 1.4.0,以契合 ScriptCat 的多进程扩展架构下对不同发布渠道的能力分层。

Changes:

  • 新增 EnableAgent 常量并在 UI/安装页/SW 安装拦截链路中进行门控,正式版不再暴露 /agent/* 与 Skill 安装入口。
  • 构建与打包链路统一应用 applyAgentManifest():当 agent 禁用时从 manifest 的 permissions 中剥离 debugger,并注入 process.env.SC_ENABLE_AGENT 以便 SWC/构建器做常量折叠。
  • 新增 scripts/build-config.* 及其 Vitest BDD 单测,并在 CI e2e 构建阶段通过 SC_ENABLE_AGENT=true 强制开启覆盖用例。

Reviewed changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
vitest.config.ts 为单测环境注入 SC_ENABLE_AGENT=true,避免门控影响现有测试运行路径。
src/pages/install/utils.ts 拉取脚本内容时仅在启用 agent 时识别 SkillScript 元数据。
src/pages/install/hooks.tsx 安装页对 ?skill=.cat.md URL 等 Skill 安装入口增加 EnableAgent 门控。
src/pages/components/layout/Sider.tsx 侧边栏与路由层面对 /agent/* 入口增加门控(正式版隐藏)。
src/pages/components/layout/MainLayout.tsx 拖拽 ZIP/SkillScript 的安装入口在 UI 层增加门控。
src/manifest.json 将源 manifest 版本号更新为 1.4.0
src/app/service/service_worker/script.ts SW 的 webNavigation 过滤与 DNR 规则对 .skill.js/.cat.md 增加门控,正式版不拦截 Skill 安装入口。
src/app/const.ts 新增 EnableAgent:由 process.env.SC_ENABLE_AGENT 注入并作为全局门控常量使用。
scripts/pack.js pack 阶段与构建逻辑对齐:解析 agent 开关并对打包用 manifest 应用权限剥离。
scripts/build-config.test.js 新增构建开关与 manifest 变换逻辑的 BDD 单测覆盖。
scripts/build-config.js 新增构建配置工具:派生/覆盖 agent 开关与 manifest 变换。
rspack.config.ts 注入 process.env.SC_ENABLE_AGENT 并在复制 manifest 时应用 applyAgentManifest()
package.json 版本号 bump 至 1.4.0(正式版)。
.github/workflows/test.yaml e2e 构建阶段强制 SC_ENABLE_AGENT=true,确保覆盖 agent 用例。

Comment on lines 283 to 285
<Route path="/tools" element={<Tools />} />
<Route path="/agent/*" element={<Agent />} />
{EnableAgent && <Route path="/agent/*" element={<Agent />} />}
<Route path="/setting" element={<Setting />} />
@CodFrm CodFrm merged commit fd222ac into main Jun 26, 2026
5 checks passed
@CodFrm CodFrm deleted the worktree-agent-build-flag branch June 26, 2026 02:50
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.

2 participants