sync: auto-sync from GURU-5070 at 2026-07-01 15:49:56
Author: Mike Swanson Machine: GURU-5070 Timestamp: 2026-07-01 15:49:56
This commit is contained in:
@@ -33,6 +33,11 @@
|
||||
# Writes: YYYY-MM-DD | MACHINE | <skill> | [<type>] <error> [ctx: <context>]
|
||||
# (newest entry inserted at the top, just under the append marker).
|
||||
#
|
||||
# Dedup: if an IDENTICAL entry (same date, machine, skill, message) already
|
||||
# exists, no new line is added — the existing line gets a " (xN)" repeat counter
|
||||
# bumped instead. Identical machine-generated failures (API retry loops) collapse
|
||||
# to one line per day; a different message/context/date is still a new entry.
|
||||
#
|
||||
# Soft-fail by design: this NEVER breaks the caller. Missing log, missing jq,
|
||||
# empty message -> prints a [WARN] to stderr and exits 0.
|
||||
set -u
|
||||
@@ -62,7 +67,7 @@ DATE="$(date -u +%F)"
|
||||
IDF="$ROOT/.claude/identity.json"
|
||||
MACHINE=""
|
||||
if command -v jq >/dev/null 2>&1 && [ -f "$IDF" ]; then
|
||||
MACHINE="$(jq -r '.machine_name // .hostname // empty' "$IDF" 2>/dev/null)"
|
||||
MACHINE="$(jq -r '.machine // .machine_name // .hostname // empty' "$IDF" 2>/dev/null)"
|
||||
fi
|
||||
[ -z "$MACHINE" ] && MACHINE="$(hostname 2>/dev/null || echo unknown)"
|
||||
|
||||
@@ -76,6 +81,34 @@ ENTRY="$DATE | $MACHINE | $SKILL | $MSG"
|
||||
|
||||
MARK="<!-- Append entries below this line -->"
|
||||
TMP="$LOG.tmp.$$"
|
||||
|
||||
# Dedup pass: an identical entry today (bare, or already counted "(xN)") gets its
|
||||
# repeat counter bumped in place instead of a duplicate line. Literal string
|
||||
# compares only — the message may contain regex metacharacters.
|
||||
DEDUP_RC=1
|
||||
awk -v entry="$ENTRY" '
|
||||
!bumped && $0 == entry { print entry " (x2)"; bumped=1; next }
|
||||
!bumped && index($0, entry " (x") == 1 {
|
||||
n = substr($0, length(entry) + 4) # text after " (x"
|
||||
if (n ~ /^[0-9]+\)$/) {
|
||||
sub(/\)$/, "", n)
|
||||
print entry " (x" n+1 ")"; bumped=1; next
|
||||
}
|
||||
}
|
||||
{ print }
|
||||
END { exit bumped ? 0 : 1 }
|
||||
' "$LOG" > "$TMP" 2>/dev/null && DEDUP_RC=0
|
||||
if [ "$DEDUP_RC" -eq 0 ]; then
|
||||
if mv "$TMP" "$LOG" 2>/dev/null; then
|
||||
echo "[OK] duplicate entry — bumped repeat counter in errorlog.md ($SKILL)"
|
||||
else
|
||||
rm -f "$TMP" 2>/dev/null
|
||||
echo "[WARN] log-skill-error: could not write $LOG" >&2
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
rm -f "$TMP" 2>/dev/null
|
||||
|
||||
if awk -v entry="$ENTRY" -v mark="$MARK" '
|
||||
{ print }
|
||||
($0==mark && !done) { print ""; print entry; done=1 }
|
||||
|
||||
Reference in New Issue
Block a user