Add a new templating-vault skill that provides secure key-value storage,
Nunjucks template rendering, and a prompt-by-reference protocol that
prevents LLM credential corruption across multi-hop prompt passing.
Key features:
- Script-enforced literal/non-literal variable classification
- Multi-store data directories with prefix-based key routing
- Write-once, type validation, and access level enforcement
- Prompt prepare/retrieve flow so LLMs never reproduce credentials
- Cascading YAML config with CLI --store-dir prefix:path syntax
Also fixes five issues found in the auto-agents overnight failure:
- Fix 1: Fleet verification in auto-agents main loop detects and
relaunches missing supervisors
- Fix 2: Health evaluator no longer counts sleep as meaningful activity
- Fix 3: Supervisors report credential errors instead of silently
entering idle loops; parent agents verify and correct
- Fix 4: New task-discovery-util subagent absorbs large fetch output
to prevent supervisor context pollution
- Fix 5: Supervisor self-diagnostic after 3 consecutive idle cycles
Add pr-review-supervisor to the managed supervisors table with session tag
AUTO-REV-SUP and worker pool ceil(max_workers / 2). Add launch operation
that maps reviewer bot credentials (FORGEJO_REVIEWER_*) as the supervisor's
primary forgejo pat/username/password, keeping the review pipeline on a
separate identity from the primary bot.
Introduce a new supervisor/worker pair for automated peer review of pull
requests. The supervisor dispatches workers based on five prioritised task
groups that partition all unapproved PRs (verified with zero overlap against
live data). The worker performs formal code reviews using the 10-category
CONTRIBUTING.md checklist and submits reviews via the Forgejo API.
New scripts (5): list_prs_addressed_changes_ci_passing,
list_prs_no_active_review_ci_passing, list_prs_addressed_changes_ci_failing,
list_prs_no_active_review_ci_failing, list_prs_missing_ci_checks.
Both agents run entirely on the reviewer bot identity — no primary bot
credentials are used or required.
Add a polling-based blocking mechanism that gates session launches on
current pool utilization. The core script counts busy sessions by mode
(supervisors via -SUP suffix, workers via tag-prefix with -SUP exclusion)
and blocks until the count drops below a configurable threshold or a
mandatory timeout is reached. Two convenience wrappers provide
purpose-specific CLIs for each use case.
o4-mini consistently stops after completing the task-group fetch phase
without transitioning to the dispatch phase. This was reproduced across
9 test rounds with various prompting strategies (anti-narration rules,
checkpoints, simplified dispatch). The model treats data gathering as
a complete unit of work and stops generating before making dispatch
tool calls. Haiku with max reasoning showed better multi-step
continuation in earlier rounds.
FORGEJO_OWNER and FORGEJO_REPO are not set as environment variables
in this environment — they were always resolved by parsing git remote.
The previous commit made printenv the only source and exited on empty,
breaking startup. Now: required vars (PAT, email, name) still exit on
empty, but optional vars (URL, owner, repo) fall back to parsing
git -C /app remote get-url origin.
Root cause: the model introduced a single-character typo when copying
the 40-char hex PAT through the prompt chain (auto-agents → thin wrapper
→ supervisor). This is unreliable by nature — LLMs cannot reliably
copy long opaque strings.
Fix: remove all credential lines from supervisor launch prompts and
thin-wrapper prompt templates. The generic supervisor now reads all
credentials directly from environment variables using printenv commands
at startup. The exact strings returned by printenv are used throughout,
eliminating any opportunity for the model to corrupt them.
- Change checkpoint from echo (blocked by 'echo $*' pattern) to sleep 0
- Rewrite dispatch step to launch ONE worker at a time sequentially
instead of batching, reducing cognitive load on the model
- Simplify implementation supervisor worker parameters: always pass
default tier values (tier 1/haiku, is_first_attempt=true) and let
the worker's dispatcher mode handle escalation logic by reading
comments itself. This eliminates 14+ API calls the supervisor was
supposed to make before each dispatch cycle.
Replace in-memory variable substitution with Write-to-file approach
for both thin-wrapper supervisors. The model writes the prompt to
/tmp with actual values, then reads it back to verify no placeholders
remain. This eliminates the intermittent failure where o4-mini passes
raw {variable} strings instead of substituting actual credentials.
Also increases worker pool size from 4 to 16 for both supervisors
and removes {variable} placeholders from the fetch algorithm section
(replaced with ACTUAL_* markers that must be substituted).
The o4-mini model consistently stops generating after fetching task
groups instead of proceeding to the dispatch phase. Adding mandatory
bash echo checkpoints between fetch and dispatch forces the model
to stay in tool-calling mode through the critical transition.
Applies improved git permission restrictions to prevent workers from
corrupting the main /app repository. Extends protections beyond
implementation-worker to all agents with git bash access.
- Fix listissues typo to list_issues in implementation-supervisor
- Remove references to non-existent forgejo-label-manager and
automation-tracking-manager agents from permissions and prompts
- Fix session tag format: remove brackets from tags in auto-agents
templates so session scripts match correctly
- Clarify session_tag docs in async-agent-util (must not include brackets)
- Add anti-narration rules to supervisor to force tool calls over text
output, preventing context-saturation stop failures
- Strengthen continue logic in both thin-wrapper supervisors to always
re-invoke with task_id instead of narrating and stopping
- Replace vague skill-loading fetch algorithms with exact script
invocation and jq compaction to eliminate trial-and-error startup
and prevent context window overflow from raw Forgejo JSON
- Deny git checkout/switch/branch-D/reset-hard in implementation-worker
bash permissions to prevent workers from corrupting the main repo
Introduces a two-tier session health evaluation pipeline (session-health-evaluator,
session-health-quick-evaluator, session-health-full-evaluator) and a complete set
of TypeScript session management CLI scripts (session_api, session_start, session_stop,
session_prompt, session_list, session_messages, session_find_by_tag,
session_find_by_prefix, session_health_data, session_delete) with matching
reference documentation. Updates async-agent-util and the auto-agents-system skill.