{"version":"2.1.304","anchor":"scheduled-tasks-carry-a-plugin-origin","canonical_anchor":"scheduled-tasks-carry-a-plugin-origin","heading":"Scheduled tasks, monitors and hook handbacks now record which plugin started them","tier":"internal","area":"Scheduled Tasks","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304\/e\/scheduled-tasks-carry-a-plugin-origin","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.304","markdown":"### Scheduled tasks, monitors and hook handbacks now record which plugin started them\n\nScheduled tasks, monitor notices and hook handbacks now carry the name of the plugin behind them\n\n**What**\n\nA plugin is an add-on package that extends Claude Code. Several things a plugin can start now remember which plugin started them:\n\n- Scheduled (cron) tasks keep an optional `plugin` field. It is saved with the task, kept when tasks are restored or taken over, shown in the task list and sent on the SDK event. A task whose stored plugin name breaks the naming rule is skipped. When the task fires it passes `scheduledByPlugin`.\n\n- Monitor task notifications record `scheduledByPlugin`. Housekeeping notices such as WebSocket closed or Monitor stopped are held back while that plugin is active, instead of always being queued straight away.\n\n- Handback results from a hook, which is code a plugin runs at set moments, now include `plugin: hookCaller` when a plugin called the hook and `hookServesModel` is not set.\n\nThe tool context also exposes `hookServesModel` and `pluginUnnamed`.\n\n**Why**\n\nWork a plugin starts can be traced back to that plugin, and monitors scheduled by a plugin no longer interrupt with routine notices while the plugin is running.\n\n- Area: Scheduled Tasks\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 3\/5\n- Scope: individual\n- Heads-up: no"}