fix: allow disabling the built-in todo surface #278

Closed
nsaspy wants to merge 10 commits from fix/246-disable-todo-surface into master
Owner

Fixes #246.

What

Adds a subsystem-level switch:

[todo]
enabled = false

Default remains enabled for backward compatibility.

When disabled, Zara now shuts off the built-in todo surface coherently instead of hiding only one entrypoint:

  • built-in todo LangChain tools are not registered;
  • built-in todo Python skills are hidden from discovery and reject direct execution;
  • built-in todo python_skill_intent/3 mappings are removed from Prolog resolution;
  • explicit todo search/schedule resolver shortcuts honor the same flag;
  • timer/alarm and unrelated intents remain available;
  • the legacy console applies the flag as well as AgentManager/ToolRegistry startup;
  • startup logs report that the built-in todo tools, skills, and intents are disabled;
  • an external plugin/provider can then register otherwise-colliding todo tool names.

Why

This allows zara-org-todos (lost-rob0t/zara-plugins#24) or another provider to become authoritative without Zara silently keeping a second internal todo store active.

Tests

Adds t/test_todo_surface_toggle.py covering:

  • default enabled behavior;
  • disabled tool registration;
  • disabled Python skill discovery/execution;
  • disabled Prolog todo intent resolution;
  • timer resolution remaining intact;
  • provider/plugin takeover of a built-in todo tool name;
  • rejection of non-boolean todo.enabled values.
Fixes #246. ## What Adds a subsystem-level switch: ```toml [todo] enabled = false ``` Default remains enabled for backward compatibility. When disabled, Zara now shuts off the built-in todo surface coherently instead of hiding only one entrypoint: - built-in todo LangChain tools are not registered; - built-in todo Python skills are hidden from discovery and reject direct execution; - built-in todo `python_skill_intent/3` mappings are removed from Prolog resolution; - explicit todo search/schedule resolver shortcuts honor the same flag; - timer/alarm and unrelated intents remain available; - the legacy console applies the flag as well as AgentManager/ToolRegistry startup; - startup logs report that the built-in todo tools, skills, and intents are disabled; - an external plugin/provider can then register otherwise-colliding todo tool names. ## Why This allows `zara-org-todos` (lost-rob0t/zara-plugins#24) or another provider to become authoritative without Zara silently keeping a second internal todo store active. ## Tests Adds `t/test_todo_surface_toggle.py` covering: - default enabled behavior; - disabled tool registration; - disabled Python skill discovery/execution; - disabled Prolog todo intent resolution; - timer resolution remaining intact; - provider/plugin takeover of a built-in todo tool name; - rejection of non-boolean `todo.enabled` values.
Author
Owner

Superseded by #270. The original six-file #246 slice was replayed onto current master because the old PR is non-mergeable and its base is 52 commits stale. None of those six paths changed upstream, and #270 requires fresh exact-head CI before merge.

Superseded by #270. The original six-file #246 slice was replayed onto current `master` because the old PR is non-mergeable and its base is 52 commits stale. None of those six paths changed upstream, and #270 requires fresh exact-head CI before merge.
nsaspy closed this pull request 2026-09-05 01:42:23 +00:00
Some checks failed
CI / test (pull_request) Failing after 10s
CI / android skeleton gate (pull_request) Failing after 8s
CI / shared mic / Ubuntu 24.04 (pull_request) Failing after 6m21s
CI / shared mic / Arch Linux (pull_request) Failing after 11m36s

Pull request closed

Sign in to join this conversation.
No description provided.