Skip to content

taskproof v0.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 10:56
· 19 commits to main since this release

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
    一眼看裁决;一次运行的改动面被记下来,而不只是一个计数。