Action registry: toast scope and Admin denial recipes need reconciliation #1203

Open
opened 2026-10-06 12:47:54 +00:00 by kayg · 0 comments
Owner

Found during merge30j (#1140), head 688f841d6. Generated registry is fresh: python3 scripts/action_registry.py --check reports 421 operations and 398 generated tools.

python3 -m unittest discover -s scripts -p test_action_registry.py runs 30 tests and fails two existing assertions:

  1. test_smoke_plan_uses_registered_operations_and_required_groups: tests/parity/admin-denial.json lacks remove_licence, create_admin_user, get_licence, set_licence from the registered Admin surface.
  2. test_source_scope_guards_match_every_declared_action: notifications_toast_create in crates/plugins/notifications/src/routes.rs requires account, but its generated scopes contain only data.

The source handlers still enforce access. This is missing contract/verification coverage, not evidence of bypass. Keep the existing assertions. Reconcile the authority declaration and generated contracts with the handler, and extend the denial recipe for every Admin action. Run the 30 registry tests and relevant real-server denial checks. The merge30j requested web and Rust gates are still running.

Found during merge30j (#1140), head 688f841d6. Generated registry is fresh: `python3 scripts/action_registry.py --check` reports 421 operations and 398 generated tools. `python3 -m unittest discover -s scripts -p test_action_registry.py` runs 30 tests and fails two existing assertions: 1. `test_smoke_plan_uses_registered_operations_and_required_groups`: `tests/parity/admin-denial.json` lacks `remove_licence`, `create_admin_user`, `get_licence`, `set_licence` from the registered Admin surface. 2. `test_source_scope_guards_match_every_declared_action`: `notifications_toast_create` in `crates/plugins/notifications/src/routes.rs` requires `account`, but its generated scopes contain only `data`. The source handlers still enforce access. This is missing contract/verification coverage, not evidence of bypass. Keep the existing assertions. Reconcile the authority declaration and generated contracts with the handler, and extend the denial recipe for every Admin action. Run the 30 registry tests and relevant real-server denial checks. The merge30j requested web and Rust gates are still running.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#1203
No description provided.