diff --git a/nextcloud_mcp_server/server/semantic.py b/nextcloud_mcp_server/server/semantic.py index ec93a851..8d78849f 100644 --- a/nextcloud_mcp_server/server/semantic.py +++ b/nextcloud_mcp_server/server/semantic.py @@ -548,10 +548,13 @@ def configure_semantic_tools(mcp: FastMCP): "user_id": username, "fusion": fusion, # Bounded copy — see _USAGE_METADATA_MAX_DOC_TYPES. + # Both None and [] normalize to null so a future + # metadata->'doc_types' IS NULL query counts the + # all-types case consistently. "doc_types": ( doc_types[:_USAGE_METADATA_MAX_DOC_TYPES] if doc_types - else doc_types + else None ), }, # The outer guard already confirmed the flag, so pass diff --git a/tests/unit/test_usage_store.py b/tests/unit/test_usage_store.py index 475254c8..aa4b6944 100644 --- a/tests/unit/test_usage_store.py +++ b/tests/unit/test_usage_store.py @@ -185,7 +185,7 @@ async def test_occurred_at_roundtrip(storage, monkeypatch): _set_metering(monkeypatch, True) store = UsageEventStore(storage) eid = str(uuid.uuid4()) - when = datetime(2026, 6, 10, 12, 0, 0, tzinfo=timezone.utc) + when = datetime(2026, 1, 15, 12, 0, 0, tzinfo=timezone.utc) await store.record_usage_event( metric="pages_chunks", value=1, event_id=eid, occurred_at=when )