fix: separate poll_interval from compact_pct in local-model agent TOML config
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
ci/woodpecker/pr/ci Pipeline was successful
ci/woodpecker/pr/smoke-init Pipeline was successful

--poll-interval was incorrectly written as compact_pct in the project TOML,
misconfiguring CLAUDE_AUTOCOMPACT_PCT_OVERRIDE instead of polling behavior.
Now compact_pct is hardcoded to 60 (the correct default) and poll_interval
is a separate TOML field emitted as POLL_INTERVAL in the compose service.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude 2026-04-10 05:56:18 +00:00
parent 1e4754675d
commit 35885fa30c
4 changed files with 12 additions and 4 deletions

View file

@ -373,6 +373,7 @@ check_pipeline_stall = false
# roles = ["dev"]
# forge_user = "dev-qwen"
# compact_pct = 60
# poll_interval = 60
# [mirrors]
# github = "git@github.com:user/repo.git"

View file

@ -50,6 +50,7 @@ _generate_local_model_services() {
API_KEY) api_key="$value" ;;
FORGE_USER) forge_user="$value" ;;
COMPACT_PCT) compact_pct="$value" ;;
POLL_INTERVAL) poll_interval_val="$value" ;;
---)
if [ -n "$service_name" ] && [ -n "$base_url" ]; then
cat >> "$temp_file" <<EOF
@ -85,6 +86,7 @@ _generate_local_model_services() {
PROJECT_REPO_ROOT: /home/agent/repos/${PROJECT_NAME:-project}
WOODPECKER_DATA_DIR: /woodpecker-data
FORGE_BOT_USER_${service_name^^}: "${forge_user}"
POLL_INTERVAL: "${poll_interval_val}"
depends_on:
- forgejo
- woodpecker
@ -103,7 +105,7 @@ ${vol_name}"
else
all_vols="${vol_name}"
fi
service_name="" base_url="" model="" roles="" api_key="" forge_user="" compact_pct=""
service_name="" base_url="" model="" roles="" api_key="" forge_user="" compact_pct="" poll_interval_val=""
;;
esac
done < <(python3 -c '
@ -127,6 +129,7 @@ for name, config in agents.items():
api_key = config.get("api_key", "sk-no-key-required")
forge_user = config.get("forge_user", f"{name}-bot")
compact_pct = config.get("compact_pct", 60)
poll_interval = config.get("poll_interval", 60)
safe_name = name.lower()
safe_name = re.sub(r"[^a-z0-9]", "-", safe_name)
@ -139,6 +142,7 @@ for name, config in agents.items():
print(f"API_KEY={api_key}")
print(f"FORGE_USER={forge_user}")
print(f"COMPACT_PCT={compact_pct}")
print(f"POLL_INTERVAL={poll_interval}")
print("---")
' "$toml" 2>/dev/null)
done

View file

@ -417,6 +417,7 @@ EOF
local model="${model_name:-local-model}"
# Write [agents.<name>] section to the project TOML
local interval="${poll_interval:-60}"
echo " Writing [agents.${section_name}] to ${toml_file}..."
python3 -c '
import sys, re, pathlib
@ -427,7 +428,7 @@ base_url = sys.argv[3]
model = sys.argv[4]
agent_name = sys.argv[5]
role = sys.argv[6]
compact_pct = sys.argv[7]
poll_interval = sys.argv[7]
p = pathlib.Path(toml_path)
text = p.read_text()
@ -440,7 +441,8 @@ model = "{model}"
api_key = "sk-no-key-required"
roles = ["{role}"]
forge_user = "{agent_name}"
compact_pct = {compact_pct}
compact_pct = 60
poll_interval = {poll_interval}
"""
# Check if section already exists and replace it
@ -463,7 +465,7 @@ else:
text = text.rstrip() + "\n" + new_section
p.write_text(text)
' "$toml_file" "$section_name" "$local_model" "$model" "$agent_name" "$role" "${poll_interval:-60}"
' "$toml_file" "$section_name" "$local_model" "$model" "$agent_name" "$role" "$interval"
echo " Agent config written to TOML"

View file

@ -34,6 +34,7 @@ check_pipeline_stall = false
# roles = ["dev"]
# forge_user = "dev-qwen"
# compact_pct = 60
# poll_interval = 60
# [mirrors]
# github = "git@github.com:johba/disinto.git"