Crossweft / Updates / v0.2.2
UPDATE · v0.2.2 ·

Incremental check: the stop hook goes from minutes to seconds

check --incremental re-checks only what changed since the last passing commit; on a 1,140-file map the stop hook fell from 385 s to 38 s.

When an agent finishes, the stop hook runs Crossweft. On a large map that used to mean the full check every time. This release makes it incremental.

  • check --incremental compares against the last commit at which the check passed in this work tree, plus the files that were uncommitted then. It falls back to the full check when there is no such commit, when another Crossweft version recorded it, or when the map, config or a joint plugin changed. The record lives in the git directory and is never committed.
  • The stop hook now uses it. Measured on a 1,140-file map with 13 joint kinds: the full check takes 385 s; a stop after editing one source file takes 38 s.
  • joints.sources lists the plugin files and helpers when joints.dir also holds unrelated code, so editing unrelated code there no longer forces the full check. A plugin that reads a file the list does not cover is an error, so the list cannot go stale silently.

The design choice behind it: a shortcut must never let unchecked code through. Uncommitted files are re-checked, and a commit that lands during the check is never recorded as passing.

Source: v0.2.2 · CHANGELOG.md

← v0.2.1v0.2.3 →