mirror of
https://github.com/allaunthefox/Research-Stack.git
synced 2026-07-31 03:05:21 +00:00
Full Observe→Decide→Act→Emit loop for the restic + Garage + rclone stack: - storage_agent.py: probes Garage health, restic snapshot count and dedup ratio (Q16_16), backup log staleness, cold-copy drift; triggers corrective actions (snap, cold-copy, verify, forget, offload, garage restart) based on Q16_16 threshold comparisons. Emits hash-chained receipts to both a local JSONL log (~/.cache/storage-agent.jsonl) and s3://research-stack/agent-receipts/ in Garage. - storage-agent.service / storage-agent.timer: systemd units installed system-wide; timer fires every 15 min (RandomizedDelaySec=60). Includes PATH=/home/allaun/.local/bin:... so aws cli and restic are resolved. - .git/hooks/post-commit updated: agent runs (--once) in the background after each restic snap, so post-commit state is always observed. - 4-Infrastructure/AGENTS.md: full documentation of agent contract, receipt schema, trigger table, log paths, and usage examples. Shim boundary: zero logic — pure subprocess calls to existing CLI tools. No Float, no new dependencies. py_compile and live dry-run verified. Generated with [Devin](https://cli.devin.ai/docs) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
15 lines
559 B
SYSTEMD
15 lines
559 B
SYSTEMD
[Unit]
|
|
Description=Storage agent — 15-minute observation + corrective-action timer
|
|
Documentation=file:///home/allaun/Research Stack/4-Infrastructure/storage/storage_agent.py
|
|
|
|
[Timer]
|
|
# Fire every 15 minutes. RandomizedDelaySec spreads load when multiple nodes
|
|
# eventually run this (±60 s jitter so they don't all probe Garage at once).
|
|
OnCalendar=*:0/15
|
|
RandomizedDelaySec=60
|
|
# Persistent=true: if the machine was off at a scheduled fire time, catch up
|
|
# once on next boot rather than skipping silently.
|
|
Persistent=true
|
|
|
|
[Install]
|
|
WantedBy=timers.target
|