Skip to content

faultline v0.1.2

Latest

Choose a tag to compare

@hmdsefi hmdsefi released this 19 Oct 19:32
· 29 commits to main since this release
v0.1.2
25ef052

faultline v0.1.2 is a hardening release. A replay command with a schedule can no longer print an old cached pass, one long node or kind name no longer pads every row of timeline.txt, and artifact.Write no longer leaves its argument half changed when it fails.

Install

go get github.com/hmdsefi/faultline@v0.1.2
go get github.com/hmdsefi/faultline/harness/etcdraft@v0.1.2
go install github.com/hmdsefi/faultline/cmd/faultline@v0.1.2

The Claude Code plugin's version follows the release. To update an installed plugin to 0.1.2:

claude plugin marketplace update faultline
claude plugin update faultline@faultline

Replay commands with a schedule pass -count=1

A replay command that sets FAULTLINE_SCHEDULE now passes -count=1, in report.txt, report.json, the console line and the form RunSeeds prints. go test does not track files outside the module for its result cache. So after you edited a schedule file there, the same command could print an old cached pass. In v0.1.1 you add -count=1 by hand. Commands without a schedule are unchanged. A seed list that FAULTLINE_SEED_LIST=@file reads from outside the module has the same cache problem, so add -count=1 when you edit that file.

timeline.txt v2

The NODE and KIND columns now pad to at most 32 characters. A longer name is printed whole and moves only its own row. Before, one long name padded every row: a single 1,000-byte kind grew a 50,000-record timeline from 5.2 MB to 55 MB. Now it adds 988 bytes. The layout changed, so timeline.txt and the timeline data in timeline.html are at version 2. faultline render still renders an artifact that v0.1.1 wrote.

Other changes

  • artifact.ReadReportFile(dir) reads the report.json of an artifact directory. It opens the file only when it is a regular file, so it never opens a symbolic link or a FIFO there. Run uses it to read the report of an earlier run.
  • artifact.Write changes its argument only when every file is in place. A failed Write leaves its argument as it was, and a retry with the same value works.
  • The bytes of hb.mmd are unchanged. A new test pins the edge order of a record with two successors, the one pattern the byte tests missed. A gograph upgrade that changes those bytes now fails faultline's tests and needs a new hb.mmd version.

Compatibility

timeline.txt and the timeline data are at version 2; every other artifact format is still at version 1. The golden trace hashes CI checks are the same as in v0.1.1. The harness module v0.1.2 requires faultline v0.1.2.

The full list of changes is in #275.