Skip to content

0.4.2 → 0.4.3 — Live Tool-module Schema Refetching¤

Summary¤

BaseModule now clears resolved_tools on startup so that any tool module whose schema changed between mission runs is re-discovered on the next run, without needing a setup-version bump. Until this release, a redeployed or upgraded tool module's new schema was only picked up once the consuming setup's version was bumped — a manual step that was easy to forget and caused stale tool catalogues to linger in production.

No public API change; consumers see the new behaviour automatically on the next module boot.

What changes¤

BaseModule — clear resolved_tools on startup¤

SetupModel.resolved_tools is a persisted cache keyed by setup_id, populated by ToolReference.resolve and read at every mission run. Its invalidation contract until now was tied to the setup-version bump: a new setup version dropped the persisted entry, any older version reused it verbatim.

BaseModule now clears resolved_tools during its own startup, so:

  • a freshly booted module re-resolves every ToolReference against the live registry, picking up the current ModuleInfo (including any schema changes from a redeployed tool module);
  • the next mission run then re-populates resolved_tools with the fresh catalogue, which subsequent runs in the same module lifecycle continue to reuse (the per-run cache layer is unchanged).

The end-user effect: redeploying a tool module no longer requires a downstream setup-version bump for its consumers to see the new schema. Restarting the consuming module is enough.

Migration¤

None. The clear runs at startup automatically. If you previously relied on bumping setup versions just to flush resolved_tools, you can drop that step from your release process — restarting the module achieves the same invalidation.