codex-platform 0.2.0__tar.gz → 0.3.0__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.
Files changed (148) hide show
  1. {codex_platform-0.2.0 → codex_platform-0.3.0}/.github/workflows/ci.yml +3 -3
  2. {codex_platform-0.2.0 → codex_platform-0.3.0}/CHANGELOG.md +6 -0
  3. {codex_platform-0.2.0 → codex_platform-0.3.0}/PKG-INFO +10 -10
  4. {codex_platform-0.2.0 → codex_platform-0.3.0}/README.md +8 -8
  5. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/index.md +8 -8
  6. {codex_platform-0.2.0 → codex_platform-0.3.0}/pyproject.toml +12 -1
  7. codex_platform-0.3.0/tools/dev/check.py +13 -0
  8. {codex_platform-0.2.0 → codex_platform-0.3.0}/uv.lock +4 -4
  9. codex_platform-0.2.0/tools/dev/check.py +0 -35
  10. {codex_platform-0.2.0 → codex_platform-0.3.0}/.github/workflows/docs.yml +0 -0
  11. {codex_platform-0.2.0 → codex_platform-0.3.0}/.github/workflows/publish.yml +0 -0
  12. {codex_platform-0.2.0 → codex_platform-0.3.0}/.gitignore +0 -0
  13. {codex_platform-0.2.0 → codex_platform-0.3.0}/.pre-commit-config.yaml +0 -0
  14. {codex_platform-0.2.0 → codex_platform-0.3.0}/.python-version +0 -0
  15. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/changelog.md +0 -0
  16. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/index.md +0 -0
  17. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/channels.md +0 -0
  18. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/arq.md +0 -0
  19. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/base.md +0 -0
  20. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/delivery/direct.md +0 -0
  21. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/dto.md +0 -0
  22. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/index.md +0 -0
  23. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/orchestrator.md +0 -0
  24. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/registry.md +0 -0
  25. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/notifications/renderer.md +0 -0
  26. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/base.md +0 -0
  27. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/index.md +0 -0
  28. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/keys.md +0 -0
  29. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/hash.md +0 -0
  30. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_module.md +0 -0
  31. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/json_string.md +0 -0
  32. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/list_.md +0 -0
  33. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/pipeline.md +0 -0
  34. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/set_.md +0 -0
  35. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/string.md +0 -0
  36. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/operations/zset.md +0 -0
  37. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/redis_service/service.md +0 -0
  38. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/consumer.md +0 -0
  39. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/dispatcher.md +0 -0
  40. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/index.md +0 -0
  41. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/processor.md +0 -0
  42. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/producer.md +0 -0
  43. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/streams/router.md +0 -0
  44. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/base.md +0 -0
  45. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/config.md +0 -0
  46. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/index.md +0 -0
  47. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/task_utils.md +0 -0
  48. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/api/workers/arq/types.md +0 -0
  49. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/notifications/README.md +0 -0
  50. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/notifications/data_flow.md +0 -0
  51. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/redis_service/README.md +0 -0
  52. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/redis_service/data_flow.md +0 -0
  53. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/streams/README.md +0 -0
  54. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/streams/data_flow.md +0 -0
  55. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/workers/README.md +0 -0
  56. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/en/architecture/workers/data_flow.md +0 -0
  57. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/notifications/README.md +0 -0
  58. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/notifications/data_flow.md +0 -0
  59. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/redis_service/README.md +0 -0
  60. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/redis_service/data_flow.md +0 -0
  61. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/streams/README.md +0 -0
  62. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/streams/data_flow.md +0 -0
  63. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/workers/README.md +0 -0
  64. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/ru/architecture/workers/data_flow.md +0 -0
  65. {codex_platform-0.2.0 → codex_platform-0.3.0}/docs/stylesheets/extra.css +0 -0
  66. {codex_platform-0.2.0 → codex_platform-0.3.0}/mkdocs.yml +0 -0
  67. {codex_platform-0.2.0 → codex_platform-0.3.0}/project_structure.txt +0 -0
  68. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/__init__.py +0 -0
  69. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/__init__.py +0 -0
  70. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/channels.py +0 -0
  71. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/__init__.py +0 -0
  72. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/clients/smtp.py +0 -0
  73. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/__init__.py +0 -0
  74. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/arq.py +0 -0
  75. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/base.py +0 -0
  76. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/delivery/direct.py +0 -0
  77. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/dto.py +0 -0
  78. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/interfaces.py +0 -0
  79. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/orchestrator.py +0 -0
  80. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/registry.py +0 -0
  81. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/notifications/renderer.py +0 -0
  82. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/__init__.py +0 -0
  83. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/base.py +0 -0
  84. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/exceptions.py +0 -0
  85. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/keys.py +0 -0
  86. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/__init__.py +0 -0
  87. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/base_manager.py +0 -0
  88. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/managers/site_settings.py +0 -0
  89. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/__init__.py +0 -0
  90. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/hash.py +0 -0
  91. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/json_module.py +0 -0
  92. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/json_string.py +0 -0
  93. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/list_.py +0 -0
  94. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/pipeline.py +0 -0
  95. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/set_.py +0 -0
  96. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/string.py +0 -0
  97. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/operations/zset.py +0 -0
  98. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/redis_service/service.py +0 -0
  99. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/__init__.py +0 -0
  100. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/consumer.py +0 -0
  101. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/dispatcher.py +0 -0
  102. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/processor.py +0 -0
  103. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/producer.py +0 -0
  104. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/streams/router.py +0 -0
  105. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/__init__.py +0 -0
  106. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/__init__.py +0 -0
  107. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/base.py +0 -0
  108. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/config.py +0 -0
  109. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/task_utils.py +0 -0
  110. {codex_platform-0.2.0 → codex_platform-0.3.0}/src/codex_platform/workers/arq/types.py +0 -0
  111. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/__init__.py +0 -0
  112. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/conftest.py +0 -0
  113. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/test_docs_build.py +0 -0
  114. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/test_redis_service.py +0 -0
  115. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/integration/test_streams.py +0 -0
  116. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/__init__.py +0 -0
  117. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/conftest.py +0 -0
  118. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_base.py +0 -0
  119. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_config.py +0 -0
  120. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_public_api.py +0 -0
  121. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_arq_task_utils.py +0 -0
  122. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_adapters.py +0 -0
  123. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_channels.py +0 -0
  124. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_dto.py +0 -0
  125. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_orchestrator.py +0 -0
  126. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_registry.py +0 -0
  127. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_renderer.py +0 -0
  128. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_notification_smtp.py +0 -0
  129. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_base.py +0 -0
  130. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_hash.py +0 -0
  131. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_keys.py +0 -0
  132. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_list.py +0 -0
  133. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_manager.py +0 -0
  134. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_pipeline.py +0 -0
  135. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_service.py +0 -0
  136. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_set.py +0 -0
  137. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_string.py +0 -0
  138. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_redis_zset.py +0 -0
  139. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_site_settings_manager.py +0 -0
  140. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_consumer.py +0 -0
  141. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_dispatcher.py +0 -0
  142. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_processor.py +0 -0
  143. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_producer.py +0 -0
  144. {codex_platform-0.2.0 → codex_platform-0.3.0}/tests/unit/test_stream_router.py +0 -0
  145. {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/__init__.py +0 -0
  146. {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/dev/README.md +0 -0
  147. {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/dev/__init__.py +0 -0
  148. {codex_platform-0.2.0 → codex_platform-0.3.0}/tools/dev/generate_project_tree.py +0 -0
@@ -30,7 +30,7 @@ jobs:
30
30
  run: uv run pre-commit run --all-files
31
31
 
32
32
  - name: Run pip-audit
33
- run: uv run pip-audit
33
+ run: uv run pip-audit --skip-editable --ignore-vuln CVE-2026-4539
34
34
 
35
35
  - name: Run mypy
36
36
  run: uv run mypy src/
@@ -51,8 +51,8 @@ jobs:
51
51
  with:
52
52
  version: "0.10.7"
53
53
 
54
- - name: Sync dev environment
55
- run: uv sync --locked --extra dev
54
+ - name: Sync dev + docs environment
55
+ run: uv sync --locked --extra dev --extra docs
56
56
 
57
57
  - name: Run unit tests
58
58
  run: uv run pytest tests/ -m "unit" -v --tb=short
@@ -3,6 +3,12 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  Grouped by `Added` · `Changed` · `Deprecated` · `Removed` · `Fixed`.
5
5
 
6
+ ## [0.3.0] - 2026-04-05
7
+
8
+ ### Changed
9
+ - Raised the `codex-core` requirement to `>=0.3.0,<0.10.0` so the package tracks the new core baseline while remaining compatible through the `0.9.x` series.
10
+ - Updated the documented install examples to the `codex-platform 0.3.x` release line.
11
+
6
12
  ## [0.2.0] - 2026-03-29
7
13
 
8
14
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: codex-platform
3
- Version: 0.2.0
3
+ Version: 0.3.0
4
4
  Summary: Modular async infrastructure (Redis, Streams, ARQ, Notifications) built for Codex, designed for independent use.
5
5
  Project-URL: Homepage, https://github.com/codexdlc/codex-platform
6
6
  Project-URL: Documentation, https://codexdlc.github.io/codex-platform/
@@ -15,7 +15,7 @@ Classifier: License :: OSI Approved :: Apache Software License
15
15
  Classifier: Programming Language :: Python :: 3.12
16
16
  Classifier: Programming Language :: Python :: 3.13
17
17
  Requires-Python: >=3.12
18
- Requires-Dist: codex-core<0.3.0,>=0.2.0
18
+ Requires-Dist: codex-core<0.10.0,>=0.3.0
19
19
  Requires-Dist: pydantic<3.0,>=2.0
20
20
  Provides-Extra: all
21
21
  Requires-Dist: aiosmtplib>=3.0; extra == 'all'
@@ -68,27 +68,27 @@ Description-Content-Type: text/markdown
68
68
  ## Install
69
69
 
70
70
  ```bash
71
- # codex-platform 0.2.x
72
- pip install "codex-platform>=0.2.0,<0.3.0"
71
+ # codex-platform 0.3.x
72
+ pip install "codex-platform>=0.3.0,<0.4.0"
73
73
 
74
74
  # With Redis support
75
- pip install "codex-platform[redis]>=0.2.0,<0.3.0"
75
+ pip install "codex-platform[redis]>=0.3.0,<0.4.0"
76
76
 
77
77
  # With ARQ background workers
78
- pip install "codex-platform[arq]>=0.2.0,<0.3.0"
78
+ pip install "codex-platform[arq]>=0.3.0,<0.4.0"
79
79
 
80
80
  # With async SMTP notifications
81
- pip install "codex-platform[notifications]>=0.2.0,<0.3.0"
81
+ pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
82
82
 
83
83
  # Redis Streams
84
- pip install "codex-platform[streams]>=0.2.0,<0.3.0"
84
+ pip install "codex-platform[streams]>=0.3.0,<0.4.0"
85
85
 
86
86
  # Everything
87
- pip install "codex-platform[all]>=0.2.0,<0.3.0"
87
+ pip install "codex-platform[all]>=0.3.0,<0.4.0"
88
88
  ```
89
89
 
90
90
  Requires Python 3.12 or newer.
91
- Installs `codex-core>=0.2.0,<0.3.0` automatically as a dependency.
91
+ Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
92
92
 
93
93
  ## Development
94
94
 
@@ -12,27 +12,27 @@
12
12
  ## Install
13
13
 
14
14
  ```bash
15
- # codex-platform 0.2.x
16
- pip install "codex-platform>=0.2.0,<0.3.0"
15
+ # codex-platform 0.3.x
16
+ pip install "codex-platform>=0.3.0,<0.4.0"
17
17
 
18
18
  # With Redis support
19
- pip install "codex-platform[redis]>=0.2.0,<0.3.0"
19
+ pip install "codex-platform[redis]>=0.3.0,<0.4.0"
20
20
 
21
21
  # With ARQ background workers
22
- pip install "codex-platform[arq]>=0.2.0,<0.3.0"
22
+ pip install "codex-platform[arq]>=0.3.0,<0.4.0"
23
23
 
24
24
  # With async SMTP notifications
25
- pip install "codex-platform[notifications]>=0.2.0,<0.3.0"
25
+ pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
26
26
 
27
27
  # Redis Streams
28
- pip install "codex-platform[streams]>=0.2.0,<0.3.0"
28
+ pip install "codex-platform[streams]>=0.3.0,<0.4.0"
29
29
 
30
30
  # Everything
31
- pip install "codex-platform[all]>=0.2.0,<0.3.0"
31
+ pip install "codex-platform[all]>=0.3.0,<0.4.0"
32
32
  ```
33
33
 
34
34
  Requires Python 3.12 or newer.
35
- Installs `codex-core>=0.2.0,<0.3.0` automatically as a dependency.
35
+ Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
36
36
 
37
37
  ## Development
38
38
 
@@ -9,27 +9,27 @@ Built to be dropped into any Python 3.12+ service as a set of composable, indepe
9
9
  ## Install
10
10
 
11
11
  ```bash
12
- # codex-platform 0.2.x
13
- pip install "codex-platform>=0.2.0,<0.3.0"
12
+ # codex-platform 0.3.x
13
+ pip install "codex-platform>=0.3.0,<0.4.0"
14
14
 
15
15
  # With Redis support
16
- pip install "codex-platform[redis]>=0.2.0,<0.3.0"
16
+ pip install "codex-platform[redis]>=0.3.0,<0.4.0"
17
17
 
18
18
  # With ARQ worker support
19
- pip install "codex-platform[arq]>=0.2.0,<0.3.0"
19
+ pip install "codex-platform[arq]>=0.3.0,<0.4.0"
20
20
 
21
21
  # With async SMTP notifications
22
- pip install "codex-platform[notifications]>=0.2.0,<0.3.0"
22
+ pip install "codex-platform[notifications]>=0.3.0,<0.4.0"
23
23
 
24
24
  # Redis Streams
25
- pip install "codex-platform[streams]>=0.2.0,<0.3.0"
25
+ pip install "codex-platform[streams]>=0.3.0,<0.4.0"
26
26
 
27
27
  # Everything
28
- pip install "codex-platform[all]>=0.2.0,<0.3.0"
28
+ pip install "codex-platform[all]>=0.3.0,<0.4.0"
29
29
  ```
30
30
 
31
31
  Requires Python 3.12 or newer.
32
- Installs `codex-core>=0.2.0,<0.3.0` automatically as a dependency.
32
+ Installs `codex-core>=0.3.0,<0.10.0` automatically as a dependency.
33
33
 
34
34
  ## Quick Start
35
35
 
@@ -20,7 +20,7 @@ classifiers = [
20
20
  ]
21
21
  dependencies = [
22
22
  "pydantic>=2.0,<3.0",
23
- "codex-core>=0.2.0,<0.3.0",
23
+ "codex-core>=0.3.0,<0.10.0",
24
24
  ]
25
25
 
26
26
  [project.urls]
@@ -132,3 +132,14 @@ exclude_lines = [
132
132
  [tool.bandit]
133
133
  exclude_dirs = ["tests"]
134
134
  skips = ["B602", "B605", "B607", "B404"]
135
+
136
+ [tool.codex-check]
137
+ project-name = "codex-platform"
138
+ audit-flags = "--skip-editable --ignore-vuln CVE-2026-4539"
139
+ integration-requires = "Redis"
140
+ run-extra-checks = false
141
+ test-stages = ["unit", "integration"]
142
+ prompt-test-stages = ["integration"]
143
+ no-cov-test-stages = ["integration"]
144
+ test-paths = ["tests"]
145
+ types-paths = ["src"]
@@ -0,0 +1,13 @@
1
+ """Quality gate for codex-platform."""
2
+
3
+ from pathlib import Path
4
+
5
+ from codex_core.dev.check_runner import BaseCheckRunner
6
+
7
+
8
+ class CheckRunner(BaseCheckRunner):
9
+ """Thin launcher; project policy lives in pyproject.toml."""
10
+
11
+
12
+ if __name__ == "__main__":
13
+ CheckRunner(Path(__file__).parent.parent.parent).main()
@@ -212,15 +212,15 @@ wheels = [
212
212
 
213
213
  [[package]]
214
214
  name = "codex-core"
215
- version = "0.2.0"
215
+ version = "0.3.0"
216
216
  source = { registry = "https://pypi.org/simple" }
217
217
  dependencies = [
218
218
  { name = "pydantic" },
219
219
  { name = "pydantic-settings" },
220
220
  ]
221
- sdist = { url = "https://files.pythonhosted.org/packages/35/dc/6225a11ac1bbb21a495beebf05c047b75792a31884c5aa30d78172d3d909/codex_core-0.2.0.tar.gz", hash = "sha256:1058cb69beceb779d2b0d87e292a1d01e0d1d0467a09ceb1419dc552b7048981", size = 46707, upload-time = "2026-03-19T10:26:34.211Z" }
221
+ sdist = { url = "https://files.pythonhosted.org/packages/8d/55/11335e1bfa46861b9e7a38678bf8d8438419c23affbe7a1d6210a986d963/codex_core-0.3.0.tar.gz", hash = "sha256:3dc573d1c3f8e1b88ceb563835bd4fec14c498884a76bca11daffbb3d9d78347", size = 125208, upload-time = "2026-04-04T21:32:34.837Z" }
222
222
  wheels = [
223
- { url = "https://files.pythonhosted.org/packages/a2/66/3de600e984d3c59e9ea9fda7ecf4754a2d5d515189f77d443772dd3584c1/codex_core-0.2.0-py3-none-any.whl", hash = "sha256:e3279a2916e431ce71705570373bac6961512962d776e34ebdb7ccc98703d0ac", size = 28734, upload-time = "2026-03-19T10:26:32.406Z" },
223
+ { url = "https://files.pythonhosted.org/packages/a7/67/7ab0dea9a79ff0085343468a473b084e3bbefe03b75ea67da6307eb3cc1e/codex_core-0.3.0-py3-none-any.whl", hash = "sha256:c1ee78a1f1629d5bdc79d511870fc65c14d29f3ab6287ecc62f31a199c216772", size = 33021, upload-time = "2026-04-04T21:32:33.426Z" },
224
224
  ]
225
225
 
226
226
  [[package]]
@@ -284,7 +284,7 @@ requires-dist = [
284
284
  { name = "arq", marker = "extra == 'arq'", specifier = ">=0.25" },
285
285
  { name = "arq", marker = "extra == 'dev'", specifier = ">=0.25" },
286
286
  { name = "bandit", marker = "extra == 'dev'", specifier = ">=1.7" },
287
- { name = "codex-core", specifier = ">=0.2.0,<0.3.0" },
287
+ { name = "codex-core", specifier = ">=0.3.0,<0.10.0" },
288
288
  { name = "detect-secrets", marker = "extra == 'dev'", specifier = ">=1.5" },
289
289
  { name = "fakeredis", extras = ["lua"], marker = "extra == 'dev'", specifier = ">=2.20" },
290
290
  { name = "jinja2", marker = "extra == 'all'", specifier = ">=3.1" },
@@ -1,35 +0,0 @@
1
- """Quality gate for codex-platform."""
2
-
3
- import sys
4
- from pathlib import Path
5
-
6
- from codex_core.dev.check_runner import BaseCheckRunner
7
-
8
-
9
- class CheckRunner(BaseCheckRunner):
10
- PROJECT_NAME = "codex-platform"
11
- INTEGRATION_REQUIRES = "Redis"
12
- RUN_LINT = True
13
- RUN_TYPES = True
14
- RUN_SECURITY = True
15
- RUN_EXTRA_CHECKS = False
16
- RUN_UNIT_TESTS = True
17
- RUN_INTEGRATION_TESTS = True
18
- # CVE-2026-4539: pygments — no fix available yet (latest version)
19
- AUDIT_FLAGS = "--skip-editable --ignore-vuln CVE-2026-4539"
20
-
21
- def run_tests(self, marker: str = "unit") -> bool:
22
- self.print_step(f"Running {marker.capitalize()} Tests")
23
- command = f'"{sys.executable}" -m pytest {self.tests_dir} -m {marker} -v --tb=short'
24
- if marker == "integration":
25
- command += " --no-cov"
26
- success, _ = self.run_command(command)
27
- if success:
28
- self.print_success(f"{marker.capitalize()} tests passed.")
29
- else:
30
- self.print_error(f"{marker.capitalize()} tests failed.")
31
- return success
32
-
33
-
34
- if __name__ == "__main__":
35
- CheckRunner(Path(__file__).parent.parent.parent).main()