Skip to content

[draft] fix: make curator deletes recoverable#20480

Closed
izaiahat wants to merge 22 commits into
NousResearch:mainfrom
izaiahat:kael/curator-archive-restore-20260505
Closed

[draft] fix: make curator deletes recoverable#20480
izaiahat wants to merge 22 commits into
NousResearch:mainfrom
izaiahat:kael/curator-archive-restore-20260505

Conversation

@izaiahat
Copy link
Copy Markdown

@izaiahat izaiahat commented May 6, 2026

Summary

  • Archive curator-declared skill deletes (absorbed_into present) instead of destructively removing skill directories.
  • Preserve category/support-file trees under .archive/ and make restore frontmatter-safe/path-safe.
  • Add hermes curator repair-usage to reconcile orphan or misaligned curator-managed usage records.
  • Update dry-run/operator-gate wording so scheduled Curator runs are autonomous while pinned skills, backups, and audit artifacts stay protected.

Verification

  • git diff --check
  • Static added-line security scan: no hardcoded secrets / shell injection / eval / pickle / SQL string-format patterns.
  • ./venv/bin/python -m pytest tests/tools/test_skill_manager_tool.py tests/tools/test_skill_usage.py tests/hermes_cli/test_curator_status.py tests/hermes_cli/test_curator_archive_prune.py tests/agent/test_curator_classification.py tests/agent/test_curator_backup.py -q219 passed
  • hermes curator run --sync --dry-run → completed with no mutations.
  • Live restore/archive smoke test on archived ab-test-setup → passed; usage cleaned back to 67 managed records.
  • Independent pre-commit reviewer subagent passed after two fix rounds.

Full-suite note

./venv/bin/python -m pytest -q was attempted in this live profile and remains red from unrelated baseline/environment failures: 114 failed, 20015 passed, 73 skipped. Failures are in Discord/gateway/delegation/provider/environment tests, not the changed Curator files.

Ubuntu added 22 commits May 5, 2026 21:43
- archive curator-declared skill deletes instead of rmtree
- restore archived skills by frontmatter-safe lookup with path validation
- add usage repair command for orphan managed records
- update autonomous curator dry-run/operator-gate docs

Verification:
- targeted curator/skill tests: 219 passed
- curator dry-run completed with no mutations
- live restore/archive smoke test passed
- independent reviewer passed
- full suite still has unrelated baseline failures (114 failed, 20015 passed)
@alt-glitch alt-glitch added type/feature New feature or request comp/agent Core agent loop, run_agent.py, prompt builder comp/cli CLI entry point, hermes_cli/, setup wizard tool/skills Skills system (list, view, manage) P3 Low — cosmetic, nice to have labels May 6, 2026
@teknium1
Copy link
Copy Markdown
Contributor

Thanks for the curator-deletes work @izaiahat — closing with context, not because the work is bad.

Most of the PR body is already on main. Archive-instead-of-destroy shipped in #18731 (April), hermes curator restore and list-archived already exist on hermes_cli/curator.py, and absorbed_into is already required on skill_manage(action='delete'). So the headline claims ("archive curator-declared deletes instead of destructively removing", "preserve category trees under .archive/") are no-ops against current main.

The substantive new piece — hermes curator repair-usage for orphan usage records — is buried in a 5,611-line, 42-file diff that also contains KAEL-DELEGATION-ROUTING-V2.md, scripts/kael_delegation_router.py, ops/systemd/enzyme-embedding-daemon.service, TUI memory.ts changes, checkpoint manager, runtime export systemd timers, and a delegation-system-v2 partial that the commit message itself flags as blocked. Cherry-picking the curator pieces out of that scope would be archaeology, and we'd risk pulling in stale dependencies on the unrelated subsystems.

If you want to land repair-usage upstream, please open a fresh PR with just the curator-state reconciliation logic + its tests (likely <300 LOC against tools/skill_usage.py + a CLI command in hermes_cli/curator.py). Happy to review that focused version. The kael delegation routing and enzyme daemons make sense as their own personal fork — they don't need to ride along.

Closing this one to keep the queue legible. Your authorship will land cleanly when the focused curator PR opens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/agent Core agent loop, run_agent.py, prompt builder comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have tool/skills Skills system (list, view, manage) type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants