pytagmanager 0.3.0__tar.gz → 0.3.2__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 (206) hide show
  1. pytagmanager-0.3.2/.cargo/audit.toml +16 -0
  2. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/.github/ISSUE_TEMPLATE/bug_report.yml +1 -1
  3. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/.github/workflows/ci.yml +9 -4
  4. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/.gitignore +6 -0
  5. pytagmanager-0.3.2/.graphifyignore +31 -0
  6. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/CHANGELOG.md +32 -1
  7. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/Cargo.lock +238 -580
  8. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/Cargo.toml +3 -3
  9. pytagmanager-0.3.0/README.md → pytagmanager-0.3.2/PKG-INFO +33 -1
  10. pytagmanager-0.3.0/PKG-INFO → pytagmanager-0.3.2/README.md +14 -20
  11. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/ROADMAP_HONEST.md +25 -9
  12. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/pyproject.toml +2 -2
  13. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/__init__.py +1 -1
  14. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/_taxonomy.py +10 -0
  15. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/ga4.py +13 -0
  16. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/rudderstack.py +7 -0
  17. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/segment.py +16 -0
  18. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/intent/ollama_classifier.py +12 -0
  19. pytagmanager-0.3.2/python/pytagmanager/sitewide/notify.py +101 -0
  20. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/crawler/orchestrator.rs +3 -3
  21. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/dom/graph.rs +2 -2
  22. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/lib.rs +1 -1
  23. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_exporters.py +93 -0
  24. pytagmanager-0.3.2/tests/python/test_notify_backoff.py +15 -0
  25. pytagmanager-0.3.2/tools/graphify/README.md +63 -0
  26. pytagmanager-0.3.2/tools/graphify/graphify_adapter.py +242 -0
  27. pytagmanager-0.3.0/python/pytagmanager/sitewide/notify.py +0 -47
  28. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/.cargo/config.toml +0 -0
  29. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  30. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/.github/dependabot.yml +0 -0
  31. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/.github/pull_request_template.md +0 -0
  32. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/CODE_OF_CONDUCT.md +0 -0
  33. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/CONTRIBUTING.md +0 -0
  34. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/LICENSE +0 -0
  35. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/SECURITY.md +0 -0
  36. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/docs/ARCHITECTURE.md +0 -0
  37. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/docs/ROADMAP.md +0 -0
  38. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/docs/VISION.md +0 -0
  39. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/analytics_api/__init__.py +0 -0
  40. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/analytics_api/ga4_client.py +0 -0
  41. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/analytics_api/gtm_client.py +0 -0
  42. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/analytics_api/models.py +0 -0
  43. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/cli.py +0 -0
  44. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/correlation/__init__.py +0 -0
  45. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/correlation/journey.py +0 -0
  46. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/diagnostics/__init__.py +0 -0
  47. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/diagnostics/models.py +0 -0
  48. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/diagnostics/rules.py +0 -0
  49. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/diagnostics/trace.py +0 -0
  50. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/dictionary/__init__.py +0 -0
  51. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/dictionary/build.py +0 -0
  52. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/dictionary/labels.py +0 -0
  53. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/dictionary/purpose.py +0 -0
  54. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/dictionary/report.py +0 -0
  55. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/dictionary/schema_drift.py +0 -0
  56. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/discovery/__init__.py +0 -0
  57. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/discovery/crawl.py +0 -0
  58. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/__init__.py +0 -0
  59. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/adobe_tags.py +0 -0
  60. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/base.py +0 -0
  61. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/gtm.py +0 -0
  62. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/snowplow.py +0 -0
  63. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/export/tealium.py +0 -0
  64. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/intent/__init__.py +0 -0
  65. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/intent/base.py +0 -0
  66. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/observability/__init__.py +0 -0
  67. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/observability/agent.js +0 -0
  68. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/observability/events.py +0 -0
  69. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/observability/scenario.py +0 -0
  70. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/observability/session.py +0 -0
  71. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/observability/state.py +0 -0
  72. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/__init__.py +0 -0
  73. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/dependency_graph.py +0 -0
  74. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/experiments.py +0 -0
  75. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/history.py +0 -0
  76. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/measure.py +0 -0
  77. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/perf_agent.js +0 -0
  78. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/report.py +0 -0
  79. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/scripts.py +0 -0
  80. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/tagging_join.py +0 -0
  81. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/perf/test_candidates.py +0 -0
  82. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/recommend/__init__.py +0 -0
  83. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/recommend/heuristics.py +0 -0
  84. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/recommend/models.py +0 -0
  85. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/reporting/__init__.py +0 -0
  86. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/reporting/json_report.py +0 -0
  87. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/reporting/summary.py +0 -0
  88. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/reporting/terminal.py +0 -0
  89. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/runtime/__init__.py +0 -0
  90. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/runtime/interactions.py +0 -0
  91. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/runtime/renderer.py +0 -0
  92. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/runtime/screenshots.py +0 -0
  93. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/runtime/sniffer.py +0 -0
  94. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/__init__.py +0 -0
  95. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/aggregation.py +0 -0
  96. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/anomalies.py +0 -0
  97. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/event_map.py +0 -0
  98. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/history.py +0 -0
  99. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/interaction_consistency.py +0 -0
  100. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/page_type.py +0 -0
  101. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/report.py +0 -0
  102. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/sitewide/templates.py +0 -0
  103. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/tagexec/__init__.py +0 -0
  104. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/tagexec/duplicates.py +0 -0
  105. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/tagexec/graph.py +0 -0
  106. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/tagexec/report.py +0 -0
  107. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/tagexec/server_side.py +0 -0
  108. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/tagexec/static_scan.py +0 -0
  109. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/testintel/__init__.py +0 -0
  110. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/testintel/candidates.py +0 -0
  111. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/testintel/playwright_export.py +0 -0
  112. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/testintel/regression.py +0 -0
  113. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/testintel/report.py +0 -0
  114. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/version_control/__init__.py +0 -0
  115. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/version_control/diff.py +0 -0
  116. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/python/pytagmanager/version_control/snapshot.py +0 -0
  117. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/crawler/mod.rs +0 -0
  118. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/crawler/sitemap.rs +0 -0
  119. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/dom/mod.rs +0 -0
  120. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/dom/parser.rs +0 -0
  121. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/dom/selectors.rs +0 -0
  122. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/src/error.rs +0 -0
  123. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/crawl_integration.rs +0 -0
  124. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/conftest.py +0 -0
  125. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/add_to_cart_variant_naming.html +0 -0
  126. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/api_and_console.html +0 -0
  127. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/duplicate_tracking.html +0 -0
  128. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/healthy_tracking.html +0 -0
  129. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/heavy_first_party.js +0 -0
  130. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/local_first_party.js +0 -0
  131. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/missing_datalayer.html +0 -0
  132. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/missing_ga4_request.html +0 -0
  133. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/perf_heavy.html +0 -0
  134. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/perf_isolate.html +0 -0
  135. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/perf_scripts.html +0 -0
  136. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/runtime_state.html +0 -0
  137. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/runtime_state_regression.html +0 -0
  138. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/spa_client_rendered.html +0 -0
  139. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/spa_dedup_reset.html +0 -0
  140. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/spa_tracking.html +0 -0
  141. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/tagexec_duplicate.html +0 -0
  142. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/tagexec_server_side.html +0 -0
  143. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/observability/tagexec_static.html +0 -0
  144. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/fixtures/sample_page.html +0 -0
  145. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_analytics_api_clients.py +0 -0
  146. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_cli.py +0 -0
  147. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_cli_render.py +0 -0
  148. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_core_ffi.py +0 -0
  149. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_correlation.py +0 -0
  150. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_diagnose_cli.py +0 -0
  151. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_diagnose_duplicate_tags_cli.py +0 -0
  152. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_diagnose_server_side_cli.py +0 -0
  153. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_diagnose_site_wide_cli.py +0 -0
  154. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_diagnose_tag_graph_cli.py +0 -0
  155. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_diagnose_test_candidates_cli.py +0 -0
  156. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_diagnostics_rules.py +0 -0
  157. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_dictionary.py +0 -0
  158. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_dictionary_labels.py +0 -0
  159. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_dictionary_purpose.py +0 -0
  160. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_dictionary_schema_drift.py +0 -0
  161. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_dictionary_test_candidates_cli.py +0 -0
  162. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_discovery_crawl_rendered.py +0 -0
  163. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_event_map.py +0 -0
  164. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_gtm_export.py +0 -0
  165. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_heuristics.py +0 -0
  166. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_intent_ollama.py +0 -0
  167. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_interaction_consistency.py +0 -0
  168. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_interaction_trace.py +0 -0
  169. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_observability_extended_observers.py +0 -0
  170. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_observability_pipeline.py +0 -0
  171. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_observability_state.py +0 -0
  172. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_cli.py +0 -0
  173. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_dependency_graph.py +0 -0
  174. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_dependency_graph_e2e.py +0 -0
  175. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_environment_config.py +0 -0
  176. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_experiments_e2e.py +0 -0
  177. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_experiments_unit.py +0 -0
  178. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_history.py +0 -0
  179. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_measure.py +0 -0
  180. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_measure_e2e.py +0 -0
  181. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_report.py +0 -0
  182. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_scripts.py +0 -0
  183. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_scripts_unit.py +0 -0
  184. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_tagging_join.py +0 -0
  185. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_perf_test_candidates.py +0 -0
  186. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_runtime_interactions.py +0 -0
  187. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_runtime_renderer.py +0 -0
  188. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_runtime_screenshots.py +0 -0
  189. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_runtime_sniffer.py +0 -0
  190. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_scan_tags_cli.py +0 -0
  191. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_sitewide_aggregation.py +0 -0
  192. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_sitewide_anomalies.py +0 -0
  193. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_sitewide_history.py +0 -0
  194. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_sitewide_notify.py +0 -0
  195. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_sitewide_page_type.py +0 -0
  196. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_sitewide_templates.py +0 -0
  197. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_tagexec_duplicates.py +0 -0
  198. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_tagexec_graph.py +0 -0
  199. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_tagexec_server_side.py +0 -0
  200. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_tagexec_static_scan.py +0 -0
  201. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_tagexec_static_scan_e2e.py +0 -0
  202. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_testintel_candidates.py +0 -0
  203. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_testintel_playwright_export.py +0 -0
  204. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_testintel_regression.py +0 -0
  205. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/python/test_version_control.py +0 -0
  206. {pytagmanager-0.3.0 → pytagmanager-0.3.2}/tests/support/mod.rs +0 -0
@@ -0,0 +1,16 @@
1
+ # cargo-audit configuration.
2
+ #
3
+ # Ignored advisories (each with the reason it cannot be fixed by upgrading).
4
+ [advisories]
5
+ ignore = [
6
+ # `async-std` (RUSTSEC-2025-0052) is a transitive, unmodifiable dependency:
7
+ # pytagmanager -> mudfish-browser (external git dep, Mullassery/MudFish
8
+ # @ rev 71176fa) -> chromiumoxide 0.7 -> async-std.
9
+ # chromiumoxide 0.7 enables its `async-std-runtime` feature by *default*,
10
+ # and Cargo features are additive, so downstream cannot disable it. It is
11
+ # removed in chromiumoxide 0.9 (tokio-only), but the parent
12
+ # `mudfish-browser` pins `chromiumoxide = "0.7"` and lives in the external
13
+ # MudFish repository, which is out of scope to edit. No downstream fix is
14
+ # available; tracked upstream until MudFish adopts chromiumoxide >= 0.9.
15
+ "RUSTSEC-2025-0052",
16
+ ]
@@ -21,7 +21,7 @@ body:
21
21
  id: python-version
22
22
  attributes:
23
23
  label: Python version
24
- placeholder: "3.9 / 3.11 / ..."
24
+ placeholder: "3.10 / 3.12 / ..."
25
25
  validations:
26
26
  required: true
27
27
 
@@ -29,7 +29,7 @@ jobs:
29
29
 
30
30
  - uses: actions/setup-python@v5
31
31
  with:
32
- python-version: "3.9"
32
+ python-version: "3.12"
33
33
 
34
34
  - name: Create virtualenv
35
35
  run: |
@@ -38,7 +38,7 @@ jobs:
38
38
  echo "VIRTUAL_ENV=$PWD/.venv" >> "$GITHUB_ENV"
39
39
 
40
40
  - name: Install Python build/test tooling
41
- run: python -m pip install --upgrade pip maturin pytest
41
+ run: python -m pip install --upgrade pip setuptools maturin pytest
42
42
 
43
43
  - name: Build and install the extension module (maturin develop)
44
44
  run: maturin develop
@@ -49,6 +49,11 @@ jobs:
49
49
  - name: Install Playwright's Chromium browser
50
50
  run: playwright install --with-deps chromium
51
51
 
52
+ - name: Lint Python (ruff)
53
+ run: |
54
+ python -m pip install ruff
55
+ ruff check --select E9,F63,F7,F82 python
56
+
52
57
  - name: pytest tests/python
53
58
  run: pytest tests/python -v
54
59
 
@@ -71,11 +76,11 @@ jobs:
71
76
 
72
77
  - uses: actions/setup-python@v5
73
78
  with:
74
- python-version: "3.9"
79
+ python-version: "3.12"
75
80
 
76
81
  - name: Install pip-audit and this project's declared dependencies
77
82
  run: |
78
- python -m pip install --upgrade pip pip-audit
83
+ python -m pip install --upgrade pip setuptools pip-audit
79
84
  python -m pip install 'click>=8.0' 'playwright>=1.40' 'pyyaml>=6.0' \
80
85
  'google-api-python-client>=2.100' 'google-auth>=2.23' \
81
86
  'google-auth-oauthlib>=1.1'
@@ -9,3 +9,9 @@ __pycache__/
9
9
  dist/
10
10
  *.so
11
11
  *.pyd
12
+
13
+ # macOS
14
+ .DS_Store
15
+ **/.DS_Store
16
+
17
+ graphify-out/
@@ -0,0 +1,31 @@
1
+ # Graphify ignore file - https://docs.graphify.com/reference/configuration
2
+ # Keep the scan (and therefore the agent's graph) focused on real source.
3
+ .git/
4
+ .github/
5
+ graphify-out/
6
+
7
+ # Build output / artifacts
8
+ target/
9
+ dist/
10
+ build/
11
+ *.egg-info/
12
+ node_modules/
13
+ .venv/
14
+ venv/
15
+ env/
16
+
17
+ # Caches
18
+ __pycache__/
19
+ *.pyc
20
+ .pytest_cache/
21
+ .mypy_cache/
22
+ .ruff_cache/
23
+ .tox/
24
+ .nox/
25
+ .coverage
26
+ htmlcov/
27
+
28
+ # Vendored / generated
29
+ *.min.js
30
+ *.min.css
31
+ *.lock
@@ -10,7 +10,38 @@ notes, not reconstructed from memory — see `ROADMAP_HONEST.md` for the
10
10
  authoritative, continuously-updated built-vs-not-built breakdown; this
11
11
  file is a release-oriented complement to it, not a duplicate.
12
12
 
13
- ## [Unreleased]
13
+ ## [0.3.2] - 2026-10-17
14
+
15
+ ### Fixed
16
+ - Audit remediation: security hardening, correctness fixes, and lint/CI gates.
17
+
18
+ ## [0.3.1] - 2026-10-12
19
+
20
+ ### Fixed
21
+
22
+ - **The Phase 1.8 interactive-element objectives had no canonical event
23
+ mapping, so seven of the fourteen objectives the heuristics engine can
24
+ emit silently fell through to the generic fallback in every exporter.**
25
+ `recommend/heuristics.py` can produce `Cart Modification`, `Wishlist
26
+ Intent`, `Content Discovery`, `Pagination`, `Video Engagement`,
27
+ `Navigation`, and `Modal Interaction`, but `export/_taxonomy.py`'s
28
+ `CANONICAL_EVENT_MAP` only covered the original seven, so those
29
+ recommendations exported as the platform-neutral `custom_event` (and,
30
+ in GA4/Segment/RudderStack, as their generic default event name). Added
31
+ real, platform-neutral canonical keys (`remove_from_cart`,
32
+ `add_to_wishlist`, `content_discovery`, `pagination`,
33
+ `video_engagement`, `navigation`, `modal_interaction`) plus matching
34
+ spec entries in `ga4.py` (using GA4's documented `remove_from_cart` /
35
+ `add_to_wishlist` / `video_start` recommended events where they exist),
36
+ `segment.py`, and `rudderstack.py` (e.g. Segment's Ecommerce v2 spec
37
+ name `Product Removed`). `intent/ollama_classifier.py`'s `_TAXONOMY`,
38
+ despite a comment claiming it "matches recommend/heuristics.py's
39
+ taxonomy," was also missing these seven — so the LLM classification
40
+ path could never emit them either; it now matches. New tests in
41
+ `tests/python/test_exporters.py` assert every heuristic objective has a
42
+ non-fallback canonical event, every canonical event has a spec entry in
43
+ all three name-mapping exporters, and the Ollama taxonomy equals the
44
+ heuristic taxonomy exactly.
14
45
 
15
46
  ## [0.3.0] - 2026-10-04
16
47