databricks-tellr-app 0.4.3.dev8__tar.gz → 0.4.3.dev10__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 (167) hide show
  1. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/PKG-INFO +1 -1
  2. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/databricks_tellr_app/run.py +23 -0
  3. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/databricks_tellr_app.egg-info/PKG-INFO +1 -1
  4. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/pyproject.toml +1 -1
  5. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/main.py +7 -23
  6. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/database.py +13 -3
  7. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/README.md +0 -0
  8. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/databricks_tellr_app/__init__.py +0 -0
  9. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/databricks_tellr_app.egg-info/SOURCES.txt +0 -0
  10. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
  11. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/databricks_tellr_app.egg-info/requires.txt +0 -0
  12. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/databricks_tellr_app.egg-info/top_level.txt +0 -0
  13. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/setup.cfg +0 -0
  14. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/setup.py +0 -0
  15. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/__init__.py +0 -0
  16. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/__init__.py +0 -0
  17. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/_otel_bootstrap.py +0 -0
  18. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/fixtures/tour_demo_deck.json +0 -0
  19. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/mcp_auth.py +0 -0
  20. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/mcp_server.py +0 -0
  21. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/middleware/__init__.py +0 -0
  22. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/middleware/csrf.py +0 -0
  23. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/middleware/request_logging.py +0 -0
  24. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/middleware/security_headers.py +0 -0
  25. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/__init__.py +0 -0
  26. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/_authz.py +0 -0
  27. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/admin.py +0 -0
  28. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/admin_usage.py +0 -0
  29. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/agent_config.py +0 -0
  30. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/chat.py +0 -0
  31. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/deck_contributors.py +0 -0
  32. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/export.py +0 -0
  33. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/feedback.py +0 -0
  34. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/google_slides.py +0 -0
  35. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/images.py +0 -0
  36. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/local_version.py +0 -0
  37. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/profiles.py +0 -0
  38. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/sessions.py +0 -0
  39. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/settings/__init__.py +0 -0
  40. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/settings/contributors.py +0 -0
  41. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/settings/deck_prompts.py +0 -0
  42. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/settings/design_systems.py +0 -0
  43. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/settings/identities.py +0 -0
  44. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/settings/slide_styles.py +0 -0
  45. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/setup.py +0 -0
  46. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/slides.py +0 -0
  47. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/tools.py +0 -0
  48. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/tour.py +0 -0
  49. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/verification.py +0 -0
  50. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/routes/version.py +0 -0
  51. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/__init__.py +0 -0
  52. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/agent_config.py +0 -0
  53. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/feedback.py +0 -0
  54. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/requests.py +0 -0
  55. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/responses.py +0 -0
  56. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/settings/__init__.py +0 -0
  57. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/settings/requests.py +0 -0
  58. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/settings/responses.py +0 -0
  59. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/schemas/streaming.py +0 -0
  60. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/__init__.py +0 -0
  61. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/chat_service.py +0 -0
  62. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/export_job_queue.py +0 -0
  63. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/feedback_service.py +0 -0
  64. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/job_queue.py +0 -0
  65. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/session_manager.py +0 -0
  66. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/session_naming.py +0 -0
  67. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/usage_events.py +0 -0
  68. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/services/usage_service.py +0 -0
  69. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/utils/__init__.py +0 -0
  70. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/api/utils/validation.py +0 -0
  71. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/__init__.py +0 -0
  72. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/config_loader.py +0 -0
  73. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/context_utils.py +0 -0
  74. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/databricks_client.py +0 -0
  75. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/defaults.py +0 -0
  76. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/encryption.py +0 -0
  77. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/init_default_profile.py +0 -0
  78. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/lakebase.py +0 -0
  79. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/migrate_profiles_to_agent_config.py +0 -0
  80. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/mlflow_agent_spans.py +0 -0
  81. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/mlflow_tracing.py +0 -0
  82. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/otel_logging.py +0 -0
  83. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/permission_context.py +0 -0
  84. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/prompt_modules.py +0 -0
  85. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/settings_db.py +0 -0
  86. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/core/user_context.py +0 -0
  87. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/__init__.py +0 -0
  88. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/__init__.py +0 -0
  89. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/deck_contributor.py +0 -0
  90. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/design_system.py +0 -0
  91. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/encryption_key.py +0 -0
  92. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/feedback.py +0 -0
  93. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/genie_space.py +0 -0
  94. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/google_global_credentials.py +0 -0
  95. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/google_oauth_token.py +0 -0
  96. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/identity.py +0 -0
  97. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/image.py +0 -0
  98. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/profile.py +0 -0
  99. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/profile_contributor.py +0 -0
  100. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/prompts.py +0 -0
  101. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/request_log.py +0 -0
  102. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/session.py +0 -0
  103. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/slide_deck_prompt.py +0 -0
  104. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/slide_style_library.py +0 -0
  105. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/usage_event.py +0 -0
  106. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/models/user_preference.py +0 -0
  107. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/database/types.py +0 -0
  108. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/domain/__init__.py +0 -0
  109. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/domain/slide.py +0 -0
  110. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/domain/slide_deck.py +0 -0
  111. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/__init__.py +0 -0
  112. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/agent.py +0 -0
  113. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/agent_factory.py +0 -0
  114. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/config_service.py +0 -0
  115. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/config_validator.py +0 -0
  116. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/converter_jail/__init__.py +0 -0
  117. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/converter_jail/ast_guard.py +0 -0
  118. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/converter_jail/codeprep.py +0 -0
  119. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/converter_jail/gslides_runner.py +0 -0
  120. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/converter_jail/jail.py +0 -0
  121. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/converter_jail/pptx_runner.py +0 -0
  122. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/converter_jail/protocol.py +0 -0
  123. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/design_system_compiler.py +0 -0
  124. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/design_system_service.py +0 -0
  125. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/design_system_templates.py +0 -0
  126. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/drive_uploader.py +0 -0
  127. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/evaluation/__init__.py +0 -0
  128. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/evaluation/llm_judge.py +0 -0
  129. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/genie_service.py +0 -0
  130. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/google_slides_auth.py +0 -0
  131. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/google_slides_prompts_defaults.py +0 -0
  132. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/html_to_google_slides.py +0 -0
  133. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/html_to_pptx.py +0 -0
  134. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/identity_provider.py +0 -0
  135. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/identity_providers/__init__.py +0 -0
  136. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/identity_providers/account_provider.py +0 -0
  137. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/identity_providers/local_provider.py +0 -0
  138. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/identity_providers/workspace_provider.py +0 -0
  139. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/image_service.py +0 -0
  140. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/image_tools.py +0 -0
  141. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/permission_service.py +0 -0
  142. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/pptx_from_html_huashu.py +0 -0
  143. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/pptx_from_records.py +0 -0
  144. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/pptx_prompts_defaults.py +0 -0
  145. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/profile_service.py +0 -0
  146. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/streaming_callback.py +0 -0
  147. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/tools/__init__.py +0 -0
  148. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/tools/agent_bricks_tool.py +0 -0
  149. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/tools/ds_asset_tool.py +0 -0
  150. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/tools/genie_tool.py +0 -0
  151. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/tools/mcp_tool.py +0 -0
  152. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/tools/model_endpoint_tool.py +0 -0
  153. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/tools/vector_tool.py +0 -0
  154. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/services/validator.py +0 -0
  155. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/__init__.py +0 -0
  156. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/css_utils.py +0 -0
  157. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/ds_asset_utils.py +0 -0
  158. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/error_handling.py +0 -0
  159. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/html_safety.py +0 -0
  160. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/html_utils.py +0 -0
  161. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/image_utils.py +0 -0
  162. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/js_validator.py +0 -0
  163. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/logging_config.py +0 -0
  164. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/pi_filter.py +0 -0
  165. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/slide_hash.py +0 -0
  166. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/spotlight.py +0 -0
  167. {databricks_tellr_app-0.4.3.dev8 → databricks_tellr_app-0.4.3.dev10}/src/utils/text_caps.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-tellr-app
3
- Version: 0.4.3.dev8
3
+ Version: 0.4.3.dev10
4
4
  Summary: Tellr application package for Databricks Apps
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -51,6 +51,29 @@ def init_database(seed_databricks_defaults: bool = False) -> None:
51
51
  logger.error(f"Failed to initialize database tables: {e}\n{tb}")
52
52
  raise SystemExit(1) from e
53
53
 
54
+ # Data migrations/backfills that used to run in the FastAPI lifespan now run
55
+ # HERE, once, before the server forks its workers — the uvicorn workers must
56
+ # never execute migration code (4 of them racing the migration chain on boot
57
+ # wedged startup). init_db() above runs the schema/data migrations; these two
58
+ # convert legacy profile/session rows to the agent_config shape.
59
+ logger.info("Migrating profiles/sessions to agent_config...")
60
+ try:
61
+ from src.core.database import get_session_local
62
+ from src.core.migrate_profiles_to_agent_config import (
63
+ backfill_sessions,
64
+ migrate_profiles,
65
+ )
66
+ migrated = migrate_profiles(get_session_local())
67
+ if migrated:
68
+ logger.info(f"Migrated {migrated} profiles to agent_config")
69
+ backfilled = backfill_sessions(get_session_local())
70
+ if backfilled:
71
+ logger.info(f"Backfilled {backfilled} sessions with agent_config")
72
+ except Exception as e:
73
+ tb = traceback.format_exc()
74
+ logger.error(f"Failed to migrate profiles/sessions to agent_config: {e}\n{tb}")
75
+ raise SystemExit(1) from e
76
+
54
77
  # Seed default content
55
78
  logger.info(f"Seeding defaults (include_databricks={seed_databricks_defaults})...")
56
79
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-tellr-app
3
- Version: 0.4.3.dev8
3
+ Version: 0.4.3.dev10
4
4
  Summary: Tellr application package for Databricks Apps
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "databricks-tellr-app"
7
- version = "0.4.3.dev8"
7
+ version = "0.4.3.dev10"
8
8
  description = "Tellr application package for Databricks Apps"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -34,13 +34,10 @@ from src.api.routes.settings import (
34
34
  from src.api.services.export_job_queue import start_export_worker
35
35
  from src.api.services.job_queue import recover_stuck_requests, start_worker
36
36
  from src.core.database import (
37
- get_session_local,
38
- init_db,
39
37
  is_lakebase_environment,
40
38
  start_token_refresh,
41
39
  stop_token_refresh,
42
40
  )
43
- from src.core.migrate_profiles_to_agent_config import migrate_profiles, backfill_sessions
44
41
 
45
42
  logger = logging.getLogger(__name__)
46
43
 
@@ -92,8 +89,8 @@ async def lifespan(app: FastAPI):
92
89
  else:
93
90
  logger.info("Pytest detected: skipping MCP session manager startup")
94
91
 
95
- # Start Lakebase token refresh if running in Databricks Apps
96
- # Must happen before init_db() so OAuth token is ready for database connections
92
+ # Start Lakebase token refresh if running in Databricks Apps. Workers serve
93
+ # DB-backed requests, so they need fresh OAuth tokens.
97
94
  if is_lakebase_environment():
98
95
  try:
99
96
  await start_token_refresh()
@@ -102,24 +99,11 @@ async def lifespan(app: FastAPI):
102
99
  logger.error(f"Failed to start Lakebase token refresh: {e}")
103
100
  raise
104
101
 
105
- # Initialize database tables (idempotent - only creates tables that don't exist)
106
- is_pytest = os.getenv("PYTEST_CURRENT_TEST") is not None
107
- if not is_pytest:
108
- try:
109
- init_db()
110
- logger.info("Database tables initialized")
111
-
112
- migrated = migrate_profiles(get_session_local())
113
- if migrated:
114
- logger.info(f"Migrated {migrated} profiles to agent_config")
115
- backfilled = backfill_sessions(get_session_local())
116
- if backfilled:
117
- logger.info(f"Backfilled {backfilled} sessions with agent_config")
118
- except Exception as e:
119
- logger.error(f"Failed to initialize database: {e}")
120
- raise
121
- else:
122
- logger.info("Pytest detected: skipping database initialization")
102
+ # NOTE: database migrations run ONCE before the server starts, in
103
+ # run.py::init_database (invoked as its own step by the Databricks Apps boot
104
+ # command, and by scripts/init_database.py locally) — NOT here. This lifespan
105
+ # runs in every uvicorn worker, and having 4 workers race the migration chain
106
+ # on boot wedged startup. Workers must never run migration code.
123
107
 
124
108
  if IS_PRODUCTION:
125
109
  logger.info("Production mode: serving frontend from package assets")
@@ -1204,12 +1204,22 @@ def _migrate_rewrite_deck_image_placeholders(conn, inspector, schema, _qual, is_
1204
1204
  A no-op when ``image_assets`` (or its ``token`` column) or every target table is
1205
1205
  absent on a given deploy.
1206
1206
  """
1207
- from sqlalchemy import text
1207
+ from sqlalchemy import inspect, text
1208
+
1209
+ # Reflect the LIVE schema with a FRESH inspector, NOT the shared one that
1210
+ # _run_migrations threads through. _migrate_image_assets_add_token adds the
1211
+ # token column in this SAME transaction, and the shared inspector's reflection
1212
+ # cache predates that ALTER — so a cached read reports "no token column" and
1213
+ # this migration would return early, silently skipping the rewrite on every
1214
+ # fresh DB and every prod fork (where the column is added during this run).
1215
+ # This is the same reflection-cache staleness the design-system migrations in
1216
+ # this file avoid the same way (see _migrate_uncap_brand_text_columns).
1217
+ insp = inspect(conn)
1208
1218
 
1209
1219
  # image_assets + its token column must exist (guaranteed by the prior migration
1210
1220
  # on any live deploy; guarded so this can be exercised standalone).
1211
1221
  try:
1212
- image_cols = {c["name"] for c in inspector.get_columns("image_assets", schema=schema)}
1222
+ image_cols = {c["name"] for c in insp.get_columns("image_assets", schema=schema)}
1213
1223
  except Exception:
1214
1224
  return
1215
1225
  if "token" not in image_cols:
@@ -1219,7 +1229,7 @@ def _migrate_rewrite_deck_image_placeholders(conn, inspector, schema, _qual, is_
1219
1229
  live_targets: list[tuple[str, str]] = []
1220
1230
  for table_name, column_name in _DECK_PLACEHOLDER_COLUMNS:
1221
1231
  try:
1222
- cols = {c["name"] for c in inspector.get_columns(table_name, schema=schema)}
1232
+ cols = {c["name"] for c in insp.get_columns(table_name, schema=schema)}
1223
1233
  except Exception:
1224
1234
  continue
1225
1235
  if column_name in cols: