Repository navigation
Conversation
Skill-based installer/troubleshooter for the open-source VoiceTranser tool. Source: https://github.com/Lumos-789/VoiceTranser
|
✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically. |
…ent checkout Stop copying the author's hardcoded plist. install_launchd.py builds the plist from the user's own checkout path; diagnose aligns with the active engine and service label; three-engine docs refreshed.
|
✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically. |
1.0.1 — verification (2026-11-04)Environment: ZCode CLI 0.17.1, macOS 27.0.1 arm64, Python 3.14.4 (app venv: 3.12.13). Payload checks for Main repo ( Not covered, and worth saying plainly: the actual product behaviour — global hotkey registration, macOS Accessibility/Microphone grants, and transcription on a clean machine — is a manual GUI checklist, not something this environment can assert. The bundled skill is install-and-troubleshoot guidance; it cannot prove the app runs. |
…e mic The diagnostic probes the microphone through a non-prompting authorization check and a 3s child-process timeout, so it always returns a verdict; the port has one source of truth (9877) and diagnose resolves it from the installed launchd plist, warning when it disagrees with the default.
Third round — review & simplification (2026-11-05)No new features. The two substantive items: 1. The skill text existed twice and the copies had drifted. The ZCode payload carried its own 2. The repo now passes the public-release gate on the current tree — it had 6 findings, all from files that should not have been there:
Verification: 52 tests pass (re-run), Not verified this round: the hotkey / accessibility flow and a fresh-user machine — the same gap as before. Nothing in this round touched the audio path. Note on history: the |
Real-machine check of the 1.0.2 diagnose fix (2026-11-05)The diagnostic used to be the riskiest part of this plugin — it opened an input stream regardless of microphone permission, so on a machine that had never granted it the check blocked on a macOS permission dialog. Verified live on macOS 27.0.1 / arm64:
Still not verified: the physical hotkey (press-and-hold via Karabiner) and a fresh-user machine — both need a human at the keyboard. |
|
✅ Internal validation passed. A ZCode maintainer will review the change next; after acceptance, release checks run separately and this PR is closed automatically. |
The marketplace entry named a relative icon path while every icon-bearing entry in the catalogue uses the absolute CDN URL of assets/<name>/icon.png; the file is now uploaded with the branch so the entry cannot dangle.
|
Re-pushed this branch as 1. The PR now follows 2. The entry now uses the same absolute CDN form as every other icon-bearing entry in Re-verified against the branch itself (not a local checkout):
Request: the earlier 中文摘要:本轮只补元数据与载荷完整性 —— 恢复了模板要求的插件类型声明与自查清单、标题加上 |
The marketplace entry named a relative icon path while every icon-bearing entry in the catalogue uses the absolute CDN URL of assets/<name>/icon.png; the file is now uploaded with the branch so the entry cannot dangle.
|
Update: payload bumped to 1.0.3 (head |
Plugin type (required) / 插件类型(必填)
Affected plugin name(s) / 涉及的插件名称:
voicetranserWhat / 改动内容
EN — Adds
voicetranser, a skill that installs, configures and troubleshoots VoiceTranser, a fully local push-to-talk voice-input app for macOS: hold a global hotkey, speak, release — the transcription is pasted at the cursor. Local-first STT (Qwen3-ASR 0.6B 4bit on MLX/Metal by default, with SenseVoice / mlx-whisper fallbacks) and zero external APIs.external_plugins/voicetranser/holdsplugin.json,README.md/README_CN.mdandskills/voicetranser/SKILL.md.tests/diagnose.pyused to open an input stream regardless of microphone permission, which blocked on a macOS TCC dialog. It now reads the authorization status read-only first, only opens a stream when that says authorized, and kills the probe after 3 s in a child process;--skip-audiois the escape hatch, and a skipped check counts as not verified so it can never look green.中文 — 新增
voicetranser:安装、配置并排障 VoiceTranser 的 skill —— 一个完全本地的 macOS 按住说话输入工具(按住全局热键说话,松开即转写并粘贴到光标处),纯本地 STT(Qwen3-ASR MLX,SenseVoice / mlx-whisper 兜底),零外部 API。载荷只有 skill + 中英 README,应用本体从自己的仓库安装;1.0.2 修掉了诊断脚本会弹授权框并卡住的问题。Visible behavior and testing / 可见行为与测试
python3 -m unittest discover -s tests→ 52 passed in the project venv (macOS 27.0.1 arm64, Python 3.12). On a bare Python 3.14 without the audio dependency installed, the recorder-stream test errors atimport sounddevice— that is the environment, not the suite.python3 scripts/validate.py→OK: 53 plugin(s) validated; the plugin payload is stdlib text only (4 files, 13 KiB).No speech detectedinstead of a bogus transcript.Not covered by this round / 本轮未覆盖:
Version and marketplace registration / 版本与市场注册
external_plugins/voicetranser/(4 files, 13 KiB),.zcode-plugin/plugin.jsonand themarketplace.jsonentry both at 1.0.2.productivity; the icon lives at the repo-root path the entry uses (assets/voicetranser/icon.png, 512×512).description_i18ncarriesenandzh-CN, identical in both files;README.md/README_CN.mdboth present.Dependencies, network, permissions, side effects / 依赖、网络、权限与副作用
Licensing / provenance / 许可与来源
LICENSEin the product repository); the skill text is written for this submission.Self-check / 自查清单
external_plugins/voicetranser/; existing fixes retain ownership / 插件名唯一且 kebab-case,外部新增插件位于external_plugins/voicetranser/,已有插件修复保留原归属categoryis set independently of publisher ownership / 用途分类category已填写,与维护归属分开:productivityversionbumped in BOTHplugin.jsonandmarketplace.json(artifacts are immutable) /plugin.json与marketplace.json两处版本号已同步升级:1.0.2README.md(EN) andREADME_CN.md(中文) both updated and equivalent / 中英文 README 均已更新且语义一致description_i18nhas bothenandzh-CN/description_i18n包含en与zh-CNpython3 scripts/validate.pypasses on this branch, and the plugin artifact was built through the samebuild_zip()code path CI uses (size and sha256 in the comment below). The fullpython3 scripts/build_dist.pyneeds the repo's UI-pluginpnpm buildand fails identically on upstreammain(excalidraw: incomplete build), so CI runs it here — see the note above. / 本地validate.py通过,本插件产物用 CI 同一条build_zip()路径打出(体积与 sha256 见下方评论);完整build_dist.py依赖仓库自带 UI 插件的pnpm build,在main上同样失败,交由 CI 执行