The worker was not loading the OperationValidatorExtension, so
operation validation was silently skipped for all async operations
(e.g. refresh_mental_model triggered after consolidation). The API
server already loaded this extension but the worker entry point was
missing it.
* fix: custom pg schema is not reliable
* fix
* fix
* fix: WorkerPoller now always has tenant extension
Ensures WorkerPoller follows same pattern as MemoryEngine - always
creates a DefaultTenantExtension if none is provided, preventing
NoneType errors when calling list_tenants().
Fixes test failures in test_worker.py
* fix: DefaultTenantExtension honors explicit schema parameter
Allows WorkerPoller's schema parameter to be passed through to
DefaultTenantExtension via config dict, maintaining backward
compatibility for tests that use schema parameter without
providing a tenant extension.
Fixes test_poller_with_custom_schema test failure.
The worker loaded the tenant extension for the poller (schema discovery)
but did not pass it to MemoryEngine. When execute_task set _current_schema
via the _schema field, _authenticate_tenant would immediately reset it to
"public" because self._tenant_extension was None, causing all worker writes
to land in the public schema instead of the tenant schema.
Move load_extension() before MemoryEngine creation and pass
tenant_extension to the constructor.