springbootAI 2.3.6__tar.gz → 2.3.8__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 (356) hide show
  1. {springbootai-2.3.6 → springbootai-2.3.8}/CHANGELOG.md +18 -0
  2. {springbootai-2.3.6 → springbootai-2.3.8}/MANIFEST.in +1 -1
  3. springbootai-2.3.8/PKG-INFO +1979 -0
  4. {springbootai-2.3.6 → springbootai-2.3.8}/README.md +46 -76
  5. {springbootai-2.3.6 → springbootai-2.3.8}/pyproject.toml +2 -2
  6. springbootai-2.3.8/springbootAI.egg-info/PKG-INFO +1979 -0
  7. {springbootai-2.3.6 → springbootai-2.3.8}/springbootAI.egg-info/SOURCES.txt +4 -1
  8. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/__init__.py +1 -1
  9. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/__init__.py +1 -1
  10. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/annotation_runtime.py +286 -37
  11. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/annotations.py +20 -3
  12. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cli/scaffold.py +8 -1
  13. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/config_center.py +82 -20
  14. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/discovery.py +115 -39
  15. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/nacos_config.py +158 -88
  16. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/config/__init__.py +4 -0
  17. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/config/config_loader.py +400 -48
  18. springbootai-2.3.8/springbootai/config/config_monitor.py +248 -0
  19. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/config/spring-configuration-metadata.json +15 -0
  20. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/csv/__init__.py +1 -1
  21. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/data/__init__.py +1 -1
  22. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/datasource/__init__.py +1 -1
  23. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/__init__.py +1 -1
  24. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/__init__.py +1 -1
  25. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/__init__.py +1 -1
  26. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/autoconfig.py +92 -1
  27. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/mcp/client.py +39 -13
  28. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/mcp/config.py +4 -2
  29. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/messaging/rabbitmq.py +172 -4
  30. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/__init__.py +1 -1
  31. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/version.py +1 -1
  32. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/test/__init__.py +1 -1
  33. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/tx/__init__.py +1 -1
  34. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/utils/banner.py +2 -2
  35. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/utils/redis_client.py +33 -9
  36. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/validation/__init__.py +1 -1
  37. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/actuator.py +72 -3
  38. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/request_metrics.py +17 -1
  39. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/swagger.py +1 -1
  40. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/web_context.py +6 -1
  41. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/websocket/__init__.py +1 -1
  42. springbootai-2.3.8/tests/test_ai_annotations.py +201 -0
  43. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_config_center.py +25 -0
  44. springbootai-2.3.8/tests/test_config_center_hardening.py +84 -0
  45. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_config_fixes_185.py +19 -0
  46. springbootai-2.3.8/tests/test_config_monitor.py +52 -0
  47. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_langchain_module.py +14 -0
  48. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_nacos_config.py +35 -0
  49. springbootai-2.3.8/tests/test_optional_component_timeouts.py +110 -0
  50. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_runtime_configuration_fixes.py +22 -0
  51. springbootai-2.3.6/PKG-INFO +0 -299
  52. springbootai-2.3.6/README_PYPI.md +0 -137
  53. springbootai-2.3.6/springbootAI.egg-info/PKG-INFO +0 -299
  54. springbootai-2.3.6/tests/test_ai_annotations.py +0 -100
  55. {springbootai-2.3.6 → springbootai-2.3.8}/LICENSE +0 -0
  56. {springbootai-2.3.6 → springbootai-2.3.8}/SECURITY.md +0 -0
  57. {springbootai-2.3.6 → springbootai-2.3.8}/requirements-ai.txt +0 -0
  58. {springbootai-2.3.6 → springbootai-2.3.8}/requirements-langgraph.txt +0 -0
  59. {springbootai-2.3.6 → springbootai-2.3.8}/requirements-mcp.txt +0 -0
  60. {springbootai-2.3.6 → springbootai-2.3.8}/requirements.txt +0 -0
  61. {springbootai-2.3.6 → springbootai-2.3.8}/setup.cfg +0 -0
  62. {springbootai-2.3.6 → springbootai-2.3.8}/setup.py +0 -0
  63. {springbootai-2.3.6 → springbootai-2.3.8}/springbootAI.egg-info/dependency_links.txt +0 -0
  64. {springbootai-2.3.6 → springbootai-2.3.8}/springbootAI.egg-info/entry_points.txt +0 -0
  65. {springbootai-2.3.6 → springbootai-2.3.8}/springbootAI.egg-info/requires.txt +0 -0
  66. {springbootai-2.3.6 → springbootai-2.3.8}/springbootAI.egg-info/top_level.txt +0 -0
  67. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/advisors.py +0 -0
  68. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/autoconfig.py +0 -0
  69. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/core.py +0 -0
  70. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/etl.py +0 -0
  71. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/memory.py +0 -0
  72. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/observability.py +0 -0
  73. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/providers.py +0 -0
  74. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/resilience.py +0 -0
  75. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/tools.py +0 -0
  76. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/ai/vectorstore.py +0 -0
  77. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/__init__.py +0 -0
  78. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/batch.py +0 -0
  79. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/cache.py +0 -0
  80. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/cloud.py +0 -0
  81. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/conditional.py +0 -0
  82. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/core.py +0 -0
  83. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/data.py +0 -0
  84. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/enterprise.py +0 -0
  85. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/langchain.py +0 -0
  86. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/langgraph.py +0 -0
  87. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/lombok.py +0 -0
  88. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/messaging.py +0 -0
  89. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/annotations/security.py +0 -0
  90. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/aop/__init__.py +0 -0
  91. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/aop/aspect.py +0 -0
  92. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/aop/cloud_aop.py +0 -0
  93. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/aop/comprehensive_aop.py +0 -0
  94. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/aop/method_interceptor.py +0 -0
  95. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/aop/proxy_factory.py +0 -0
  96. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/batch/__init__.py +0 -0
  97. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cli/__init__.py +0 -0
  98. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cli/main.py +0 -0
  99. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/__init__.py +0 -0
  100. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/bus.py +0 -0
  101. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/feign.py +0 -0
  102. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/gateway.py +0 -0
  103. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/load_balancer.py +0 -0
  104. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/seata.py +0 -0
  105. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/seata_at_proxy.py +0 -0
  106. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/seata_bridge.py +0 -0
  107. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/sentinel.py +0 -0
  108. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/tracer.py +0 -0
  109. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/cloud/transaction_store.py +0 -0
  110. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/config/binding.py +0 -0
  111. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/context/__init__.py +0 -0
  112. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/context/application_context.py +0 -0
  113. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/context/bean_definition.py +0 -0
  114. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/context/bean_factory.py +0 -0
  115. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/context/lifecycle.py +0 -0
  116. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/context/registry.py +0 -0
  117. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/context/scanner.py +0 -0
  118. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/core/__init__.py +0 -0
  119. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/core/graceful_shutdown.py +0 -0
  120. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/core/typing_utils.py +0 -0
  121. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/csv/annotations.py +0 -0
  122. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/csv/converters.py +0 -0
  123. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/csv/easy_csv.py +0 -0
  124. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/csv/exceptions.py +0 -0
  125. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/csv/reader.py +0 -0
  126. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/csv/writer.py +0 -0
  127. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/data/page.py +0 -0
  128. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/data/repository.py +0 -0
  129. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/data/rest.py +0 -0
  130. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/data/specification.py +0 -0
  131. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/datasource/annotations.py +0 -0
  132. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/datasource/context.py +0 -0
  133. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/datasource/dynamic.py +0 -0
  134. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/devtools.py +0 -0
  135. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/event/__init__.py +0 -0
  136. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/event/publisher.py +0 -0
  137. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/annotations.py +0 -0
  138. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/converters.py +0 -0
  139. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/easy_excel.py +0 -0
  140. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/exceptions.py +0 -0
  141. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/reader.py +0 -0
  142. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/style.py +0 -0
  143. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/excel/writer.py +0 -0
  144. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/accessor.py +0 -0
  145. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/auto_config.py +0 -0
  146. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/holder.py +0 -0
  147. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/locale.py +0 -0
  148. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/locale_resolver.py +0 -0
  149. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/message_source.py +0 -0
  150. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/middleware.py +0 -0
  151. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/properties.py +0 -0
  152. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/i18n/sources.py +0 -0
  153. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/adapters.py +0 -0
  154. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/agents/__init__.py +0 -0
  155. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/agents/services.py +0 -0
  156. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/annotations.py +0 -0
  157. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/callbacks/__init__.py +0 -0
  158. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/callbacks/handlers.py +0 -0
  159. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/chains/__init__.py +0 -0
  160. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/chains/services.py +0 -0
  161. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/core.py +0 -0
  162. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/indexes/__init__.py +0 -0
  163. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/indexes/index.py +0 -0
  164. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/loaders/__init__.py +0 -0
  165. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/loaders/loaders.py +0 -0
  166. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/memory/__init__.py +0 -0
  167. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/memory/memory.py +0 -0
  168. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/parsers/__init__.py +0 -0
  169. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/parsers/parsers.py +0 -0
  170. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/partners.py +0 -0
  171. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/prompts/__init__.py +0 -0
  172. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/prompts/templates.py +0 -0
  173. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/retrievers/__init__.py +0 -0
  174. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/retrievers/retrievers.py +0 -0
  175. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/tools/__init__.py +0 -0
  176. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/tools/tools.py +0 -0
  177. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/utilities/__init__.py +0 -0
  178. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/utilities/utils.py +0 -0
  179. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/vectorstores/__init__.py +0 -0
  180. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langchain/vectorstores/stores.py +0 -0
  181. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langgraph/__init__.py +0 -0
  182. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langgraph/annotation_runtime.py +0 -0
  183. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langgraph/annotations.py +0 -0
  184. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langgraph/autoconfig.py +0 -0
  185. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langgraph/checkpoint.py +0 -0
  186. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langgraph/config.py +0 -0
  187. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/langgraph/runtime.py +0 -0
  188. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/logging/__init__.py +0 -0
  189. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/logging/loguru_logger.py +0 -0
  190. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/main.py +0 -0
  191. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/mcp/__init__.py +0 -0
  192. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/mcp/annotation_runtime.py +0 -0
  193. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/mcp/annotations.py +0 -0
  194. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/mcp/autoconfig.py +0 -0
  195. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/mcp/server.py +0 -0
  196. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/messaging/__init__.py +0 -0
  197. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/messaging/kafka.py +0 -0
  198. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/monitoring/__init__.py +0 -0
  199. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/monitoring/admin_client.py +0 -0
  200. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/monitoring/prometheus.py +0 -0
  201. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/__init__.py +0 -0
  202. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/database.py +0 -0
  203. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/ddl_auto.py +0 -0
  204. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/migration.py +0 -0
  205. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/mybatis_integration.py +0 -0
  206. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/annotations/__init__.py +0 -0
  207. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/annotations/annotations.py +0 -0
  208. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/cache/__init__.py +0 -0
  209. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/cache/cache.py +0 -0
  210. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/cache/redis_cache.py +0 -0
  211. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/circuit_breaker/__init__.py +0 -0
  212. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/circuit_breaker/circuit_breaker.py +0 -0
  213. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/configuration.py +0 -0
  214. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/core/__init__.py +0 -0
  215. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/core/sql_session.py +0 -0
  216. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/core/sql_session_factory.py +0 -0
  217. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/dialect/__init__.py +0 -0
  218. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/dialect/dialect.py +0 -0
  219. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/dynamic_sql/__init__.py +0 -0
  220. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/dynamic_sql/dynamic_sql.py +0 -0
  221. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/interceptor/__init__.py +0 -0
  222. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/interceptor/interceptor.py +0 -0
  223. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/mapper/__init__.py +0 -0
  224. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/mapper/mapper.py +0 -0
  225. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/metrics/__init__.py +0 -0
  226. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/metrics/metrics.py +0 -0
  227. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/pool/__init__.py +0 -0
  228. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/pool/connection_pool.py +0 -0
  229. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/security/__init__.py +0 -0
  230. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/security/access_control.py +0 -0
  231. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/security/password_encoder.py +0 -0
  232. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/security/sensitive_data_masker.py +0 -0
  233. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/security/sql_injection_detector.py +0 -0
  234. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/transaction/__init__.py +0 -0
  235. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/transaction/transaction.py +0 -0
  236. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/type_handler/__init__.py +0 -0
  237. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/type_handler/type_handler.py +0 -0
  238. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/xml_parser/__init__.py +0 -0
  239. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/orm/pymybatis/xml_parser/xml_parser.py +0 -0
  240. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/retry/__init__.py +0 -0
  241. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/retry/recovery.py +0 -0
  242. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/retry/retry_annotations.py +0 -0
  243. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/retry/retry_decorator.py +0 -0
  244. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/scheduling/__init__.py +0 -0
  245. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/scheduling/scheduler.py +0 -0
  246. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/security/__init__.py +0 -0
  247. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/security/jwt_utils.py +0 -0
  248. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/security/oauth2.py +0 -0
  249. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/security/replay_protection.py +0 -0
  250. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/security/secret_manager.py +0 -0
  251. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/security/security_aop.py +0 -0
  252. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/security/security_context.py +0 -0
  253. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/test/slicing.py +0 -0
  254. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/tracing/__init__.py +0 -0
  255. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/tracing/skywalking.py +0 -0
  256. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/tx/events.py +0 -0
  257. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/tx/synchronization.py +0 -0
  258. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/utils/__init__.py +0 -0
  259. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/utils/bean_utils.py +0 -0
  260. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/utils/logger.py +0 -0
  261. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/validation/aop.py +0 -0
  262. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/validation/constraints.py +0 -0
  263. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/validation/exceptions.py +0 -0
  264. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/validation/validator.py +0 -0
  265. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/__init__.py +0 -0
  266. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/csrf.py +0 -0
  267. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/exception_handler.py +0 -0
  268. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/hateoas.py +0 -0
  269. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/health.py +0 -0
  270. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/interceptor.py +0 -0
  271. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/web/result.py +0 -0
  272. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/websocket/annotations.py +0 -0
  273. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/websocket/broker.py +0 -0
  274. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/websocket/exceptions.py +0 -0
  275. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/websocket/handler.py +0 -0
  276. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/websocket/router.py +0 -0
  277. {springbootai-2.3.6 → springbootai-2.3.8}/springbootai/websocket/session.py +0 -0
  278. {springbootai-2.3.6 → springbootai-2.3.8}/sql/seata_undo_log.sql +0 -0
  279. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_actuator.py +0 -0
  280. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_actuator_prometheus_admin.py +0 -0
  281. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_ai_comprehensive.py +0 -0
  282. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_ai_declarative_annotations.py +0 -0
  283. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_ai_module.py +0 -0
  284. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_annotation_combinations.py +0 -0
  285. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_annotations_contract.py +0 -0
  286. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_aop_annotations_full.py +0 -0
  287. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_aop_pointcut_enhancements.py +0 -0
  288. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_audit_time.py +0 -0
  289. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_batch.py +0 -0
  290. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_bean_utils.py +0 -0
  291. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_bus.py +0 -0
  292. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_cache_annotations.py +0 -0
  293. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_cli.py +0 -0
  294. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_cloud_embedded_full.py +0 -0
  295. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_component_init_error.py +0 -0
  296. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_compositional_annotations.py +0 -0
  297. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_conditional_annotations.py +0 -0
  298. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_config_binding.py +0 -0
  299. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_connection_resilience.py +0 -0
  300. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_core.py +0 -0
  301. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_core_annotations_full.py +0 -0
  302. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_csrf.py +0 -0
  303. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_csv_module.py +0 -0
  304. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_data_repository.py +0 -0
  305. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_data_rest.py +0 -0
  306. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_datasource_routing.py +0 -0
  307. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_ddl_auto.py +0 -0
  308. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_declarative_aop_post_authorize_recover.py +0 -0
  309. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_devtools.py +0 -0
  310. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_di_config_event_full.py +0 -0
  311. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_excel_module.py +0 -0
  312. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_hateoas.py +0 -0
  313. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_i18n_module.py +0 -0
  314. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_ioc_lifecycle_enhancements.py +0 -0
  315. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_jpa_version_transient.py +0 -0
  316. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_kafka.py +0 -0
  317. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_langchain_comprehensive.py +0 -0
  318. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_langchain_ext.py +0 -0
  319. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_langgraph_comprehensive.py +0 -0
  320. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_langgraph_module.py +0 -0
  321. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_logging_config.py +0 -0
  322. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_lombok_annotations.py +0 -0
  323. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_mcp_module.py +0 -0
  324. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_metadata.py +0 -0
  325. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_migration.py +0 -0
  326. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_new_annotations.py +0 -0
  327. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_new_features.py +0 -0
  328. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_oauth2.py +0 -0
  329. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_orm_pymybatis_full.py +0 -0
  330. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_production_readiness.py +0 -0
  331. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_pymybatis_configuration_hardening.py +0 -0
  332. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_pymybatis_contract.py +0 -0
  333. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_request_metrics.py +0 -0
  334. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_retry.py +0 -0
  335. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_scaffold_hardening.py +0 -0
  336. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_scheduling.py +0 -0
  337. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_seata_at_proxy.py +0 -0
  338. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_seata_bridge.py +0 -0
  339. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_seata_durable_store.py +0 -0
  340. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_security.py +0 -0
  341. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_security_full.py +0 -0
  342. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_security_hardening.py +0 -0
  343. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_select_page.py +0 -0
  344. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_starter.py +0 -0
  345. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_startup_lifecycle.py +0 -0
  346. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_swagger_module.py +0 -0
  347. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_test_slicing.py +0 -0
  348. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_tracing.py +0 -0
  349. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_transactional_events.py +0 -0
  350. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_validation_module.py +0 -0
  351. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_web_annotations_full.py +0 -0
  352. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_web_file_upload.py +0 -0
  353. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_web_root_mapping.py +0 -0
  354. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_web_security_responses.py +0 -0
  355. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_web_static_files.py +0 -0
  356. {springbootai-2.3.6 → springbootai-2.3.8}/tests/test_websocket_module.py +0 -0
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.3.8] - 2026-08-24
4
+
5
+ - 修复配置加载的原子性与数据库 URL 优先级:请求监控不再误落到根目录 `test.db`,SQLite 运行目录会自动创建,显式 URL/驱动/数据库名称按统一优先级生效。
6
+ - 新增可选配置监控(默认关闭),兼容 YAML、环境变量和 Nacos,提供脱敏历史、变更键、来源、耗时与成功/失败信息,并接入 Actuator/Admin 面板。
7
+ - 修复 Nacos 热更新失败后不重试、客户端状态污染和 Web/Actuator/请求监控配置不刷新的问题;热更新现在安全重绑运行时配置。
8
+ - 修复默认 profile 占位符未参与 profile 文件选择的问题,支持自动加载 `application-default.yml`;同时限制 Nacos 请求超时(最多 120 秒)和热刷新间隔(最多 1 小时)。
9
+ - 为 Nacos 服务发现与 RabbitMQ 增加有限连接/请求超时和重试上限,未配置或服务不可用时不会无限阻塞启动;补充 MCP 本机代理兼容、Redis 单次探测和 AI Cache 并发/容量保护。
10
+ - 加固 Spring Cloud Config 可选客户端:容忍空/错误配置层级,限制 timeout、重试次数与退避间隔,避免配置中心异常反向拖垮启动。
11
+ - 补充条件装配注解示例、可选组件超时回归测试,并同步配置元数据与模块文档。
12
+
13
+ ## [2.3.7] - 2026-08-20
14
+
15
+ ### PyPI 项目说明修正
16
+
17
+ - PyPI 恢复使用完整的 `README.md`,与 GitHub 项目主页保持相同的内容、功能总览图和状态徽章。
18
+ - 撤销 `2.3.6` 中单独维护精简版 PyPI README 的方案,避免两处项目说明内容不一致。
19
+ - 发布版本升级到 `2.3.7`,同步框架主包、扩展模块、PyMyBatis 内嵌版本、README 版本矩阵和打包元数据。
20
+
3
21
  ## [2.3.6] - 2026-08-20
4
22
 
5
23
  ### PyPI 展示修复
@@ -1,4 +1,4 @@
1
- include README.md README_PYPI.md
1
+ include README.md
2
2
  include LICENSE
3
3
  include CHANGELOG.md
4
4
  include SECURITY.md