|
Some checks are pending
CI / lint-and-test (push) Waiting to run
* feat(kb): apply-worker to auto-land approved proposals (stage 2 automation) Event-driven worker that turns a HUMAN-approved kb_stage proposal into canonical state, so an approval in Telegram surfaces in Leo's identity without Leo applying its own work. - Fires only on status='approved' (never pending_review) -> proposer != applier holds; the human approval stays the trigger. No auto-approve anywhere. - Reuses scripts/apply_proposal.py verbatim as the sole apply path (same txn, rowcount=1 guard, FK stamp). Connects as the narrow kb_apply role, never superuser, never inside the hermes harness. - Render hook (--render-cmd / KB_APPLY_RENDER_CMD) is inert until the SOUL renderer (PR2) is deployed; applying still works, rendered SOUL just lags. - Ships INERT: report-only unless --enable / KB_APPLY_WORKER_ENABLED=1. systemd oneshot service + 5min timer, both shipped disabled. - 10 unit tests; candidate query validated read-only vs prod (0 applyable today). * fix(kb): apply-worker --max-per-tick cap + poison-pill retry ceiling Fixer draft-exit items: - --max-per-tick=1 (default): an enabled worker lands applies one-at-a-time and observably instead of draining the whole approved queue in one tick. - --max-attempts=3 ceiling with a persisted failure-count state file: a deterministically-failing approved proposal is treated as a poison pill and skipped after N consecutive failures, instead of retrying every tick forever. State persists on disk because the worker runs oneshot per timer tick. Both are inert until the worker is enabled; it still ships disabled. |
||
|---|---|---|
| .. | ||
| apply_proposal.py | ||
| apply_worker.py | ||
| audit-wiki-links.py | ||
| backfill-ci.py | ||
| backfill-descriptions.py | ||
| backfill-domains.py | ||
| backfill-events.py | ||
| backfill-research-session-attribution.py | ||
| backfill-reviewer-count.py | ||
| backfill-source-authors.py | ||
| backfill-sourcer-attribution.py | ||
| backfill-sources.py | ||
| backfill-synthetic-recovery-prs.py | ||
| bootstrap-contributors.py | ||
| check_crabbox_ci_contract.py | ||
| check_llm_refinement_contract.py | ||
| check_telegram_leo_wallet_test_runtime.py | ||
| check_telegram_leo_x402_bridge.py | ||
| check_telegram_leo_x402_smart_research_bridge.py | ||
| classify-contributors.py | ||
| contributor-graph.py | ||
| crabbox_phase1b_proof.sh | ||
| cumulative-growth.py | ||
| embed-claims.py | ||
| extract-decisions.py | ||
| extract-graph-data.py | ||
| install_telegram_agent_token.py | ||
| install_telegram_smart_research_gates.py | ||
| kb_apply_prereqs.sql | ||
| migrate-entity-schema.py | ||
| migrate-source-archive.py | ||
| nightly-reweave.sh | ||
| normalize-submitted-by.py | ||
| openrouter-extract-v2.py | ||
| prove_phase1b_local.py | ||
| reattribute-by-branch-prefix.py | ||
| reconcile-source-status.sh | ||
| reconcile-sources.py | ||
| replay_decision_engine_eval.py | ||
| reset-m3taversal-sourcer.py | ||
| scoring_digest.py | ||
| tier0-gate.py | ||
| vector-gc.py | ||