From 494dae826c3c567b0eea6e91936628a2952fb5c6 Mon Sep 17 00:00:00 2001 From: Gabriel Schneider Date: Tue, 29 Sep 2026 16:33:12 -0300 Subject: A repeated log record is counted only when its whole text repeats, not just what was cut to fit (xN) compared records after msg and err cut long texts to fit, so two different long failures that agreed in their first 200-odd bytes were counted as one. The whole text of the newest counted record is now hashed, and a repeat needs it too. Co-Authored-By: Claude Opus 5.5 --- src/fs.zig | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/fs.zig') diff --git a/src/fs.zig b/src/fs.zig index edd8fcb8..edead0ff 100644 --- a/src/fs.zig +++ b/src/fs.zig @@ -1334,6 +1334,9 @@ pub const Namespace = struct { /// write, a shell, a language server): a failure said meanwhile is that /// write's err, so it posts no msg (Messages.reportFailure). write_waits: bool = false, + /// The whole text of the newest counted log record, hashed: its record + /// may be cut, and a repeat is only the same whole text again. + log_full_hash: u64 = 0, /// Writes one open made in a row into one place of a pane's body (an /// append to `body`, an insert at `data`'s address), held and put in /// as one edit when anything else comes (ninep/pane.zig flushBatch): a -- cgit v1.3