From 156d4cdef9ef05dd79d6d19cb8e485370acd056b Mon Sep 17 00:00:00 2001 From: Rongsong Shen Date: Tue, 18 Aug 2026 12:20:28 +0000 Subject: [PATCH] chore(wolf): checkpoint buglog.json (962 bugs) --- .wolf/buglog.json | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.wolf/buglog.json b/.wolf/buglog.json index fbdce333..1b48c45f 100644 --- a/.wolf/buglog.json +++ b/.wolf/buglog.json @@ -17266,6 +17266,26 @@ ], "occurrences": 1, "last_seen": "2026-08-18T10:39:52Z" + }, + { + "id": "bug-1581", + "timestamp": "2026-08-18T12:10:00Z", + "error_message": "aggregate_verdict() synthetic self-test scenario (c) [one layer UNREACHABLE] reported unreachable=2 instead of 1, and the apiserver layer of an accepted+reachable record showed api_ok=2.5/api_obs=(empty) after IFS=$'\\t' read -- fields silently shifted by one position.", + "file": ".claude/skills/xce-test-resources/run-resource-verify.sh", + "root_cause": "aggregate_verdict()/build_verdict_record() (task 7.1, new this session) originally joined/split its 9-field verdict record with a literal tab character (IFS=$'\t' read), matching every other TSV parse already in this file. But this is the FIRST record format in the file where a field can be genuinely empty (an UNREACHABLE or reachable-but-empty-value *_observed field) -- and bash treats tab (like space/newline) as \"IFS whitespace\" for field splitting even when IFS is set to ONLY a tab character, so two adjacent tab delimiters around an empty field silently COLLAPSE into one, shifting every field after it. Every prior TSV in this file (injection-results.tsv, *-check-results.tsv) never carries an empty field, which is why this bash gotcha never surfaced before.", + "fix": "Switched the record-format delimiter from a literal tab to ASCII Unit Separator (0x1F, $'\u001f', VERDICT_FIELD_SEP) in build_verdict_record()/aggregate_verdict() only -- not a whitespace-class character, so bash never collapses adjacent delimiters or strips empty fields. Caught immediately by this task's own required synthetic self-test invocations (per task 7.1's TDD expectation to sanity-check aggregate_verdict() with synthetic records before relying on it), before any live-run validation -- all 4 required synthetic scenarios (match/mismatch/unreachable/mixed) plus edge cases now pass.", + "tags": [ + "bash", + "ifs", + "tsv-parsing", + "resource-value-verification", + "task-7.1", + "aggregate_verdict", + "fixed" + ], + "related_bugs": [], + "occurrences": 1, + "last_seen": "2026-08-18T12:10:00Z" } ] }