Skip to content

feat: one-click Scripto install in Settings - #46

Merged
TN019 merged 2 commits into
mainfrom
feat/scripto-one-click-install
Jul 25, 2026
Merged

feat: one-click Scripto install in Settings#46
TN019 merged 2 commits into
mainfrom
feat/scripto-one-click-install

Conversation

@TN019

@TN019 TN019 commented Jul 25, 2026

Copy link
Copy Markdown
Owner

背景

Scripto 此前必须手动 clone 并在设置里指定目录。此改动在 PR #45 的描述中已包含,但对应提交(120f37c)push 时 #45 已被合并,未进入 main,故单独提交本 PR。另:2026-07-25 排查发现,存储根迁移到 iCloud 后 config.json 中没有 scripto_dir,点击转录只会提示先设置目录——本改动的「一键安装」按钮正是这种情况的一键修复(检测到已有 checkout 时直接采用)。

改动

  • 新增 ShiftlyKit.ScriptoInstall:纯逻辑的目标目录解析——app 位于 Shiftly git 检出内(如从 dist/ 运行)时克隆到检出的同级目录(../scripto);否则克隆到 ~/Library/Application Support/Shiftly/scripto(不受 app 搬家影响,避免把 Python venv 放进可能被 iCloud 同步的存储根)。
  • AppModel.installScripto():目标处已有 checkout(含 pyproject.toml)则直接采用不重复克隆;否则 git cloneuv sync 预热环境 → 自动写入 scripto_dir。缺 uv / sync 失败时保留 checkout 并给出对应提示;克隆失败时清理本次创建的目录。
  • 设置 → 会议:Scripto 目录未设置时显示「一键安装」按钮(进行中转菊花并禁用)。
  • 抽出共享的 AppModel.runShell(登录 zsh,先排空 stderr 再等退出,stdout 丢弃,避免管道写满死锁),转录调用改用它。
  • UI 文案、zh-Hans 本地化、docs/SETUP.md 同步更新。

验证

  • scripts/test.sh 全部通过(114 用例,含新增 ScriptoInstall 目录解析/checkout 检测 3 项)。
  • scripts/build_app.sh 打包成功。
  • git clone https://github.com/TN019/scripto.git 到临时目录实测成功;登录 shell 可找到 uv。

未自动化验证项

  1. 设置 → 会议:Scripto 目录为空时点击「一键安装」;本机(存在 ~/dev/local/scripto)预期直接采用该目录并提示已保存,随后 Transcribe 可用。
  2. 全新环境(无现成 checkout)预期克隆到对应位置、跑完 uv sync 后提示「Scripto 已就绪。」且目录自动填入。

🤖 Generated with Claude Code

TN019 and others added 2 commits July 24, 2026 10:53
…Support), uv sync, auto-set folder

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…kout's dist build and relaunches

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@TN019
TN019 merged commit 2acad93 into main Jul 25, 2026
3 checks passed
@TN019
TN019 deleted the feat/scripto-one-click-install branch July 25, 2026 04:44
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.

1 participant