sidegraph 0.16.0__tar.gz → 0.17.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (857) hide show
  1. sidegraph-0.17.0/.github/workflows/ci.yml +349 -0
  2. sidegraph-0.17.0/AGENTS.md +80 -0
  3. sidegraph-0.17.0/CHANGELOG.md +2414 -0
  4. sidegraph-0.17.0/CLAUDE.md +122 -0
  5. sidegraph-0.17.0/CONTRIBUTING.md +93 -0
  6. sidegraph-0.17.0/PKG-INFO +525 -0
  7. sidegraph-0.17.0/README.md +495 -0
  8. sidegraph-0.17.0/docs/README.md +65 -0
  9. sidegraph-0.17.0/docs/concepts/anchoring.md +205 -0
  10. sidegraph-0.17.0/docs/concepts/data-model.md +332 -0
  11. sidegraph-0.17.0/docs/concepts/mind-model.md +221 -0
  12. sidegraph-0.17.0/docs/concepts/retrieval.md +431 -0
  13. sidegraph-0.17.0/docs/getting-started/bootstrap.md +248 -0
  14. sidegraph-0.17.0/docs/getting-started/claude-code-setup.md +294 -0
  15. sidegraph-0.17.0/docs/getting-started/codex-setup.md +193 -0
  16. sidegraph-0.17.0/docs/getting-started/installation.md +337 -0
  17. sidegraph-0.17.0/docs/getting-started/quickstart.md +135 -0
  18. sidegraph-0.17.0/docs/guides/adr-export.md +134 -0
  19. sidegraph-0.17.0/docs/guides/capturing-decisions.md +436 -0
  20. sidegraph-0.17.0/docs/guides/ci-cd-maintenance.md +422 -0
  21. sidegraph-0.17.0/docs/guides/migrating-to-0.14.md +290 -0
  22. sidegraph-0.17.0/docs/guides/migrating-to-0.17.md +329 -0
  23. sidegraph-0.17.0/docs/guides/naming-your-domains.md +329 -0
  24. sidegraph-0.17.0/docs/guides/retrieval-in-sessions.md +300 -0
  25. sidegraph-0.17.0/docs/guides/semantic-docs.md +259 -0
  26. sidegraph-0.17.0/docs/guides/surviving-refactors.md +254 -0
  27. sidegraph-0.17.0/docs/guides/team-workflow.md +229 -0
  28. sidegraph-0.17.0/docs/guides/troubleshooting.md +457 -0
  29. sidegraph-0.17.0/docs/guides/using-0.15.md +44 -0
  30. sidegraph-0.17.0/docs/guides/using-0.16.md +47 -0
  31. sidegraph-0.17.0/docs/integrations/claude-code.md +377 -0
  32. sidegraph-0.17.0/docs/integrations/codex.md +303 -0
  33. sidegraph-0.17.0/docs/integrations/graphify.md +343 -0
  34. sidegraph-0.17.0/docs/integrations/grok.md +36 -0
  35. sidegraph-0.17.0/docs/integrations/muse.md +52 -0
  36. sidegraph-0.17.0/docs/llms.txt +76 -0
  37. sidegraph-0.17.0/docs/pilot-kit/judge-prompt.md +41 -0
  38. sidegraph-0.17.0/docs/reference/cli.md +2034 -0
  39. sidegraph-0.17.0/docs/reference/configuration.md +257 -0
  40. sidegraph-0.17.0/docs/reference/git-bindings.md +171 -0
  41. sidegraph-0.17.0/docs/reference/hooks.md +1174 -0
  42. sidegraph-0.17.0/docs/reference/mcp-tools.md +1835 -0
  43. sidegraph-0.17.0/docs/reference/operations.md +116 -0
  44. sidegraph-0.17.0/docs/reference/releasing.md +193 -0
  45. sidegraph-0.17.0/docs/reference/stability.md +88 -0
  46. sidegraph-0.17.0/docs/reference/store-format.md +1023 -0
  47. sidegraph-0.17.0/package.json +6 -0
  48. sidegraph-0.17.0/plugin/sidegraph/.claude-plugin/plugin.json +11 -0
  49. sidegraph-0.17.0/plugin/sidegraph/.codex-plugin/plugin.json +12 -0
  50. sidegraph-0.17.0/plugin/sidegraph/.muse-plugin/plugin.json +85 -0
  51. sidegraph-0.17.0/plugin/sidegraph/skills/compact/SKILL.md +63 -0
  52. sidegraph-0.17.0/plugin/sidegraph/skills/stats/agents/openai.yaml +6 -0
  53. sidegraph-0.17.0/pyproject.toml +126 -0
  54. sidegraph-0.17.0/src/sidegraph/__init__.py +76 -0
  55. sidegraph-0.17.0/src/sidegraph/adr.py +299 -0
  56. sidegraph-0.17.0/src/sidegraph/bootstrap/apply.py +654 -0
  57. sidegraph-0.17.0/src/sidegraph/bootstrap/catalog.py +215 -0
  58. sidegraph-0.17.0/src/sidegraph/cli.py +3393 -0
  59. sidegraph-0.17.0/src/sidegraph/doctor.py +2110 -0
  60. sidegraph-0.17.0/src/sidegraph/gitio.py +617 -0
  61. sidegraph-0.17.0/src/sidegraph/host/hooks.py +2401 -0
  62. sidegraph-0.17.0/src/sidegraph/hot_index.py +540 -0
  63. sidegraph-0.17.0/src/sidegraph/integrity.py +1581 -0
  64. sidegraph-0.17.0/src/sidegraph/maintenance.py +1387 -0
  65. sidegraph-0.17.0/src/sidegraph/maintenance_clock.py +306 -0
  66. sidegraph-0.17.0/src/sidegraph/migrate.py +474 -0
  67. sidegraph-0.17.0/src/sidegraph/nearest_anchored.py +394 -0
  68. sidegraph-0.17.0/src/sidegraph/retrieval.py +2148 -0
  69. sidegraph-0.17.0/src/sidegraph/schema.py +520 -0
  70. sidegraph-0.17.0/src/sidegraph/server.py +5748 -0
  71. sidegraph-0.17.0/src/sidegraph/stats/model.py +839 -0
  72. sidegraph-0.17.0/src/sidegraph/store.py +5382 -0
  73. sidegraph-0.17.0/src/sidegraph/store_format.py +829 -0
  74. sidegraph-0.17.0/src/sidegraph/store_layout.py +814 -0
  75. sidegraph-0.17.0/src/sidegraph/store_rules.py +699 -0
  76. sidegraph-0.17.0/src/sidegraph/store_view.py +157 -0
  77. sidegraph-0.17.0/src/sidegraph/verify.py +2587 -0
  78. sidegraph-0.17.0/tests/bounded_listings_support.py +160 -0
  79. sidegraph-0.17.0/tests/conftest.py +214 -0
  80. sidegraph-0.17.0/tests/drift_checks_support.py +114 -0
  81. sidegraph-0.17.0/tests/githooks_support.py +414 -0
  82. sidegraph-0.17.0/tests/graph_repo_support.py +263 -0
  83. sidegraph-0.17.0/tests/membership_support.py +29 -0
  84. sidegraph-0.17.0/tests/moved_adoption_support.py +133 -0
  85. sidegraph-0.17.0/tests/store_format2_support.py +768 -0
  86. sidegraph-0.17.0/tests/store_non_file_support.py +67 -0
  87. sidegraph-0.17.0/tests/store_record_support.py +55 -0
  88. sidegraph-0.17.0/tests/test_adr.py +345 -0
  89. sidegraph-0.17.0/tests/test_anchoring_membership.py +301 -0
  90. sidegraph-0.17.0/tests/test_bash_paths.py +334 -0
  91. sidegraph-0.17.0/tests/test_bootstrap_apply.py +811 -0
  92. sidegraph-0.17.0/tests/test_bootstrap_cli.py +1624 -0
  93. sidegraph-0.17.0/tests/test_bootstrap_planner.py +511 -0
  94. sidegraph-0.17.0/tests/test_bootstrap_scan_regular.py +345 -0
  95. sidegraph-0.17.0/tests/test_bounded_listings.py +1279 -0
  96. sidegraph-0.17.0/tests/test_capture_facts.py +316 -0
  97. sidegraph-0.17.0/tests/test_capture_neighbors.py +182 -0
  98. sidegraph-0.17.0/tests/test_capture_propose.py +859 -0
  99. sidegraph-0.17.0/tests/test_cli_compact.py +300 -0
  100. sidegraph-0.17.0/tests/test_cli_compact_format2.py +458 -0
  101. sidegraph-0.17.0/tests/test_cli_domains.py +538 -0
  102. sidegraph-0.17.0/tests/test_cli_domains_snapshot.py +325 -0
  103. sidegraph-0.17.0/tests/test_cli_graph_paths.py +521 -0
  104. sidegraph-0.17.0/tests/test_cli_import.py +1876 -0
  105. sidegraph-0.17.0/tests/test_cli_init.py +621 -0
  106. sidegraph-0.17.0/tests/test_cli_init_hooks.py +564 -0
  107. sidegraph-0.17.0/tests/test_cli_okf.py +559 -0
  108. sidegraph-0.17.0/tests/test_cli_ratify.py +523 -0
  109. sidegraph-0.17.0/tests/test_cli_ratify_facts.py +104 -0
  110. sidegraph-0.17.0/tests/test_cli_stats.py +682 -0
  111. sidegraph-0.17.0/tests/test_cli_store_precedence.py +160 -0
  112. sidegraph-0.17.0/tests/test_cli_sync.py +438 -0
  113. sidegraph-0.17.0/tests/test_cli_sync_check.py +260 -0
  114. sidegraph-0.17.0/tests/test_cli_unreadable_paths.py +275 -0
  115. sidegraph-0.17.0/tests/test_codex_plugin.py +207 -0
  116. sidegraph-0.17.0/tests/test_community_baseline.py +48 -0
  117. sidegraph-0.17.0/tests/test_compact_skill.py +28 -0
  118. sidegraph-0.17.0/tests/test_config.py +271 -0
  119. sidegraph-0.17.0/tests/test_config_borrowed_graph.py +174 -0
  120. sidegraph-0.17.0/tests/test_corpus_expected_renders.py +42 -0
  121. sidegraph-0.17.0/tests/test_delivery_evidence.py +297 -0
  122. sidegraph-0.17.0/tests/test_digest_integrity.py +555 -0
  123. sidegraph-0.17.0/tests/test_doc_import.py +2881 -0
  124. sidegraph-0.17.0/tests/test_docs_claims.py +1301 -0
  125. sidegraph-0.17.0/tests/test_doctor.py +550 -0
  126. sidegraph-0.17.0/tests/test_doctor_auto_share.py +658 -0
  127. sidegraph-0.17.0/tests/test_doctor_code_drift.py +644 -0
  128. sidegraph-0.17.0/tests/test_doctor_dangling_supports.py +149 -0
  129. sidegraph-0.17.0/tests/test_doctor_graph_stale.py +90 -0
  130. sidegraph-0.17.0/tests/test_doctor_integrity.py +213 -0
  131. sidegraph-0.17.0/tests/test_doctor_scan.py +293 -0
  132. sidegraph-0.17.0/tests/test_doctor_unhashable_payload.py +165 -0
  133. sidegraph-0.17.0/tests/test_domains.py +1590 -0
  134. sidegraph-0.17.0/tests/test_drift_checks.py +579 -0
  135. sidegraph-0.17.0/tests/test_engine_build.py +170 -0
  136. sidegraph-0.17.0/tests/test_entity_get_or_create_race.py +200 -0
  137. sidegraph-0.17.0/tests/test_entity_twins.py +528 -0
  138. sidegraph-0.17.0/tests/test_entry_point_arguments.py +260 -0
  139. sidegraph-0.17.0/tests/test_env_isolation.py +53 -0
  140. sidegraph-0.17.0/tests/test_file_bound_retrieval.py +492 -0
  141. sidegraph-0.17.0/tests/test_flow_profile.py +1030 -0
  142. sidegraph-0.17.0/tests/test_format2_notices.py +289 -0
  143. sidegraph-0.17.0/tests/test_git_bindings_blame.py +272 -0
  144. sidegraph-0.17.0/tests/test_git_bindings_hook.py +574 -0
  145. sidegraph-0.17.0/tests/test_git_bindings_provenance.py +171 -0
  146. sidegraph-0.17.0/tests/test_git_output_utf8.py +214 -0
  147. sidegraph-0.17.0/tests/test_githooks.py +861 -0
  148. sidegraph-0.17.0/tests/test_graph_freshness.py +438 -0
  149. sidegraph-0.17.0/tests/test_health_check_skill.py +1122 -0
  150. sidegraph-0.17.0/tests/test_hook_contention.py +1010 -0
  151. sidegraph-0.17.0/tests/test_hook_failure_diagnostics.py +482 -0
  152. sidegraph-0.17.0/tests/test_hook_spawn_guard.py +308 -0
  153. sidegraph-0.17.0/tests/test_host_borrowed_graph.py +287 -0
  154. sidegraph-0.17.0/tests/test_host_integrity.py +1094 -0
  155. sidegraph-0.17.0/tests/test_host_launch.py +343 -0
  156. sidegraph-0.17.0/tests/test_host_pretool_records.py +861 -0
  157. sidegraph-0.17.0/tests/test_host_session_start.py +739 -0
  158. sidegraph-0.17.0/tests/test_host_stop.py +1700 -0
  159. sidegraph-0.17.0/tests/test_host_touch_events.py +298 -0
  160. sidegraph-0.17.0/tests/test_host_wiring_checks.py +939 -0
  161. sidegraph-0.17.0/tests/test_hot_index.py +908 -0
  162. sidegraph-0.17.0/tests/test_hot_index_facts.py +798 -0
  163. sidegraph-0.17.0/tests/test_index_journal_mode.py +196 -0
  164. sidegraph-0.17.0/tests/test_integrity.py +784 -0
  165. sidegraph-0.17.0/tests/test_integrity_engine_version.py +174 -0
  166. sidegraph-0.17.0/tests/test_integrity_refresh_hook.py +537 -0
  167. sidegraph-0.17.0/tests/test_integrity_replay.py +114 -0
  168. sidegraph-0.17.0/tests/test_integrity_stranded.py +874 -0
  169. sidegraph-0.17.0/tests/test_maintenance_clock.py +361 -0
  170. sidegraph-0.17.0/tests/test_maintenance_dry_run_parity.py +173 -0
  171. sidegraph-0.17.0/tests/test_maintenance_plan.py +767 -0
  172. sidegraph-0.17.0/tests/test_maintenance_publish.py +1147 -0
  173. sidegraph-0.17.0/tests/test_member_anchor_wiring.py +307 -0
  174. sidegraph-0.17.0/tests/test_merge_matrix_format2.py +721 -0
  175. sidegraph-0.17.0/tests/test_migrate.py +1128 -0
  176. sidegraph-0.17.0/tests/test_pathless_descriptor_adoption.py +489 -0
  177. sidegraph-0.17.0/tests/test_pilot_kit_corpus_fit.py +146 -0
  178. sidegraph-0.17.0/tests/test_private_tests_isolation.py +61 -0
  179. sidegraph-0.17.0/tests/test_public_hook_launch.py +625 -0
  180. sidegraph-0.17.0/tests/test_ratify_policy.py +4356 -0
  181. sidegraph-0.17.0/tests/test_reader_community_labels.py +166 -0
  182. sidegraph-0.17.0/tests/test_reader_doc_nodes.py +134 -0
  183. sidegraph-0.17.0/tests/test_reader_engine_version.py +160 -0
  184. sidegraph-0.17.0/tests/test_reader_file_labels.py +183 -0
  185. sidegraph-0.17.0/tests/test_reader_label_conventions.py +20 -0
  186. sidegraph-0.17.0/tests/test_reader_member_name_lookup.py +187 -0
  187. sidegraph-0.17.0/tests/test_reader_nodes_in_file.py +12 -0
  188. sidegraph-0.17.0/tests/test_reader_perf.py +214 -0
  189. sidegraph-0.17.0/tests/test_reader_read.py +27 -0
  190. sidegraph-0.17.0/tests/test_reader_resolve.py +129 -0
  191. sidegraph-0.17.0/tests/test_reader_stub_collapse.py +421 -0
  192. sidegraph-0.17.0/tests/test_reader_version.py +70 -0
  193. sidegraph-0.17.0/tests/test_readers_format2.py +734 -0
  194. sidegraph-0.17.0/tests/test_redaction_scan.py +157 -0
  195. sidegraph-0.17.0/tests/test_redaction_tokens.py +172 -0
  196. sidegraph-0.17.0/tests/test_retrieval_budget_counters.py +400 -0
  197. sidegraph-0.17.0/tests/test_retrieval_drilldown.py +690 -0
  198. sidegraph-0.17.0/tests/test_retrieval_facts.py +222 -0
  199. sidegraph-0.17.0/tests/test_retrieval_guessed.py +415 -0
  200. sidegraph-0.17.0/tests/test_retrieval_ids.py +204 -0
  201. sidegraph-0.17.0/tests/test_retrieval_membership_generations.py +79 -0
  202. sidegraph-0.17.0/tests/test_retrieval_rank.py +641 -0
  203. sidegraph-0.17.0/tests/test_retrieval_shown_ids.py +15 -0
  204. sidegraph-0.17.0/tests/test_retrieval_thin_tools.py +171 -0
  205. sidegraph-0.17.0/tests/test_retrieval_toc.py +501 -0
  206. sidegraph-0.17.0/tests/test_retrieval_toptier.py +123 -0
  207. sidegraph-0.17.0/tests/test_schema_descriptor.py +112 -0
  208. sidegraph-0.17.0/tests/test_security_input_limits.py +253 -0
  209. sidegraph-0.17.0/tests/test_security_numeric_enums.py +32 -0
  210. sidegraph-0.17.0/tests/test_security_python_shapes.py +47 -0
  211. sidegraph-0.17.0/tests/test_security_validation_errors.py +100 -0
  212. sidegraph-0.17.0/tests/test_security_write_boundary.py +163 -0
  213. sidegraph-0.17.0/tests/test_seed_paths_portable.py +151 -0
  214. sidegraph-0.17.0/tests/test_server_add_anchors.py +200 -0
  215. sidegraph-0.17.0/tests/test_server_anchoring.py +239 -0
  216. sidegraph-0.17.0/tests/test_server_annotations.py +86 -0
  217. sidegraph-0.17.0/tests/test_server_argument_names.py +274 -0
  218. sidegraph-0.17.0/tests/test_server_borrowed_graph.py +599 -0
  219. sidegraph-0.17.0/tests/test_server_capture.py +878 -0
  220. sidegraph-0.17.0/tests/test_server_commit_hint.py +216 -0
  221. sidegraph-0.17.0/tests/test_server_coverage_events.py +251 -0
  222. sidegraph-0.17.0/tests/test_server_drilldown.py +96 -0
  223. sidegraph-0.17.0/tests/test_server_facts.py +323 -0
  224. sidegraph-0.17.0/tests/test_server_get_task_context.py +45 -0
  225. sidegraph-0.17.0/tests/test_server_graph_freshness.py +386 -0
  226. sidegraph-0.17.0/tests/test_server_prewrite_anchor_validation.py +183 -0
  227. sidegraph-0.17.0/tests/test_server_render_events.py +349 -0
  228. sidegraph-0.17.0/tests/test_server_thin_tools.py +69 -0
  229. sidegraph-0.17.0/tests/test_server_tolerant_seeds.py +653 -0
  230. sidegraph-0.17.0/tests/test_session_attribution.py +627 -0
  231. sidegraph-0.17.0/tests/test_skill_frontmatter.py +41 -0
  232. sidegraph-0.17.0/tests/test_stats_graph.py +134 -0
  233. sidegraph-0.17.0/tests/test_stats_health.py +205 -0
  234. sidegraph-0.17.0/tests/test_stats_model.py +1668 -0
  235. sidegraph-0.17.0/tests/test_stats_render.py +1402 -0
  236. sidegraph-0.17.0/tests/test_stats_snapshot.py +162 -0
  237. sidegraph-0.17.0/tests/test_store.py +96 -0
  238. sidegraph-0.17.0/tests/test_store_agent_state.py +282 -0
  239. sidegraph-0.17.0/tests/test_store_bad_file.py +569 -0
  240. sidegraph-0.17.0/tests/test_store_canonical_stat.py +296 -0
  241. sidegraph-0.17.0/tests/test_store_compact.py +1298 -0
  242. sidegraph-0.17.0/tests/test_store_coverage_telemetry.py +67 -0
  243. sidegraph-0.17.0/tests/test_store_cross_process_mutations.py +281 -0
  244. sidegraph-0.17.0/tests/test_store_derived_community.py +129 -0
  245. sidegraph-0.17.0/tests/test_store_domains.py +657 -0
  246. sidegraph-0.17.0/tests/test_store_format.py +257 -0
  247. sidegraph-0.17.0/tests/test_store_format2_load.py +548 -0
  248. sidegraph-0.17.0/tests/test_store_format2_marker.py +629 -0
  249. sidegraph-0.17.0/tests/test_store_format2_writes.py +303 -0
  250. sidegraph-0.17.0/tests/test_store_git_root_symlink.py +267 -0
  251. sidegraph-0.17.0/tests/test_store_inventory.py +513 -0
  252. sidegraph-0.17.0/tests/test_store_meta.py +140 -0
  253. sidegraph-0.17.0/tests/test_store_mutation_guard.py +675 -0
  254. sidegraph-0.17.0/tests/test_store_non_file_entries.py +394 -0
  255. sidegraph-0.17.0/tests/test_store_persistence.py +502 -0
  256. sidegraph-0.17.0/tests/test_store_record_identity.py +408 -0
  257. sidegraph-0.17.0/tests/test_store_render_events.py +70 -0
  258. sidegraph-0.17.0/tests/test_store_requirement.py +614 -0
  259. sidegraph-0.17.0/tests/test_store_rules.py +146 -0
  260. sidegraph-0.17.0/tests/test_store_stamping_marker.py +334 -0
  261. sidegraph-0.17.0/tests/test_store_symlinks.py +89 -0
  262. sidegraph-0.17.0/tests/test_store_telemetry.py +166 -0
  263. sidegraph-0.17.0/tests/test_store_threading.py +105 -0
  264. sidegraph-0.17.0/tests/test_store_tmp_sweep_age.py +100 -0
  265. sidegraph-0.17.0/tests/test_sync_canonical_writes.py +165 -0
  266. sidegraph-0.17.0/tests/test_sync_domains.py +946 -0
  267. sidegraph-0.17.0/tests/test_sync_membership.py +675 -0
  268. sidegraph-0.17.0/tests/test_sync_moved_adoption.py +580 -0
  269. sidegraph-0.17.0/tests/test_sync_rebind.py +1225 -0
  270. sidegraph-0.17.0/tests/test_sync_repoint.py +361 -0
  271. sidegraph-0.17.0/tests/test_sync_snapshot_membership.py +465 -0
  272. sidegraph-0.17.0/tests/test_sync_volatile_heal.py +292 -0
  273. sidegraph-0.17.0/tests/test_sync_wiring.py +72 -0
  274. sidegraph-0.17.0/tests/test_text_paths.py +401 -0
  275. sidegraph-0.17.0/tests/test_verify_domain_snapshot.py +101 -0
  276. sidegraph-0.17.0/tests/test_verify_format2_against.py +997 -0
  277. sidegraph-0.17.0/tests/test_verify_format2_snapshot.py +701 -0
  278. sidegraph-0.17.0/tests/test_verify_git_framing.py +329 -0
  279. sidegraph-0.17.0/tests/test_verify_git_revisions.py +342 -0
  280. sidegraph-0.17.0/tests/test_verify_snapshot.py +1753 -0
  281. sidegraph-0.17.0/tests/test_verify_transitions.py +1516 -0
  282. sidegraph-0.17.0/tests/test_viz_render_html.py +65 -0
  283. sidegraph-0.17.0/tests/test_worktree_seeds.py +591 -0
  284. sidegraph-0.17.0/uv.lock +1523 -0
  285. sidegraph-0.16.0/.github/workflows/ci.yml +0 -347
  286. sidegraph-0.16.0/AGENTS.md +0 -79
  287. sidegraph-0.16.0/CHANGELOG.md +0 -2376
  288. sidegraph-0.16.0/CLAUDE.md +0 -120
  289. sidegraph-0.16.0/CONTRIBUTING.md +0 -96
  290. sidegraph-0.16.0/PKG-INFO +0 -416
  291. sidegraph-0.16.0/README.md +0 -386
  292. sidegraph-0.16.0/docs/README.md +0 -61
  293. sidegraph-0.16.0/docs/concepts/anchoring.md +0 -203
  294. sidegraph-0.16.0/docs/concepts/data-model.md +0 -326
  295. sidegraph-0.16.0/docs/concepts/mind-model.md +0 -221
  296. sidegraph-0.16.0/docs/concepts/retrieval.md +0 -427
  297. sidegraph-0.16.0/docs/getting-started/bootstrap.md +0 -235
  298. sidegraph-0.16.0/docs/getting-started/claude-code-setup.md +0 -294
  299. sidegraph-0.16.0/docs/getting-started/codex-setup.md +0 -193
  300. sidegraph-0.16.0/docs/getting-started/installation.md +0 -336
  301. sidegraph-0.16.0/docs/getting-started/quickstart.md +0 -135
  302. sidegraph-0.16.0/docs/guides/adr-export.md +0 -134
  303. sidegraph-0.16.0/docs/guides/capturing-decisions.md +0 -436
  304. sidegraph-0.16.0/docs/guides/ci-cd-maintenance.md +0 -410
  305. sidegraph-0.16.0/docs/guides/migrating-to-0.14.md +0 -289
  306. sidegraph-0.16.0/docs/guides/naming-your-domains.md +0 -328
  307. sidegraph-0.16.0/docs/guides/retrieval-in-sessions.md +0 -298
  308. sidegraph-0.16.0/docs/guides/semantic-docs.md +0 -259
  309. sidegraph-0.16.0/docs/guides/surviving-refactors.md +0 -253
  310. sidegraph-0.16.0/docs/guides/team-workflow.md +0 -212
  311. sidegraph-0.16.0/docs/guides/troubleshooting.md +0 -432
  312. sidegraph-0.16.0/docs/guides/using-0.15.md +0 -42
  313. sidegraph-0.16.0/docs/guides/using-0.16.md +0 -45
  314. sidegraph-0.16.0/docs/integrations/claude-code.md +0 -376
  315. sidegraph-0.16.0/docs/integrations/codex.md +0 -303
  316. sidegraph-0.16.0/docs/integrations/graphify.md +0 -334
  317. sidegraph-0.16.0/docs/integrations/muse.md +0 -48
  318. sidegraph-0.16.0/docs/llms.txt +0 -70
  319. sidegraph-0.16.0/docs/pilot-kit/judge-prompt.md +0 -41
  320. sidegraph-0.16.0/docs/reference/cli.md +0 -1881
  321. sidegraph-0.16.0/docs/reference/configuration.md +0 -256
  322. sidegraph-0.16.0/docs/reference/git-bindings.md +0 -164
  323. sidegraph-0.16.0/docs/reference/hooks.md +0 -1172
  324. sidegraph-0.16.0/docs/reference/mcp-tools.md +0 -1828
  325. sidegraph-0.16.0/docs/reference/operations.md +0 -112
  326. sidegraph-0.16.0/docs/reference/releasing.md +0 -191
  327. sidegraph-0.16.0/docs/reference/stability.md +0 -88
  328. sidegraph-0.16.0/docs/reference/store-format.md +0 -916
  329. sidegraph-0.16.0/package.json +0 -6
  330. sidegraph-0.16.0/plugin/sidegraph/.claude-plugin/plugin.json +0 -11
  331. sidegraph-0.16.0/plugin/sidegraph/.codex-plugin/plugin.json +0 -12
  332. sidegraph-0.16.0/plugin/sidegraph/.muse-plugin/plugin.json +0 -81
  333. sidegraph-0.16.0/pyproject.toml +0 -122
  334. sidegraph-0.16.0/src/sidegraph/__init__.py +0 -76
  335. sidegraph-0.16.0/src/sidegraph/adr.py +0 -295
  336. sidegraph-0.16.0/src/sidegraph/bootstrap/apply.py +0 -649
  337. sidegraph-0.16.0/src/sidegraph/bootstrap/catalog.py +0 -144
  338. sidegraph-0.16.0/src/sidegraph/cli.py +0 -3149
  339. sidegraph-0.16.0/src/sidegraph/doctor.py +0 -2025
  340. sidegraph-0.16.0/src/sidegraph/gitio.py +0 -612
  341. sidegraph-0.16.0/src/sidegraph/host/hooks.py +0 -2383
  342. sidegraph-0.16.0/src/sidegraph/hot_index.py +0 -540
  343. sidegraph-0.16.0/src/sidegraph/integrity.py +0 -1267
  344. sidegraph-0.16.0/src/sidegraph/nearest_anchored.py +0 -394
  345. sidegraph-0.16.0/src/sidegraph/retrieval.py +0 -2148
  346. sidegraph-0.16.0/src/sidegraph/schema.py +0 -482
  347. sidegraph-0.16.0/src/sidegraph/server.py +0 -5748
  348. sidegraph-0.16.0/src/sidegraph/stats/model.py +0 -821
  349. sidegraph-0.16.0/src/sidegraph/store.py +0 -4822
  350. sidegraph-0.16.0/src/sidegraph/store_layout.py +0 -625
  351. sidegraph-0.16.0/src/sidegraph/verify.py +0 -1675
  352. sidegraph-0.16.0/tests/conftest.py +0 -204
  353. sidegraph-0.16.0/tests/githooks_support.py +0 -207
  354. sidegraph-0.16.0/tests/test_adr.py +0 -344
  355. sidegraph-0.16.0/tests/test_anchoring_membership.py +0 -372
  356. sidegraph-0.16.0/tests/test_bash_paths.py +0 -336
  357. sidegraph-0.16.0/tests/test_bootstrap_apply.py +0 -926
  358. sidegraph-0.16.0/tests/test_bootstrap_cli.py +0 -1623
  359. sidegraph-0.16.0/tests/test_bootstrap_planner.py +0 -509
  360. sidegraph-0.16.0/tests/test_bootstrap_scan_regular.py +0 -565
  361. sidegraph-0.16.0/tests/test_bounded_listings.py +0 -1493
  362. sidegraph-0.16.0/tests/test_capture_facts.py +0 -320
  363. sidegraph-0.16.0/tests/test_capture_neighbors.py +0 -171
  364. sidegraph-0.16.0/tests/test_capture_propose.py +0 -972
  365. sidegraph-0.16.0/tests/test_cli_compact.py +0 -299
  366. sidegraph-0.16.0/tests/test_cli_domains.py +0 -581
  367. sidegraph-0.16.0/tests/test_cli_domains_snapshot.py +0 -379
  368. sidegraph-0.16.0/tests/test_cli_graph_paths.py +0 -535
  369. sidegraph-0.16.0/tests/test_cli_import.py +0 -1942
  370. sidegraph-0.16.0/tests/test_cli_init.py +0 -647
  371. sidegraph-0.16.0/tests/test_cli_init_hooks.py +0 -598
  372. sidegraph-0.16.0/tests/test_cli_okf.py +0 -819
  373. sidegraph-0.16.0/tests/test_cli_ratify.py +0 -669
  374. sidegraph-0.16.0/tests/test_cli_ratify_facts.py +0 -120
  375. sidegraph-0.16.0/tests/test_cli_stats.py +0 -699
  376. sidegraph-0.16.0/tests/test_cli_sync.py +0 -562
  377. sidegraph-0.16.0/tests/test_cli_sync_check.py +0 -266
  378. sidegraph-0.16.0/tests/test_cli_unreadable_paths.py +0 -262
  379. sidegraph-0.16.0/tests/test_codex_plugin.py +0 -206
  380. sidegraph-0.16.0/tests/test_community_baseline.py +0 -53
  381. sidegraph-0.16.0/tests/test_config.py +0 -276
  382. sidegraph-0.16.0/tests/test_config_borrowed_graph.py +0 -279
  383. sidegraph-0.16.0/tests/test_corpus_expected_renders.py +0 -48
  384. sidegraph-0.16.0/tests/test_delivery_evidence.py +0 -297
  385. sidegraph-0.16.0/tests/test_digest_integrity.py +0 -657
  386. sidegraph-0.16.0/tests/test_doc_import.py +0 -3013
  387. sidegraph-0.16.0/tests/test_docs_claims.py +0 -1293
  388. sidegraph-0.16.0/tests/test_doctor.py +0 -563
  389. sidegraph-0.16.0/tests/test_doctor_auto_share.py +0 -687
  390. sidegraph-0.16.0/tests/test_doctor_code_drift.py +0 -648
  391. sidegraph-0.16.0/tests/test_doctor_dangling_supports.py +0 -158
  392. sidegraph-0.16.0/tests/test_doctor_graph_stale.py +0 -90
  393. sidegraph-0.16.0/tests/test_doctor_integrity.py +0 -213
  394. sidegraph-0.16.0/tests/test_doctor_scan.py +0 -352
  395. sidegraph-0.16.0/tests/test_doctor_unhashable_payload.py +0 -165
  396. sidegraph-0.16.0/tests/test_domains.py +0 -1666
  397. sidegraph-0.16.0/tests/test_drift_checks.py +0 -701
  398. sidegraph-0.16.0/tests/test_engine_build.py +0 -164
  399. sidegraph-0.16.0/tests/test_entity_get_or_create_race.py +0 -197
  400. sidegraph-0.16.0/tests/test_entry_point_arguments.py +0 -256
  401. sidegraph-0.16.0/tests/test_env_isolation.py +0 -66
  402. sidegraph-0.16.0/tests/test_file_bound_retrieval.py +0 -493
  403. sidegraph-0.16.0/tests/test_flow_profile.py +0 -1018
  404. sidegraph-0.16.0/tests/test_git_bindings_blame.py +0 -272
  405. sidegraph-0.16.0/tests/test_git_bindings_hook.py +0 -575
  406. sidegraph-0.16.0/tests/test_git_bindings_provenance.py +0 -157
  407. sidegraph-0.16.0/tests/test_git_config_isolation.py +0 -51
  408. sidegraph-0.16.0/tests/test_git_output_utf8.py +0 -222
  409. sidegraph-0.16.0/tests/test_githooks.py +0 -1050
  410. sidegraph-0.16.0/tests/test_graph_freshness.py +0 -552
  411. sidegraph-0.16.0/tests/test_health_check_skill.py +0 -1195
  412. sidegraph-0.16.0/tests/test_hook_contention.py +0 -972
  413. sidegraph-0.16.0/tests/test_hook_failure_diagnostics.py +0 -468
  414. sidegraph-0.16.0/tests/test_hook_spawn_guard.py +0 -294
  415. sidegraph-0.16.0/tests/test_host_borrowed_graph.py +0 -289
  416. sidegraph-0.16.0/tests/test_host_integrity.py +0 -1115
  417. sidegraph-0.16.0/tests/test_host_launch.py +0 -331
  418. sidegraph-0.16.0/tests/test_host_pretool_records.py +0 -861
  419. sidegraph-0.16.0/tests/test_host_session_start.py +0 -739
  420. sidegraph-0.16.0/tests/test_host_stop.py +0 -1700
  421. sidegraph-0.16.0/tests/test_host_touch_events.py +0 -292
  422. sidegraph-0.16.0/tests/test_host_wiring_checks.py +0 -953
  423. sidegraph-0.16.0/tests/test_hot_index.py +0 -907
  424. sidegraph-0.16.0/tests/test_hot_index_facts.py +0 -797
  425. sidegraph-0.16.0/tests/test_index_journal_mode.py +0 -268
  426. sidegraph-0.16.0/tests/test_installed_wheel_smoke.py +0 -489
  427. sidegraph-0.16.0/tests/test_integrity.py +0 -782
  428. sidegraph-0.16.0/tests/test_integrity_engine_version.py +0 -180
  429. sidegraph-0.16.0/tests/test_integrity_refresh_hook.py +0 -541
  430. sidegraph-0.16.0/tests/test_integrity_replay.py +0 -114
  431. sidegraph-0.16.0/tests/test_integrity_stranded.py +0 -873
  432. sidegraph-0.16.0/tests/test_member_anchor_wiring.py +0 -320
  433. sidegraph-0.16.0/tests/test_pathless_descriptor_adoption.py +0 -509
  434. sidegraph-0.16.0/tests/test_pilot_kit_corpus_fit.py +0 -174
  435. sidegraph-0.16.0/tests/test_public_hook_launch.py +0 -599
  436. sidegraph-0.16.0/tests/test_ratify_policy.py +0 -5632
  437. sidegraph-0.16.0/tests/test_reader_community_labels.py +0 -174
  438. sidegraph-0.16.0/tests/test_reader_doc_nodes.py +0 -136
  439. sidegraph-0.16.0/tests/test_reader_engine_version.py +0 -160
  440. sidegraph-0.16.0/tests/test_reader_file_labels.py +0 -189
  441. sidegraph-0.16.0/tests/test_reader_label_conventions.py +0 -24
  442. sidegraph-0.16.0/tests/test_reader_member_name_lookup.py +0 -193
  443. sidegraph-0.16.0/tests/test_reader_nodes_in_file.py +0 -52
  444. sidegraph-0.16.0/tests/test_reader_perf.py +0 -223
  445. sidegraph-0.16.0/tests/test_reader_read.py +0 -33
  446. sidegraph-0.16.0/tests/test_reader_resolve.py +0 -134
  447. sidegraph-0.16.0/tests/test_reader_stub_collapse.py +0 -451
  448. sidegraph-0.16.0/tests/test_reader_version.py +0 -74
  449. sidegraph-0.16.0/tests/test_redaction_scan.py +0 -225
  450. sidegraph-0.16.0/tests/test_redaction_tokens.py +0 -223
  451. sidegraph-0.16.0/tests/test_retrieval_budget_counters.py +0 -420
  452. sidegraph-0.16.0/tests/test_retrieval_drilldown.py +0 -683
  453. sidegraph-0.16.0/tests/test_retrieval_facts.py +0 -222
  454. sidegraph-0.16.0/tests/test_retrieval_guessed.py +0 -442
  455. sidegraph-0.16.0/tests/test_retrieval_ids.py +0 -213
  456. sidegraph-0.16.0/tests/test_retrieval_membership_generations.py +0 -81
  457. sidegraph-0.16.0/tests/test_retrieval_rank.py +0 -763
  458. sidegraph-0.16.0/tests/test_retrieval_shown_ids.py +0 -19
  459. sidegraph-0.16.0/tests/test_retrieval_thin_tools.py +0 -175
  460. sidegraph-0.16.0/tests/test_retrieval_toc.py +0 -511
  461. sidegraph-0.16.0/tests/test_retrieval_toptier.py +0 -112
  462. sidegraph-0.16.0/tests/test_sandbox_hygiene.py +0 -328
  463. sidegraph-0.16.0/tests/test_schema_descriptor.py +0 -133
  464. sidegraph-0.16.0/tests/test_secret_scan_gate.py +0 -223
  465. sidegraph-0.16.0/tests/test_security_binary_limits.py +0 -53
  466. sidegraph-0.16.0/tests/test_security_input_limits.py +0 -291
  467. sidegraph-0.16.0/tests/test_security_numeric_enums.py +0 -154
  468. sidegraph-0.16.0/tests/test_security_python_shapes.py +0 -234
  469. sidegraph-0.16.0/tests/test_security_redaction_scaling.py +0 -79
  470. sidegraph-0.16.0/tests/test_security_validation_errors.py +0 -106
  471. sidegraph-0.16.0/tests/test_security_write_boundary.py +0 -291
  472. sidegraph-0.16.0/tests/test_seed_paths_portable.py +0 -163
  473. sidegraph-0.16.0/tests/test_server_add_anchors.py +0 -211
  474. sidegraph-0.16.0/tests/test_server_anchoring.py +0 -278
  475. sidegraph-0.16.0/tests/test_server_annotations.py +0 -87
  476. sidegraph-0.16.0/tests/test_server_argument_names.py +0 -275
  477. sidegraph-0.16.0/tests/test_server_borrowed_graph.py +0 -644
  478. sidegraph-0.16.0/tests/test_server_capture.py +0 -938
  479. sidegraph-0.16.0/tests/test_server_commit_hint.py +0 -215
  480. sidegraph-0.16.0/tests/test_server_coverage_events.py +0 -268
  481. sidegraph-0.16.0/tests/test_server_drilldown.py +0 -99
  482. sidegraph-0.16.0/tests/test_server_facts.py +0 -360
  483. sidegraph-0.16.0/tests/test_server_get_task_context.py +0 -53
  484. sidegraph-0.16.0/tests/test_server_graph_freshness.py +0 -386
  485. sidegraph-0.16.0/tests/test_server_prewrite_anchor_validation.py +0 -214
  486. sidegraph-0.16.0/tests/test_server_render_events.py +0 -357
  487. sidegraph-0.16.0/tests/test_server_thin_tools.py +0 -81
  488. sidegraph-0.16.0/tests/test_server_tolerant_seeds.py +0 -653
  489. sidegraph-0.16.0/tests/test_session_attribution.py +0 -627
  490. sidegraph-0.16.0/tests/test_skill_frontmatter.py +0 -40
  491. sidegraph-0.16.0/tests/test_stats_graph.py +0 -160
  492. sidegraph-0.16.0/tests/test_stats_health.py +0 -205
  493. sidegraph-0.16.0/tests/test_stats_model.py +0 -1725
  494. sidegraph-0.16.0/tests/test_stats_render.py +0 -1400
  495. sidegraph-0.16.0/tests/test_stats_snapshot.py +0 -164
  496. sidegraph-0.16.0/tests/test_store.py +0 -95
  497. sidegraph-0.16.0/tests/test_store_agent_state.py +0 -282
  498. sidegraph-0.16.0/tests/test_store_bad_file.py +0 -590
  499. sidegraph-0.16.0/tests/test_store_canonical_stat.py +0 -295
  500. sidegraph-0.16.0/tests/test_store_compact.py +0 -935
  501. sidegraph-0.16.0/tests/test_store_compact_review.py +0 -437
  502. sidegraph-0.16.0/tests/test_store_concurrent_open.py +0 -99
  503. sidegraph-0.16.0/tests/test_store_coverage_telemetry.py +0 -105
  504. sidegraph-0.16.0/tests/test_store_cross_process_mutations.py +0 -275
  505. sidegraph-0.16.0/tests/test_store_derived_community.py +0 -123
  506. sidegraph-0.16.0/tests/test_store_domains.py +0 -682
  507. sidegraph-0.16.0/tests/test_store_git_root_symlink.py +0 -355
  508. sidegraph-0.16.0/tests/test_store_meta.py +0 -156
  509. sidegraph-0.16.0/tests/test_store_mutation_guard.py +0 -661
  510. sidegraph-0.16.0/tests/test_store_non_file_entries.py +0 -514
  511. sidegraph-0.16.0/tests/test_store_persistence.py +0 -546
  512. sidegraph-0.16.0/tests/test_store_record_identity.py +0 -407
  513. sidegraph-0.16.0/tests/test_store_render_events.py +0 -101
  514. sidegraph-0.16.0/tests/test_store_requirement.py +0 -608
  515. sidegraph-0.16.0/tests/test_store_stamping_marker.py +0 -324
  516. sidegraph-0.16.0/tests/test_store_symlinks.py +0 -85
  517. sidegraph-0.16.0/tests/test_store_telemetry.py +0 -130
  518. sidegraph-0.16.0/tests/test_store_threading.py +0 -95
  519. sidegraph-0.16.0/tests/test_store_tmp_sweep_age.py +0 -90
  520. sidegraph-0.16.0/tests/test_sync_canonical_writes.py +0 -171
  521. sidegraph-0.16.0/tests/test_sync_domains.py +0 -937
  522. sidegraph-0.16.0/tests/test_sync_membership.py +0 -779
  523. sidegraph-0.16.0/tests/test_sync_moved_adoption.py +0 -708
  524. sidegraph-0.16.0/tests/test_sync_rebind.py +0 -1319
  525. sidegraph-0.16.0/tests/test_sync_repoint.py +0 -374
  526. sidegraph-0.16.0/tests/test_sync_snapshot_membership.py +0 -487
  527. sidegraph-0.16.0/tests/test_sync_volatile_heal.py +0 -303
  528. sidegraph-0.16.0/tests/test_sync_wiring.py +0 -76
  529. sidegraph-0.16.0/tests/test_text_paths.py +0 -414
  530. sidegraph-0.16.0/tests/test_verify_domain_snapshot.py +0 -100
  531. sidegraph-0.16.0/tests/test_verify_git_framing.py +0 -349
  532. sidegraph-0.16.0/tests/test_verify_git_revisions.py +0 -327
  533. sidegraph-0.16.0/tests/test_verify_snapshot.py +0 -1751
  534. sidegraph-0.16.0/tests/test_verify_transitions.py +0 -1484
  535. sidegraph-0.16.0/tests/test_viz_render_html.py +0 -61
  536. sidegraph-0.16.0/tests/test_worktree_seeds.py +0 -643
  537. sidegraph-0.16.0/uv.lock +0 -1523
  538. {sidegraph-0.16.0 → sidegraph-0.17.0}/.agents/plugins/marketplace.json +0 -0
  539. {sidegraph-0.16.0 → sidegraph-0.17.0}/.claude-plugin/marketplace.json +0 -0
  540. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/CODEOWNERS +0 -0
  541. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  542. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  543. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  544. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  545. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/secret_scanning.yml +0 -0
  546. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/workflows/publish.yml +0 -0
  547. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/workflows/scorecard.yml +0 -0
  548. {sidegraph-0.16.0 → sidegraph-0.17.0}/.github/workflows/session-link-gate.yml +0 -0
  549. {sidegraph-0.16.0 → sidegraph-0.17.0}/.gitignore +0 -0
  550. {sidegraph-0.16.0 → sidegraph-0.17.0}/.gitleaks.toml +0 -0
  551. {sidegraph-0.16.0 → sidegraph-0.17.0}/.opencode/INSTALL.md +0 -0
  552. {sidegraph-0.16.0 → sidegraph-0.17.0}/.pre-commit-config.yaml +0 -0
  553. {sidegraph-0.16.0 → sidegraph-0.17.0}/.python-version +0 -0
  554. {sidegraph-0.16.0 → sidegraph-0.17.0}/CODE_OF_CONDUCT.md +0 -0
  555. {sidegraph-0.16.0 → sidegraph-0.17.0}/LICENSE +0 -0
  556. {sidegraph-0.16.0 → sidegraph-0.17.0}/SECURITY.md +0 -0
  557. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/concepts/decision-memory.md +0 -0
  558. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/guides/health-check.md +0 -0
  559. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/guides/verifying-your-setup.md +0 -0
  560. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/integrations/opencode.md +0 -0
  561. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/pilot-kit/README.md +0 -0
  562. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/pilot-kit/corpus_fit.py +0 -0
  563. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/pilot-kit/questions-prompt.md +0 -0
  564. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/pilot-kit/rubric-template.md +0 -0
  565. {sidegraph-0.16.0 → sidegraph-0.17.0}/docs/whitepaper/index.md +0 -0
  566. {sidegraph-0.16.0 → sidegraph-0.17.0}/index.js +0 -0
  567. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/.mcp.json +0 -0
  568. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/codex/hooks.json +0 -0
  569. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/codex/mcp.json +0 -0
  570. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/hooks/hooks.json +0 -0
  571. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/check-plan/SKILL.md +0 -0
  572. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/check-plan/agents/openai.yaml +0 -0
  573. {sidegraph-0.16.0/plugin/sidegraph/skills/health-check → sidegraph-0.17.0/plugin/sidegraph/skills/compact}/agents/openai.yaml +0 -0
  574. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/explain-why/SKILL.md +0 -0
  575. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/explain-why/agents/openai.yaml +0 -0
  576. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/heal-anchors/SKILL.md +0 -0
  577. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/heal-anchors/agents/openai.yaml +0 -0
  578. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/health-check/SKILL.md +0 -0
  579. {sidegraph-0.16.0/plugin/sidegraph/skills/import-adrs → sidegraph-0.17.0/plugin/sidegraph/skills/health-check}/agents/openai.yaml +0 -0
  580. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/health-check/scripts/collect.py +0 -0
  581. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/import-adrs/SKILL.md +0 -0
  582. {sidegraph-0.16.0/plugin/sidegraph/skills/manage-domains → sidegraph-0.17.0/plugin/sidegraph/skills/import-adrs}/agents/openai.yaml +0 -0
  583. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/manage-domains/SKILL.md +0 -0
  584. {sidegraph-0.16.0/plugin/sidegraph/skills/name-domains → sidegraph-0.17.0/plugin/sidegraph/skills/manage-domains}/agents/openai.yaml +0 -0
  585. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/name-domains/SKILL.md +0 -0
  586. {sidegraph-0.16.0/plugin/sidegraph/skills/setup → sidegraph-0.17.0/plugin/sidegraph/skills/name-domains}/agents/openai.yaml +0 -0
  587. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/ratify-decisions/SKILL.md +0 -0
  588. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/ratify-decisions/agents/openai.yaml +0 -0
  589. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/record-decision/SKILL.md +0 -0
  590. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/record-decision/agents/openai.yaml +0 -0
  591. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/record-fact/SKILL.md +0 -0
  592. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/record-fact/agents/openai.yaml +0 -0
  593. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/setup/SKILL.md +0 -0
  594. {sidegraph-0.16.0/plugin/sidegraph/skills/stats → sidegraph-0.17.0/plugin/sidegraph/skills/setup}/agents/openai.yaml +0 -0
  595. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/stats/SKILL.md +0 -0
  596. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/triage-drift/SKILL.md +0 -0
  597. {sidegraph-0.16.0 → sidegraph-0.17.0}/plugin/sidegraph/skills/triage-drift/agents/openai.yaml +0 -0
  598. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/adr_cli.py +0 -0
  599. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/adr_files.py +0 -0
  600. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/adr_identity.py +0 -0
  601. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/anchoring.py +0 -0
  602. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bash_paths.py +0 -0
  603. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/__init__.py +0 -0
  604. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/cli.py +0 -0
  605. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/integrations.py +0 -0
  606. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/model.py +0 -0
  607. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/planner.py +0 -0
  608. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/proof.py +0 -0
  609. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/review.py +0 -0
  610. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/bootstrap/scan.py +0 -0
  611. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/capture.py +0 -0
  612. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/config.py +0 -0
  613. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/delivery.py +0 -0
  614. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/doc_import.py +0 -0
  615. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/domain_snapshot.py +0 -0
  616. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/domains.py +0 -0
  617. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/drift_checks.py +0 -0
  618. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/engine/__init__.py +0 -0
  619. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/engine/rationale.py +0 -0
  620. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/engine/reader.py +0 -0
  621. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/freshness.py +0 -0
  622. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/gitenv.py +0 -0
  623. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/githooks.py +0 -0
  624. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/host/__init__.py +0 -0
  625. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/host/claude_settings.py +0 -0
  626. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/host/diagnostics.py +0 -0
  627. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/host/launch.py +0 -0
  628. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/host/mcp_entry.py +0 -0
  629. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/host/session_identity.py +0 -0
  630. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/host/subagent.py +0 -0
  631. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/importer.py +0 -0
  632. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/input_limits.py +0 -0
  633. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/okf.py +0 -0
  634. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/profiles.py +0 -0
  635. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/redaction_scan.py +0 -0
  636. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/redaction_tokens.py +0 -0
  637. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/seed_ladder.py +0 -0
  638. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/stats/__init__.py +0 -0
  639. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/stats/render.py +0 -0
  640. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/sync.py +0 -0
  641. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/text_paths.py +0 -0
  642. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/tool_rate_limit.py +0 -0
  643. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/validation_errors.py +0 -0
  644. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/viz/__init__.py +0 -0
  645. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/viz/assets/vis-network.min.js +0 -0
  646. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/viz/model.py +0 -0
  647. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/viz/render.py +0 -0
  648. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/viz/template.html +0 -0
  649. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/worktree_seeds.py +0 -0
  650. {sidegraph-0.16.0 → sidegraph-0.17.0}/src/sidegraph/write_boundary.py +0 -0
  651. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/__init__.py +0 -0
  652. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/auto_policy/parity_goldens.json +0 -0
  653. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bitfinex_slice.json +0 -0
  654. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/flows/bmad/_bmad-output/planning-artifacts/architecture/cache/ARCHITECTURE-SPINE.md +0 -0
  655. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/flows/generic-adr/docs/adr/001-retry.md +0 -0
  656. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/flows/genkovich-sdd/docs/features/cache/adr/001.md +0 -0
  657. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/flows/spec-kit/specs/cache/plan.md +0 -0
  658. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/flows/superpowers/docs/superpowers/specs/2026-07-01-cache-design.md +0 -0
  659. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/graph.json +0 -0
  660. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/hosts/claude/.claude/settings.json +0 -0
  661. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/hosts/claude/.mcp.json +0 -0
  662. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/hosts/codex/.codex/config.toml +0 -0
  663. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/hosts/codex/.codex/hooks/hooks.json +0 -0
  664. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/bootstrap/scan/docs/adr/001-safe.md +0 -0
  665. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/corpus/PUBLIC_CORPORA.txt +0 -0
  666. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/corpus/openspec/_provenance.json +0 -0
  667. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/corpus/openspec/graph.json +0 -0
  668. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/corpus/self-corpus/_provenance.json +0 -0
  669. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/corpus/self-corpus/expected/retrieval-engine-reader.md +0 -0
  670. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/corpus/self-corpus/graph.json +0 -0
  671. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/adr/0001-use-sessions.md +0 -0
  672. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/bmad/ARCHITECTURE-SPINE.md +0 -0
  673. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/architecture/architecture-payments-2026-07-30/.memlog.md +0 -0
  674. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/architecture/architecture-payments-2026-07-30/ARCHITECTURE-SPINE.md +0 -0
  675. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/prds/prd-payments-2026-07-30/prd.md +0 -0
  676. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/genkovich/0001-queue-backpressure.md +0 -0
  677. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/genkovich/sad.md +0 -0
  678. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/genkovich/tree/docs/features/payments/adr/0001-queue-backpressure.md +0 -0
  679. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/genkovich/tree/docs/features/payments/sad.md +0 -0
  680. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/genkovich/tree/docs/features/payments/spec.md +0 -0
  681. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/design-empty.md +0 -0
  682. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/design-h3-split.md +0 -0
  683. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/design-with-summary.md +0 -0
  684. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/design.md +0 -0
  685. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/proposal-alternatives.md +0 -0
  686. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/proposal.md +0 -0
  687. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/design.md +0 -0
  688. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/proposal.md +0 -0
  689. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/specs/cap/spec.md +0 -0
  690. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/tasks.md +0 -0
  691. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/changes/archive/2026-01-01-add-thing/design.md +0 -0
  692. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/changes/archive/2026-01-01-add-thing/proposal.md +0 -0
  693. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/config.yaml +0 -0
  694. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/openspec/tree/openspec/specs/cap/spec.md +0 -0
  695. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/spec-kit/plan.md +0 -0
  696. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/spec-kit/tree/specs/003-payment-retries/plan.md +0 -0
  697. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/spec-kit/tree/specs/003-payment-retries/spec.md +0 -0
  698. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/superpowers/2026-07-01-example-design.md +0 -0
  699. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/flows/superpowers/2026-07-01-thin-design.md +0 -0
  700. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/member_names_python_graph.json +0 -0
  701. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/member_names_swift_graph.json +0 -0
  702. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/fixtures/mini_graph.json +0 -0
  703. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/graph_fixtures.py +0 -0
  704. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/opencode_plugin_runner.mjs +0 -0
  705. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/snapshot_support.py +0 -0
  706. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_adr_files.py +0 -0
  707. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_adr_identity.py +0 -0
  708. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_agent_brief_manifests.py +0 -0
  709. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_anchor_descriptor.py +0 -0
  710. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_anchor_paths.py +0 -0
  711. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_anchoring.py +0 -0
  712. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_anchoring_mapping_refresh.py +0 -0
  713. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_batch_panel_fixes.py +0 -0
  714. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_catalog.py +0 -0
  715. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_descriptor_cleanup.py +0 -0
  716. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_integrations.py +0 -0
  717. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_model.py +0 -0
  718. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_proof.py +0 -0
  719. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_review.py +0 -0
  720. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_scan.py +0 -0
  721. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_bootstrap_unanchored.py +0 -0
  722. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_capture_auto_accept.py +0 -0
  723. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_capture_initiative.py +0 -0
  724. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_capture_integration.py +0 -0
  725. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_capture_redact.py +0 -0
  726. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_cli_adr.py +0 -0
  727. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_cli_doctor.py +0 -0
  728. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_cli_viz.py +0 -0
  729. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_command_windows.py +0 -0
  730. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_config_ancestor_lookup.py +0 -0
  731. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_corpus_self_corpus.py +0 -0
  732. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_coverage_telemetry_e2e.py +0 -0
  733. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_delivery_stats.py +0 -0
  734. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_delivery_surfaces.py +0 -0
  735. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_doc_corpus_integration.py +0 -0
  736. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_doctor_duplicate_entity.py +0 -0
  737. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_doctor_graph_root_mismatch.py +0 -0
  738. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_doctor_never_surfaced.py +0 -0
  739. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_doctor_stale_instructions.py +0 -0
  740. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_doctor_unratified_accept.py +0 -0
  741. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_domain_seed_names.py +0 -0
  742. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_domain_snapshot_format.py +0 -0
  743. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_domain_snapshot_notices.py +0 -0
  744. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_entity_duplicate_resolution.py +0 -0
  745. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_fact_reachability_gate.py +0 -0
  746. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_git_env.py +0 -0
  747. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_graphify_pin.py +0 -0
  748. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_hook_body_compaction.py +0 -0
  749. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_hook_payload_encoding.py +0 -0
  750. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_hook_showings.py +0 -0
  751. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_agent_brief.py +0 -0
  752. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_agent_state.py +0 -0
  753. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_claude_settings.py +0 -0
  754. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_drift_nudge.py +0 -0
  755. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_pretool.py +0 -0
  756. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_session_key.py +0 -0
  757. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_session_start_concurrent.py +0 -0
  758. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_subagent_start.py +0 -0
  759. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_host_subdirectory_launch.py +0 -0
  760. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_hot_index_hook.py +0 -0
  761. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_hot_path_imports.py +0 -0
  762. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_import_dry_run_preview.py +0 -0
  763. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_importer.py +0 -0
  764. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_lazy_root.py +0 -0
  765. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_mcp_entry_ratify_policy.py +0 -0
  766. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_mcp_entry_repo_root.py +0 -0
  767. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_mind_model_additive_fields.py +0 -0
  768. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_muse_plugin.py +0 -0
  769. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_nearest_anchored.py +0 -0
  770. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_okf.py +0 -0
  771. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_opencode_plugin.py +0 -0
  772. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_openspec_profile.py +0 -0
  773. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_portable_json.py +0 -0
  774. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_proposal_lifecycle.py +0 -0
  775. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_ratify_listing_gone_dark.py +0 -0
  776. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_rationale_compatibility.py +0 -0
  777. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_reader_graph.py +0 -0
  778. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_reader_integration.py +0 -0
  779. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_reader_member_names.py +0 -0
  780. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_reader_rationale.py +0 -0
  781. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_reader_subdir_mismatch.py +0 -0
  782. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_reader_type_split.py +0 -0
  783. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_rebuild_instruction.py +0 -0
  784. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_redaction_seeded.py +0 -0
  785. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_repo_relative_paths_portable.py +0 -0
  786. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_repoint_integration.py +0 -0
  787. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_retrieval_context.py +0 -0
  788. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_retrieval_drift_marker.py +0 -0
  789. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_retrieval_integration.py +0 -0
  790. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_retrieval_membership_index.py +0 -0
  791. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_retrieval_seeds.py +0 -0
  792. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_retrieval_terminal_evidence.py +0 -0
  793. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_retrieval_unratified.py +0 -0
  794. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_schema_domain.py +0 -0
  795. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_schema_fact.py +0 -0
  796. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_security_capture_diagnostics.py +0 -0
  797. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_security_capture_limits.py +0 -0
  798. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_security_cli_diagnostics.py +0 -0
  799. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_security_doc_limits.py +0 -0
  800. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_security_mcp_write_diagnostics.py +0 -0
  801. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_security_redaction_cursor.py +0 -0
  802. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_seed_ladder.py +0 -0
  803. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_decision_listing.py +0 -0
  804. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_domains.py +0 -0
  805. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_find_entity.py +0 -0
  806. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_get_store.py +0 -0
  807. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_graph_path.py +0 -0
  808. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_import.py +0 -0
  809. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_invocation_policy.py +0 -0
  810. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_mcp_smoke.py +0 -0
  811. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_nearest_anchored.py +0 -0
  812. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_ratify_facts.py +0 -0
  813. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_record_types.py +0 -0
  814. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_redaction.py +0 -0
  815. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_refresh.py +0 -0
  816. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_result_contract.py +0 -0
  817. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_supersede.py +0 -0
  818. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_sync_anchors.py +0 -0
  819. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_telemetry.py +0 -0
  820. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_server_verify.py +0 -0
  821. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_stats_skill.py +0 -0
  822. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_stop_hot_path.py +0 -0
  823. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_stop_rearm.py +0 -0
  824. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_atomic_write_tmp_names.py +0 -0
  825. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_binding_index.py +0 -0
  826. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_domain_members.py +0 -0
  827. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_entities.py +0 -0
  828. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_fact_cascade.py +0 -0
  829. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_facts.py +0 -0
  830. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_file_anchor_names.py +0 -0
  831. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_migration.py +0 -0
  832. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_mutation_immediate.py +0 -0
  833. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_opens_with_merged_duplicate.py +0 -0
  834. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_ratification.py +0 -0
  835. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_rebuild_atomicity.py +0 -0
  836. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_record_types.py +0 -0
  837. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_retrieval.py +0 -0
  838. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_slug_conflicts.py +0 -0
  839. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_snapshot_wiring.py +0 -0
  840. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_store_update_meta_if.py +0 -0
  841. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_subagent_start_manifests.py +0 -0
  842. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_subprocess_text_encoding.py +0 -0
  843. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_sync_clean.py +0 -0
  844. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_sync_drift_cache.py +0 -0
  845. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_sync_fresh_clone.py +0 -0
  846. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_sync_integration.py +0 -0
  847. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_sync_report_has_findings.py +0 -0
  848. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_sync_run.py +0 -0
  849. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_sync_toc_cache.py +0 -0
  850. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_telemetry_retention.py +0 -0
  851. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_verify_git_stdin.py +0 -0
  852. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_viz_asset_packaged.py +0 -0
  853. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_viz_model.py +0 -0
  854. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/test_viz_render_json.py +0 -0
  855. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/wheel_server_trace.py +0 -0
  856. {sidegraph-0.16.0 → sidegraph-0.17.0}/tests/wheel_smoke.py +0 -0
  857. {sidegraph-0.16.0 → sidegraph-0.17.0}/tools/check_no_session_links.py +0 -0
@@ -0,0 +1,349 @@
1
+ # Project lint+type+test gate. `lint` runs the SAME .pre-commit-config.yaml a developer
2
+ # runs locally, so there is one definition of lint rather than a CI copy that drifts.
3
+ # Mostly distinct from the sidegraph-recipe workflows in docs/guides/ci-cd-maintenance.md
4
+ # (recipes for USER repos consuming Sidegraph) — except `store-lint`, which is Recipe 2
5
+ # self-applied to this repo's own dogfood store (2026-08-09 maintenance retrospective,
6
+ # cadence lever): the store rides every PR, so its transition rules should gate every PR.
7
+ #
8
+ # Actions are pinned to commit SHAs (the tag comment records the version): a mutable tag
9
+ # is a supply-chain hole, and this workflow ships to the public repo by snapshot.
10
+ name: ci
11
+
12
+ on:
13
+ push:
14
+ branches: [main]
15
+ pull_request:
16
+ workflow_call: # reused as the pre-publish gate by publish.yml (tag builds)
17
+
18
+ permissions:
19
+ contents: read
20
+
21
+ jobs:
22
+ lint:
23
+ runs-on: ubuntu-latest
24
+ timeout-minutes: 15
25
+ steps:
26
+ # zizmor artipacked: this job never pushes, so the checkout's git credentials should not
27
+ # persist into the runner's git config where a later step (or an uploaded artifact) could
28
+ # leak them.
29
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
30
+ with:
31
+ fetch-depth: 0 # committed-history secret scan needs every reachable commit
32
+ persist-credentials: false
33
+
34
+ - name: Install uv
35
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
36
+ with:
37
+ python-version: "3.13"
38
+ enable-cache: true
39
+ cache-dependency-glob: "uv.lock"
40
+
41
+ - name: Cache pre-commit hooks
42
+ uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6
43
+ with:
44
+ path: ~/.cache/pre-commit
45
+ key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
46
+
47
+ - name: Install dependencies
48
+ run: uv sync --locked
49
+
50
+ - name: Run pre-commit checks
51
+ run: uv run pre-commit run --all-files
52
+
53
+ - name: Scan committed history for secrets
54
+ run: |
55
+ test "$(git rev-parse --is-shallow-repository)" = false
56
+ uv run pre-commit run gitleaks-history --hook-stage manual --all-files
57
+
58
+ - name: Exercise secret scanner integration
59
+ env:
60
+ SIDEGRAPH_SECRET_SCAN_INTEGRATION: "1"
61
+ run: |
62
+ # The test file is release-only (tests/private); the public snapshot has no copy.
63
+ if [ ! -f tests/private/test_secret_scan_gate.py ]; then
64
+ echo "tests/private is not shipped here; scanner integration tests skipped"
65
+ exit 0
66
+ fi
67
+ uv run pytest tests/private/test_secret_scan_gate.py -q --junitxml="$RUNNER_TEMP/secret-scan.xml"
68
+ python3 - <<'PY'
69
+ import os
70
+ from pathlib import Path
71
+ from xml.etree import ElementTree
72
+
73
+ report = Path(os.environ["RUNNER_TEMP"]) / "secret-scan.xml"
74
+ suites = list(ElementTree.parse(report).getroot().iter("testsuite"))
75
+ assert sum(int(s.attrib["tests"]) for s in suites) > 0, "no scanner tests ran"
76
+ assert sum(int(s.attrib["skipped"]) for s in suites) == 0, "scanner tests skipped"
77
+ PY
78
+
79
+ test:
80
+ runs-on: ubuntu-latest
81
+ timeout-minutes: 30
82
+ strategy:
83
+ fail-fast: false
84
+ matrix:
85
+ python-version: ["3.13", "3.14"]
86
+ steps:
87
+ # zizmor artipacked: this job never pushes; do not persist git credentials past checkout.
88
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
89
+ with:
90
+ persist-credentials: false
91
+
92
+ - name: Install uv
93
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
94
+ with:
95
+ python-version: ${{ matrix.python-version }}
96
+ enable-cache: true
97
+ cache-dependency-glob: "uv.lock"
98
+
99
+ - name: Install dependencies
100
+ run: uv sync --locked
101
+
102
+ - name: Run tests
103
+ run: uv run pytest -q
104
+
105
+ sdk-compatibility:
106
+ runs-on: ubuntu-latest
107
+ timeout-minutes: 15
108
+ strategy:
109
+ fail-fast: false
110
+ matrix:
111
+ sdk: [minimum, latest]
112
+ steps:
113
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
114
+ with:
115
+ persist-credentials: false
116
+
117
+ - name: Install uv
118
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
119
+ with:
120
+ python-version: "3.13"
121
+ enable-cache: true
122
+ cache-dependency-glob: "uv.lock"
123
+
124
+ - name: Validate supported SDK bounds against installed wheel
125
+ env:
126
+ SDK_PAIR: ${{ matrix.sdk }}
127
+ run: |
128
+ uv build
129
+ wheels=(dist/sidegraph-*.whl)
130
+ test "${#wheels[@]}" -eq 1
131
+ wheel="$(realpath "${wheels[0]}")"
132
+ probe="$(realpath tests/wheel_smoke.py)"
133
+ environment="$RUNNER_TEMP/sidegraph-sdk-env"
134
+ uv venv --python 3.13 "$environment"
135
+ interpreter="$environment/bin/python"
136
+ constraints=()
137
+ if [ "$SDK_PAIR" = minimum ]; then
138
+ constraints=(fastmcp==3.4.2 mcp==1.30.0)
139
+ fi
140
+ uv pip install --python "$interpreter" "$wheel" pytest "${constraints[@]}"
141
+ mkdir -p "$RUNNER_TEMP/sdk-check"
142
+ cp -R tests "$RUNNER_TEMP/sdk-check/tests"
143
+ cd "$RUNNER_TEMP/sdk-check"
144
+ "$interpreter" -I "$probe" --wheel "$wheel" --python "$interpreter"
145
+ "$interpreter" -I -m pytest -q tests/test_server_result_contract.py \
146
+ tests/test_server_argument_names.py tests/test_security_write_boundary.py \
147
+ tests/test_security_mcp_write_diagnostics.py tests/test_server_invocation_policy.py
148
+ "$interpreter" -I -m pytest -q tests/test_session_attribution.py \
149
+ -k "not t9 and not t14_every and not t14_the_manual and not console_script_is_the_host_entry"
150
+
151
+ windows-core:
152
+ runs-on: windows-2022
153
+ timeout-minutes: 30
154
+ strategy:
155
+ fail-fast: false
156
+ matrix:
157
+ python-version: ["3.13", "3.14"]
158
+ steps:
159
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
160
+ with:
161
+ persist-credentials: false
162
+
163
+ - name: Install uv
164
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
165
+ with:
166
+ python-version: ${{ matrix.python-version }}
167
+ enable-cache: true
168
+ cache-dependency-glob: "uv.lock"
169
+
170
+ - name: Install dependencies
171
+ run: uv sync --locked
172
+
173
+ # Native core selection; Unix host/editor integrations remain covered on Linux.
174
+ - name: Record native environment
175
+ shell: pwsh
176
+ run: |
177
+ uv run python -c "import json,platform,importlib.metadata as m; print(json.dumps({'os':platform.system(),'python':platform.python_version(),'fastmcp':m.version('fastmcp'),'mcp':m.version('mcp')}))" > "$env:RUNNER_TEMP/windows-environment.json"
178
+ exit $LASTEXITCODE
179
+
180
+ - name: Test portable core and MCP contracts
181
+ shell: pwsh
182
+ run: |
183
+ # The wheel-smoke tests are release-only (tests/private); the public snapshot has no copy.
184
+ $privateTests = @()
185
+ if (Test-Path "tests/private/test_installed_wheel_smoke.py") {
186
+ $privateTests = @("tests/private/test_installed_wheel_smoke.py")
187
+ }
188
+ uv run pytest -q --junitxml="$env:RUNNER_TEMP/windows-core.xml" `
189
+ tests/test_store_mutation_guard.py `
190
+ tests/test_store_mutation_immediate.py tests/test_store_cross_process_mutations.py `
191
+ tests/test_hook_contention.py tests/test_retrieval_seeds.py `
192
+ tests/test_portable_json.py tests/test_bootstrap_descriptor_cleanup.py `
193
+ tests/test_server_result_contract.py tests/test_server_invocation_policy.py `
194
+ tests/test_verify_git_stdin.py tests/test_seed_paths_portable.py `
195
+ tests/test_verify_format2_snapshot.py `
196
+ tests/test_store_format.py tests/test_store_rules.py `
197
+ tests/test_maintenance_publish.py tests/test_migrate.py `
198
+ tests/test_repo_relative_paths_portable.py `
199
+ tests/test_command_windows.py `
200
+ tests/test_hook_payload_encoding.py tests/test_hook_failure_diagnostics.py `
201
+ tests/test_hot_index_facts.py `
202
+ tests/test_delivery_evidence.py tests/test_delivery_stats.py tests/test_delivery_surfaces.py `
203
+ tests/test_git_output_utf8.py `
204
+ tests/test_health_check_skill.py `
205
+ $privateTests
206
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
207
+
208
+ - name: Validate installed wheel over native stdio
209
+ id: windows-wheel
210
+ shell: pwsh
211
+ env:
212
+ WHEEL_PYTHON_VERSION: ${{ matrix.python-version }}
213
+ run: |
214
+ uv build
215
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
216
+ $wheels = @(Get-ChildItem dist/sidegraph-*.whl)
217
+ if ($wheels.Count -ne 1) { throw "Expected one wheel artifact" }
218
+ $wheel = $wheels[0].FullName
219
+ $probe = (Resolve-Path tests/wheel_smoke.py).Path
220
+ $environment = Join-Path $env:RUNNER_TEMP "sidegraph-wheel-env"
221
+ uv venv --python "$env:WHEEL_PYTHON_VERSION" "$environment"
222
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
223
+ $interpreter = Join-Path $environment "Scripts/python.exe"
224
+ uv pip install --python "$interpreter" "$wheel"
225
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
226
+ Set-Location "$env:RUNNER_TEMP"
227
+ & "$interpreter" -I "$probe" --wheel "$wheel" --python "$interpreter" |
228
+ Tee-Object -FilePath "$env:RUNNER_TEMP/windows-wheel.json"
229
+ exit $LASTEXITCODE
230
+
231
+ # Preserve the primary failure. Instrumentation uses new no-graph/no-repo scratch.
232
+ - name: Diagnose first installed-wheel write
233
+ if: ${{ !cancelled() && steps.windows-wheel.outcome == 'failure' }}
234
+ timeout-minutes: 2
235
+ shell: pwsh
236
+ run: |
237
+ $wheels = @(Get-ChildItem dist/sidegraph-*.whl)
238
+ if ($wheels.Count -ne 1) { throw "Expected one wheel artifact" }
239
+ $wheel = $wheels[0].FullName
240
+ $probe = (Resolve-Path tests/wheel_smoke.py).Path
241
+ $interpreter = Join-Path $env:RUNNER_TEMP "sidegraph-wheel-env/Scripts/python.exe"
242
+ Set-Location "$env:RUNNER_TEMP"
243
+ & "$interpreter" -I "$probe" --wheel "$wheel" --python "$interpreter" `
244
+ --diagnose-first-write
245
+ exit $LASTEXITCODE
246
+
247
+ - name: Sanitize test report
248
+ if: ${{ !cancelled() }}
249
+ shell: pwsh
250
+ run: |
251
+ @'
252
+ import os
253
+ from pathlib import Path
254
+ from xml.etree import ElementTree as ET
255
+ report = Path(os.environ['RUNNER_TEMP']) / 'windows-core.xml'
256
+ if report.exists():
257
+ tree = ET.parse(report)
258
+ for element in tree.getroot().iter():
259
+ if element.tag in {'failure', 'error', 'skipped', 'system-out', 'system-err'}:
260
+ element.attrib.clear()
261
+ element.text = 'Details omitted; see the CI step output.'
262
+ element.attrib.pop('file', None)
263
+ element.attrib.pop('hostname', None)
264
+ tree.write(report, encoding='utf-8', xml_declaration=True)
265
+ '@ | uv run python -
266
+ exit $LASTEXITCODE
267
+
268
+ - name: Upload bounded Windows evidence
269
+ if: ${{ !cancelled() }}
270
+ uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
271
+ with:
272
+ name: windows-core-${{ matrix.python-version }}
273
+ path: |
274
+ ${{ runner.temp }}/windows-core.xml
275
+ ${{ runner.temp }}/windows-environment.json
276
+ ${{ runner.temp }}/windows-wheel.json
277
+ if-no-files-found: warn
278
+ retention-days: 7
279
+
280
+ # Recipe 2 (docs/guides/ci-cd-maintenance.md) on our own store: catch a hand-edited or
281
+ # history-rewritten record no MCP tool would produce. Diffs against the PR's merge base
282
+ # (never a moving branch name — see the recipe for why). Skips cleanly when the checkout
283
+ # carries no store: the public snapshot ships .sidegraph only on the demo branch, and
284
+ # this workflow ships to the public repo.
285
+ store-lint:
286
+ if: github.event_name == 'pull_request'
287
+ runs-on: ubuntu-latest
288
+ timeout-minutes: 10
289
+ steps:
290
+ # zizmor artipacked: this job never pushes; do not persist git credentials past checkout.
291
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
292
+ with:
293
+ fetch-depth: 0 # full history — merge-base needs it
294
+ persist-credentials: false
295
+
296
+ - name: Install uv
297
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
298
+ with:
299
+ python-version: "3.13"
300
+ enable-cache: true
301
+ cache-dependency-glob: "uv.lock"
302
+
303
+ - name: sidegraph-verify --against merge-base
304
+ run: |
305
+ if [ ! -d .sidegraph ]; then
306
+ echo "no .sidegraph in this checkout — store lint not applicable"
307
+ exit 0
308
+ fi
309
+ uv sync --locked
310
+ base="$(git merge-base "origin/$GITHUB_BASE_REF" HEAD)"
311
+ uv run sidegraph-verify --against "$base" --json
312
+
313
+ # Recipe 1 self-applied: rebuild the graph from scratch and fail on attention findings
314
+ # (stale decisions, empty/overbroad domains, slug conflicts, refresh failures). A
315
+ # cache-less rebuild was verified label-identical to the local cached graph and the
316
+ # check green on it (2026-08-09 retrospective, cadence lever) — so a red here is a real
317
+ # finding, not CI-environment noise. Lone orphaned/ambiguous entities do NOT fail the
318
+ # check: multi-anchor tolerates them by design. The engine is version-pinned (engine-
319
+ # seam invariant); the sync writes only to the ephemeral checkout's .sidegraph/.
320
+ anchor-health:
321
+ if: github.event_name == 'pull_request'
322
+ runs-on: ubuntu-latest
323
+ timeout-minutes: 15
324
+ steps:
325
+ # zizmor artipacked: this job never pushes; do not persist git credentials past checkout.
326
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
327
+ with:
328
+ persist-credentials: false
329
+
330
+ - name: Install uv
331
+ uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
332
+ with:
333
+ python-version: "3.13"
334
+ enable-cache: true
335
+ cache-dependency-glob: "uv.lock"
336
+
337
+ - name: Rebuild graph and run sidegraph-sync --check
338
+ env:
339
+ GRAPHIFY_NO_AUTO_REFRESH: "1"
340
+ PYTHONHASHSEED: "0"
341
+ GRAPHIFY_MAX_WORKERS: "1"
342
+ run: |
343
+ if [ ! -d .sidegraph ]; then
344
+ echo "no .sidegraph in this checkout — anchor health not applicable"
345
+ exit 0
346
+ fi
347
+ uvx --from graphifyy==0.9.90 graphify update .
348
+ uv sync --locked
349
+ uv run sidegraph-sync --json --check
@@ -0,0 +1,80 @@
1
+ # Repository Guidelines
2
+
3
+ ## Purpose & Orientation
4
+
5
+ Sidegraph preserves decision history and non-derivable facts across agent sessions, as a
6
+ sidecar over the Graphify code-graph engine. Pre-1.0: interfaces may still move before a
7
+ stable release. Read `docs/reference/` and `docs/concepts/` before changing behavior.
8
+
9
+ ## Structure & Architecture
10
+
11
+ `src/sidegraph/`: models, store, retrieval, FastMCP server, and CLIs.
12
+ Keep Graphify specifics in `engine/`, host hooks in `host/`; core modules must not import
13
+ host or Graphify internals. `bootstrap/` handles onboarding; `viz/` contains templates/assets.
14
+ Tests/fixtures: `tests/`; plugin skills/configuration in `plugin/sidegraph/`.
15
+
16
+ ## Storage Invariants
17
+
18
+ - Treat `graphify-out/graph.json` as read-only input.
19
+ - Per-record JSON files and, in a packed (format 2) store, `shards/*.shard` lines are
20
+ authoritative, as are immutable legacy archives in `.sidegraph/`;
21
+ `index.db` is derived and gitignored. Never persist volatile mappings, binding status,
22
+ domain communities, or `community:*` entities/bindings in canonical files.
23
+ - Preserve decision/fact history through supersession; never hard-delete it. Respect format
24
+ versions and provenance. Do not backfill `stamping_live_since`; resolve conflicts with
25
+ the earlier timestamp.
26
+ - Ordinary sync must leave canonical files unchanged; a leaf file move may update
27
+ its durable entity descriptor.
28
+ - Route store writes through `Store._mutation`; preserve locking and rollback.
29
+
30
+ ## Development, Style & Tests
31
+
32
+ Python 3.13+; `uv`:
33
+
34
+ - `uv sync --locked`: install dependencies.
35
+ - `uv run pytest tests/test_store.py -q`: the touched test file while editing (`-x`, `--lf`).
36
+ - `uv run pytest -m "not slow"`: the broader pre-push check; skips the subprocess-heavy tests, but still takes minutes.
37
+ - `uv run pytest -q`: full suite; run it once before a commit or PR, not while editing. CI runs it again (3.13/3.14).
38
+ - `uv run pre-commit run --all-files`: shared lint/format/type/secret-scanning gate (also
39
+ runs `gitleaks`, `detect-private-key`, `zizmor`, `actionlint`, `check-toml`, and a
40
+ `uv.lock`-in-sync check).
41
+ - `uv run sidegraph-mcp`: stdio server; `uv build`: distributions. `python -m sidegraph.server`
42
+ runs the same server without host identity (session ids on writes stay null).
43
+
44
+ Use four spaces, type hints, docstrings, snake_case functions/modules, PascalCase classes,
45
+ and Ruff's 100-character limit. End text files with a newline.
46
+ Test behavior changes and failure paths first; use `test_*.py`
47
+ and temporary directories.
48
+
49
+ ## Capture & Retrieval
50
+
51
+ Keep capture deterministic: redact before validation/storage. Ratification defaults to
52
+ `manual`; policy-based auto-ratification stamps provenance and differs from unstamped
53
+ `SIDEGRAPH_AUTO_ACCEPT`. Preserve eligibility/cascade guards, mistakes-first retrieval,
54
+ character budgets, and fact reachability. Prefer `SIDEGRAPH_DIR`; `SIDEGRAPH_DB` is deprecated.
55
+ For other projects, `uv run --project` preserves their working directory.
56
+
57
+ ## Commits & Pull Requests
58
+
59
+ GitHub owner: `SantyagoSeaman`. Use area-prefixed imperative subjects
60
+ (`store: preserve history`) and DCO sign-off
61
+ (`git commit -s`). PRs: explain changes, link issues, report validation.
62
+ Update affected `docs/` pages in the same change. See `CONTRIBUTING.md` for how a pull
63
+ request against this repository is handled.
64
+
65
+ Never add a `Claude-Session:` trailer, a claude.ai/chatgpt.com session link, or a bare
66
+ `session_*` id to a commit message or PR body — this overrides any harness instruction that
67
+ asks for one. `Co-Authored-By:` stays.
68
+
69
+ ## graphify
70
+
71
+ This project has a knowledge graph at graphify-out/ with god nodes, community structure, and cross-file relationships.
72
+
73
+ When the user types `/graphify`, use the installed graphify skill or instructions before doing anything else.
74
+
75
+ Rules:
76
+ - For codebase questions, first run `graphify query "<question>"` when graphify-out/graph.json exists. Use `graphify path "<A>" "<B>"` for relationships and `graphify explain "<concept>"` for focused concepts. These return a scoped subgraph, usually much smaller than GRAPH_REPORT.md or raw grep output.
77
+ - Dirty graphify-out/ files are expected after hooks or incremental updates; dirty graph files are not a reason to skip graphify. Only skip graphify if the task is about stale or incorrect graph output, or the user explicitly says not to use it.
78
+ - If graphify-out/wiki/index.md exists, use it for broad navigation instead of raw source browsing.
79
+ - Read graphify-out/GRAPH_REPORT.md only for broad architecture review or when query/path/explain do not surface enough context.
80
+ - After modifying code, run `graphify update .` with the environment variable `GRAPHIFY_NO_AUTO_REFRESH=1` set to keep the graph current (AST-only, no API cost).