matrx-orm 3.1.151__tar.gz → 3.1.153__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/.gitignore +10 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/PKG-INFO +2 -2
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/client/supabase_auth.py +20 -3
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/pyproject.toml +2 -2
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_supabase_auth.py +43 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/AGENTS.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/BASE_CLASS_METHODS.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/CLAUDE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/MODEL_API.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/database/orm/extended/managers/ai_model_base.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/docs/migrations.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/FEATURE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/adapters/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/adapters/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/adapters/async_postgresql.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/adapters/base_adapter.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/adapters/postgresql.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/adapters/supabase_adapter.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/admin/FEATURE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/admin/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/admin/router.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/api/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/api/auth.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/api/config.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/api/handlers.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/api/protocol.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/api/server.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/associations.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/cache_debug.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/catalog.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/catalog_sql.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/client/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/client/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/client/postgres_connection.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/client/postgrest.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/client/supabase_config.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/client/supabase_manager.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/EXTENDED-TASK.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/FEATURE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/TASKS.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/async_db_manager.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/base.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/config.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/connections.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/db_function.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/diagnostics.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/expressions.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/extended.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/fields.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/introspection.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/listen.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/loop_filters.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/model_dto.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/model_view.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/one_database.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/paginator.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/pool_maintenance.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/pool_watch.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/pooler_role.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/pydantic_bridge.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/registry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/relations.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/resilience.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/rls_session.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/session_context.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/signals.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/tls.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/transaction.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/types.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/write_queue.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/core/write_retry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/entity.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/error_handling.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/exceptions.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/extended/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/extended/app_error_handler.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/identity_rule.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/local_sqlite.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/middleware/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/middleware/base.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/cli.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/ddl.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/diff.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/executor.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/integration.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/loader.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/operations.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/state.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/migrations/table_filter.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/no_org_assignment.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/FEATURE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/bulk_update_values.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/catalog_select.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/conflict.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/conflict_writes.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/create.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/db_functions.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/delete.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/dynamic_admin.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/dynamic_crud.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/graph_walk.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/latest_rows.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/queue_claim.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/read.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/relational_backfill.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/staging_load.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/operations/update.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/platform_access.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/platform_db.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/py.typed +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/pytest_plugin.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/python_sql/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/python_sql/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/python_sql/db_objects.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/query/FEATURE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/query/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/query/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/query/builder.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/query/executor.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/resources/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/resources/additional-assigners-2026-09-12.json +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/resources/org_assignment_trigger_baseline.json +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/FEATURE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/code_handler.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/codegen_writer.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/columns.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/common.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/diff_preview.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/generator.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/package_wiring.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/relationships.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/runner.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/schema.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/schema_manager.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/tables.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/views.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/FEATURE.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/attachments.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/crypto.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/host_authorization.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/items.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/model.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/mutation_receipts.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/org_service.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/secrets_battery/service.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/coalesce.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/dag.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/errors.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/fallback.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/flush.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/lifecycle.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/managed.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/op.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/reads.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/session.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/session/telemetry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/sql_executor/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/sql_executor/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/sql_executor/executor.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/sql_executor/queries.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/sql_executor/registry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/sql_executor/types.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/sql_executor/utils.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/state.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/utils/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/utils/sql_utils.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/utils/type_converters.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/scripts/git-branches.sh +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/scripts/publish.sh +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/scripts/release.sh +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/conftest.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_adapter_registry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_admin_db_columns.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_admin_response_rendering.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_admin_search_negation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_admin_search_sentinels.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_advisory_lock.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_agent_message.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_api_auth.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_api_config.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_api_handlers.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_api_protocol.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_array_agg_order_by.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_associations.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_associations_wiring.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_bulk_hydration_offload.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_bulk_update_by_pk.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_cache_debug.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_call_function.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_case_when.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_catalog.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_committed_row_guard.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_composite_pk_filter.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_composite_pk_write_paths.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_config.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_conflict_target.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_conflict_writes.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_connection_codecs.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_connection_poison_guard.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_connection_primitives.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_count_composite_distinct.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_count_limit_param_leak.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_db_function_field.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_ddl_generator.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_deadlock_retry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_derived_table.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_dirty_tracking.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_dynamic_crud.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_exceptions.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_execute_query_integrity_mapping.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_expression_primitives.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_fields.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_from_alias.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_fts.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_func_expression_args.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_graph_walk.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_having_annotate_alias.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_introspect_rls_policies.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_join_and_aggregate.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_latest_rows.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_listen_notify.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_local_sqlite.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_lock_contention_retry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_managed_write_guard.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_matrx_entity.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_migration_diff_types.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_migration_loader.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_model_instance.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_model_meta.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_optimistic_concurrency.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_order_by_expression.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_org_assignment_inventory.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_parameter_name_hydration.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_patch_jsonb_path.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_persisted_count.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_pool_holder_census.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_pool_loop_recreation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_pool_maintenance.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_postgrest_filters.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_pydantic_bridge.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_query_builder.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_query_error_detail.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_query_executor_sql.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_query_timeout.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_queue_claim.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_read_connection_retry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_registry.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_registry_multi_database.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_registry_multi_schema.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_relational_backfill.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_relations.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_resilience.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_rls_session_scope.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_schema_exists.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_session_advisory_lock.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_standalone_write_session_context.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_state_cache.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_subquery_filter_raw.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_subquery_in_filter.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_subquery_nested_expressions.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_supabase_config.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_tls.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_transaction_database_identity.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_typed_join_projection.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_typed_predicates.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_update_case_expression.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_update_subquery.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_update_with_rebase.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_upsert_default_leak.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_upsert_with_conflict.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_values_jsonb_decode.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_watched_lifecycle.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_write_queue_deadline.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level1/test_write_retry_semantics.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/MODULE_README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/conftest.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_bulk_ops.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_cache_integration.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_crud.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_foreign_keys.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_m2m.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_manager.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_migrations_live.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_query_execution.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/test_schema_diff.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/level2/verify_committed_row_guard_pg17.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/live_pooler_role.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project/.env.example +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project/README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project/generate.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project/generated/.gitkeep +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project/matrx_orm.yaml +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project/test_schema_generation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project_desktop/.env.example +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project_desktop/README.md +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project_desktop/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project_desktop/client_example.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project_desktop/client_example.ts +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project_desktop/client_supabase_example.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/sample_project_desktop/server.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/entity_tests.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_base_generation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_composite_pk_fk_generation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_composite_unique_generation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_dto_identity_generation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_entity_capability_generation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_enum_ordering.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_generate_schema.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_junction_analysis.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_multi_schema_output.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_schema_analysis.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_sql_expression_defaults.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_table_relationships_query.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema/test_view_generation.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema_builder/test_array_default_parsing.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema_builder/test_focused_generation_plan.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/schema_builder/test_host_models_aggregator.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/__init__.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/conftest.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_cache_no_downgrade.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_capture_poison_proof.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_coalesce.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_dag.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_disk_spill_fallback.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_flush_individual_fallback.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_governed_write.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_managed.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_op_enqueue_site.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_reads.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_record_error_bounded_insert.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_record_error_storm.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_session.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/session/test_spill_guard_plugin.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_array_arg_element_type.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_database_name_alias.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_db_functions.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_dynamic_select_unregistered.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_immutable_insert_or_exact_verify.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_keyed_digest.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_model_cls_refactor.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_no_blocking_asyncpg_tls.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_one_database.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_order_by_desc_nulls_last.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_pooler_role_guard.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_secrets_battery.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_secrets_minting_keys.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_sql_param_casts.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_sync_twins_guard.py +0 -0
- {matrx_orm-3.1.151 → matrx_orm-3.1.153}/tests/test_user_visible_lookup.py +0 -0
|
@@ -262,6 +262,16 @@ packages/matrx-utils/matrx_utils/data_in_code/data_history.json
|
|
|
262
262
|
# audit trail is the `metadata.migrations` stamp on the row itself.
|
|
263
263
|
.matrx-migrations/
|
|
264
264
|
|
|
265
|
+
# Trial Bench records written on THIS machine — the trial's JSON record, its §8
|
|
266
|
+
# report and the index that finds them (aidream/services/masterworks/bench/index.py,
|
|
267
|
+
# and the runs a product-started trial writes beside it). They are never repo
|
|
268
|
+
# content: a record carries every arm's full text INCLUDING the expert's ground
|
|
269
|
+
# truth, which is material deliberately withheld from the Rulebook, and a trial
|
|
270
|
+
# that matters is published deliberately under common-docs/projects/<its trial>/.
|
|
271
|
+
# Untracked-but-not-ignored meant one `git add -A` away from committing an
|
|
272
|
+
# expert's withheld work.
|
|
273
|
+
.matrx/bench/
|
|
274
|
+
|
|
265
275
|
# macOS Finder metadata
|
|
266
276
|
.DS_Store
|
|
267
277
|
**/.DS_Store
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: matrx-orm
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.153
|
|
4
4
|
Summary: Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching
|
|
5
5
|
Project-URL: Homepage, https://github.com/AI-Matrix-Engine/aidream-current
|
|
6
6
|
Project-URL: Repository, https://github.com/AI-Matrix-Engine/aidream-current
|
|
@@ -25,7 +25,7 @@ Requires-Python: >=3.13
|
|
|
25
25
|
Requires-Dist: asyncpg>=0.31.0
|
|
26
26
|
Requires-Dist: cryptography>=43.0
|
|
27
27
|
Requires-Dist: gitpython>=3.1.40
|
|
28
|
-
Requires-Dist: matrx-utils>=2.0.
|
|
28
|
+
Requires-Dist: matrx-utils>=2.0.42
|
|
29
29
|
Requires-Dist: psycopg-pool>=3.2.5
|
|
30
30
|
Requires-Dist: psycopg[binary]>=3.2.5
|
|
31
31
|
Requires-Dist: python-dotenv>=1.0
|
|
@@ -198,12 +198,29 @@ class SupabaseAuth:
|
|
|
198
198
|
self._session = AuthSession.from_response(data)
|
|
199
199
|
return self._session
|
|
200
200
|
|
|
201
|
-
async def sign_out(
|
|
202
|
-
|
|
201
|
+
async def sign_out(
|
|
202
|
+
self, access_token: str | None = None, *, scope: str = "local"
|
|
203
|
+
) -> None:
|
|
204
|
+
"""Sign out THIS session only (``scope="local"``) — never the account.
|
|
205
|
+
|
|
206
|
+
GoTrue's ``POST /logout`` defaults to ``scope=global``, which deletes
|
|
207
|
+
EVERY session the account holds: the web app's, the desktop app's, and
|
|
208
|
+
every OAuth-client session (Claude Code, claude.ai, Codex hold their
|
|
209
|
+
AI Dream MCP sign-in as one of these). 2026-09-15: the admin operator
|
|
210
|
+
account was signed out ~30 times a day by browser tests, and each one
|
|
211
|
+
took the MCP session with it — Claude Code then reported "requires
|
|
212
|
+
authentication" and every agent lost its tools. A sign-out ends only
|
|
213
|
+
the session that asked; ``scope="global"`` must be an explicit,
|
|
214
|
+
user-facing "sign out everywhere" decision, never a default.
|
|
215
|
+
"""
|
|
216
|
+
if scope not in {"local", "others", "global"}:
|
|
217
|
+
raise ValueError(f"invalid sign-out scope: {scope!r}")
|
|
203
218
|
token = access_token or (self._session.access_token if self._session else None)
|
|
204
219
|
if token:
|
|
205
220
|
try:
|
|
206
|
-
await self._auth_request(
|
|
221
|
+
await self._auth_request(
|
|
222
|
+
"POST", f"/logout?scope={scope}", {}, access_token=token
|
|
223
|
+
)
|
|
207
224
|
except SupabaseAuthError:
|
|
208
225
|
pass # Sign-out failures are not critical
|
|
209
226
|
self._session = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-orm"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.153"
|
|
4
4
|
description = "Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -41,7 +41,7 @@ dependencies = [
|
|
|
41
41
|
"gitpython>=3.1.40",
|
|
42
42
|
"psycopg[binary]>=3.2.5",
|
|
43
43
|
"psycopg-pool>=3.2.5",
|
|
44
|
-
"matrx-utils>=2.0.
|
|
44
|
+
"matrx-utils>=2.0.42",
|
|
45
45
|
"pyyaml>=6.0.3",
|
|
46
46
|
"python-dotenv>=1.0",
|
|
47
47
|
"cryptography>=43.0",
|
|
@@ -81,3 +81,46 @@ class TestSupabaseAuthError:
|
|
|
81
81
|
assert err.message == "Invalid credentials"
|
|
82
82
|
assert err.status == 401
|
|
83
83
|
assert str(err) == "Invalid credentials"
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
class TestSignOutScope:
|
|
87
|
+
"""A sign-out ends only the session that asked — never the whole account.
|
|
88
|
+
|
|
89
|
+
Forcing function for the 2026-09-15 MCP sign-in loss: a scope-less GoTrue
|
|
90
|
+
``POST /logout`` is ``scope=global`` and deletes every session the account
|
|
91
|
+
holds, including the OAuth-client session Claude Code uses for AI Dream MCP.
|
|
92
|
+
This test fails on the old body (bare ``/logout``) and passes on the fix.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
def _auth(self):
|
|
96
|
+
import asyncio
|
|
97
|
+
|
|
98
|
+
from matrx_orm.client.supabase_auth import SupabaseAuth
|
|
99
|
+
|
|
100
|
+
auth = SupabaseAuth.__new__(SupabaseAuth)
|
|
101
|
+
auth._session = None
|
|
102
|
+
calls: list[tuple[str, str]] = []
|
|
103
|
+
|
|
104
|
+
async def fake_request(method, path, body=None, access_token=None):
|
|
105
|
+
calls.append((method, path))
|
|
106
|
+
return {}
|
|
107
|
+
|
|
108
|
+
auth._auth_request = fake_request # type: ignore[method-assign]
|
|
109
|
+
return auth, calls, asyncio
|
|
110
|
+
|
|
111
|
+
def test_default_sign_out_is_local(self) -> None:
|
|
112
|
+
auth, calls, asyncio = self._auth()
|
|
113
|
+
asyncio.run(auth.sign_out("tok"))
|
|
114
|
+
assert calls == [("POST", "/logout?scope=local")]
|
|
115
|
+
|
|
116
|
+
def test_global_sign_out_must_be_explicit(self) -> None:
|
|
117
|
+
auth, calls, asyncio = self._auth()
|
|
118
|
+
asyncio.run(auth.sign_out("tok", scope="global"))
|
|
119
|
+
assert calls == [("POST", "/logout?scope=global")]
|
|
120
|
+
|
|
121
|
+
def test_unknown_scope_is_refused(self) -> None:
|
|
122
|
+
import pytest
|
|
123
|
+
|
|
124
|
+
auth, _calls, asyncio = self._auth()
|
|
125
|
+
with pytest.raises(ValueError):
|
|
126
|
+
asyncio.run(auth.sign_out("tok", scope="everything"))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/python_sql/table_detailed_relationships.py
RENAMED
|
File without changes
|
{matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/python_sql/table_typescript_relationship.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/resources/additional-assigners-2026-09-12.json
RENAMED
|
File without changes
|
{matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/resources/org_assignment_trigger_baseline.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{matrx_orm-3.1.151 → matrx_orm-3.1.153}/matrx_orm/schema_builder/helpers/entity_generators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|