recce-nightly 1.25.0.20251118__tar.gz → 1.27.0.20251201__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.

Potentially problematic release.


This version of recce-nightly might be problematic. Click here for more details.

Files changed (531) hide show
  1. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/integration-tests-cloud.yaml +43 -18
  2. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/nightly.yaml +35 -5
  3. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/release.yaml +53 -2
  4. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/PKG-INFO +1 -1
  5. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/app/Providers.tsx +9 -6
  6. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/app/page.tsx +3 -5
  7. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/package.json +4 -0
  8. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/pnpm-lock.yaml +962 -0
  9. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/EnvInfo.tsx +13 -4
  10. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/CheckDetail.tsx +173 -118
  11. recce_nightly-1.27.0.20251201/js/src/components/check/timeline/CheckTimeline.tsx +133 -0
  12. recce_nightly-1.27.0.20251201/js/src/components/check/timeline/CommentInput.tsx +65 -0
  13. recce_nightly-1.27.0.20251201/js/src/components/check/timeline/TimelineEvent.tsx +426 -0
  14. recce_nightly-1.27.0.20251201/js/src/components/check/timeline/index.ts +12 -0
  15. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/SeverDisconnectedModalContent.tsx +23 -7
  16. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/querydiff.tsx +8 -8
  17. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/styles.css +28 -20
  18. recce_nightly-1.27.0.20251201/js/src/components/timeout/IdleTimeoutBadge.tsx +45 -0
  19. recce_nightly-1.27.0.20251201/js/src/components/ui/markdown/ExternalLinkConfirmDialog.tsx +128 -0
  20. recce_nightly-1.27.0.20251201/js/src/components/ui/markdown/MarkdownContent.tsx +321 -0
  21. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/ui/theme.ts +2 -0
  22. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/valuediff/valuediff.tsx +46 -47
  23. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/cacheKeys.ts +1 -0
  24. recce_nightly-1.27.0.20251201/js/src/lib/api/checkEvents.ts +240 -0
  25. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/checks.ts +4 -0
  26. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/instanceInfo.ts +1 -0
  27. recce_nightly-1.27.0.20251201/js/src/lib/api/keepAlive.ts +104 -0
  28. recce_nightly-1.27.0.20251201/js/src/lib/hooks/IdleTimeoutContext.tsx +177 -0
  29. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/LineageGraphContext.tsx +34 -1
  30. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/RecceInstanceContext.tsx +5 -0
  31. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/ScreenShot.tsx +3 -3
  32. recce_nightly-1.27.0.20251201/js/src/lib/hooks/useCheckEvents.ts +97 -0
  33. recce_nightly-1.27.0.20251201/js/src/lib/hooks/useIdleDetection.tsx +183 -0
  34. recce_nightly-1.27.0.20251201/js/src/lib/utils/formatTime.ts +84 -0
  35. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/utils/transforms.ts +13 -0
  36. recce_nightly-1.27.0.20251201/recce/VERSION +1 -0
  37. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/apis/check_api.py +20 -14
  38. recce_nightly-1.27.0.20251201/recce/apis/check_events_api.py +353 -0
  39. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/apis/check_func.py +5 -5
  40. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/cli.py +18 -28
  41. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/404.html +1 -1
  42. recce_nightly-1.27.0.20251201/recce/data/__next.__PAGE__.txt +10 -0
  43. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/__next._full.txt +14 -14
  44. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/__next._head.txt +4 -4
  45. {recce_nightly-1.25.0.20251118/recce/data/_not-found → recce_nightly-1.27.0.20251201/recce/data}/__next._index.txt +7 -7
  46. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/__next._tree.txt +3 -3
  47. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/010dc7b046d24155.js +1 -0
  48. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/1113369ecd595fee.js +1 -0
  49. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/252260356f9f28b4.js +1 -0
  50. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/26d1bbec8cb25d22.js +1 -0
  51. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/282fbdead4f6abb6.js +1 -0
  52. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/29726c4c21cd3c10.js +11 -0
  53. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/2e75de06b923cb9f.js +2 -0
  54. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/4597309ba944063a.js +4 -0
  55. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/4921356c9428e60f.js +1 -0
  56. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/673a8e1204501586.js +1 -0
  57. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/6b90bdb4fac82ca0.js +11 -0
  58. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/79f882c54603eefb.js +110 -0
  59. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/e124bccf574a3361.css → recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/8feaa72f5cf4b1dc.css +1 -1
  60. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/934383b854c83cf2.js +1 -0
  61. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/a5314944adfcfe06.js +1 -0
  62. recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/c81b1e05f6b5f0cc.js +1 -0
  63. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/393dc43e483f717a.css → recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/ffe5529fff9d6fe6.css +1 -1
  64. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/turbopack-b1920d28cfb1f28d.js → recce_nightly-1.27.0.20251201/recce/data/_next/static/chunks/turbopack-bf7cf1f7a9cb2ee5.js +1 -1
  65. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_not-found/__next._full.txt +12 -12
  66. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_not-found/__next._head.txt +4 -4
  67. {recce_nightly-1.25.0.20251118/recce/data → recce_nightly-1.27.0.20251201/recce/data/_not-found}/__next._index.txt +7 -7
  68. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_not-found/__next._not-found.__PAGE__.txt +2 -2
  69. recce_nightly-1.27.0.20251201/recce/data/_not-found/__next._not-found.txt +4 -0
  70. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_not-found/__next._tree.txt +3 -3
  71. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_not-found.html +1 -1
  72. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_not-found.txt +12 -12
  73. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/index.html +1 -1
  74. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/index.txt +14 -14
  75. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/mcp_server.py +22 -13
  76. recce_nightly-1.27.0.20251201/recce/models/check.py +473 -0
  77. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/models/types.py +3 -0
  78. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/run.py +14 -1
  79. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/server.py +15 -0
  80. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/state/cloud.py +11 -1
  81. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/state/state_loader.py +1 -1
  82. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/summary.py +23 -3
  83. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/dataframe.py +2 -3
  84. recce_nightly-1.27.0.20251201/recce/util/cloud/__init__.py +15 -0
  85. recce_nightly-1.27.0.20251201/recce/util/cloud/base.py +115 -0
  86. recce_nightly-1.27.0.20251201/recce/util/cloud/check_events.py +190 -0
  87. recce_nightly-1.27.0.20251201/recce/util/cloud/checks.py +242 -0
  88. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/recce_cloud.py +25 -0
  89. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_nightly.egg-info/PKG-INFO +1 -1
  90. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_nightly.egg-info/SOURCES.txt +48 -22
  91. recce_nightly-1.27.0.20251201/tests/apis/test_check_events_api.py +615 -0
  92. recce_nightly-1.27.0.20251201/tests/models/test_check.py +731 -0
  93. recce_nightly-1.27.0.20251201/tests/recce_cloud/__init__.py +0 -0
  94. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/state/test_cloud.py +1 -1
  95. recce_nightly-1.27.0.20251201/tests/tasks/__init__.py +0 -0
  96. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_mcp_server.py +9 -1
  97. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_server.py +37 -0
  98. recce_nightly-1.27.0.20251201/tests/util/__init__.py +0 -0
  99. recce_nightly-1.27.0.20251201/tests/util/cloud/__init__.py +0 -0
  100. recce_nightly-1.27.0.20251201/tests/util/cloud/test_check_events.py +255 -0
  101. recce_nightly-1.27.0.20251201/tests/util/cloud/test_checks.py +204 -0
  102. recce_nightly-1.25.0.20251118/recce/VERSION +0 -1
  103. recce_nightly-1.25.0.20251118/recce/data/__next.__PAGE__.txt +0 -10
  104. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/00696804343358a8.js +0 -110
  105. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/02b996c7f6a29a06.js +0 -4
  106. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/19c10d219a6a21ff.js +0 -1
  107. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/2df9ec28a061971d.js +0 -11
  108. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/3098c987393bda15.js +0 -1
  109. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/399e8d91a7e45073.js +0 -2
  110. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/4d0186f631230245.js +0 -1
  111. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/71f88fcc615bf282.js +0 -1
  112. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/7875b534b7e90557.js +0 -11
  113. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/80d2a95eaf1201ea.js +0 -1
  114. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/9979c6109bbbee35.js +0 -1
  115. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/99d638224186c118.js +0 -1
  116. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/d003eb36240e92f3.js +0 -1
  117. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/d3167cdfec4fc351.js +0 -1
  118. recce_nightly-1.25.0.20251118/recce/data/_next/static/chunks/fcc53a88741a52f9.js +0 -1
  119. recce_nightly-1.25.0.20251118/recce/data/_not-found/__next._not-found.txt +0 -4
  120. recce_nightly-1.25.0.20251118/recce/models/check.py +0 -55
  121. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.editorconfig +0 -0
  122. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.flake8 +0 -0
  123. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  124. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/ISSUE_TEMPLATE/custom.md +0 -0
  125. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  126. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  127. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/copilot-instructions.md +0 -0
  128. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/instructions/backend-instructions.md +0 -0
  129. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/instructions/frontend-instructions.md +0 -0
  130. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/build-statics.yaml +0 -0
  131. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/bump.yaml +0 -0
  132. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/integration-tests-sqlmesh.yaml +0 -0
  133. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/integration-tests.yaml +0 -0
  134. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/tests-js.yaml +0 -0
  135. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.github/workflows/tests-python.yaml +0 -0
  136. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.gitignore +0 -0
  137. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/.pre-commit-config.yaml +0 -0
  138. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/CLAUDE.md +0 -0
  139. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/CODE_OF_CONDUCT.md +0 -0
  140. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/CONTRIBUTING.md +0 -0
  141. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/LICENSE +0 -0
  142. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/Makefile +0 -0
  143. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/README.md +0 -0
  144. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/RECCE_CLOUD.md +0 -0
  145. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/SECURITY.md +0 -0
  146. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/docs/PACKAGING.md +0 -0
  147. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/docs/README.md +0 -0
  148. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/.gitignore +0 -0
  149. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/dbt_project.yml +0 -0
  150. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/customers.sql +0 -0
  151. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/docs.md +0 -0
  152. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/orders.sql +0 -0
  153. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/schema.yml +0 -0
  154. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/staging/schema.yml +0 -0
  155. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/staging/stg_customers.sql +0 -0
  156. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/staging/stg_orders.sql +0 -0
  157. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/models/staging/stg_payments.sql +0 -0
  158. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/packages.yml +0 -0
  159. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/profiles.yml +0 -0
  160. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/seeds/raw_customers.csv +0 -0
  161. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/seeds/raw_orders.csv +0 -0
  162. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/seeds/raw_payments.csv +0 -0
  163. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/seeds/raw_statuses.csv +0 -0
  164. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/smoke_test.sh +0 -0
  165. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/dbt/smoke_test_cloud.sh +0 -0
  166. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/.gitignore +0 -0
  167. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/__init__.py +0 -0
  168. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/audits/assert_item_price_above_zero.sql +0 -0
  169. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/audits/items.sql +0 -0
  170. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/audits/order_items.sql +0 -0
  171. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/config.py +0 -0
  172. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/data/.keep +0 -0
  173. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/helper.py +0 -0
  174. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/hooks/__init__.py +0 -0
  175. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/macros/__init__.py +0 -0
  176. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/macros/macros.py +0 -0
  177. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/macros/macros.sql +0 -0
  178. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/macros/utils.py +0 -0
  179. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/metrics/metrics.sql +0 -0
  180. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/customer_revenue_by_day.sql +0 -0
  181. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/customer_revenue_lifetime.sql +0 -0
  182. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/customers.sql +0 -0
  183. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/items.py +0 -0
  184. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/marketing.sql +0 -0
  185. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/order_items.py +0 -0
  186. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/orders.py +0 -0
  187. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/raw_marketing.py +0 -0
  188. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/top_waiters.sql +0 -0
  189. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/waiter_as_customer_by_day.sql +0 -0
  190. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/waiter_names.sql +0 -0
  191. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/waiter_revenue_by_day.sql +0 -0
  192. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/models/waiters.py +0 -0
  193. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/prep_env.sh +0 -0
  194. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/recce.yml +0 -0
  195. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/schema.yaml +0 -0
  196. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/seeds/waiter_names.csv +0 -0
  197. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/test_server.sh +0 -0
  198. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/tests/test_customer_revenue_by_day.yaml +0 -0
  199. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/integration_tests/sqlmesh/tests/test_order_items.yaml +0 -0
  200. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/.editorconfig +0 -0
  201. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/.env.development +0 -0
  202. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/.gitignore +0 -0
  203. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/.husky/pre-commit +0 -0
  204. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/.nvmrc +0 -0
  205. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/README.md +0 -0
  206. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/app/favicon.ico +0 -0
  207. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/app/global.css +0 -0
  208. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/app/layout.tsx +0 -0
  209. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/biome.json +0 -0
  210. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/jest.config.js +0 -0
  211. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/jest.setup.js +0 -0
  212. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/next.config.js +0 -0
  213. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/package-lock.json +0 -0
  214. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/pnpm-workspace.yaml +0 -0
  215. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/postcss.config.js +0 -0
  216. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/public/auth_callback.html +0 -0
  217. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/public/imgs/feedback/thumbs-down.png +0 -0
  218. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/public/imgs/feedback/thumbs-up.png +0 -0
  219. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/public/imgs/reload-image.svg +0 -0
  220. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/public/logo/recce-logo-white.png +0 -0
  221. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/AuthModal/AuthModal.tsx +0 -0
  222. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/AvatarDropdown.tsx +0 -0
  223. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/Filename.tsx +0 -0
  224. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/SetupConnectionPopover.tsx +0 -0
  225. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/StateExporter.tsx +0 -0
  226. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/StateImporter.tsx +0 -0
  227. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/StateSharing.tsx +0 -0
  228. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/app/StateSynchronizer.tsx +0 -0
  229. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/charts/HistogramChart.tsx +0 -0
  230. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/charts/SquareIcon.tsx +0 -0
  231. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/charts/TopKSummaryList.tsx +0 -0
  232. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/CheckBreadcrumb.tsx +0 -0
  233. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/CheckDescription.tsx +0 -0
  234. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/CheckEmptyState.tsx +0 -0
  235. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/CheckList.tsx +0 -0
  236. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/CheckPage.tsx +0 -0
  237. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/LineageDiffView.tsx +0 -0
  238. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/PresetCheckTemplateView.tsx +0 -0
  239. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/SchemaDiffView.tsx +0 -0
  240. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/check/check.ts +0 -0
  241. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/data-grid/ScreenshotDataGrid.tsx +0 -0
  242. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/errorboundary/ErrorBoundary.tsx +0 -0
  243. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/histogram/HistogramDiffForm.tsx +0 -0
  244. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/histogram/HistogramDiffResultView.tsx +0 -0
  245. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/icons/index.tsx +0 -0
  246. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/ActionControl.tsx +0 -0
  247. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/ActionTag.tsx +0 -0
  248. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/ChangeStatusLegend.tsx +0 -0
  249. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/ColumnLevelLineageControl.tsx +0 -0
  250. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/ColumnLevelLineageLegend.tsx +0 -0
  251. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/GraphColumnNode.tsx +0 -0
  252. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/GraphEdge.tsx +0 -0
  253. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/GraphNode.tsx +0 -0
  254. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/LineagePage.tsx +0 -0
  255. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/LineageView.tsx +0 -0
  256. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/LineageViewContext.tsx +0 -0
  257. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/LineageViewContextMenu.tsx +0 -0
  258. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/LineageViewNotification.tsx +0 -0
  259. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/LineageViewTopBar.tsx +0 -0
  260. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/NodeSqlView.tsx +0 -0
  261. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/NodeTag.tsx +0 -0
  262. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/NodeView.tsx +0 -0
  263. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/SandboxView.tsx +0 -0
  264. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/SetupConnectionBanner.tsx +0 -0
  265. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/SingleEnvironmentQueryView.tsx +0 -0
  266. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/graph.test.ts +0 -0
  267. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/graph.ts +0 -0
  268. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/lineage.test.ts +0 -0
  269. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/lineage.ts +0 -0
  270. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/styles.css +0 -0
  271. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/styles.tsx +0 -0
  272. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/useMultiNodesAction.ts +0 -0
  273. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/lineage/useValueDiffAlertDialog.tsx +0 -0
  274. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/onboarding-guide/Notification.tsx +0 -0
  275. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/profile/ProfileDiffForm.tsx +0 -0
  276. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/profile/ProfileDiffResultView.tsx +0 -0
  277. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/ChangedOnlyCheckbox.tsx +0 -0
  278. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/DiffText.tsx +0 -0
  279. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/QueryDiffResultView.tsx +0 -0
  280. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/QueryForm.tsx +0 -0
  281. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/QueryPage.tsx +0 -0
  282. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/QueryResultView.tsx +0 -0
  283. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/SetupConnectionGuide.tsx +0 -0
  284. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/SqlEditor.tsx +0 -0
  285. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/ToggleSwitch.tsx +0 -0
  286. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/query/querydiff.test.ts +0 -0
  287. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/rowcount/RowCountDiffResultView.tsx +0 -0
  288. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/rowcount/delta.ts +0 -0
  289. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/RunList.tsx +0 -0
  290. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/RunModal.tsx +0 -0
  291. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/RunPage.tsx +0 -0
  292. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/RunResultPane.tsx +0 -0
  293. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/RunStatusAndDate.tsx +0 -0
  294. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/RunToolbar.tsx +0 -0
  295. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/RunView.tsx +0 -0
  296. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/registry.ts +0 -0
  297. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/run/types.ts +0 -0
  298. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/schema/ColumnNameCell.tsx +0 -0
  299. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/schema/SchemaView.tsx +0 -0
  300. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/schema/schema.test.ts +0 -0
  301. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/schema/schema.tsx +0 -0
  302. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/schema/schemaDiff.ts +0 -0
  303. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/schema/style.css +0 -0
  304. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/screenshot/ScreenshotBox.tsx +0 -0
  305. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/shared/HistoryToggle.tsx +0 -0
  306. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/split/Split.tsx +0 -0
  307. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/split/styles.css +0 -0
  308. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/summary/ChangeSummary.tsx +0 -0
  309. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/summary/SchemaSummary.tsx +0 -0
  310. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/summary/SummaryView.tsx +0 -0
  311. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/top-k/TopKDiffForm.tsx +0 -0
  312. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/top-k/TopKDiffResultView.tsx +0 -0
  313. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/ui/color-mode.tsx +0 -0
  314. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/ui/provider.tsx +0 -0
  315. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/ui/toaster.tsx +0 -0
  316. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/ui/tooltip.tsx +0 -0
  317. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/valuediff/ValueDiffDetailResultView.tsx +0 -0
  318. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/valuediff/ValueDiffForm.tsx +0 -0
  319. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/valuediff/ValueDiffResultView.tsx +0 -0
  320. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/components/valuediff/shared.ts +0 -0
  321. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/constants/tooltipMessage.ts +0 -0
  322. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/constants/urls.ts +0 -0
  323. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/UrlHash.ts +0 -0
  324. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/adhocQuery.ts +0 -0
  325. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/axiosClient.ts +0 -0
  326. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/cll.ts +0 -0
  327. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/connectToCloud.ts +0 -0
  328. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/flag.ts +0 -0
  329. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/info.ts +0 -0
  330. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/lineagecheck.ts +0 -0
  331. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/localStorageKeys.ts +0 -0
  332. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/models.ts +0 -0
  333. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/profile.ts +0 -0
  334. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/rowcount.ts +0 -0
  335. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/runs.ts +0 -0
  336. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/schemacheck.ts +0 -0
  337. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/select.ts +0 -0
  338. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/sessionStorageKeys.ts +0 -0
  339. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/state.ts +0 -0
  340. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/track.ts +0 -0
  341. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/types.ts +0 -0
  342. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/user.ts +0 -0
  343. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/valuediff.ts +0 -0
  344. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/api/version.ts +0 -0
  345. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/const.ts +0 -0
  346. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/formatSelect.ts +0 -0
  347. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/RecceActionContext.tsx +0 -0
  348. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/RecceCheckContext.tsx +0 -0
  349. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/RecceContextProvider.tsx +0 -0
  350. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/RecceQueryContext.tsx +0 -0
  351. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/RecceShareStateContext.tsx +0 -0
  352. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useCheckToast.tsx +0 -0
  353. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useClipBoardToast.tsx +0 -0
  354. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useCountdownToast.tsx +0 -0
  355. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useFeedbackCollectionToast.tsx +0 -0
  356. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useGuideToast.tsx +0 -0
  357. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useHashLocation.ts +0 -0
  358. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useModelColumns.tsx +0 -0
  359. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useRecceInstanceInfo.tsx +0 -0
  360. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useRecceServerFlag.tsx +0 -0
  361. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/hooks/useRun.tsx +0 -0
  362. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/mergeKeys.test.ts +0 -0
  363. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/mergeKeys.ts +0 -0
  364. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/lib/utils/urls.ts +0 -0
  365. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/utils/DropdownValuesInput.tsx +0 -0
  366. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/src/utils/formatters.tsx +0 -0
  367. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/theme/components/Checkbox.ts +0 -0
  368. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/theme/components/Tooltip.ts +0 -0
  369. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/js/tsconfig.json +0 -0
  370. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/macros/README.md +0 -0
  371. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/macros/recce_athena.sql +0 -0
  372. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/pyproject.toml +0 -0
  373. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/__init__.py +0 -0
  374. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/adapter/__init__.py +0 -0
  375. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/adapter/base.py +0 -0
  376. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/adapter/dbt_adapter/__init__.py +0 -0
  377. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/adapter/dbt_adapter/dbt_version.py +0 -0
  378. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/adapter/sqlmesh_adapter.py +0 -0
  379. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/apis/__init__.py +0 -0
  380. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/apis/run_api.py +0 -0
  381. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/apis/run_func.py +0 -0
  382. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/artifact.py +0 -0
  383. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/config.py +0 -0
  384. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/connect_to_cloud.py +0 -0
  385. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/core.py +0 -0
  386. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/chunks/a6dad97d9634a72d.js +0 -0
  387. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/chunks/f40141db1bdb46f0.css +0 -0
  388. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/favicon.a8d38d84.ico +0 -0
  389. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.d80d830d.woff2 +0 -0
  390. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-cyrillic-800-normal.f9d58125.woff +0 -0
  391. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.076c2a93.woff2 +0 -0
  392. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-cyrillic-ext-800-normal.a4fa76b5.woff +0 -0
  393. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-latin-800-normal.cde454cc.woff2 +0 -0
  394. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-latin-800-normal.d5761935.woff +0 -0
  395. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.40ec0659.woff2 +0 -0
  396. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-latin-ext-800-normal.b671449b.woff +0 -0
  397. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.9f7b8541.woff +0 -0
  398. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/montserrat-vietnamese-800-normal.f9eb854e.woff2 +0 -0
  399. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/_next/static/media/reload-image.7aa931c7.svg +0 -0
  400. {recce_nightly-1.25.0.20251118/recce/data/_next/static/gIS4zIcPD_5Df8RLpMGPx → recce_nightly-1.27.0.20251201/recce/data/_next/static/yS8-HLAmuC0Dpp1LfRScp}/_buildManifest.js +0 -0
  401. {recce_nightly-1.25.0.20251118/recce/data/_next/static/gIS4zIcPD_5Df8RLpMGPx → recce_nightly-1.27.0.20251201/recce/data/_next/static/yS8-HLAmuC0Dpp1LfRScp}/_clientMiddlewareManifest.json +0 -0
  402. {recce_nightly-1.25.0.20251118/recce/data/_next/static/gIS4zIcPD_5Df8RLpMGPx → recce_nightly-1.27.0.20251201/recce/data/_next/static/yS8-HLAmuC0Dpp1LfRScp}/_ssgManifest.js +0 -0
  403. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/auth_callback.html +0 -0
  404. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/favicon.ico +0 -0
  405. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/imgs/feedback/thumbs-down.png +0 -0
  406. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/imgs/feedback/thumbs-up.png +0 -0
  407. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/imgs/reload-image.svg +0 -0
  408. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/data/logo/recce-logo-white.png +0 -0
  409. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/diff.py +0 -0
  410. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/event/CONFIG +0 -0
  411. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/event/SENTRY_DNS +0 -0
  412. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/event/__init__.py +0 -0
  413. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/event/collector.py +0 -0
  414. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/event/track.py +0 -0
  415. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/exceptions.py +0 -0
  416. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/git.py +0 -0
  417. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/github.py +0 -0
  418. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/models/__init__.py +0 -0
  419. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/models/run.py +0 -0
  420. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/pull_request.py +0 -0
  421. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/state/__init__.py +0 -0
  422. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/state/const.py +0 -0
  423. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/state/local.py +0 -0
  424. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/state/state.py +0 -0
  425. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/__init__.py +0 -0
  426. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/core.py +0 -0
  427. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/histogram.py +0 -0
  428. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/lineage.py +0 -0
  429. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/profile.py +0 -0
  430. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/query.py +0 -0
  431. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/rowcount.py +0 -0
  432. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/schema.py +0 -0
  433. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/top_k.py +0 -0
  434. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/tasks/valuediff.py +0 -0
  435. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/__init__.py +0 -0
  436. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/api_token.py +0 -0
  437. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/breaking.py +0 -0
  438. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/cache.py +0 -0
  439. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/cll.py +0 -0
  440. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/io.py +0 -0
  441. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/lineage.py +0 -0
  442. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/logger.py +0 -0
  443. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/onboarding_state.py +0 -0
  444. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/perf_tracking.py +0 -0
  445. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/pydantic_model.py +0 -0
  446. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/util/singleton.py +0 -0
  447. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce/yaml/__init__.py +0 -0
  448. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/README.md +0 -0
  449. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/__init__.py +0 -0
  450. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/api/__init__.py +0 -0
  451. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/api/base.py +0 -0
  452. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/api/client.py +0 -0
  453. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/api/exceptions.py +0 -0
  454. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/api/factory.py +0 -0
  455. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/api/github.py +0 -0
  456. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/api/gitlab.py +0 -0
  457. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/artifact.py +0 -0
  458. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/ci_providers/__init__.py +0 -0
  459. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/ci_providers/base.py +0 -0
  460. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/ci_providers/detector.py +0 -0
  461. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/ci_providers/github_actions.py +0 -0
  462. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/ci_providers/gitlab_ci.py +0 -0
  463. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/cli.py +0 -0
  464. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_cloud/upload.py +0 -0
  465. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_nightly.egg-info/dependency_links.txt +0 -0
  466. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_nightly.egg-info/entry_points.txt +0 -0
  467. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_nightly.egg-info/requires.txt +0 -0
  468. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/recce_nightly.egg-info/top_level.txt +0 -0
  469. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/setup.cfg +0 -0
  470. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/setup.py +0 -0
  471. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/setup_cloud.py +0 -0
  472. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/test.py +0 -0
  473. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/__init__.py +0 -0
  474. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/__init__.py +0 -0
  475. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/__init__.py +0 -0
  476. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/conftest.py +0 -0
  477. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/dbt_test_helper.py +0 -0
  478. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_dbt_adapter.py +0 -0
  479. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_dbt_cll.py +0 -0
  480. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_proj/.gitignore +0 -0
  481. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_proj/dbt_project.yml +0 -0
  482. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_proj/manifest.json +0 -0
  483. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_proj/package-lock.yml +0 -0
  484. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_proj/packages.yml +0 -0
  485. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_proj/profiles.yml +0 -0
  486. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/adapter/dbt_adapter/test_selector.py +0 -0
  487. {recce_nightly-1.25.0.20251118/tests/recce_cloud → recce_nightly-1.27.0.20251201/tests/apis}/__init__.py +0 -0
  488. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/apis/row_count_diff.json +0 -0
  489. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/apis/test_run_func.py +0 -0
  490. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/catalog.json +0 -0
  491. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/data/config/recce.yml +0 -0
  492. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/data/manifest/base/catalog.json +0 -0
  493. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/data/manifest/base/manifest.json +0 -0
  494. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/data/manifest/pr2/catalog.json +0 -0
  495. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/data/manifest/pr2/manifest.json +0 -0
  496. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/manifest.json +0 -0
  497. {recce_nightly-1.25.0.20251118/tests/tasks → recce_nightly-1.27.0.20251201/tests/models}/__init__.py +0 -0
  498. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/models/test_run_models.py +0 -0
  499. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/recce_cloud/test_ci_providers.py +0 -0
  500. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/recce_cloud/test_cli.py +0 -0
  501. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/recce_cloud/test_client.py +0 -0
  502. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/recce_cloud/test_platform_clients.py +0 -0
  503. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/recce_state.json +0 -0
  504. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/state/test_local.py +0 -0
  505. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/state/test_state_loader.py +0 -0
  506. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/conftest.py +0 -0
  507. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_histogram.py +0 -0
  508. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_lineage.py +0 -0
  509. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_preset_checks.py +0 -0
  510. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_profile.py +0 -0
  511. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_query.py +0 -0
  512. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_row_count.py +0 -0
  513. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_schema.py +0 -0
  514. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_top_k.py +0 -0
  515. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/tasks/test_valuediff.py +0 -0
  516. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_cli.py +0 -0
  517. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_cli_mcp_optional.py +0 -0
  518. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_cloud_listing_cli.py +0 -0
  519. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_config.py +0 -0
  520. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_connect_to_cloud.py +0 -0
  521. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_core.py +0 -0
  522. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_dbt.py +0 -0
  523. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_pull_request.py +0 -0
  524. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/test_summary.py +0 -0
  525. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/util/test_api_token.py +0 -0
  526. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/util/test_breaking.py +0 -0
  527. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/util/test_cll.py +0 -0
  528. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/util/test_lineage.py +0 -0
  529. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/util/test_onboarding_state.py +0 -0
  530. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tests/util/test_recce_cloud.py +0 -0
  531. {recce_nightly-1.25.0.20251118 → recce_nightly-1.27.0.20251201}/tox.ini +0 -0
@@ -7,15 +7,48 @@ on:
7
7
  paths-ignore:
8
8
  - "js/**"
9
9
  - "recce/data/**"
10
- pull_request_target:
10
+ pull_request:
11
11
  branches:
12
12
  - main
13
13
  paths-ignore:
14
14
  - "js/**"
15
15
  - "recce/data/**"
16
16
 
17
+ # Explicitly limit permissions for pull_request_target
18
+ permissions:
19
+ contents: read
20
+ pull-requests: read
21
+
17
22
  jobs:
23
+ # First job: Check if the PR author has write permission
24
+ # This job runs in the privileged context but doesn't checkout untrusted code
25
+ authorize:
26
+ runs-on: ubuntu-latest
27
+ outputs:
28
+ authorized: ${{ steps.check.outputs.authorized }}
29
+ steps:
30
+ - name: Check if PR author has write permission
31
+ id: check
32
+ run: |
33
+ if [[ "${{ github.event_name }}" == "push" ]]; then
34
+ echo "authorized=true" >> $GITHUB_OUTPUT
35
+ exit 0
36
+ fi
37
+
38
+ PERMISSION=$(gh api repos/${{ github.repository }}/collaborators/${{ github.triggering_actor }}/permission --jq '.permission' 2>/dev/null || echo "none")
39
+ if [[ "$PERMISSION" == "write" || "$PERMISSION" == "admin" ]]; then
40
+ echo "authorized=true" >> $GITHUB_OUTPUT
41
+ else
42
+ echo "authorized=false" >> $GITHUB_OUTPUT
43
+ echo "::warning::Cloud smoke test skipped for forked repository. This test will be migrated to a separate workflow for external contributors."
44
+ fi
45
+ env:
46
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47
+
48
+ # Second job: Run the actual tests only if authorized
18
49
  smoke-test-cloud:
50
+ needs: authorize
51
+ if: needs.authorize.outputs.authorized == 'true'
19
52
  concurrency:
20
53
  group: smoke-test-cloud
21
54
  cancel-in-progress: false
@@ -29,29 +62,21 @@ jobs:
29
62
  - python-version: "3.13"
30
63
  dbt-version: "latest"
31
64
  steps:
32
- - name: Check external code before checkout
33
- run: |
34
- PERMISSION=$(gh api repos/${{ github.repository }}/collaborators/${{ github.triggering_actor }}/permission --jq '.permission')
35
- if [[ "$PERMISSION" != "write" && "$PERMISSION" != "admin" ]]; then
36
- echo "Please review the code from ${{ github.actor }}, then re-run the workflow."
37
- exit 1
38
- fi
39
- env:
40
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41
-
42
- - uses: actions/checkout@v3
65
+ # Safe checkout: only proceeds after authorization check passes
66
+ # codeql[js/actions/pull-request-target] - Authorization verified in previous job
67
+ - uses: actions/checkout@v4
43
68
  with:
44
- repository: ${{ github.event.pull_request.head.repo.full_name }}
45
- ref: ${{ github.event.pull_request.head.sha }}
46
- token: ${{ secrets.RECCE_CLOUD_TOKEN }}
69
+ persist-credentials: false
47
70
 
48
71
  - name: Set up Python
49
72
  uses: actions/setup-python@v5
50
73
  with:
51
74
  python-version: ${{ matrix.python-version }}
52
- cache: "pip" # caching pip dependencies
75
+ cache: "pip"
53
76
  cache-dependency-path: setup.py
54
- - run: |
77
+
78
+ - name: Install dependencies
79
+ run: |
55
80
  python -m pip install --upgrade pip
56
81
  if [ "${{ matrix.dbt-version }}" == "latest" ]; then
57
82
  pip install dbt-core
@@ -70,4 +95,4 @@ jobs:
70
95
  ./integration_tests/dbt/smoke_test_cloud.sh
71
96
  env:
72
97
  GITHUB_TOKEN: ${{ secrets.RECCE_CLOUD_TOKEN }}
73
- RECCE_STATE_PASSWORD: ${{ vars.RECCE_STATE_PASSWORD}}
98
+ RECCE_STATE_PASSWORD: ${{ vars.RECCE_STATE_PASSWORD }}
@@ -17,6 +17,9 @@ on:
17
17
  type: number
18
18
  default: 0
19
19
 
20
+ permissions:
21
+ contents: read
22
+
20
23
  jobs:
21
24
  build-nightly-release:
22
25
  name: Build Recce Nightly Release
@@ -72,7 +75,7 @@ jobs:
72
75
  final_version="$new_version"
73
76
  else
74
77
  # Same date, check if latest already has postN
75
- if [[ "$latest_version" =~ -post([0-9]+)$ ]]; then
78
+ if [[ "$latest_version" =~ \.post([0-9]+)$ ]]; then
76
79
  post_num=$(( ${BASH_REMATCH[1]} + 1 ))
77
80
  else
78
81
  post_num=1
@@ -134,8 +137,6 @@ jobs:
134
137
  build-recce-cloud-nightly:
135
138
  name: Build Recce Cloud Nightly Release
136
139
  runs-on: ubuntu-latest
137
- permissions:
138
- contents: read
139
140
  steps:
140
141
  - name: Checkout
141
142
  uses: actions/checkout@v4
@@ -166,8 +167,7 @@ jobs:
166
167
  # New date is newer, no post needed
167
168
  final_version="$new_version"
168
169
  else
169
- # Same date, check if latest already has postN
170
- if [[ "$latest_version" =~ -post([0-9]+)$ ]]; then
170
+ if [[ "$latest_version" =~ \.post([0-9]+)$ ]]; then
171
171
  post_num=$(( ${BASH_REMATCH[1]} + 1 ))
172
172
  else
173
173
  post_num=1
@@ -212,3 +212,33 @@ jobs:
212
212
  ignore_empty: true
213
213
  ignore_missing: true
214
214
  version: ${{ steps.patch_version.outputs.nightly_version }}
215
+
216
+ trigger-build-recce-instance-launcher-image:
217
+ name: Trigger Build Recce Instance Launcher Image
218
+ runs-on: ubuntu-latest
219
+ permissions:
220
+ contents: read
221
+ needs: build-nightly-release
222
+ steps:
223
+ - uses: actions/create-github-app-token@v2
224
+ id: app-token
225
+ with:
226
+ app-id: 2343362 # App ID of Recce Action Bot
227
+ private-key: ${{ secrets.RECCE_ACTION_BOT_PRIVATE_KEY }}
228
+ owner: ${{ github.repository_owner }}
229
+ - name: Trigger Recce Instance Launcher Image Build
230
+ id: dispatch
231
+ continue-on-error: true
232
+ uses: benc-uk/workflow-dispatch@v1
233
+ with:
234
+ workflow: 'build-recce-instance-launcher.yml'
235
+ repo: 'DataRecce/recce-cloud-infra'
236
+ ref: 'main'
237
+ inputs: '{ "environment": "staging" }'
238
+ token: '${{ steps.app-token.outputs.token }}'
239
+ - name: Handle dispatch failure
240
+ if: steps.dispatch.outcome == 'failure'
241
+ run: |
242
+ echo "::warning::Failed to trigger recce-cloud-infra build workflow"
243
+ echo "::warning::Please manually trigger the build at: https://github.com/DataRecce/recce-cloud-infra/actions/workflows/build-recce-instance-launcher.yml"
244
+ echo "::warning::Use ref: main and environment: staging"
@@ -3,6 +3,9 @@ on:
3
3
  push:
4
4
  tags: 'v*'
5
5
 
6
+ permissions:
7
+ contents: read
8
+
6
9
  jobs:
7
10
  build:
8
11
  name: Build Recce Official Release
@@ -92,8 +95,6 @@ jobs:
92
95
  build-recce-cloud:
93
96
  name: Build Recce Cloud Official Release
94
97
  runs-on: ubuntu-latest
95
- permissions:
96
- contents: read
97
98
 
98
99
  steps:
99
100
  - name: Checkout
@@ -141,3 +142,53 @@ jobs:
141
142
  ignore_empty: true
142
143
  ignore_missing: true
143
144
  version: ${{ steps.patch_version.outputs.release_version }}
145
+
146
+ trigger-build-recce-instance-launcher-image:
147
+ name: Trigger Recce Instance Launcher Image Build
148
+ runs-on: ubuntu-latest
149
+ permissions:
150
+ contents: read
151
+ needs: build
152
+ steps:
153
+ - uses: actions/create-github-app-token@v2
154
+ id: app-token
155
+ with:
156
+ app-id: 2343362 # App ID of Recce Action Bot
157
+ private-key: ${{ secrets.RECCE_ACTION_BOT_PRIVATE_KEY }}
158
+ owner: ${{ github.repository_owner }}
159
+ - name: Fetch latest release from Recce Cloud Infra repo
160
+ id: latest-recce-cloud-release
161
+ env:
162
+ TOKEN: ${{ steps.app-token.outputs.token }}
163
+ ORG: DataRecce
164
+ REPO: recce-cloud-infra
165
+ run: |
166
+ tag=$(curl -sS --fail-with-body \
167
+ -H "Accept: application/vnd.github+json" \
168
+ -H "Authorization: Bearer ${TOKEN}" \
169
+ https://api.github.com/repos/${ORG}/${REPO}/releases/latest \
170
+ | jq -r .tag_name)
171
+
172
+ if [ -z "$tag" ] || [ "$tag" = "null" ]; then
173
+ echo "Error: Failed to fetch latest release tag from ${ORG}/${REPO}"
174
+ exit 1
175
+ fi
176
+
177
+ echo "tag_name=$tag" >> "$GITHUB_OUTPUT"
178
+ echo "Fetched latest release: $tag"
179
+ - name: Trigger Recce Instance Launcher Image Build Workflow
180
+ id: dispatch
181
+ continue-on-error: true
182
+ uses: benc-uk/workflow-dispatch@v1
183
+ with:
184
+ workflow: 'build-recce-instance-launcher.yml'
185
+ repo: 'DataRecce/recce-cloud-infra'
186
+ ref: ${{ steps.latest-recce-cloud-release.outputs.tag_name }}
187
+ inputs: '{ "environment": "production" }'
188
+ token: '${{ steps.app-token.outputs.token }}'
189
+ - name: Handle dispatch failure
190
+ if: steps.dispatch.outcome == 'failure'
191
+ run: |
192
+ echo "::warning::Failed to trigger recce-cloud-infra build workflow"
193
+ echo "::warning::Please manually trigger the build at: https://github.com/DataRecce/recce-cloud-infra/actions/workflows/build-recce-instance-launcher.yml"
194
+ echo "::warning::Use ref: ${{ steps.latest-recce-cloud-release.outputs.tag_name }} and environment: production"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: recce-nightly
3
- Version: 1.25.0.20251118
3
+ Version: 1.27.0.20251201
4
4
  Summary: Environment diff tool for dbt
5
5
  Home-page: https://github.com/InfuseAI/recce
6
6
  Author: InfuseAI Dev Team
@@ -6,6 +6,7 @@ import { Router } from "wouter";
6
6
  import { Provider } from "@/components/ui/provider";
7
7
  import { Toaster } from "@/components/ui/toaster";
8
8
  import { reactQueryClient } from "@/lib/api/axiosClient";
9
+ import { IdleTimeoutProvider } from "@/lib/hooks/IdleTimeoutContext";
9
10
  import RecceContextProvider from "@/lib/hooks/RecceContextProvider";
10
11
  import { useHashLocation } from "@/lib/hooks/useHashLocation";
11
12
 
@@ -13,12 +14,14 @@ export default function Providers({ children }: { children: ReactNode }) {
13
14
  return (
14
15
  <Provider forcedTheme="light">
15
16
  <QueryClientProvider client={reactQueryClient}>
16
- <Router hook={useHashLocation}>
17
- <RecceContextProvider>
18
- {children}
19
- <Toaster />
20
- </RecceContextProvider>
21
- </Router>
17
+ <IdleTimeoutProvider>
18
+ <Router hook={useHashLocation}>
19
+ <RecceContextProvider>
20
+ {children}
21
+ <Toaster />
22
+ </RecceContextProvider>
23
+ </Router>
24
+ </IdleTimeoutProvider>
22
25
  </QueryClientProvider>
23
26
  </Provider>
24
27
  );
@@ -40,13 +40,13 @@ import { LineagePage } from "@/components/lineage/LineagePage";
40
40
  import { RunList } from "@/components/run/RunList";
41
41
  import { RunResultPane } from "@/components/run/RunResultPane";
42
42
  import { HSplit, VSplit } from "@/components/split/Split";
43
+ import { IdleTimeoutBadge } from "@/components/timeout/IdleTimeoutBadge";
43
44
  import { toaster } from "@/components/ui/toaster";
44
45
  import { cacheKeys } from "@/lib/api/cacheKeys";
45
46
  import { Check, listChecks } from "@/lib/api/checks";
46
47
  import { trackInit, trackNavigation } from "@/lib/api/track";
47
48
  import { useRecceActionContext } from "@/lib/hooks/RecceActionContext";
48
49
  import { useRecceInstanceContext } from "@/lib/hooks/RecceInstanceContext";
49
- import { useCountdownToast } from "@/lib/hooks/useCountdownToast";
50
50
  import { useRecceServerFlag } from "@/lib/hooks/useRecceServerFlag";
51
51
 
52
52
  const RouteAlwaysMount = ({
@@ -166,8 +166,7 @@ function RecceVersionBadge() {
166
166
  function TopBar() {
167
167
  const { reviewMode, isDemoSite, envInfo, cloudMode } =
168
168
  useLineageGraphContext();
169
- const { featureToggles, lifetimeExpiredAt, authed } =
170
- useRecceInstanceContext();
169
+ const { featureToggles, authed } = useRecceInstanceContext();
171
170
  const { url: prURL, id: prID } = envInfo?.pullRequest ?? {};
172
171
  const demoPrId = prURL ? prURL.split("/").pop() : null;
173
172
  const brandLink =
@@ -176,8 +175,6 @@ function TopBar() {
176
175
  : "https://reccehq.com/";
177
176
  const [showModal, setShowModal] = useState(false);
178
177
 
179
- useCountdownToast(lifetimeExpiredAt);
180
-
181
178
  return (
182
179
  <Flex
183
180
  gap="10px"
@@ -302,6 +299,7 @@ function TopBar() {
302
299
  )}
303
300
  {!isDemoSite && featureToggles.mode !== "read only" && (
304
301
  <>
302
+ <IdleTimeoutBadge />
305
303
  {authed || cloudMode ? (
306
304
  <Box mr={2}>
307
305
  <AvatarDropdown />
@@ -55,7 +55,10 @@
55
55
  "react-data-grid": "7.0.0-beta.58",
56
56
  "react-dom": "19.2.0",
57
57
  "react-icons": "^5.5.0",
58
+ "react-markdown": "^10.1.0",
58
59
  "react-split": "^2.0.14",
60
+ "react-syntax-highlighter": "^16.1.0",
61
+ "remark-gfm": "^4.0.1",
59
62
  "simplebar": "^6.3.3",
60
63
  "simplebar-react": "3.3.2",
61
64
  "usehooks-ts": "^3.1.1",
@@ -77,6 +80,7 @@
77
80
  "@types/node": "^24.10.1",
78
81
  "@types/react": "19.2.5",
79
82
  "@types/react-dom": "19.2.3",
83
+ "@types/react-syntax-highlighter": "^15.5.13",
80
84
  "globals": "^16.5.0",
81
85
  "husky": "^9.1.7",
82
86
  "jest": "^30.2.0",