feat(raw-commit): implement raw file quiet window for ingest
This commit is contained in:
parent
865fdb95f4
commit
591883af47
1 changed files with 23 additions and 1 deletions
|
|
@ -43,8 +43,30 @@ grep -qxF 'raw/.stfolder' "${vault}/.git/info/exclude" 2>/dev/null || echo 'raw/
|
|||
|
||||
git add -A -- raw/
|
||||
git reset -q -- raw/.stignore raw/.stfolder 2>/dev/null || true
|
||||
|
||||
# --- Quiet window: only commit raw files that have STOPPED changing. ----------------
|
||||
# While a note is being written (Obsidian autosave -> Syncthing -> here) its mtime stays
|
||||
# fresh; we leave it UNSTAGED so a half-written note never triggers an ingest. A file is
|
||||
# committed only after it has been still for RAW_QUIET_MINUTES. Deletions (nothing on disk)
|
||||
# are stable by definition and pass straight through. Deterministic — no model in the loop.
|
||||
quiet_min="${RAW_QUIET_MINUTES:-2}"
|
||||
held=0
|
||||
while IFS= read -r f; do
|
||||
[[ -z "$f" ]] && continue
|
||||
# Only an existing file can be "hot"; a staged deletion has nothing on disk to settle.
|
||||
if [[ -e "$f" && -n "$(find "$f" -mmin -"$quiet_min" 2>/dev/null)" ]]; then
|
||||
git reset -q -- "$f" 2>/dev/null || true
|
||||
held=$((held+1))
|
||||
fi
|
||||
done < <(git diff --cached --name-only -- raw/)
|
||||
|
||||
if git diff --cached --quiet; then
|
||||
if [[ "$held" -gt 0 ]]; then
|
||||
printf '{"status":"noop","reason":"raw still settling","genome":"%s","held":%d,"quiet_minutes":%d}\n' \
|
||||
"$genome" "$held" "$quiet_min"
|
||||
else
|
||||
printf '{"status":"noop","genome":"%s"}\n' "$genome"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue