feat(go): chain retained snapshot artifacts

This commit is contained in:
Luna 2026-07-22 02:20:46 -07:00
parent fd2bbba0d7
commit 1ab4add205
No known key found for this signature in database
7 changed files with 278 additions and 16 deletions

View file

@ -52,8 +52,8 @@ Current scope:
- a shared fixture checked against the Python detector by
`scripts/check-go-parity.py`.
It does not yet provide Python's rich enrichment, assurance chain, notification
fan-out, or management consumers for those snapshots, and it does not replace
It does not yet provide Python's full enrichment, notification fan-out, or
management consumers for those snapshots, and it does not replace
`enodia-sentinel`. The module requires Go 1.25 or newer; development is currently
verified with Go 1.26.5. Run a single terminal-visible stateless sweep:
@ -102,7 +102,8 @@ a probe load failure is visible in status events and the polling loop remains
active. Installing the sidecar does not enable it or alter
`enodia-sentinel.service`. The unit reaches `active` only after baseline
initialization, event-log and snapshot-store preflight, and both requested probe
load attempts finish.
load attempts finish. Snapshot-store preflight includes the private assurance
chain.
Alert envelopes are also batched into private
`alert-YYYYMMDD-HHMMSS.{json,log}` pairs under the same isolated directory.
@ -115,8 +116,9 @@ the configured `incident_tracking`, `incident_window`, and
and one snapshot name idempotently. Hot-path enrichment derives bounded
process/parent context, lineage, remote-IP classification, and candidate paths
from already-captured data without new I/O. Package ownership, hashes, file
metadata, integrity anchors, assurance chaining, and notifications remain
future parity work.
metadata, richer integrity anchors, and notifications remain future parity
work. Snapshot text/JSON revisions append synchronized `enodia.hash_chain.v1`
records to a private local `hash-chain.jsonl`.
After every successfully emitted status record, the service atomically updates
`/var/lib/enodia-sentinel-go/heartbeat` with the current Unix timestamp (mode