Bookworm Portable Setup �����ֿ� (history-cleansed 2026-04-21)
Go to file
bookworm 1421338da3 feat(v3.0.11): 架构重构 — 启动链路 7 跳 → 1 跳直链
用户报障驱动 (v3.0.3-3.0.10 共 9 轮迭代后接受架构原罪).

旧架构: .lnk → bat → wt → pwsh → Base64 → DPAPI → claude (7 跳)
新架构: .lnk → pwsh → claude.ps1 (1 跳, 凭证由 profile 异步加载)

ADR-001 桌面 .lnk 直调 pwsh + claude.ps1 绝对路径
  - 安装时 Get-Command claude / npm config get prefix 定位 claude.ps1
  - bake 进 .lnk Args, 运行时不依赖任何 PATH 重载
  - 自验证: 创建后回读 .lnk 确认 Target/Args 完整, 失败立即删除拒绝交付

ADR-002 DPAPI 凭证加载迁移到 PowerShell profile sentinel
  - BW_CRED_START..END 块写入 ~/Documents/PowerShell/profile.ps1
  - pwsh 启动自动 source, 与启动链路彻底解耦
  - profile 编辑用 String.Replace 字面替换 (避开 -replace $ backreference)

ADR-003 启动 / 更新功能拆分
  - 启动Bookworm.lnk → 仅启动 (1 跳)
  - 更新Bookworm.lnk → 仅 git pull
  - 更新并启动Bookworm.bat → 重命名为 更新Bookworm.bat (仅同步)
  - tools/gen-launcher-bats.ps1 归档 (新架构不需要 Base64 生成器)

8 个失败模式中 7 个被架构性消除:
   F1 wt ; 切 tab (无 wt)
   F2 cmd 转义 (无 cmd 启动路径)
   F3 wt -d 引号 (无 wt -d)
   F4 Base64 解码语义错 (无 Base64)
   F5 PATH 时序 (绝对路径不依赖 PATH)
   F6 claude shim (直调 .ps1)
   F8 wt 自身 issue (无 wt)
  ⚠️ F7 DPAPI 跨用户 (设计限制, 跨用户需重激活)

EXE 220672 → 227840 bytes (+7168, ADR-002 profile 注入函数)
2026-04-25 18:19:07 +08:00
assets fix: DPAPI凭证加密 + pwsh7路径凭证注入 + PS5.1双调用优化 + assets追踪 2026-04-06 21:49:50 +08:00
patches feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
tools feat(v3.0.11): 架构重构 — 启动链路 7 跳 → 1 跳直链 2026-04-25 18:19:07 +08:00
拓展 feat: 纳入拓展工具 + guide.html badges 对齐 2026-04-06 00:26:45 +08:00
.gitignore chore: 清理过期文件 (-2731 行) + AuthGen 历史记录功能 2026-04-10 03:20:39 +08:00
admin-authcode-gui.ps1 chore: 清理过期文件 (-2731 行) + AuthGen 历史记录功能 2026-04-10 03:20:39 +08:00
admin-authcode.ico feat(admin): GUI 授权码生成器 Bookworm-AuthGen.exe 2026-04-10 01:59:27 +08:00
auto-setup.ps1 feat(v3.0.11): 架构重构 — 启动链路 7 跳 → 1 跳直链 2026-04-25 18:19:07 +08:00
bookworm-desktop.ico style: 桌面图标更换为翡翠量子螺旋 (quantum emerald) 2026-04-10 13:51:39 +08:00
Bookworm-OneClick-Mac.sh fix: v2.3.1 Phase 4 统一调用 change-key.js 2026-04-17 02:25:40 +08:00
Bookworm-OneClick.bat fix: 去掉 Start-Process, bat 负责窗口/ps1 负责执行 2026-04-06 20:34:00 +08:00
Bookworm-Setup.sh Setup.sh v3.0.3: onboarding pre-fill + header bump 2026-04-21 19:05:01 +08:00
bookworm.ico feat: EXE 图标支持 (bookworm.ico 16/32/48/256px + rcedit 注入) 2026-04-07 01:08:41 +08:00
build.ps1 feat: 版本号 v1.6.0, 标题栏/弹窗/EXE 属性统一显示, build.ps1 自动读取 2026-04-10 11:11:13 +08:00
crypto-helper.js feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
deploy-gitea.sh feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
diagnose-tooluse.js fix: v2.0.0 - 修复 MCP 加载 + HOME 路径 JSON 转义 2026-04-10 18:01:40 +08:00
gen-authcode.js feat: 打包脚本 + pkg 路径兼容修复 2026-04-07 00:01:46 +08:00
generate-integrity.ps1 feat: Mac 支持 v1.5 同步 + 模板清理 + 卸载脚本 2026-04-06 13:48:05 +08:00
guide-unified.html fix: DPAPI凭证加密 + pwsh7路径凭证注入 + PS5.1双调用优化 + assets追踪 2026-04-06 21:49:50 +08:00
inject-mcp.js feat: v2.1.0 - 同步 22 MCP + 简化 Phase 5 注入逻辑 2026-04-10 21:24:50 +08:00
install-mac.sh feat: Mac 支持 v1.5 同步 + 模板清理 + 卸载脚本 2026-04-06 13:48:05 +08:00
install.ps1 feat(v3.0.11): 架构重构 — 启动链路 7 跳 → 1 跳直链 2026-04-25 18:19:07 +08:00
prepare-repo.ps1 feat: Mac 支持 v1.5 同步 + 模板清理 + 卸载脚本 2026-04-06 13:48:05 +08:00
quick-reference.txt feat: Keychain 免密 + 版本号同步 + bw-update 修复 2026-04-06 14:05:29 +08:00
quick-start.html fix: v2.2.2 - Python/pwsh 降为可选依赖 + quick-start 安装前准备 2026-04-10 23:24:15 +08:00
README.txt feat: Mac 支持 v1.5 同步 + 模板清理 + 卸载脚本 2026-04-06 13:48:05 +08:00
secure-firewall.sh feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
settings.local.template.json feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
setup-all.js feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
setup-https.sh feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
stop.ps1 feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
sync-version.js feat: OneClick Keychain 免密 + sync-version 补 guide.html 2026-04-06 14:18:13 +08:00
uninstall-mac.sh feat: Mac 支持 v1.5 同步 + 模板清理 + 卸载脚本 2026-04-06 13:48:05 +08:00
卸载Bookworm.bat feat: Bookworm Portable v1.5 — 8 fixes (P0 NDA + P1 banners + P2 perf) 2026-04-05 23:34:27 +08:00
启动Bookworm.bat feat(v3.0.11): 架构重构 — 启动链路 7 跳 → 1 跳直链 2026-04-25 18:19:07 +08:00
更新Bookworm.bat feat(v3.0.11): 架构重构 — 启动链路 7 跳 → 1 跳直链 2026-04-25 18:19:07 +08:00

Bookworm Portable v1.4 - 纯云端便携部署工具包
================================================

=== 文件说明 ===

  deploy-gitea.sh              ECS Gitea 部署 (服务端,执行一次)
  prepare-repo.ps1             仓库准备 (本机执行一次)
  encrypt-secrets.ps1          凭证加密 (本机执行一次)
  settings.local.template.json settings.local.json 模板 (权限白名单)
  (settings.template.json 已由 build-portable.js 管理,存于 config 仓库)
  install.ps1                  安装/启动 (目标机执行)
  stop.ps1                     清理/卸载 (目标机执行)

=== 一次性部署 ===

  步骤 1: 部署 Gitea (ECS)
  > scp deploy-gitea.sh root@8.138.11.105:/tmp/
  > ssh root@8.138.11.105 "GITEA_ADMIN_PASS='你的密码' bash /tmp/deploy-gitea.sh"
  > 登录 http://8.138.11.105:3000 创建两个私有仓库:
    - bookworm-config (系统文件)
    - bookworm-boot   (引导脚本+加密凭证)

  步骤 2: 推送 Bookworm 配置
  > .\prepare-repo.ps1 -GitUrl "http://8.138.11.105:3000/bookworm/bookworm-config.git"

  步骤 3: 加密凭证
  > .\encrypt-secrets.ps1
  > (输入中转站 API Key + MCP 凭证 + 设置主密码,至少 12 位)

  步骤 4: 推送 boot 仓库
  > 将 install.ps1, stop.ps1, secrets.enc 推送到 bookworm-boot 仓库

=== 目标机使用 ===

  安装: .\install.ps1
  清理: .\stop.ps1
  恢复: .\stop.ps1 -Restore
  深度: .\stop.ps1 -Deep

=== 目标机要求 ===

  [必须] Claude Code, Node.js >= 18, Git
  [可选] Python 3.x, openssl (Git for Windows 自带)

=== 安全规格 ===

  加密: AES-256-CBC + PBKDF2 (600000 迭代, OWASP 2023)
  凭证: 仅进程级环境变量,不写磁盘/注册表
  Gitea: INSTALL_LOCK=true, 注册关闭, 管理员 CLI 创建
  密码: openssl stdin 管道传入,不暴露在进程列表
  校验: Gitea 二进制 SHA256 完整性校验