t3277: wire upstream_watch config keys and document JSONC config for all numeric intervals#4630
Conversation
… for all numeric intervals - Add updates.upstream_watch and updates.upstream_watch_hours to _config_env_map and _legacy_key_to_dotpath in config-helper.sh so get_feature_toggle routes them through config_get (JSONC > env var > default) in JSONC mode - Add upstream_watch and upstream_watch_hours to aidevops.defaults.jsonc with correct defaults (true / 24h) and env-override hints - Add upstream_watch and upstream_watch_hours to aidevops-config.schema.json with type, minimum, and description fields - Replace env-var-only Configuration header in auto-update-helper.sh with a three-column table (JSONC key | env override | default) covering all 10 numeric/boolean update settings, making JSONC config discoverable - Update RATE LIMITS section to reference JSONC dotpaths instead of env vars and add upstream watch rate-limit note Closes #3277
|
Warning You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again! |
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🔍 Code Quality Report�[0;35m[MONITOR]�[0m Code Review Monitoring Report �[0;34m[INFO]�[0m Latest Quality Status: �[0;34m[INFO]�[0m Recent monitoring activity: 📈 Current Quality Metrics
Generated on: Sat Mar 14 05:57:09 UTC 2026 Generated by AI DevOps Framework Code Review Monitoring |
|



Summary
Addresses the critical quality-debt finding from PR #2731 (CodeRabbit review): numeric update config values from JSONC were not applied — only environment variable overrides worked.
Root cause confirmed:
upstream_watchandupstream_watch_hourswere the only keys used byauto-update-helper.shthat were not wired into the config system. All other numeric keys (skill_freshness_hours,tool_freshness_hours,tool_idle_hours,openclaw_freshness_hours,update_interval_minutes) were already correctly mapped in_config_env_mapand_legacy_key_to_dotpathinconfig-helper.sh, and present inaidevops.defaults.jsoncandaidevops-config.schema.json. The code already usedget_feature_togglewhich routes throughconfig_getin JSONC mode.Changes
config-helper.sh: Addupstream_watch → updates.upstream_watchandupstream_watch_hours → updates.upstream_watch_hoursto both_config_env_map(dotpath → env var) and_legacy_key_to_dotpath(flat key → dotpath). This completes the config routing chain for all numeric update intervals.aidevops.defaults.jsonc: Addupstream_watch: trueandupstream_watch_hours: 24to theupdatessection with env-override hints.aidevops-config.schema.json: Addupstream_watch(boolean) andupstream_watch_hours(integer, minimum: 1) to theupdatesobject schema. RemovesadditionalProperties: falseviolation that would have rejected these keys.auto-update-helper.sh: Replace the env-var-onlyConfiguration:header with a three-column table (JSONC key | env override | default) covering all 10 update settings, making JSONC config discoverable. UpdateRATE LIMITSsection to reference JSONC dotpaths and add upstream watch entry.Verification
shellcheckpasses on all modified shell scripts (zero violations)get_feature_toggle upstream_watch_hoursnow routes throughconfig_get "updates.upstream_watch_hours"in JSONC mode, which checksAIDEVOPS_UPSTREAM_WATCH_HOURSenv var first, then JSONC user config, then defaults — matching the pattern used by all other numeric intervalsCloses #3277