consolidate scheduled paths, drop redundant prompt plumbing
- _run_agent + _run_scheduled in agent.py replace four copy-pasted
process_* bodies; matching _run_scheduled in message_handler does the
same for the four handler-side wrappers (~200 lines net delete).
- recent_posts arg removed from every scheduled path; [RECENT OPERATIONS]
already shows the same posts, so we stop double-rendering and skip the
per-run get_own_posts(limit=10).
- empty-when-unset dynamic prompts (last_post / recent_activity /
service_health / author_lookups) deleted; their data now flows directly
into the entry-point user prompt where it's needed. PhiDeps shrinks by
four fields.
- inject_episodic skips scheduled paths — task text like "you have a
moment" wasn't a meaningful semantic query; phi can call recall when
she actually wants private memory.
- single _recent_conversations_block helper replaces two divergent memory
pre-fetch patterns in reflection and musing.
- relay_check / prefect_check tasks tag "the operator" via the [OPERATOR]
block rather than interpolating @{owner_handle}.
- graze_client init moved before the closure that captures it.
- typing fixes for nullable lazy-init agents.
- init log mentions prefect MCP.