Skip to content

Releases: HaoHaoP/taskproof

taskproof v0.4.0

Choose a tag to compare

@github-actions github-actions released this 15 Oct 07:17

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 — exit 78, no task row, no concurrency
    slot — unless its tree is checked out on that branch, and a worktree lane 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, and taskproof projects / taskgroups warn
    about them on stderr; no exit code changes. A lane-level timeout used to be
    dropped in silence — 22 declarations' worth.
  • A timed-out card can be signed off. accept takes timeout too, with the
    same mandatory --note. It is a registration, never a promotion: the card
    stays timeout, verify_* and finished_at are untouched, and the ledger
    gains one accepted event whose from and to are both timeout.
  • The ledger records who ran a verification. Every verify event now carries
    by — run for the pipeline's own check as a card winds down, cli for a
    human re-check with taskproof 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 compensated sum() 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

Choose a tag to compare

@github-actions github-actions released this 14 Oct 10:56

Version / 版本: v0.3.0

What's new / 更新内容

English

  • The browser board is the desktop renderer. taskproof board no 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.
  • .gz siblings 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 = 2700 on 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's timeout > [defaults] timeout > the built-in 1800 — and it is
    always reported together with where it came from, on the started event 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 the timeout event says which budget fired
    (reason: idle or wall-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.md and
    ARCHITECTURE.zh-CN.md now describe what the system actually does, with
    diagrams generated from tools/make_figures.py; the language switch sits at the
    top of every doc pair; and DESIGN.md's status line states what has shipped.
  • Dispatch tooling. tools/check-card.py mechanises the card checks,
    taskproof wait blocks for a verdict while tasks shows 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

Choose a tag to compare

@github-actions github-actions released this 12 Oct 03:14

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:
    mountElement builds 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 to renderer-errors.log beside 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 *.exe installer.
  • 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/taskproof

Or install the wheel attached to this release:

pipx install ./taskproof-<version>-py3-none-any.whl

See 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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 09:42

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: run fires a
    card there and then, and the order of cards is the dispatcher's
    decision. A refused dispatch still leaves no trace.
  • verifying is a real state. While acceptance runs the card is
    written as verifying, so a long build or test suite is visible
    instead of hiding inside running.
  • 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 *.exe installer.
  • 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/taskproof

Or install the wheel attached to this release:

pipx install ./taskproof-<version>-py3-none-any.whl

See 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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 02:24

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 *.exe installer.
  • 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/taskproof

Or install the wheel attached to this release:

pipx install ./taskproof-<version>-py3-none-any.whl

See 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

Choose a tag to compare

@github-actions github-actions released this 10 Oct 02:08

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 *.exe installer.
  • 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/taskproof

Or install the wheel attached to this release:

pipx install ./taskproof-<version>-py3-none-any.whl

See 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

Choose a tag to compare

@github-actions github-actions released this 09 Oct 08:26

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 *.exe installer.
  • 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/taskproof

Or install the wheel attached to this release:

pipx install ./taskproof-0.1.0-py3-none-any.whl

Known limitations

  • Unsigned and not notarised (see above).
  • macOS is arm64 only — no Intel build and no Rosetta path.
  • The gate needs git. Without a system git, 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。