Files
gplan-2/.zcode/hooks/session-snapshot.sh
T

16 lines
713 B
Bash

#!/usr/bin/env bash
# 会话开始:快照工作区状态(status 哈希 + diff 内容哈希)与 active.md 内容哈希,供 Stop 收口检查对比
# 2026-09-18 强判据升级:active.md 判据由 mtime 改内容哈希——touch/意外改时间不再蒙混,内容真变才算登记
proj="${ZCODE_PROJECT_DIR:-$PWD}"
sid="${CLAUDE_SESSION_ID:-default}"
state="/tmp/zcode-active-md-guard"
mkdir -p "$state"
{
date +%s
git -C "$proj" status --porcelain 2>/dev/null | sort | sha1sum | cut -d' ' -f1
git -C "$proj" diff HEAD 2>/dev/null | sha1sum | cut -d' ' -f1
sha1sum "$proj/production/session-state/active.md" 2>/dev/null | cut -d' ' -f1 || echo 0
} > "$state/$sid.snap"
rm -f "$state/$sid.reminded"
exit 0