El campo content_hash (ya existía en MutationEvent) ahora se puebla y se usa para no ensuciar el diario con reescrituras sin cambios. hammer-journal: - content_hash_of(bytes) / hash_file(path): blake3 plano (estilo b3sum, "b3:<hex>"), distinto del of_inputs de artefactos — aquí la pregunta es "¿cambió el archivo?". - last_for_path(path): último evento de un path. - record_dedup(ev): omite el evento si deja el archivo idéntico al último estado de ese path (content_hash igual) o si es un Delete sobre algo ya borrado. Devuelve si escribió o no. +7 tests. hammerd watcher: hashea cada CLOSE_WRITE y usa record_dedup; una reescritura idéntica ni registra ni emite Modified al bus. 22 binarios de test verdes, sin warnings nuevos. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
21 lines
503 B
TOML
21 lines
503 B
TOML
[package]
|
|
name = "hammer-journal"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
authors.workspace = true
|
|
repository.workspace = true
|
|
description = "El diario de mutaciones de hammer: append-only JSON-líneas sobre eventos del FHS."
|
|
|
|
[dependencies]
|
|
hammer-core.workspace = true
|
|
anyhow.workspace = true
|
|
thiserror.workspace = true
|
|
tracing.workspace = true
|
|
serde.workspace = true
|
|
serde_json.workspace = true
|
|
blake3.workspace = true
|
|
|
|
[dev-dependencies]
|
|
tempfile.workspace = true
|