Brian Bjarke Jensen and Cursor
f6ee9a3724
Add runtime-checkable Protocol typing to all public interfaces.
...
PR Title Check / check-title (pull_request) Successful in 7s
Test Python Package / unit-tests (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Successful in 22s
Test Python Package / integration-tests (pull_request) Successful in 24s
Test Python Package / coverage-report (pull_request) Successful in 8s
Enables structural subtyping for consumers while preserving nominal adapter inheritance, instantiation guards, and scan_keys defaults.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-11 09:45:42 +02:00
Brian Bjarke Jensen and Cursor
57b396bcd3
Allow empty payloads in Redis and MinIO adapters.
...
PR Title Check / check-title (pull_request) Successful in 8s
Test Python Package / unit-tests (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 20s
Test Python Package / integration-tests (pull_request) Successful in 24s
Test Python Package / coverage-report (pull_request) Successful in 11s
Relax write validation so {} and zero-byte BytesIO round-trip correctly,
document None-vs-empty semantics on interfaces and adapters, and add
integration tests for placeholders and existence distinction.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-10 21:39:51 +02:00
Brian Bjarke Jensen and Cursor
565879dd52
Unify dev tooling via uv so pre-commit, CI, and the update bot stay aligned.
...
Test Python Package / unit-tests (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 19s
PR Title Check / check-title (pull_request) Successful in 31s
Test Python Package / integration-tests (pull_request) Successful in 23s
Test Python Package / coverage-report (pull_request) Successful in 10s
Route Python hooks through uv run with versions pinned in uv.lock, add explicit
Ruff settings, and extend the dependency bot to run pre-commit autoupdate.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-10 14:29:22 +02:00
Brian Bjarke Jensen and Cursor
b886a7c147
Use structured fields for adapter debug and info logs.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 9s
Code Quality Pipeline / code-quality (pull_request) Failing after 14s
Test Python Package / integration-tests (pull_request) Successful in 1m2s
Test Python Package / coverage-report (pull_request) Successful in 11s
Replace f-string log messages with structlog keyword fields so events aggregate cleanly and Redis payloads are not logged verbatim.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-10 14:00:34 +02:00
Brian Bjarke Jensen and Cursor
42e885edd5
Use dict[str, Any] for JSON repository document types.
...
PR Title Check / check-title (pull_request) Successful in 6s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m28s
Test Python Package / unit-tests (pull_request) Successful in 1m29s
Test Python Package / coverage-report (pull_request) Successful in 16s
Test Python Package / integration-tests (pull_request) Successful in 48s
Clarifies that JSON CRUD operates on string-keyed objects without changing runtime behavior.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-09 18:41:23 +02:00
Brian Bjarke Jensen and Cursor
67bb88fbb4
Align Redis and MinIO connect() idempotency in ConnectionAwareAdapter.
...
PR Title Check / check-title (pull_request) Successful in 5s
Test Python Package / unit-tests (pull_request) Successful in 13s
Test Python Package / integration-tests (pull_request) Successful in 30s
Test Python Package / coverage-report (pull_request) Failing after 15s
Code Quality Pipeline / code-quality (pull_request) Successful in 53s
Move shared connect orchestration into the base adapter so both backends short-circuit when already healthy and only reconnect after a failed probe.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-09 15:46:39 +02:00
Brian Bjarke Jensen and Cursor
4a5b3b631f
Make MinIO bucket creation opt-in with production-safe defaults.
...
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / unit-tests (pull_request) Successful in 18s
Code Quality Pipeline / code-quality (pull_request) Successful in 1m28s
Test Python Package / integration-tests (pull_request) Failing after 1m54s
Test Python Package / coverage-report (pull_request) Has been skipped
Require buckets to exist by default on connect, extract env_bool parsing, and document local dev overrides for secure and auto-creation settings.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-09 14:52:14 +02:00
Brian Bjarke Jensen and Cursor
50444af982
Add Redis scan_keys iterator API.
...
Test Python Package / unit-tests (pull_request) Successful in 14s
Code Quality Pipeline / code-quality (pull_request) Successful in 32s
Test Python Package / coverage-report (pull_request) Successful in 16s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / integration-tests (pull_request) Successful in 1m3s
Provide a SCAN-based key iterator for Redis adapters so callers can enumerate large keyspaces without relying on blocking KEYS lookups.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-08 21:06:13 +02:00
Brian Bjarke Jensen and Cursor
3aa91280ec
Load MINIO_SECURE from env and replace adapter asserts with explicit errors.
...
Code Quality Pipeline / code-quality (pull_request) Successful in 32s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Successful in 57s
Default TLS to enabled for production MinIO setups while keeping local and integration tests on plain HTTP via explicit secure=false configuration.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-06 20:45:37 +02:00
Brian Bjarke Jensen and Cursor
7991dabdbc
Add config and client injection with test reorganization.
...
Introduce typed config objects, optional adapter injection, and .env loading to simplify testing while preserving env-based defaults for production usage.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-06 20:44:08 +02:00
Brian Bjarke Jensen and Cursor
7b950e0d93
Extract shared connection lifecycle into ConnectionAwareAdapter.
...
Move duplicated context-manager, health-check cache, and connection guards from Redis and Minio adapters into an internal base class.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-05 16:09:25 +02:00
Brian Bjarke Jensen and Cursor
5149299c1b
Strengthen is_connected with cached health probes.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 35s
PR Title Check / check-title (pull_request) Successful in 6s
Test Python Package / test (pull_request) Successful in 1m9s
Convert is_connected to a method that verifies backend liveness via TTL-cached ping (Redis) or bucket_exists (MinIO), with cache invalidation on connect/disconnect.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-07-05 15:28:25 +02:00
Brian Bjarke Jensen and Cursor
c6eed43d70
Fix optional dependency handling for Redis and MinIO adapters.
...
Lazy-load adapters at package boundaries and fail fast with install hints when extras are missing.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-30 15:47:04 +02:00
Brian Bjarke Jensen and Cursor
497533f0e3
Fix mypy context manager typing for adapter subclasses.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 26s
Test Python Package / test (pull_request) Successful in 1m7s
Return Self from __enter__ so with-blocks preserve subclass types, and align mypy python_version with the 3.12 runtime target.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-28 19:42:15 +02:00
Brian Bjarke Jensen and Cursor
e98fd3b90d
Add public repository interfaces and subclassable adapter CRUD API.
...
Code Quality Pipeline / code-quality (pull_request) Failing after 19s
Test Python Package / test (pull_request) Successful in 50s
Define split JSON and object repository ABCs, promote adapter methods to public CRUD, add example domain repositories, modernize interface stubs, and make the package installable for tests.
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-06-28 10:58:33 +02:00
Brian Bjarke Jensen
e5c4025aeb
added graceful handling of missing optional packages
Code Quality Pipeline / code-quality (pull_request) Successful in 26s
Test Python Package / test (pull_request) Successful in 34s
2025-09-17 12:36:22 +02:00
Brian Bjarke Jensen
396cf83a05
code quality fixes
Code Quality Pipeline / code-quality (pull_request) Successful in 30s
Test Python Package / test (pull_request) Successful in 1m12s
2025-09-17 12:14:37 +02:00
Brian Bjarke Jensen
538b26b62f
mypy fixed
2025-09-17 12:04:45 +02:00
Brian Bjarke Jensen
ee6acc6791
moved import of optional packages into classes
Code Quality Pipeline / code-quality (pull_request) Failing after 1m53s
Test Python Package / test (pull_request) Failing after 22s
2025-09-17 11:44:47 +02:00
Brian Bjarke Jensen
524bd0f06b
fixed connection error handling
2025-09-14 19:52:39 +02:00
Brian Bjarke Jensen
5d7afe7a6c
ruff format corrections
Code Quality Pipeline / code-quality (pull_request) Successful in 16s
Test Python Package / test (pull_request) Failing after 9s
2025-09-14 16:17:04 +02:00
Brian Bjarke Jensen
59a943e39a
added redis types stub and fixed return type
Test Python Package / test (pull_request) Failing after 9s
Code Quality Pipeline / code-quality (pull_request) Failing after 13s
2025-09-14 16:16:01 +02:00
Brian Bjarke Jensen
1abcae4050
added redis adapter
Code Quality Pipeline / code-quality (pull_request) Failing after 42s
Test Python Package / test (pull_request) Failing after 1s
2025-09-14 15:45:19 +02:00