# NousResearch/hermes-agent · Configurable block recurrence limit and kanban fixes

## Open now

- 2 issues, 7 PRs open on GitHub.
- #59333: \[Feature\]: Use config for BLOCK_RECURANCE_LIMIT
- #66909: \[Feature\]: Please allow to modify BLOCK_RECURRENCE_LIMIT
- PR #59367: feat(kanban): make block recurrence limit configurable
- PR #59536: feat(kanban): make block recurrence limit configurable
- PR #59645: feat(cron): make BLOCK_RECURANCE_LIMIT configurable (#59333)
- PR #60476: feat(cron): add configurable max_repeat safeguard for cron job repeats (#59333)
- PR #63723: fix(kanban): persist pass-loop state on task rows
- PR #66632: fix(kanban): guard dependency block after successor creation
- PR #68027: fix(kanban): freeze repeated identical failures

These items cover making the block recurrence/repeat limit configurable via settings or environment variables, plus several kanban-specific fixes around pass-loop state persistence, dependency guard logic, and repeated failure handling.

## TL;DR

- 9 member(s): 2 open issue(s), 0 closed issue(s), 7 open PR(s), 0 merged PR(s), 0 PR(s) closed without merging.
- No fix has been merged to main; one or more PRs were attempted (see below).
- **Recommended:** review the prior/competing PR(s) below. A fix was attempted but not merged; your case may extend or revive that work.

## Maintainer resolution verdict

- Internal-tracker verdict over this cluster's issue members: `unresolved`. This is distinct from the fix status above. Weigh it yourself.

## How this cluster was grouped

- Link evidence (`STRUCTURAL_SPANNING`): every member is connected by structural evidence: shared changed files, or a closing/superseded reference.
- Pairwise link density `0.32`: the share of member pairs that carry a link, counting a structural link in full and a relevance-only link at 0.36. `1.00` means every pair is linked.

## Open related issues

- #59333: \[Feature\]: Use config for BLOCK_RECURANCE_LIMIT
- #66909: \[Feature\]: Please allow to modify BLOCK_RECURRENCE_LIMIT

## Prior & competing PRs

- **#59367: feat(kanban): make block recurrence limit configurable**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#66909`, `#66909`, `#66909`, `#66909`, `#66909`
  - files: `hermes_cli/config.py`, `hermes_cli/kanban_db.py`, `tests/hermes_cli/test_kanban_block_kinds.py`, `website/docs/user-guide/features/kanban.md`
- **#59536: feat(kanban): make block recurrence limit configurable**. open
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#59367`, `#59333`
  - files: `hermes_cli/config.py`, `hermes_cli/kanban_db.py`, `tests/hermes_cli/test_kanban_block_kinds.py`, `website/docs/user-guide/features/kanban.md`
- **#59645: feat(cron): make BLOCK_RECURANCE_LIMIT configurable (#59333)**. open
  - maintainer direction: category `duplicate_of`; implication `duplicate`; refs `#59367`, `#59333`, `#59367`, `#59536`, `#59367`
  - files: `cli-config.yaml.example`, `hermes_cli/kanban_db.py`, `tests/cron/test_block_recurrence_config.py`
- **#60476: feat(cron): add configurable max_repeat safeguard for cron job repeats (#59333)**. open
  - maintainer direction: category `uncategorized`; implication `needs_llm`; refs `#59333`
  - files: `cron/jobs.py`, `cron/scheduler.py`, `tests/cron/test_scheduler.py`
- **#63723: fix(kanban): persist pass-loop state on task rows**. open
  - maintainer direction: category `partial_fix`; implication `needs_llm`; refs `f9061fdff42b`, `#59333`, `#66909`, `#59367`, `#59536`, `#59645`, `#52848`, `#66909`, `#59333`, `#59367`, `#52848`, `#58695`, `#59367`, `#59333`, `#66909`, `#59536`, `#59367`, `#59645`, `#59367`, `#59906`, `#60476`, `#61366`, `#61372`, `#58695`, `#63723`, `#64585`, `#61366`, `#66632`, `#68027`, `#59536`, `#59645`, `#59367`, `#61372`, `#58695`, `#61366`, `#64585`, `#59367`, `#59536`, `#59645`, `#59367`, `#66909`, `#59333`, `#68027`, `#59906`, `#61366`, `#64585`, `#66632`, `#60476`, `#59333`, `#58695`, `#61372`, `#63723`
  - files: `hermes_cli/kanban_db.py`, `tests/hermes_cli/test_kanban_block_kinds.py`, `tests/hermes_cli/test_kanban_db.py`
- **#66632: fix(kanban): guard dependency block after successor creation**. open
  - maintainer direction: category `partial_fix`; implication `needs_llm`; refs `490ec1e1901f`, `#59333`, `#66909`, `#59367`, `#59536`, `#59645`, `#52848`, `#66909`, `#59333`, `#59367`, `#52848`, `#58695`, `#59367`, `#59333`, `#66909`, `#59536`, `#59367`, `#59645`, `#59367`, `#59906`, `#60476`, `#61366`, `#61372`, `#58695`, `#63723`, `#64585`, `#61366`, `#66632`, `#68027`, `#59536`, `#59645`, `#59367`, `#61372`, `#58695`, `#61366`, `#64585`, `#59367`, `#59536`, `#59645`, `#59367`, `#66909`, `#59333`, `#68027`, `#59906`, `#61366`, `#64585`, `#63723`, `#60476`, `#59333`, `#58695`, `#61372`
  - files: `hermes_cli/kanban_db.py`, `tests/hermes_cli/test_kanban_block_kinds.py`
- **#68027: fix(kanban): freeze repeated identical failures**. open
  - maintainer direction: category `partial_fix`; implication `needs_llm`; refs `1de33a88723c`, `#59333`, `#66909`, `#59367`, `#59536`, `#59645`, `#66909`, `#59333`, `#59367`, `#52848`, `#58695`, `#59367`, `#59333`, `#66909`, `#59536`, `#59367`, `#59367`, `#59645`, `#59367`, `#59906`, `#60476`, `#61366`, `#61372`, `#58695`, `#63723`, `#64585`, `#61366`, `#66632`, `#68027`, `#59536`, `#59645`, `#59367`, `#61372`, `#58695`, `#61366`, `#64585`, `#59367`, `#59536`, `#59645`, `#59367`, `#66909`, `#59333`, `#68027`, `#59906`, `#61366`, `#64585`, `#63723`, `#60476`, `#59333`, `#58695`, `#61372`
  - files: `gateway/kanban_watchers.py`, `hermes_cli/kanban.py`, `hermes_cli/kanban_db.py`, `hermes_cli/kanban_decompose.py`, `plugins/kanban/dashboard/plugin_api.py`, `tests/hermes_cli/test_kanban_block_kinds.py`, `tests/hermes_cli/test_kanban_core_functionality.py`, `tests/hermes_cli/test_kanban_db.py`, `tests/hermes_cli/test_kanban_decompose.py`, `tests/plugins/test_kanban_dashboard_plugin.py`, `tests/tools/test_kanban_tools.py`, `tools/kanban_tools.py`

## Fix status

- No merged fix on record.
- Subsystem: `cron`
