RAGE #260: Python hooks and advice registry #255

Closed
nsaspy wants to merge 0 commits from rage/260-python-hooks-advice into master
Owner

Recovery wrapper for #285 because GitHub's draft→ready mutation still fails in the connector on the unsupported Repository.fullDatabaseId GraphQL field. This PR carries the identical tested head 6dee4a02abc3fba3f6750df35f5825c54c9535cc; no code changed.

Bounded #260 slice:

  • owner-aware AgentLoopAdviceRegistry for the canonical agent-loop boundary;
  • closed before / after / around / override advice kinds;
  • deterministic priority/registration ordering and snapshot dispatch;
  • owner cleanup and typed registration/dispatch failures;
  • sync/async callbacks;
  • fail-closed policy: disabled hooks are inert, and around/override require both [hooks].enabled=true and [hooks].allow_override=true;
  • no second agent loop, authorization path, config owner, or Android production change.

TDD evidence is preserved in the branch RAGE artifacts. Exact head 6dee4a02abc3fba3f6750df35f5825c54c9535cc passed CI #717, including scripts/test-all.sh, nix flake check, packaged Zara build, Android skeleton gate, and both shared-mic jobs. Opening this non-draft wrapper may trigger a fresh PR run; merge only after the exact candidate is green and review/discussion state remains clear.

Issue #260 remains open after this registry slice. User hooks.py loading, AgentManager integration, backend registry, Prolog command advice/override, plugin lifecycle cleanup, diagnostics, and wiki remain follow-on work.

Recovery wrapper for #285 because GitHub's draft→ready mutation still fails in the connector on the unsupported `Repository.fullDatabaseId` GraphQL field. This PR carries the identical tested head `6dee4a02abc3fba3f6750df35f5825c54c9535cc`; no code changed. Bounded #260 slice: - owner-aware `AgentLoopAdviceRegistry` for the canonical agent-loop boundary; - closed `before` / `after` / `around` / `override` advice kinds; - deterministic priority/registration ordering and snapshot dispatch; - owner cleanup and typed registration/dispatch failures; - sync/async callbacks; - fail-closed policy: disabled hooks are inert, and `around`/`override` require both `[hooks].enabled=true` and `[hooks].allow_override=true`; - no second agent loop, authorization path, config owner, or Android production change. TDD evidence is preserved in the branch RAGE artifacts. Exact head `6dee4a02abc3fba3f6750df35f5825c54c9535cc` passed CI #717, including `scripts/test-all.sh`, `nix flake check`, packaged Zara build, Android skeleton gate, and both shared-mic jobs. Opening this non-draft wrapper may trigger a fresh PR run; merge only after the exact candidate is green and review/discussion state remains clear. Issue #260 remains open after this registry slice. User `hooks.py` loading, AgentManager integration, backend registry, Prolog command advice/override, plugin lifecycle cleanup, diagnostics, and wiki remain follow-on work.
nsaspy closed this pull request 2026-09-04 23:10:00 +00:00
Some checks failed
CI / test (pull_request) Failing after 7s
CI / android skeleton gate (pull_request) Failing after 5s
CI / shared mic / Arch Linux (pull_request) Failing after 3m16s
CI / shared mic / Ubuntu 24.04 (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.
No description provided.