ScheduleService as its only scheduling
authority. Schedule definitions live in the schedule store, every firing is
claimed as an occurrence, and the firing host records the outcome before it
advances.
Enable schedule tools
Enable schedule tools on the member profile:meerkat_schedule_{create,get,list,update,pause,resume,delete,occurrences}
tools and the firing host to the same ScheduleService and store.
To read those tools’ definitions (names, descriptions and JSON input schemas)
from a running gateway, call
meta/schedule/tools, or
MobHandle.schedule_tools() in Python and MobHandle.scheduleTools() in
TypeScript. It returns Meerkat’s base definitions without touching the
schedule store. Inside a member’s session, meerkat_schedule_create and
meerkat_schedule_update also accept a current_session session target.
Durable ownership
A persistent gateway stores schedules under its state directory. The firing pipeline has four parts:ScheduleServiceowns definitions and occurrence state.- The schedule host resolves due occurrences.
- The host claims each occurrence before target delivery.
- The terminal firing result is written back to the same store.
Targets
Schedules can target:- a session
- a mob member
- a named host runnable
MetaBuilder.host_runnables(...) and handle
callback/schedule_fire through MetaRuntime.on_schedule_fire(...).
The callback is delivery for a durable occurrence, not a substitute scheduler.
Console schedules
The Console keeps an agent’s console schedules in the same store: messages a Console caller defines in the agent’s details pane and the Console sends to the agent later. Each is a durable schedule whose target is the host runnablemeta.console.scheduled_send, which the gateway reserves: an
application cannot register a host runnable or callback under that name, an
agent’s schedule tools cannot create a schedule that names it, and those tools
neither list nor change console schedules. Each fire is a Console send by the
caller who defined the schedule, judged when it fires: the Console admits that
caller as it would admit a live request by them, then sends as a live send by
them is sent. A refused send fails that occurrence, and the schedule keeps its
later times. See Schedules for
the Console and Console schedules for the
methods.
Rust embedding
Rust embedders can supply a schedule store and attach both schedule tools and the firing host throughmeerkat_meta::schedule_wiring. Keep those two
surfaces on one ScheduleService; using separate stores would split
authoring from firing authority.
Migration from static scheduling
- Remove
.scheduling(...)from Python and TypeScript builders. - Remove
runtime_options.scheduling_files. - Create schedules through the
meerkat_schedule_createtool orScheduleService. - Bind deterministic application work as a host runnable when needed.
- Inspect occurrences through
meerkat_schedule_occurrences.
runtime_options.scheduling_files fails meta/init with
-32602. Calls to either removed meta/scheduling/* method return the
standard -32601 method-not-found error.
See also
- Rust SDK - library-mode composition
- Python SDK - host-runnable callbacks
- RPC API - current contract 0.5.0
