fix: fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh (#279)
Remove check_memory() from lib/formula-session.sh and update all *-run.sh scripts to use memory_guard() from lib/env.sh. Changes: - lib/formula-session.sh: Removed check_memory() function and its documentation - gardener/gardener-run.sh: Replaced check_memory(2000) with memory_guard(2000) - planner/planner-run.sh: Replaced check_memory(2000) with memory_guard(2000) - architect/architect-run.sh: Replaced check_memory(2000) with memory_guard(2000) - predictor/predictor-run.sh: Replaced check_memory(2000) with memory_guard(2000) - supervisor/supervisor-run.sh: Replaced check_memory(2000) with memory_guard(2000) Benefits: - Only one memory check function exists now - All agents use the same function - No dependency on free command - uses /proc/meminfo which is more portable
This commit is contained in:
parent
ea8050d5cf
commit
67d11631cc
6 changed files with 8 additions and 26 deletions
|
|
@ -49,7 +49,7 @@ log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%S)Z] $*" >> "$LOG_FILE"; }
|
|||
# ── Guards ────────────────────────────────────────────────────────────────
|
||||
check_active architect
|
||||
acquire_cron_lock "/tmp/architect-run.lock"
|
||||
check_memory 2000
|
||||
memory_guard 2000
|
||||
|
||||
log "--- Architect run start ---"
|
||||
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%S)Z] $*" >> "$LOG_FILE"; }
|
|||
# ── Guards ────────────────────────────────────────────────────────────────
|
||||
check_active gardener
|
||||
acquire_cron_lock "/tmp/gardener-run.lock"
|
||||
check_memory 2000
|
||||
memory_guard 2000
|
||||
|
||||
log "--- Gardener run start ---"
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
#
|
||||
# Functions:
|
||||
# acquire_cron_lock LOCK_FILE — PID lock with stale cleanup
|
||||
# check_memory [MIN_MB] — skip if available RAM too low
|
||||
# load_formula FORMULA_FILE — sets FORMULA_CONTENT
|
||||
# build_context_block FILE [FILE ...] — sets CONTEXT_BLOCK
|
||||
# build_prompt_footer [EXTRA_API_LINES] — sets PROMPT_FOOTER (API ref + env)
|
||||
|
|
@ -51,23 +50,6 @@ acquire_cron_lock() {
|
|||
trap 'rm -f "$_CRON_LOCK_FILE"' EXIT
|
||||
}
|
||||
|
||||
# check_memory [MIN_MB]
|
||||
# Exits 0 (skip) if available memory is below MIN_MB (default 2000).
|
||||
check_memory() {
|
||||
local min_mb="${1:-2000}"
|
||||
# Graceful fallback if free command is not available (procps not installed)
|
||||
if ! command -v free &>/dev/null; then
|
||||
log "run: free not found, skipping memory check"
|
||||
return 0
|
||||
fi
|
||||
local avail_mb
|
||||
avail_mb=$(free -m | awk '/Mem:/{print $7}')
|
||||
if [ "${avail_mb:-0}" -lt "$min_mb" ]; then
|
||||
log "run: skipping — only ${avail_mb}MB available (need ${min_mb})"
|
||||
exit 0
|
||||
fi
|
||||
}
|
||||
|
||||
# ── Agent identity resolution ────────────────────────────────────────────
|
||||
|
||||
# resolve_agent_identity
|
||||
|
|
@ -168,7 +150,7 @@ ensure_profile_repo() {
|
|||
# Checks if the agent has a .profile repo by querying Forgejo API.
|
||||
# Returns 0 if repo exists, 1 otherwise.
|
||||
_profile_has_repo() {
|
||||
local agent_identity="${1:-${AGENT_IDENTITY:-}}"
|
||||
local agent_identity="${AGENT_IDENTITY:-}"
|
||||
|
||||
if [ -z "$agent_identity" ]; then
|
||||
if ! resolve_agent_identity; then
|
||||
|
|
@ -204,8 +186,8 @@ _count_undigested_journals() {
|
|||
# Runs a claude -p one-shot to digest undigested journals into lessons-learned.md
|
||||
# Returns 0 on success, 1 on failure.
|
||||
_profile_digest_journals() {
|
||||
local agent_identity="${1:-${AGENT_IDENTITY:-}}"
|
||||
local model="${2:-${CLAUDE_MODEL:-opus}}"
|
||||
local agent_identity="${AGENT_IDENTITY:-}"
|
||||
local model="${CLAUDE_MODEL:-opus}"
|
||||
|
||||
if [ -z "$agent_identity" ]; then
|
||||
if ! resolve_agent_identity; then
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%S)Z] $*" >> "$LOG_FILE"; }
|
|||
# ── Guards ────────────────────────────────────────────────────────────────
|
||||
check_active planner
|
||||
acquire_cron_lock "/tmp/planner-run.lock"
|
||||
check_memory 2000
|
||||
memory_guard 2000
|
||||
|
||||
log "--- Planner run start ---"
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%S)Z] $*" >> "$LOG_FILE"; }
|
|||
# ── Guards ────────────────────────────────────────────────────────────────
|
||||
check_active predictor
|
||||
acquire_cron_lock "/tmp/predictor-run.lock"
|
||||
check_memory 2000
|
||||
memory_guard 2000
|
||||
|
||||
log "--- Predictor run start ---"
|
||||
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ log() { echo "[$(date -u +%Y-%m-%dT%H:%M:%S)Z] $*" >> "$LOG_FILE"; }
|
|||
# ── Guards ────────────────────────────────────────────────────────────────
|
||||
check_active supervisor
|
||||
acquire_cron_lock "/tmp/supervisor-run.lock"
|
||||
check_memory 2000
|
||||
memory_guard 2000
|
||||
|
||||
log "--- Supervisor run start ---"
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue