Repository navigation
Releases: HaoHaoP/taskproof
Release list
taskproof v0.4.0
Version / 版本: v0.4.0
What's new / 更新内容
English
- A lane can declare the branch it belongs on.
branch = "main"on a
[[taskgroup]]turns the branch into a gate: a lane that runs in place is
refused before anything is written — exit78, no task row, no concurrency
slot — unless its tree is checked out on that branch, and aworktreelane is
created from it, detached, because a branch can be checked out by only one
worktree and the main tree usually holds it. A lane that declares nothing
behaves exactly as it did before. - A declaration nothing reads now says so. The registry loader collects the
keys a block has no reader for, andtaskproof projects/taskgroupswarn
about them on stderr; no exit code changes. A lane-leveltimeoutused to be
dropped in silence — 22 declarations' worth. - A timed-out card can be signed off.
accepttakestimeouttoo, with the
same mandatory--note. It is a registration, never a promotion: the card
staystimeout,verify_*andfinished_atare untouched, and the ledger
gains oneacceptedevent whosefromandtoare bothtimeout. - The ledger records who ran a verification. Every
verifyevent now carries
by—runfor the pipeline's own check as a card winds down,clifor a
human re-check withtaskproof verify <id>. - The figures are a function of the generator, not of the interpreter. The
diagram generator's numeric spelling depended on the Python that ran it
(3.12's compensatedsum()moved the last digit), so "regenerate and compare"
could never be a gate. Every SVG attribute now goes through one formatting
helper, and CI regenerates both language sets and fails on drift.
中文
- 道可以声明自己属于哪条分支。
[[taskgroup]]上写branch = "main"就把它变成一道闸门:就地跑的
道,树没检出在那条分支上就在动手前被拒(退出码 78,不写任务行、不占并发槽位);workspace = "worktree"的道按它建工作区,且是分离头 —— 一条分支只能被一棵工作树检出,而主树通常正持着它。
没声明的道行为与从前一字不差。 - 没人读的声明现在会自己说出来。 注册表加载时会收集每个块里没有读者认领的键,
taskproof projects
/taskgroups在 stderr 逐条告警,退出码不变。道级timeout当年就是这样被无声丢掉的 —— 22 处。 - 超时的卡也能人工签收。
accept现在也收timeout,同样必须带--note。签收是登记不是改判:
状态仍是timeout,verify_*与finished_at一字不动,账本只多一条accepted事件,其from
与to都是timeout。 - 账本会写清验收是谁跑的。 每条
verify事件现在带by:run是流水线在卡收尾时自己跑的,
cli是人用taskproof verify <id>复核跑的。 - 配图是生成器的函数,不是解释器的函数。 生成器的数值写法随解释器变(Python 3.12 的补偿求和会动
最后一位),于是"重跑生成器再比对"根本当不成判据。现在每个 SVG 属性都过一个统一的数值格式助手,
CI 会重生成两套并在漂移时失败。
taskproof v0.3.0
Version / 版本: v0.3.0
What's new / 更新内容
English
- The browser board is the desktop renderer.
taskproof boardno longer
serves a hand-written page: it serves the same Vue renderer the Electron
console loads, over the same loopback REST API, and that build is committed and
shipped inside the wheel. CI rebuilds it and fails on drift, so the two hosts
cannot diverge. .gzsiblings are reproducible across platforms. The compressed assets
were produced by Node's bundled zlib, whose output (the gzip header's OS byte,
and the deflate stream across major versions) depends on the machine that built
it — so a Linux runner rebuilding them always saw a difference and the
committed-artifact check could never pass. They now come from an exact-pinned
pure-JS compressor, so the same source gives the same bytes everywhere. The
payload grows by about 2%.- A lane can set its own timeout. Writing
timeout = 2700on a
[[taskgroup]]used to be dropped without a word: the loader did not reject the
key, so nothing said so. The effective timeout is now a chain —--timeout N>
the lane'stimeout>[defaults] timeout> the built-in 1800 — and it is
always reported together with where it came from, on thestartedevent and in
taskproof taskgroups. - A card that goes quiet stops early. A no-progress watchdog (
idle_timeout
per lane, or--idle-timeout N) stops a run when both its log and its working
tree have been silent for that long, instead of burning the whole wall clock.
It ships off by default, and thetimeoutevent says which budget fired
(reason: idleorwall-clock). One card produced log output for thirty
minutes without changing a single file; that is the case this closes. - Docs: an architecture chapter, in both languages.
ARCHITECTURE.mdand
ARCHITECTURE.zh-CN.mdnow describe what the system actually does, with
diagrams generated fromtools/make_figures.py; the language switch sits at the
top of every doc pair; andDESIGN.md's status line states what has shipped. - Dispatch tooling.
tools/check-card.pymechanises the card checks,
taskproof waitblocks for a verdict whiletasksshows it at a glance, and a
run's change surface is recorded rather than just counted.
中文
- 浏览器看板就是桌面渲染层。
taskproof board不再服务手写页面:它服务 Electron 控制台加载的
同一份 Vue 渲染层,走同一个 loopback 只读 API,产物进仓并随 wheel 发布。CI 会重建并在漂移时失败,
两个宿主因此不会分叉。 .gz兄弟文件跨平台可复现。 压缩产物此前由 Node 内置的 zlib 生成,而它的输出(gzip 头的
OS 字节、跨大版本的 deflate 流)取决于构建它的机器 —— 于是 Linux runner 重建总能看到差异,
"提交的产物必须等于重建结果"这条判据永远不可能通过。现在改由精确锁版本的纯 JS 压缩器生成,
同一份源码在任何平台压出同样的字节。代价是体积大约 +2%。- 道可以自带超时。 在
[[taskgroup]]上写timeout = 2700以前会被无声丢弃:加载器不认这个键,
也不报错。现在有效值是三段链 ——--timeout N> 道上的timeout>[defaults] timeout>
内置 1800 —— 并且永远与来源一起显示(started事件与taskproof taskgroups)。 - 卡静默就提前止损。 新的无进展看门狗(道字段
idle_timeout,或--idle-timeout N)在日志与
工作树都静默超过该预算时停手,而不是把墙钟烧完。它默认关闭;timeout事件会说明是哪个预算先到
(reason: idle或wall-clock)。曾有一张卡连续三十分钟一直在输出日志、却没改动任何文件 ——
这就是它要闭掉的场景。 - 文档:多了一章架构,中英成对。
ARCHITECTURE.md与ARCHITECTURE.zh-CN.md讲的是系统实际
怎么做(配图由tools/make_figures.py生成、可复现);六份文档的语言切换都移到了标题下;
DESIGN.md的状态行改成已发布的事实。 - 派活工具。
tools/check-card.py把卡的几条检查机械化了;taskproof wait等裁决、tasks
一眼看裁决;一次运行的改动面被记下来,而不只是一个计数。
taskproof v0.2.1
Version / 版本: v0.2.1
What's new / 更新内容
English
One fix and one piece of plumbing, both in the desktop console.
- A dead drawer comes back. Clicking a card could route to the
task, load its detail, and still show no drawer. The cause is a
patch that threw once while mounting the drawer's subtree:
mountElementbuilds the element before inserting it, so the
component stayed alive with nothing in the document -- and Vue,
believing it was mounted, never mounted it again. The drawer now
probes for its own element while open and remounts itself (up to
three times) when it is missing. - Renderer failures are recorded. The renderer has no write
channel of its own and this build only prints a failed patch to
console.error, so a failure left no trace anywhere. The main
process now appends renderer console errors -- with the file and
line they came from -- plus renderer crashes and unresponsive
events torenderer-errors.logbeside the app's settings
(~/Library/Application Support/taskproof-desktop/on macOS). - The dispatch manual learns the review discipline. Closure on
machine evidence only, material attached by absolute path, one
rework per closure, and a card template to copy.
中文
一个修复 + 一处管线,都在桌面控制台里。
- 抽屉卡死会自己回来。 点卡可能路由到了、详情也取了,就是不弹抽屉。根因是一次
挂载中抛了异常:Vue 的mountElement先建元素、挂完子节点才把元素插进文档,
异常落在中间 —— 于是组件还活着、文档里却没有它,而 Vue 以为已挂载,再也不会挂
第二次。现在抽屉打开时会自检自己的元素在不在文档里,不在就重挂(最多三次)。 - 渲染层异常会落盘。 渲染层自己没有写通道,这一版又只把失败的 patch 打进
console.error,所以出了事哪都查不到。现在主进程会把渲染层 error 级的
console(带出来源文件与行号)、渲染进程崩溃、无响应这几类记到
renderer-errors.log(与设置同目录:macOS 在
~/Library/Application Support/taskproof-desktop/)。 - 派活手册补上复核纪律。 只认机器跑出的收尾证据、素材按绝对路径附上、一次闭环
一次返工,另附可直接复制的卡模板。
English
taskproof is a conveyor belt for AI coding agents: it dispatches
work, independently verifies it, and records the result.
Download
- macOS — Apple silicon (arm64) only, macOS 11+. No Intel and no
Rosetta build. Grab the*.dmg. - Windows 10+ (x64). Grab the
*.exeinstaller. - Linux (x64). Grab the
*.AppImage(portable) or the*.deb
(Debian/Ubuntu).
These builds are unsigned
There is no signing or notarisation certificate yet, so your OS will
warn you the first time:
- macOS: Gatekeeper blocks the app. Right-click it → Open,
then confirm — or run
xattr -d com.apple.quarantine /Applications/Taskproof.app. - Windows: SmartScreen shows a warning. Click More info →
Run anyway.
Every installer ships its own Python runtime, so the app works
as soon as it is installed — there is nothing to pip install. It
does need a system git for worktrees and the protected-path
gate; without git, the settings page says so.
Command line
pipx install git+https://github.com/HaoHaoP/taskproofOr install the wheel attached to this release:
pipx install ./taskproof-<version>-py3-none-any.whlSee the README for full usage.
中文
taskproof 是给 AI 编程代理用的传送带:派活、独立验证、留下记录。
下载
- macOS —— 仅 Apple 芯片(arm64),最低 macOS 11。 不提供 Intel
或 Rosetta 版本。请下载*.dmg。 - Windows 10+(x64)。 请下载
*.exe安装包。 - Linux(x64)。 请下载
*.AppImage(免安装)或*.deb
(Debian/Ubuntu)。
这些安装包未签名
目前还没有签名或公证证书,所以第一次打开时系统会提示:
- macOS: Gatekeeper 会拦截应用。右键点击 → 打开,再确认;
或执行
xattr -d com.apple.quarantine /Applications/Taskproof.app。 - Windows: SmartScreen 会弹出警告。点击 更多信息 →
仍要运行。
每个安装包都自带 Python 运行时,安装完即可使用,无需
pip install。但需要系统 git 才能使用作业树(worktree)与受保护
路径闸门;没有 git 时,设置页会明确说明。
命令行
pipx install git+https://github.com/HaoHaoP/taskproof也可以安装本 Release 附件里的 wheel:
pipx install ./taskproof-<version>-py3-none-any.whl完整用法见 README。
taskproof v0.2.0
Version / 版本: v0.2.0
What's new / 更新内容
English
This release is mostly subtraction: what was not earning its keep
is gone.
- The queue is gone. No parked state, no daemon:
runfires a
card there and then, and the order of cards is the dispatcher's
decision. A refused dispatch still leaves no trace. verifyingis a real state. While acceptance runs the card is
written asverifying, so a long build or test suite is visible
instead of hiding insiderunning.- A project is not a lane. The registry has two layers now: a
[[project]](a repository — the unit the board filters by) and
one or more[[taskgroup]]lanes (the unit you dispatch into,
each with its own lock). Old one-block-per-lane files still read. - A lane can own a workspace.
workspace = "worktree"gives a
lane one long-lived checkout beside the repository, created the
first time a card fires into it and reused after;link = [...]
symlinks dependencies in from the main checkout so nothing is
reinstalled. - The gate stopped blaming the wrong tree. A sibling worktree's
branch is no longer read as the running card's doing, which retires
the old "do not commit while a card is in flight" rule. - The console is a viewer. Every write path is gone from the
desktop app and the local REST API serves reads only — dispatching,
accepting and registry edits all live in the CLI. - The board reads better. One row per project, each card names the
lane it ran in, and every column's display cap is settable in that
column's own header (5 / 10 / 20 / 50 / all). There is no separate
expand switch.
中文
这一版主要是做减法:没在挣饭吃的那些东西都去掉了。
- 排队没了。 没有 parked 状态、也没有守护进程:
run当场发车,
卡的先后就是派活人的决定;被拒的派发同样不留痕。 verifying是真状态。 验收在跑时卡就写在verifying里 ——
长编译、长测试看得见,不再藏在running里。- 项目不是道。 注册表分成两层:
[[project]](一个仓,看板按它筛选)
与一条或多条[[taskgroup]](道,派活进它、各带一把锁)。
旧的"一块 = 一条道"写法原样可读。 - 道可以有自己的工作区。
workspace = "worktree"让这条道在仓旁
拥有自己长驻的检出,第一次发车时创建、之后一直复用;link = [...]
把依赖从主树软链进来,什么也不必重装。 - 闸门不再冤枉别的工作树。 兄弟工作树的提交不再算在在飞那张卡头上
—— 旧的"发车在飞时不提交主树"这条纪律随之作废。 - 控制台只是看板。 桌面端所有写路径都撤掉了,本地 REST 只读 ——
派活、放行、改注册表都走 CLI。 - 看板更好读。 一个项目一行;卡片上写明自己跑在哪条道;每一列的
显示上限都能在列头里改(5 / 10 / 20 / 50 / 全部)——
没有单独的"展开"开关。
English
taskproof is a conveyor belt for AI coding agents: it dispatches
work, independently verifies it, and records the result.
Download
- macOS — Apple silicon (arm64) only, macOS 11+. No Intel and no
Rosetta build. Grab the*.dmg. - Windows 10+ (x64). Grab the
*.exeinstaller. - Linux (x64). Grab the
*.AppImage(portable) or the*.deb
(Debian/Ubuntu).
These builds are unsigned
There is no signing or notarisation certificate yet, so your OS will
warn you the first time:
- macOS: Gatekeeper blocks the app. Right-click it → Open,
then confirm — or run
xattr -d com.apple.quarantine /Applications/Taskproof.app. - Windows: SmartScreen shows a warning. Click More info →
Run anyway.
Every installer ships its own Python runtime, so the app works
as soon as it is installed — there is nothing to pip install. It
does need a system git for worktrees and the protected-path
gate; without git, the settings page says so.
Command line
pipx install git+https://github.com/HaoHaoP/taskproofOr install the wheel attached to this release:
pipx install ./taskproof-<version>-py3-none-any.whlSee the README for full usage.
中文
taskproof 是给 AI 编程代理用的传送带:派活、独立验证、留下记录。
下载
- macOS —— 仅 Apple 芯片(arm64),最低 macOS 11。 不提供 Intel
或 Rosetta 版本。请下载*.dmg。 - Windows 10+(x64)。 请下载
*.exe安装包。 - Linux(x64)。 请下载
*.AppImage(免安装)或*.deb
(Debian/Ubuntu)。
这些安装包未签名
目前还没有签名或公证证书,所以第一次打开时系统会提示:
- macOS: Gatekeeper 会拦截应用。右键点击 → 打开,再确认;
或执行
xattr -d com.apple.quarantine /Applications/Taskproof.app。 - Windows: SmartScreen 会弹出警告。点击 更多信息 →
仍要运行。
每个安装包都自带 Python 运行时,安装完即可使用,无需
pip install。但需要系统 git 才能使用作业树(worktree)与受保护
路径闸门;没有 git 时,设置页会明确说明。
命令行
pipx install git+https://github.com/HaoHaoP/taskproof也可以安装本 Release 附件里的 wheel:
pipx install ./taskproof-<version>-py3-none-any.whl完整用法见 README。
taskproof v0.1.2
Version / 版本: v0.1.2
English
taskproof is a conveyor belt for AI coding agents: it dispatches
work, independently verifies it, and records the result.
Download
- macOS — Apple silicon (arm64) only, macOS 11+. No Intel and no
Rosetta build. Grab the*.dmg. - Windows 10+ (x64). Grab the
*.exeinstaller. - Linux (x64). Grab the
*.AppImage(portable) or the*.deb
(Debian/Ubuntu).
These builds are unsigned
There is no signing or notarisation certificate yet, so your OS will
warn you the first time:
- macOS: Gatekeeper blocks the app. Right-click it → Open,
then confirm — or run
xattr -d com.apple.quarantine /Applications/Taskproof.app. - Windows: SmartScreen shows a warning. Click More info →
Run anyway.
Every installer ships its own Python runtime, so the app works
as soon as it is installed — there is nothing to pip install. It
does need a system git for worktrees and the protected-path
gate; without git, the settings page says so.
Command line
pipx install git+https://github.com/HaoHaoP/taskproofOr install the wheel attached to this release:
pipx install ./taskproof-<version>-py3-none-any.whlSee the README for full usage.
中文
taskproof 是给 AI 编程代理用的传送带:派活、独立验证、留下记录。
下载
- macOS —— 仅 Apple 芯片(arm64),最低 macOS 11。 不提供 Intel
或 Rosetta 版本。请下载*.dmg。 - Windows 10+(x64)。 请下载
*.exe安装包。 - Linux(x64)。 请下载
*.AppImage(免安装)或*.deb
(Debian/Ubuntu)。
这些安装包未签名
目前还没有签名或公证证书,所以第一次打开时系统会提示:
- macOS: Gatekeeper 会拦截应用。右键点击 → 打开,再确认;
或执行
xattr -d com.apple.quarantine /Applications/Taskproof.app。 - Windows: SmartScreen 会弹出警告。点击 更多信息 →
仍要运行。
每个安装包都自带 Python 运行时,安装完即可使用,无需
pip install。但需要系统 git 才能使用作业树(worktree)与受保护
路径闸门;没有 git 时,设置页会明确说明。
命令行
pipx install git+https://github.com/HaoHaoP/taskproof也可以安装本 Release 附件里的 wheel:
pipx install ./taskproof-<version>-py3-none-any.whl完整用法见 README。
taskproof v0.1.1
Version / 版本: v0.1.1
English
taskproof is a conveyor belt for AI coding agents: it dispatches
work, independently verifies it, and records the result.
Download
- macOS — Apple silicon (arm64) only, macOS 11+. No Intel and no
Rosetta build. Grab the*.dmg. - Windows 10+ (x64). Grab the
*.exeinstaller. - Linux (x64). Grab the
*.AppImage(portable) or the*.deb
(Debian/Ubuntu).
These builds are unsigned
There is no signing or notarisation certificate yet, so your OS will
warn you the first time:
- macOS: Gatekeeper blocks the app. Right-click it → Open,
then confirm — or run
xattr -d com.apple.quarantine /Applications/Taskproof.app. - Windows: SmartScreen shows a warning. Click More info →
Run anyway.
Every installer ships its own Python runtime, so the app works
as soon as it is installed — there is nothing to pip install. It
does need a system git for worktrees and the protected-path
gate; without git, the settings page says so.
Command line
pipx install git+https://github.com/HaoHaoP/taskproofOr install the wheel attached to this release:
pipx install ./taskproof-<version>-py3-none-any.whlSee the README for full usage.
中文
taskproof 是给 AI 编程代理用的传送带:派活、独立验证、留下记录。
下载
- macOS —— 仅 Apple 芯片(arm64),最低 macOS 11。 不提供 Intel
或 Rosetta 版本。请下载*.dmg。 - Windows 10+(x64)。 请下载
*.exe安装包。 - Linux(x64)。 请下载
*.AppImage(免安装)或*.deb
(Debian/Ubuntu)。
这些安装包未签名
目前还没有签名或公证证书,所以第一次打开时系统会提示:
- macOS: Gatekeeper 会拦截应用。右键点击 → 打开,再确认;
或执行
xattr -d com.apple.quarantine /Applications/Taskproof.app。 - Windows: SmartScreen 会弹出警告。点击 更多信息 →
仍要运行。
每个安装包都自带 Python 运行时,安装完即可使用,无需
pip install。但需要系统 git 才能使用作业树(worktree)与受保护
路径闸门;没有 git 时,设置页会明确说明。
命令行
pipx install git+https://github.com/HaoHaoP/taskproof也可以安装本 Release 附件里的 wheel:
pipx install ./taskproof-<version>-py3-none-any.whl完整用法见 README。
taskproof v0.1.0
English
taskproof 0.1.0 — first release
taskproof is a conveyor belt for AI coding agents: it dispatches a task to an agent,
independently verifies the result, and records every step. The agent's own
"done" is never the verdict.
What is in it
Control surface. One CLI (init, register, run, tasks, show, log,
verify, advance, accept, rerun, cancel, rm, board, api, queue,
config), a local REST API bound to 127.0.0.1, and a static board. Standard-library
Python only, no third-party dependencies, no LLM inside.
Independent acceptance. The command in the project registry runs after the agent
exits, run by taskproof itself. That result is what gets recorded, not the agent's
summary.
A gate that can say no. Protected paths are judged with three kinds of signal
(tracked files, git state, presence) over a before/after difference. A violation parks
the task as blocked — distinct from failed, which means the acceptance really did
not pass — and the acceptance still runs, so the work is never thrown away unexamined.
Queue and cap. run --park[=N] parks a card into a wave (same queue_seq = same
wave); only one task per group runs at a time. Fire them with the resident queue
daemon or one at a time with advance. The global concurrency cap is a setting with a
visible origin (config --concurrency, config --show), defaulting to a machine-derived
value (cores/4, clamped to 2..6, with a memory dimension).
Terminal states you can act on. accept <id> closes a blocked card; a failed
card needs --note (a human registration, never a rewrite of the verdict — verify_*
is untouched). rerun starts a fresh copy and links both ways.
Worktrees and the ledger. --worktree runs a card in its own checkout beside the
repo, and keeps that checkout when it has changes. Claims are transactional with expiry
reclamation, and the audit ledger rotates.
The desktop console. Electron + Vue 3, bilingual, reading the same ledger as the
CLI: a lane matrix (queued / running / verifying / done / cancelled / pending review
/ not passing), per-column hide switches, a fold control on the tall columns, a
「验收已过」badge and a 放行 button on cards that are waiting for a human, tray, Dock
badge, optional launch-at-login, and settings that show each effective value and where
it came from. Installers ship their own Python runtime, so it works on a machine that
has none.
Docs and a skill. README.md / README.zh-CN.md (install, run, queue, cap, gates,
limitations), docs/DESIGN, docs/REGISTRY, docs/WALKTHROUGH, and
skills/taskproof-dispatch/ — the operating manual for the agent doing the work.
Download
- macOS — Apple silicon (arm64) only, macOS 11+. No Intel and no Rosetta build.
Grab the*.dmg. - Windows 10+ (x64). Grab the
*.exeinstaller. - Linux (x64). Grab the
*.AppImage(portable) or the*.deb(Debian/Ubuntu).
These builds are unsigned
There is no signing or notarisation certificate yet, so your OS will warn you the first
time:
- macOS: Gatekeeper blocks the app. Right-click it → Open, then confirm — or run
xattr -d com.apple.quarantine /Applications/Taskproof.app. - Windows: SmartScreen shows a warning. Click More info → Run anyway.
Every installer ships its own Python runtime, so the app works as soon as it is
installed — there is nothing to pip install. It does need a system git for
worktrees and the protected-path gate; without git, the settings page says so.
Command line
pipx install git+https://github.com/HaoHaoP/taskproofOr install the wheel attached to this release:
pipx install ./taskproof-0.1.0-py3-none-any.whlKnown limitations
- Unsigned and not notarised (see above).
- macOS is arm64 only — no Intel build and no Rosetta path.
- The gate needs
git. Without a systemgit, worktrees and the protected-path
gate are unavailable; everything else runs. - The board fetches at most 2000 rows at a time and says so when it hits that
ceiling, rather than implying it has everything. - Windows and Linux installers are built by CI's native runners; a local machine can
only build the macOS package.
See the README for full usage.
中文
taskproof 0.1.0 —— 首个发布
taskproof 是给 AI 编程代理用的传送带:派活、独立验证、逐条留痕。
代理自己说"做完了"从来不算数。
这一版有什么
控制面。 一套命令(init、register、run、tasks、show、log、verify、
advance、accept、rerun、cancel、rm、board、api、queue、config),
一个只绑 127.0.0.1 的本地 REST API,一块静态看板。纯标准库 Python,无第三方依赖,
内部不含大模型。
独立验收。 注册表里的验收命令由 taskproof 在代理退出之后自己跑;进账本的是它
的结果,不是代理的自述。
一把会说不的闸门。 禁改路径用三类信号判(被跟踪的文件、git 状态、存在性),
并看前后差分。越界会让任务停在 blocked —— 与 failed(验收真的没过)严格区分 ——
而且验收照跑,成果不会被未经查看地丢掉。
队列与上限。 run --park[=N] 把卡停进某一波(同一 queue_seq 即同一波);
同一 group 一次只跑一张。用常驻的 queue 守护进程放行,或手动 advance 逐张放行。
全局并发上限是可设置的,并且处处显示生效值与来源(config --concurrency /
config --show),缺省按机器推导(核数÷4,夹在 2..6,另有内存维度)。
能动手收尾的终态。 accept <id> 收掉一张 blocked;failed 必须带 --note
(人工登记,绝不改写判决 —— verify_* 一字不动)。rerun 新开一份并双向关联。
作业树与账本。 --worktree 让卡在自己的检出里跑,有改动就保留那棵检出。
认领是事务性的、带过期回收,审计账本会轮转。
桌面控制台。 Electron + Vue 3,中英双语,读同一个账本:泳道矩阵(排队 /
进行中 / 验收中 / 完成 / 已取消 / 待复核 / 未通过)、按列显隐、高列表头上的折叠控件、
等待人工的卡带「验收已过」徽标与「放行」按钮,还有托盘、Dock 角标、可选的
开机自启,以及把每个生效值和它的来源一并显示出来的设置页。安装包自带 Python 运行时,
没有 Python 的机器装完即可用。
文档与 skill。 README.md / README.zh-CN.md(安装、运行、队列、并发上限、闸门、
已知限制)、docs/DESIGN、docs/REGISTRY、docs/WALKTHROUGH,以及
skills/taskproof-dispatch/ —— 给真正干活的 AI 代理的操作手册。
下载
- macOS —— 仅 Apple 芯片(arm64),最低 macOS 11。 不提供 Intel 或 Rosetta 版本。
请下载*.dmg。 - Windows 10+(x64)。 请下载
*.exe安装包。 - Linux(x64)。 请下载
*.AppImage(免安装)或*.deb(Debian/Ubuntu)。
这些安装包未签名
目前还没有签名或公证证书,所以第一次打开时系统会提示:
- macOS: Gatekeeper 会拦截应用。右键点击 → 打开,再确认;或执行
xattr -d com.apple.quarantine /Applications/Taskproof.app。 - Windows: SmartScreen 会弹出警告。点击 更多信息 → 仍要运行。
每个安装包都自带 Python 运行时,安装完即可使用,无需 pip install。但需要系统
git 才能使用作业树(worktree)与受保护路径闸门;没有 git 时,设置页会明确说明。
命令行
pipx install git+https://github.com/HaoHaoP/taskproof也可以安装本 Release 附件里的 wheel:
pipx install ./taskproof-0.1.0-py3-none-any.whl已知限制
- 未签名、未公证(见上)。
- macOS 只有 arm64 —— 没有 Intel 版,也没有 Rosetta 路径。
- 闸门需要
git。 没有系统git时,作业树与禁改路径闸门不可用;其余功能照常。 - 看板一次最多取回 2000 行,到顶时会显示「已到取回上限」,而不是假装自己拿全了。
- Windows / Linux 安装包由 CI 原生 runner 构建;本机只能打 macOS 包。
完整用法见 README。