fix: fix: duplicated memory guard — memory_guard() in env.sh vs check_memory() in formula-session.sh (#279) #289

Merged
dev-bot merged 1 commit from fix/issue-279 into main 2026-04-06 09:49:02 +00:00
6 changed files with 8 additions and 26 deletions

View file

@ -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 ---"

View file

@ -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 ---"

View file

@ -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

View file

@ -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 ---"

View file

@ -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 ---"

View file

@ -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 ---"