sidegraph 0.16.0__tar.gz → 0.17.1__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 (858) hide show
  1. sidegraph-0.17.1/.github/workflows/ci.yml +349 -0
  2. sidegraph-0.17.1/AGENTS.md +80 -0
  3. sidegraph-0.17.1/CHANGELOG.md +2426 -0
  4. sidegraph-0.17.1/CLAUDE.md +122 -0
  5. sidegraph-0.17.1/CONTRIBUTING.md +93 -0
  6. sidegraph-0.17.1/PKG-INFO +527 -0
  7. sidegraph-0.17.1/README.md +495 -0
  8. sidegraph-0.17.1/docs/README.md +65 -0
  9. sidegraph-0.17.1/docs/concepts/anchoring.md +205 -0
  10. sidegraph-0.17.1/docs/concepts/data-model.md +332 -0
  11. sidegraph-0.17.1/docs/concepts/mind-model.md +221 -0
  12. sidegraph-0.17.1/docs/concepts/retrieval.md +431 -0
  13. sidegraph-0.17.1/docs/getting-started/bootstrap.md +248 -0
  14. sidegraph-0.17.1/docs/getting-started/claude-code-setup.md +294 -0
  15. sidegraph-0.17.1/docs/getting-started/codex-setup.md +193 -0
  16. sidegraph-0.17.1/docs/getting-started/installation.md +339 -0
  17. sidegraph-0.17.1/docs/getting-started/quickstart.md +135 -0
  18. sidegraph-0.17.1/docs/guides/adr-export.md +134 -0
  19. sidegraph-0.17.1/docs/guides/capturing-decisions.md +436 -0
  20. sidegraph-0.17.1/docs/guides/ci-cd-maintenance.md +422 -0
  21. sidegraph-0.17.1/docs/guides/migrating-to-0.14.md +290 -0
  22. sidegraph-0.17.1/docs/guides/migrating-to-0.17.md +329 -0
  23. sidegraph-0.17.1/docs/guides/naming-your-domains.md +329 -0
  24. sidegraph-0.17.1/docs/guides/retrieval-in-sessions.md +300 -0
  25. sidegraph-0.17.1/docs/guides/semantic-docs.md +259 -0
  26. sidegraph-0.17.1/docs/guides/surviving-refactors.md +254 -0
  27. sidegraph-0.17.1/docs/guides/team-workflow.md +229 -0
  28. sidegraph-0.17.1/docs/guides/troubleshooting.md +457 -0
  29. sidegraph-0.17.1/docs/guides/using-0.15.md +44 -0
  30. sidegraph-0.17.1/docs/guides/using-0.16.md +47 -0
  31. sidegraph-0.17.1/docs/integrations/claude-code.md +377 -0
  32. sidegraph-0.17.1/docs/integrations/codex.md +303 -0
  33. sidegraph-0.17.1/docs/integrations/graphify.md +343 -0
  34. sidegraph-0.17.1/docs/integrations/grok.md +36 -0
  35. sidegraph-0.17.1/docs/integrations/muse.md +52 -0
  36. sidegraph-0.17.1/docs/llms.txt +76 -0
  37. sidegraph-0.17.1/docs/pilot-kit/judge-prompt.md +41 -0
  38. sidegraph-0.17.1/docs/reference/cli.md +2034 -0
  39. sidegraph-0.17.1/docs/reference/configuration.md +257 -0
  40. sidegraph-0.17.1/docs/reference/git-bindings.md +171 -0
  41. sidegraph-0.17.1/docs/reference/hooks.md +1174 -0
  42. sidegraph-0.17.1/docs/reference/mcp-tools.md +1836 -0
  43. sidegraph-0.17.1/docs/reference/operations.md +116 -0
  44. sidegraph-0.17.1/docs/reference/releasing.md +193 -0
  45. sidegraph-0.17.1/docs/reference/stability.md +88 -0
  46. sidegraph-0.17.1/docs/reference/store-format.md +1023 -0
  47. sidegraph-0.17.1/package.json +6 -0
  48. sidegraph-0.17.1/plugin/sidegraph/.claude-plugin/plugin.json +11 -0
  49. sidegraph-0.17.1/plugin/sidegraph/.codex-plugin/plugin.json +12 -0
  50. sidegraph-0.17.1/plugin/sidegraph/.muse-plugin/plugin.json +85 -0
  51. sidegraph-0.17.1/plugin/sidegraph/skills/compact/SKILL.md +63 -0
  52. sidegraph-0.17.1/plugin/sidegraph/skills/stats/agents/openai.yaml +6 -0
  53. sidegraph-0.17.1/pyproject.toml +129 -0
  54. sidegraph-0.17.1/src/sidegraph/__init__.py +76 -0
  55. sidegraph-0.17.1/src/sidegraph/adr.py +299 -0
  56. sidegraph-0.17.1/src/sidegraph/bootstrap/apply.py +654 -0
  57. sidegraph-0.17.1/src/sidegraph/bootstrap/catalog.py +215 -0
  58. sidegraph-0.17.1/src/sidegraph/capture.py +2294 -0
  59. sidegraph-0.17.1/src/sidegraph/cli.py +3393 -0
  60. sidegraph-0.17.1/src/sidegraph/doctor.py +2110 -0
  61. sidegraph-0.17.1/src/sidegraph/gitio.py +617 -0
  62. sidegraph-0.17.1/src/sidegraph/host/hooks.py +2401 -0
  63. sidegraph-0.17.1/src/sidegraph/hot_index.py +540 -0
  64. sidegraph-0.17.1/src/sidegraph/integrity.py +1581 -0
  65. sidegraph-0.17.1/src/sidegraph/maintenance.py +1387 -0
  66. sidegraph-0.17.1/src/sidegraph/maintenance_clock.py +306 -0
  67. sidegraph-0.17.1/src/sidegraph/migrate.py +474 -0
  68. sidegraph-0.17.1/src/sidegraph/nearest_anchored.py +394 -0
  69. sidegraph-0.17.1/src/sidegraph/retrieval.py +2148 -0
  70. sidegraph-0.17.1/src/sidegraph/schema.py +520 -0
  71. sidegraph-0.17.1/src/sidegraph/server.py +5748 -0
  72. sidegraph-0.17.1/src/sidegraph/stats/model.py +839 -0
  73. sidegraph-0.17.1/src/sidegraph/store.py +5382 -0
  74. sidegraph-0.17.1/src/sidegraph/store_format.py +829 -0
  75. sidegraph-0.17.1/src/sidegraph/store_layout.py +814 -0
  76. sidegraph-0.17.1/src/sidegraph/store_rules.py +699 -0
  77. sidegraph-0.17.1/src/sidegraph/store_view.py +157 -0
  78. sidegraph-0.17.1/src/sidegraph/verify.py +2587 -0
  79. sidegraph-0.17.1/tests/bounded_listings_support.py +160 -0
  80. sidegraph-0.17.1/tests/conftest.py +214 -0
  81. sidegraph-0.17.1/tests/drift_checks_support.py +114 -0
  82. sidegraph-0.17.1/tests/githooks_support.py +414 -0
  83. sidegraph-0.17.1/tests/graph_repo_support.py +263 -0
  84. sidegraph-0.17.1/tests/membership_support.py +29 -0
  85. sidegraph-0.17.1/tests/moved_adoption_support.py +133 -0
  86. sidegraph-0.17.1/tests/store_format2_support.py +768 -0
  87. sidegraph-0.17.1/tests/store_non_file_support.py +67 -0
  88. sidegraph-0.17.1/tests/store_record_support.py +55 -0
  89. sidegraph-0.17.1/tests/test_adr.py +345 -0
  90. sidegraph-0.17.1/tests/test_anchoring_membership.py +301 -0
  91. sidegraph-0.17.1/tests/test_bash_paths.py +334 -0
  92. sidegraph-0.17.1/tests/test_bootstrap_apply.py +811 -0
  93. sidegraph-0.17.1/tests/test_bootstrap_cli.py +1624 -0
  94. sidegraph-0.17.1/tests/test_bootstrap_planner.py +511 -0
  95. sidegraph-0.17.1/tests/test_bootstrap_scan_regular.py +345 -0
  96. sidegraph-0.17.1/tests/test_bounded_listings.py +1279 -0
  97. sidegraph-0.17.1/tests/test_capture_facts.py +316 -0
  98. sidegraph-0.17.1/tests/test_capture_neighbors.py +182 -0
  99. sidegraph-0.17.1/tests/test_capture_propose.py +859 -0
  100. sidegraph-0.17.1/tests/test_cli_compact.py +300 -0
  101. sidegraph-0.17.1/tests/test_cli_compact_format2.py +458 -0
  102. sidegraph-0.17.1/tests/test_cli_domains.py +538 -0
  103. sidegraph-0.17.1/tests/test_cli_domains_snapshot.py +325 -0
  104. sidegraph-0.17.1/tests/test_cli_graph_paths.py +521 -0
  105. sidegraph-0.17.1/tests/test_cli_import.py +1876 -0
  106. sidegraph-0.17.1/tests/test_cli_init.py +621 -0
  107. sidegraph-0.17.1/tests/test_cli_init_hooks.py +564 -0
  108. sidegraph-0.17.1/tests/test_cli_okf.py +559 -0
  109. sidegraph-0.17.1/tests/test_cli_ratify.py +523 -0
  110. sidegraph-0.17.1/tests/test_cli_ratify_facts.py +104 -0
  111. sidegraph-0.17.1/tests/test_cli_stats.py +682 -0
  112. sidegraph-0.17.1/tests/test_cli_store_precedence.py +160 -0
  113. sidegraph-0.17.1/tests/test_cli_sync.py +438 -0
  114. sidegraph-0.17.1/tests/test_cli_sync_check.py +260 -0
  115. sidegraph-0.17.1/tests/test_cli_unreadable_paths.py +275 -0
  116. sidegraph-0.17.1/tests/test_codex_plugin.py +207 -0
  117. sidegraph-0.17.1/tests/test_community_baseline.py +48 -0
  118. sidegraph-0.17.1/tests/test_compact_skill.py +28 -0
  119. sidegraph-0.17.1/tests/test_config.py +271 -0
  120. sidegraph-0.17.1/tests/test_config_borrowed_graph.py +174 -0
  121. sidegraph-0.17.1/tests/test_corpus_expected_renders.py +42 -0
  122. sidegraph-0.17.1/tests/test_delivery_evidence.py +297 -0
  123. sidegraph-0.17.1/tests/test_digest_integrity.py +555 -0
  124. sidegraph-0.17.1/tests/test_doc_import.py +2881 -0
  125. sidegraph-0.17.1/tests/test_docs_claims.py +1301 -0
  126. sidegraph-0.17.1/tests/test_doctor.py +550 -0
  127. sidegraph-0.17.1/tests/test_doctor_auto_share.py +658 -0
  128. sidegraph-0.17.1/tests/test_doctor_code_drift.py +644 -0
  129. sidegraph-0.17.1/tests/test_doctor_dangling_supports.py +149 -0
  130. sidegraph-0.17.1/tests/test_doctor_graph_stale.py +90 -0
  131. sidegraph-0.17.1/tests/test_doctor_integrity.py +213 -0
  132. sidegraph-0.17.1/tests/test_doctor_scan.py +293 -0
  133. sidegraph-0.17.1/tests/test_doctor_unhashable_payload.py +165 -0
  134. sidegraph-0.17.1/tests/test_domains.py +1590 -0
  135. sidegraph-0.17.1/tests/test_drift_checks.py +579 -0
  136. sidegraph-0.17.1/tests/test_engine_build.py +170 -0
  137. sidegraph-0.17.1/tests/test_entity_get_or_create_race.py +200 -0
  138. sidegraph-0.17.1/tests/test_entity_twins.py +528 -0
  139. sidegraph-0.17.1/tests/test_entry_point_arguments.py +260 -0
  140. sidegraph-0.17.1/tests/test_env_isolation.py +53 -0
  141. sidegraph-0.17.1/tests/test_file_bound_retrieval.py +492 -0
  142. sidegraph-0.17.1/tests/test_flow_profile.py +1030 -0
  143. sidegraph-0.17.1/tests/test_format2_notices.py +289 -0
  144. sidegraph-0.17.1/tests/test_git_bindings_blame.py +272 -0
  145. sidegraph-0.17.1/tests/test_git_bindings_hook.py +574 -0
  146. sidegraph-0.17.1/tests/test_git_bindings_provenance.py +171 -0
  147. sidegraph-0.17.1/tests/test_git_output_utf8.py +214 -0
  148. sidegraph-0.17.1/tests/test_githooks.py +861 -0
  149. sidegraph-0.17.1/tests/test_graph_freshness.py +438 -0
  150. sidegraph-0.17.1/tests/test_health_check_skill.py +1122 -0
  151. sidegraph-0.17.1/tests/test_hook_contention.py +1010 -0
  152. sidegraph-0.17.1/tests/test_hook_failure_diagnostics.py +482 -0
  153. sidegraph-0.17.1/tests/test_hook_spawn_guard.py +308 -0
  154. sidegraph-0.17.1/tests/test_host_borrowed_graph.py +287 -0
  155. sidegraph-0.17.1/tests/test_host_integrity.py +1094 -0
  156. sidegraph-0.17.1/tests/test_host_launch.py +343 -0
  157. sidegraph-0.17.1/tests/test_host_pretool_records.py +861 -0
  158. sidegraph-0.17.1/tests/test_host_session_start.py +739 -0
  159. sidegraph-0.17.1/tests/test_host_stop.py +1700 -0
  160. sidegraph-0.17.1/tests/test_host_touch_events.py +298 -0
  161. sidegraph-0.17.1/tests/test_host_wiring_checks.py +939 -0
  162. sidegraph-0.17.1/tests/test_hot_index.py +908 -0
  163. sidegraph-0.17.1/tests/test_hot_index_facts.py +798 -0
  164. sidegraph-0.17.1/tests/test_index_journal_mode.py +196 -0
  165. sidegraph-0.17.1/tests/test_integrity.py +784 -0
  166. sidegraph-0.17.1/tests/test_integrity_engine_version.py +174 -0
  167. sidegraph-0.17.1/tests/test_integrity_refresh_hook.py +537 -0
  168. sidegraph-0.17.1/tests/test_integrity_replay.py +114 -0
  169. sidegraph-0.17.1/tests/test_integrity_stranded.py +874 -0
  170. sidegraph-0.17.1/tests/test_maintenance_clock.py +361 -0
  171. sidegraph-0.17.1/tests/test_maintenance_dry_run_parity.py +173 -0
  172. sidegraph-0.17.1/tests/test_maintenance_plan.py +767 -0
  173. sidegraph-0.17.1/tests/test_maintenance_publish.py +1147 -0
  174. sidegraph-0.17.1/tests/test_member_anchor_wiring.py +307 -0
  175. sidegraph-0.17.1/tests/test_merge_matrix_format2.py +721 -0
  176. sidegraph-0.17.1/tests/test_migrate.py +1128 -0
  177. sidegraph-0.17.1/tests/test_pathless_descriptor_adoption.py +489 -0
  178. sidegraph-0.17.1/tests/test_pilot_kit_corpus_fit.py +146 -0
  179. sidegraph-0.17.1/tests/test_private_tests_isolation.py +61 -0
  180. sidegraph-0.17.1/tests/test_public_hook_launch.py +625 -0
  181. sidegraph-0.17.1/tests/test_ratify_policy.py +4356 -0
  182. sidegraph-0.17.1/tests/test_reader_community_labels.py +166 -0
  183. sidegraph-0.17.1/tests/test_reader_doc_nodes.py +134 -0
  184. sidegraph-0.17.1/tests/test_reader_engine_version.py +160 -0
  185. sidegraph-0.17.1/tests/test_reader_file_labels.py +183 -0
  186. sidegraph-0.17.1/tests/test_reader_label_conventions.py +20 -0
  187. sidegraph-0.17.1/tests/test_reader_member_name_lookup.py +187 -0
  188. sidegraph-0.17.1/tests/test_reader_nodes_in_file.py +12 -0
  189. sidegraph-0.17.1/tests/test_reader_perf.py +214 -0
  190. sidegraph-0.17.1/tests/test_reader_read.py +27 -0
  191. sidegraph-0.17.1/tests/test_reader_resolve.py +129 -0
  192. sidegraph-0.17.1/tests/test_reader_stub_collapse.py +421 -0
  193. sidegraph-0.17.1/tests/test_reader_version.py +70 -0
  194. sidegraph-0.17.1/tests/test_readers_format2.py +734 -0
  195. sidegraph-0.17.1/tests/test_redaction_scan.py +157 -0
  196. sidegraph-0.17.1/tests/test_redaction_tokens.py +172 -0
  197. sidegraph-0.17.1/tests/test_retrieval_budget_counters.py +400 -0
  198. sidegraph-0.17.1/tests/test_retrieval_drilldown.py +690 -0
  199. sidegraph-0.17.1/tests/test_retrieval_facts.py +222 -0
  200. sidegraph-0.17.1/tests/test_retrieval_guessed.py +415 -0
  201. sidegraph-0.17.1/tests/test_retrieval_ids.py +204 -0
  202. sidegraph-0.17.1/tests/test_retrieval_membership_generations.py +79 -0
  203. sidegraph-0.17.1/tests/test_retrieval_rank.py +641 -0
  204. sidegraph-0.17.1/tests/test_retrieval_shown_ids.py +15 -0
  205. sidegraph-0.17.1/tests/test_retrieval_thin_tools.py +171 -0
  206. sidegraph-0.17.1/tests/test_retrieval_toc.py +501 -0
  207. sidegraph-0.17.1/tests/test_retrieval_toptier.py +123 -0
  208. sidegraph-0.17.1/tests/test_schema_descriptor.py +112 -0
  209. sidegraph-0.17.1/tests/test_security_input_limits.py +253 -0
  210. sidegraph-0.17.1/tests/test_security_numeric_enums.py +32 -0
  211. sidegraph-0.17.1/tests/test_security_python_shapes.py +47 -0
  212. sidegraph-0.17.1/tests/test_security_validation_errors.py +100 -0
  213. sidegraph-0.17.1/tests/test_security_write_boundary.py +163 -0
  214. sidegraph-0.17.1/tests/test_seed_paths_portable.py +151 -0
  215. sidegraph-0.17.1/tests/test_server_add_anchors.py +200 -0
  216. sidegraph-0.17.1/tests/test_server_anchoring.py +239 -0
  217. sidegraph-0.17.1/tests/test_server_annotations.py +86 -0
  218. sidegraph-0.17.1/tests/test_server_argument_names.py +274 -0
  219. sidegraph-0.17.1/tests/test_server_borrowed_graph.py +599 -0
  220. sidegraph-0.17.1/tests/test_server_capture.py +878 -0
  221. sidegraph-0.17.1/tests/test_server_commit_hint.py +216 -0
  222. sidegraph-0.17.1/tests/test_server_coverage_events.py +251 -0
  223. sidegraph-0.17.1/tests/test_server_drilldown.py +96 -0
  224. sidegraph-0.17.1/tests/test_server_facts.py +323 -0
  225. sidegraph-0.17.1/tests/test_server_get_task_context.py +45 -0
  226. sidegraph-0.17.1/tests/test_server_graph_freshness.py +386 -0
  227. sidegraph-0.17.1/tests/test_server_prewrite_anchor_validation.py +183 -0
  228. sidegraph-0.17.1/tests/test_server_render_events.py +349 -0
  229. sidegraph-0.17.1/tests/test_server_thin_tools.py +69 -0
  230. sidegraph-0.17.1/tests/test_server_tolerant_seeds.py +653 -0
  231. sidegraph-0.17.1/tests/test_session_attribution.py +627 -0
  232. sidegraph-0.17.1/tests/test_skill_frontmatter.py +41 -0
  233. sidegraph-0.17.1/tests/test_stats_graph.py +134 -0
  234. sidegraph-0.17.1/tests/test_stats_health.py +205 -0
  235. sidegraph-0.17.1/tests/test_stats_model.py +1668 -0
  236. sidegraph-0.17.1/tests/test_stats_render.py +1402 -0
  237. sidegraph-0.17.1/tests/test_stats_snapshot.py +162 -0
  238. sidegraph-0.17.1/tests/test_store.py +96 -0
  239. sidegraph-0.17.1/tests/test_store_agent_state.py +282 -0
  240. sidegraph-0.17.1/tests/test_store_bad_file.py +569 -0
  241. sidegraph-0.17.1/tests/test_store_canonical_stat.py +296 -0
  242. sidegraph-0.17.1/tests/test_store_compact.py +1298 -0
  243. sidegraph-0.17.1/tests/test_store_coverage_telemetry.py +67 -0
  244. sidegraph-0.17.1/tests/test_store_cross_process_mutations.py +281 -0
  245. sidegraph-0.17.1/tests/test_store_derived_community.py +129 -0
  246. sidegraph-0.17.1/tests/test_store_domains.py +657 -0
  247. sidegraph-0.17.1/tests/test_store_format.py +257 -0
  248. sidegraph-0.17.1/tests/test_store_format2_load.py +548 -0
  249. sidegraph-0.17.1/tests/test_store_format2_marker.py +629 -0
  250. sidegraph-0.17.1/tests/test_store_format2_writes.py +303 -0
  251. sidegraph-0.17.1/tests/test_store_git_root_symlink.py +267 -0
  252. sidegraph-0.17.1/tests/test_store_inventory.py +513 -0
  253. sidegraph-0.17.1/tests/test_store_meta.py +140 -0
  254. sidegraph-0.17.1/tests/test_store_mutation_guard.py +675 -0
  255. sidegraph-0.17.1/tests/test_store_non_file_entries.py +394 -0
  256. sidegraph-0.17.1/tests/test_store_persistence.py +502 -0
  257. sidegraph-0.17.1/tests/test_store_record_identity.py +408 -0
  258. sidegraph-0.17.1/tests/test_store_render_events.py +70 -0
  259. sidegraph-0.17.1/tests/test_store_requirement.py +614 -0
  260. sidegraph-0.17.1/tests/test_store_rules.py +146 -0
  261. sidegraph-0.17.1/tests/test_store_stamping_marker.py +334 -0
  262. sidegraph-0.17.1/tests/test_store_symlinks.py +89 -0
  263. sidegraph-0.17.1/tests/test_store_telemetry.py +166 -0
  264. sidegraph-0.17.1/tests/test_store_threading.py +105 -0
  265. sidegraph-0.17.1/tests/test_store_tmp_sweep_age.py +100 -0
  266. sidegraph-0.17.1/tests/test_sync_canonical_writes.py +165 -0
  267. sidegraph-0.17.1/tests/test_sync_domains.py +946 -0
  268. sidegraph-0.17.1/tests/test_sync_membership.py +675 -0
  269. sidegraph-0.17.1/tests/test_sync_moved_adoption.py +580 -0
  270. sidegraph-0.17.1/tests/test_sync_rebind.py +1225 -0
  271. sidegraph-0.17.1/tests/test_sync_repoint.py +361 -0
  272. sidegraph-0.17.1/tests/test_sync_snapshot_membership.py +465 -0
  273. sidegraph-0.17.1/tests/test_sync_volatile_heal.py +292 -0
  274. sidegraph-0.17.1/tests/test_sync_wiring.py +72 -0
  275. sidegraph-0.17.1/tests/test_text_paths.py +401 -0
  276. sidegraph-0.17.1/tests/test_verify_domain_snapshot.py +101 -0
  277. sidegraph-0.17.1/tests/test_verify_format2_against.py +997 -0
  278. sidegraph-0.17.1/tests/test_verify_format2_snapshot.py +701 -0
  279. sidegraph-0.17.1/tests/test_verify_git_framing.py +329 -0
  280. sidegraph-0.17.1/tests/test_verify_git_revisions.py +342 -0
  281. sidegraph-0.17.1/tests/test_verify_snapshot.py +1753 -0
  282. sidegraph-0.17.1/tests/test_verify_transitions.py +1516 -0
  283. sidegraph-0.17.1/tests/test_viz_render_html.py +65 -0
  284. sidegraph-0.17.1/tests/test_worktree_seeds.py +591 -0
  285. sidegraph-0.17.1/uv.lock +1529 -0
  286. sidegraph-0.16.0/.github/workflows/ci.yml +0 -347
  287. sidegraph-0.16.0/AGENTS.md +0 -79
  288. sidegraph-0.16.0/CHANGELOG.md +0 -2376
  289. sidegraph-0.16.0/CLAUDE.md +0 -120
  290. sidegraph-0.16.0/CONTRIBUTING.md +0 -96
  291. sidegraph-0.16.0/PKG-INFO +0 -416
  292. sidegraph-0.16.0/README.md +0 -386
  293. sidegraph-0.16.0/docs/README.md +0 -61
  294. sidegraph-0.16.0/docs/concepts/anchoring.md +0 -203
  295. sidegraph-0.16.0/docs/concepts/data-model.md +0 -326
  296. sidegraph-0.16.0/docs/concepts/mind-model.md +0 -221
  297. sidegraph-0.16.0/docs/concepts/retrieval.md +0 -427
  298. sidegraph-0.16.0/docs/getting-started/bootstrap.md +0 -235
  299. sidegraph-0.16.0/docs/getting-started/claude-code-setup.md +0 -294
  300. sidegraph-0.16.0/docs/getting-started/codex-setup.md +0 -193
  301. sidegraph-0.16.0/docs/getting-started/installation.md +0 -336
  302. sidegraph-0.16.0/docs/getting-started/quickstart.md +0 -135
  303. sidegraph-0.16.0/docs/guides/adr-export.md +0 -134
  304. sidegraph-0.16.0/docs/guides/capturing-decisions.md +0 -436
  305. sidegraph-0.16.0/docs/guides/ci-cd-maintenance.md +0 -410
  306. sidegraph-0.16.0/docs/guides/migrating-to-0.14.md +0 -289
  307. sidegraph-0.16.0/docs/guides/naming-your-domains.md +0 -328
  308. sidegraph-0.16.0/docs/guides/retrieval-in-sessions.md +0 -298
  309. sidegraph-0.16.0/docs/guides/semantic-docs.md +0 -259
  310. sidegraph-0.16.0/docs/guides/surviving-refactors.md +0 -253
  311. sidegraph-0.16.0/docs/guides/team-workflow.md +0 -212
  312. sidegraph-0.16.0/docs/guides/troubleshooting.md +0 -432
  313. sidegraph-0.16.0/docs/guides/using-0.15.md +0 -42
  314. sidegraph-0.16.0/docs/guides/using-0.16.md +0 -45
  315. sidegraph-0.16.0/docs/integrations/claude-code.md +0 -376
  316. sidegraph-0.16.0/docs/integrations/codex.md +0 -303
  317. sidegraph-0.16.0/docs/integrations/graphify.md +0 -334
  318. sidegraph-0.16.0/docs/integrations/muse.md +0 -48
  319. sidegraph-0.16.0/docs/llms.txt +0 -70
  320. sidegraph-0.16.0/docs/pilot-kit/judge-prompt.md +0 -41
  321. sidegraph-0.16.0/docs/reference/cli.md +0 -1881
  322. sidegraph-0.16.0/docs/reference/configuration.md +0 -256
  323. sidegraph-0.16.0/docs/reference/git-bindings.md +0 -164
  324. sidegraph-0.16.0/docs/reference/hooks.md +0 -1172
  325. sidegraph-0.16.0/docs/reference/mcp-tools.md +0 -1828
  326. sidegraph-0.16.0/docs/reference/operations.md +0 -112
  327. sidegraph-0.16.0/docs/reference/releasing.md +0 -191
  328. sidegraph-0.16.0/docs/reference/stability.md +0 -88
  329. sidegraph-0.16.0/docs/reference/store-format.md +0 -916
  330. sidegraph-0.16.0/package.json +0 -6
  331. sidegraph-0.16.0/plugin/sidegraph/.claude-plugin/plugin.json +0 -11
  332. sidegraph-0.16.0/plugin/sidegraph/.codex-plugin/plugin.json +0 -12
  333. sidegraph-0.16.0/plugin/sidegraph/.muse-plugin/plugin.json +0 -81
  334. sidegraph-0.16.0/pyproject.toml +0 -122
  335. sidegraph-0.16.0/src/sidegraph/__init__.py +0 -76
  336. sidegraph-0.16.0/src/sidegraph/adr.py +0 -295
  337. sidegraph-0.16.0/src/sidegraph/bootstrap/apply.py +0 -649
  338. sidegraph-0.16.0/src/sidegraph/bootstrap/catalog.py +0 -144
  339. sidegraph-0.16.0/src/sidegraph/capture.py +0 -2293
  340. sidegraph-0.16.0/src/sidegraph/cli.py +0 -3149
  341. sidegraph-0.16.0/src/sidegraph/doctor.py +0 -2025
  342. sidegraph-0.16.0/src/sidegraph/gitio.py +0 -612
  343. sidegraph-0.16.0/src/sidegraph/host/hooks.py +0 -2383
  344. sidegraph-0.16.0/src/sidegraph/hot_index.py +0 -540
  345. sidegraph-0.16.0/src/sidegraph/integrity.py +0 -1267
  346. sidegraph-0.16.0/src/sidegraph/nearest_anchored.py +0 -394
  347. sidegraph-0.16.0/src/sidegraph/retrieval.py +0 -2148
  348. sidegraph-0.16.0/src/sidegraph/schema.py +0 -482
  349. sidegraph-0.16.0/src/sidegraph/server.py +0 -5748
  350. sidegraph-0.16.0/src/sidegraph/stats/model.py +0 -821
  351. sidegraph-0.16.0/src/sidegraph/store.py +0 -4822
  352. sidegraph-0.16.0/src/sidegraph/store_layout.py +0 -625
  353. sidegraph-0.16.0/src/sidegraph/verify.py +0 -1675
  354. sidegraph-0.16.0/tests/conftest.py +0 -204
  355. sidegraph-0.16.0/tests/githooks_support.py +0 -207
  356. sidegraph-0.16.0/tests/test_adr.py +0 -344
  357. sidegraph-0.16.0/tests/test_anchoring_membership.py +0 -372
  358. sidegraph-0.16.0/tests/test_bash_paths.py +0 -336
  359. sidegraph-0.16.0/tests/test_bootstrap_apply.py +0 -926
  360. sidegraph-0.16.0/tests/test_bootstrap_cli.py +0 -1623
  361. sidegraph-0.16.0/tests/test_bootstrap_planner.py +0 -509
  362. sidegraph-0.16.0/tests/test_bootstrap_scan_regular.py +0 -565
  363. sidegraph-0.16.0/tests/test_bounded_listings.py +0 -1493
  364. sidegraph-0.16.0/tests/test_capture_facts.py +0 -320
  365. sidegraph-0.16.0/tests/test_capture_neighbors.py +0 -171
  366. sidegraph-0.16.0/tests/test_capture_propose.py +0 -972
  367. sidegraph-0.16.0/tests/test_cli_compact.py +0 -299
  368. sidegraph-0.16.0/tests/test_cli_domains.py +0 -581
  369. sidegraph-0.16.0/tests/test_cli_domains_snapshot.py +0 -379
  370. sidegraph-0.16.0/tests/test_cli_graph_paths.py +0 -535
  371. sidegraph-0.16.0/tests/test_cli_import.py +0 -1942
  372. sidegraph-0.16.0/tests/test_cli_init.py +0 -647
  373. sidegraph-0.16.0/tests/test_cli_init_hooks.py +0 -598
  374. sidegraph-0.16.0/tests/test_cli_okf.py +0 -819
  375. sidegraph-0.16.0/tests/test_cli_ratify.py +0 -669
  376. sidegraph-0.16.0/tests/test_cli_ratify_facts.py +0 -120
  377. sidegraph-0.16.0/tests/test_cli_stats.py +0 -699
  378. sidegraph-0.16.0/tests/test_cli_sync.py +0 -562
  379. sidegraph-0.16.0/tests/test_cli_sync_check.py +0 -266
  380. sidegraph-0.16.0/tests/test_cli_unreadable_paths.py +0 -262
  381. sidegraph-0.16.0/tests/test_codex_plugin.py +0 -206
  382. sidegraph-0.16.0/tests/test_community_baseline.py +0 -53
  383. sidegraph-0.16.0/tests/test_config.py +0 -276
  384. sidegraph-0.16.0/tests/test_config_borrowed_graph.py +0 -279
  385. sidegraph-0.16.0/tests/test_corpus_expected_renders.py +0 -48
  386. sidegraph-0.16.0/tests/test_delivery_evidence.py +0 -297
  387. sidegraph-0.16.0/tests/test_digest_integrity.py +0 -657
  388. sidegraph-0.16.0/tests/test_doc_import.py +0 -3013
  389. sidegraph-0.16.0/tests/test_docs_claims.py +0 -1293
  390. sidegraph-0.16.0/tests/test_doctor.py +0 -563
  391. sidegraph-0.16.0/tests/test_doctor_auto_share.py +0 -687
  392. sidegraph-0.16.0/tests/test_doctor_code_drift.py +0 -648
  393. sidegraph-0.16.0/tests/test_doctor_dangling_supports.py +0 -158
  394. sidegraph-0.16.0/tests/test_doctor_graph_stale.py +0 -90
  395. sidegraph-0.16.0/tests/test_doctor_integrity.py +0 -213
  396. sidegraph-0.16.0/tests/test_doctor_scan.py +0 -352
  397. sidegraph-0.16.0/tests/test_doctor_unhashable_payload.py +0 -165
  398. sidegraph-0.16.0/tests/test_domains.py +0 -1666
  399. sidegraph-0.16.0/tests/test_drift_checks.py +0 -701
  400. sidegraph-0.16.0/tests/test_engine_build.py +0 -164
  401. sidegraph-0.16.0/tests/test_entity_get_or_create_race.py +0 -197
  402. sidegraph-0.16.0/tests/test_entry_point_arguments.py +0 -256
  403. sidegraph-0.16.0/tests/test_env_isolation.py +0 -66
  404. sidegraph-0.16.0/tests/test_file_bound_retrieval.py +0 -493
  405. sidegraph-0.16.0/tests/test_flow_profile.py +0 -1018
  406. sidegraph-0.16.0/tests/test_git_bindings_blame.py +0 -272
  407. sidegraph-0.16.0/tests/test_git_bindings_hook.py +0 -575
  408. sidegraph-0.16.0/tests/test_git_bindings_provenance.py +0 -157
  409. sidegraph-0.16.0/tests/test_git_config_isolation.py +0 -51
  410. sidegraph-0.16.0/tests/test_git_output_utf8.py +0 -222
  411. sidegraph-0.16.0/tests/test_githooks.py +0 -1050
  412. sidegraph-0.16.0/tests/test_graph_freshness.py +0 -552
  413. sidegraph-0.16.0/tests/test_health_check_skill.py +0 -1195
  414. sidegraph-0.16.0/tests/test_hook_contention.py +0 -972
  415. sidegraph-0.16.0/tests/test_hook_failure_diagnostics.py +0 -468
  416. sidegraph-0.16.0/tests/test_hook_spawn_guard.py +0 -294
  417. sidegraph-0.16.0/tests/test_host_borrowed_graph.py +0 -289
  418. sidegraph-0.16.0/tests/test_host_integrity.py +0 -1115
  419. sidegraph-0.16.0/tests/test_host_launch.py +0 -331
  420. sidegraph-0.16.0/tests/test_host_pretool_records.py +0 -861
  421. sidegraph-0.16.0/tests/test_host_session_start.py +0 -739
  422. sidegraph-0.16.0/tests/test_host_stop.py +0 -1700
  423. sidegraph-0.16.0/tests/test_host_touch_events.py +0 -292
  424. sidegraph-0.16.0/tests/test_host_wiring_checks.py +0 -953
  425. sidegraph-0.16.0/tests/test_hot_index.py +0 -907
  426. sidegraph-0.16.0/tests/test_hot_index_facts.py +0 -797
  427. sidegraph-0.16.0/tests/test_index_journal_mode.py +0 -268
  428. sidegraph-0.16.0/tests/test_installed_wheel_smoke.py +0 -489
  429. sidegraph-0.16.0/tests/test_integrity.py +0 -782
  430. sidegraph-0.16.0/tests/test_integrity_engine_version.py +0 -180
  431. sidegraph-0.16.0/tests/test_integrity_refresh_hook.py +0 -541
  432. sidegraph-0.16.0/tests/test_integrity_replay.py +0 -114
  433. sidegraph-0.16.0/tests/test_integrity_stranded.py +0 -873
  434. sidegraph-0.16.0/tests/test_member_anchor_wiring.py +0 -320
  435. sidegraph-0.16.0/tests/test_pathless_descriptor_adoption.py +0 -509
  436. sidegraph-0.16.0/tests/test_pilot_kit_corpus_fit.py +0 -174
  437. sidegraph-0.16.0/tests/test_public_hook_launch.py +0 -599
  438. sidegraph-0.16.0/tests/test_ratify_policy.py +0 -5632
  439. sidegraph-0.16.0/tests/test_reader_community_labels.py +0 -174
  440. sidegraph-0.16.0/tests/test_reader_doc_nodes.py +0 -136
  441. sidegraph-0.16.0/tests/test_reader_engine_version.py +0 -160
  442. sidegraph-0.16.0/tests/test_reader_file_labels.py +0 -189
  443. sidegraph-0.16.0/tests/test_reader_label_conventions.py +0 -24
  444. sidegraph-0.16.0/tests/test_reader_member_name_lookup.py +0 -193
  445. sidegraph-0.16.0/tests/test_reader_nodes_in_file.py +0 -52
  446. sidegraph-0.16.0/tests/test_reader_perf.py +0 -223
  447. sidegraph-0.16.0/tests/test_reader_read.py +0 -33
  448. sidegraph-0.16.0/tests/test_reader_resolve.py +0 -134
  449. sidegraph-0.16.0/tests/test_reader_stub_collapse.py +0 -451
  450. sidegraph-0.16.0/tests/test_reader_version.py +0 -74
  451. sidegraph-0.16.0/tests/test_redaction_scan.py +0 -225
  452. sidegraph-0.16.0/tests/test_redaction_tokens.py +0 -223
  453. sidegraph-0.16.0/tests/test_retrieval_budget_counters.py +0 -420
  454. sidegraph-0.16.0/tests/test_retrieval_drilldown.py +0 -683
  455. sidegraph-0.16.0/tests/test_retrieval_facts.py +0 -222
  456. sidegraph-0.16.0/tests/test_retrieval_guessed.py +0 -442
  457. sidegraph-0.16.0/tests/test_retrieval_ids.py +0 -213
  458. sidegraph-0.16.0/tests/test_retrieval_membership_generations.py +0 -81
  459. sidegraph-0.16.0/tests/test_retrieval_rank.py +0 -763
  460. sidegraph-0.16.0/tests/test_retrieval_shown_ids.py +0 -19
  461. sidegraph-0.16.0/tests/test_retrieval_thin_tools.py +0 -175
  462. sidegraph-0.16.0/tests/test_retrieval_toc.py +0 -511
  463. sidegraph-0.16.0/tests/test_retrieval_toptier.py +0 -112
  464. sidegraph-0.16.0/tests/test_sandbox_hygiene.py +0 -328
  465. sidegraph-0.16.0/tests/test_schema_descriptor.py +0 -133
  466. sidegraph-0.16.0/tests/test_secret_scan_gate.py +0 -223
  467. sidegraph-0.16.0/tests/test_security_binary_limits.py +0 -53
  468. sidegraph-0.16.0/tests/test_security_input_limits.py +0 -291
  469. sidegraph-0.16.0/tests/test_security_numeric_enums.py +0 -154
  470. sidegraph-0.16.0/tests/test_security_python_shapes.py +0 -234
  471. sidegraph-0.16.0/tests/test_security_redaction_scaling.py +0 -79
  472. sidegraph-0.16.0/tests/test_security_validation_errors.py +0 -106
  473. sidegraph-0.16.0/tests/test_security_write_boundary.py +0 -291
  474. sidegraph-0.16.0/tests/test_seed_paths_portable.py +0 -163
  475. sidegraph-0.16.0/tests/test_server_add_anchors.py +0 -211
  476. sidegraph-0.16.0/tests/test_server_anchoring.py +0 -278
  477. sidegraph-0.16.0/tests/test_server_annotations.py +0 -87
  478. sidegraph-0.16.0/tests/test_server_argument_names.py +0 -275
  479. sidegraph-0.16.0/tests/test_server_borrowed_graph.py +0 -644
  480. sidegraph-0.16.0/tests/test_server_capture.py +0 -938
  481. sidegraph-0.16.0/tests/test_server_commit_hint.py +0 -215
  482. sidegraph-0.16.0/tests/test_server_coverage_events.py +0 -268
  483. sidegraph-0.16.0/tests/test_server_drilldown.py +0 -99
  484. sidegraph-0.16.0/tests/test_server_facts.py +0 -360
  485. sidegraph-0.16.0/tests/test_server_get_task_context.py +0 -53
  486. sidegraph-0.16.0/tests/test_server_graph_freshness.py +0 -386
  487. sidegraph-0.16.0/tests/test_server_prewrite_anchor_validation.py +0 -214
  488. sidegraph-0.16.0/tests/test_server_render_events.py +0 -357
  489. sidegraph-0.16.0/tests/test_server_thin_tools.py +0 -81
  490. sidegraph-0.16.0/tests/test_server_tolerant_seeds.py +0 -653
  491. sidegraph-0.16.0/tests/test_session_attribution.py +0 -627
  492. sidegraph-0.16.0/tests/test_skill_frontmatter.py +0 -40
  493. sidegraph-0.16.0/tests/test_stats_graph.py +0 -160
  494. sidegraph-0.16.0/tests/test_stats_health.py +0 -205
  495. sidegraph-0.16.0/tests/test_stats_model.py +0 -1725
  496. sidegraph-0.16.0/tests/test_stats_render.py +0 -1400
  497. sidegraph-0.16.0/tests/test_stats_snapshot.py +0 -164
  498. sidegraph-0.16.0/tests/test_store.py +0 -95
  499. sidegraph-0.16.0/tests/test_store_agent_state.py +0 -282
  500. sidegraph-0.16.0/tests/test_store_bad_file.py +0 -590
  501. sidegraph-0.16.0/tests/test_store_canonical_stat.py +0 -295
  502. sidegraph-0.16.0/tests/test_store_compact.py +0 -935
  503. sidegraph-0.16.0/tests/test_store_compact_review.py +0 -437
  504. sidegraph-0.16.0/tests/test_store_concurrent_open.py +0 -99
  505. sidegraph-0.16.0/tests/test_store_coverage_telemetry.py +0 -105
  506. sidegraph-0.16.0/tests/test_store_cross_process_mutations.py +0 -275
  507. sidegraph-0.16.0/tests/test_store_derived_community.py +0 -123
  508. sidegraph-0.16.0/tests/test_store_domains.py +0 -682
  509. sidegraph-0.16.0/tests/test_store_git_root_symlink.py +0 -355
  510. sidegraph-0.16.0/tests/test_store_meta.py +0 -156
  511. sidegraph-0.16.0/tests/test_store_mutation_guard.py +0 -661
  512. sidegraph-0.16.0/tests/test_store_non_file_entries.py +0 -514
  513. sidegraph-0.16.0/tests/test_store_persistence.py +0 -546
  514. sidegraph-0.16.0/tests/test_store_record_identity.py +0 -407
  515. sidegraph-0.16.0/tests/test_store_render_events.py +0 -101
  516. sidegraph-0.16.0/tests/test_store_requirement.py +0 -608
  517. sidegraph-0.16.0/tests/test_store_stamping_marker.py +0 -324
  518. sidegraph-0.16.0/tests/test_store_symlinks.py +0 -85
  519. sidegraph-0.16.0/tests/test_store_telemetry.py +0 -130
  520. sidegraph-0.16.0/tests/test_store_threading.py +0 -95
  521. sidegraph-0.16.0/tests/test_store_tmp_sweep_age.py +0 -90
  522. sidegraph-0.16.0/tests/test_sync_canonical_writes.py +0 -171
  523. sidegraph-0.16.0/tests/test_sync_domains.py +0 -937
  524. sidegraph-0.16.0/tests/test_sync_membership.py +0 -779
  525. sidegraph-0.16.0/tests/test_sync_moved_adoption.py +0 -708
  526. sidegraph-0.16.0/tests/test_sync_rebind.py +0 -1319
  527. sidegraph-0.16.0/tests/test_sync_repoint.py +0 -374
  528. sidegraph-0.16.0/tests/test_sync_snapshot_membership.py +0 -487
  529. sidegraph-0.16.0/tests/test_sync_volatile_heal.py +0 -303
  530. sidegraph-0.16.0/tests/test_sync_wiring.py +0 -76
  531. sidegraph-0.16.0/tests/test_text_paths.py +0 -414
  532. sidegraph-0.16.0/tests/test_verify_domain_snapshot.py +0 -100
  533. sidegraph-0.16.0/tests/test_verify_git_framing.py +0 -349
  534. sidegraph-0.16.0/tests/test_verify_git_revisions.py +0 -327
  535. sidegraph-0.16.0/tests/test_verify_snapshot.py +0 -1751
  536. sidegraph-0.16.0/tests/test_verify_transitions.py +0 -1484
  537. sidegraph-0.16.0/tests/test_viz_render_html.py +0 -61
  538. sidegraph-0.16.0/tests/test_worktree_seeds.py +0 -643
  539. sidegraph-0.16.0/uv.lock +0 -1523
  540. {sidegraph-0.16.0 → sidegraph-0.17.1}/.agents/plugins/marketplace.json +0 -0
  541. {sidegraph-0.16.0 → sidegraph-0.17.1}/.claude-plugin/marketplace.json +0 -0
  542. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/CODEOWNERS +0 -0
  543. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  544. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
  545. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  546. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  547. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/secret_scanning.yml +0 -0
  548. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/workflows/publish.yml +0 -0
  549. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/workflows/scorecard.yml +0 -0
  550. {sidegraph-0.16.0 → sidegraph-0.17.1}/.github/workflows/session-link-gate.yml +0 -0
  551. {sidegraph-0.16.0 → sidegraph-0.17.1}/.gitignore +0 -0
  552. {sidegraph-0.16.0 → sidegraph-0.17.1}/.gitleaks.toml +0 -0
  553. {sidegraph-0.16.0 → sidegraph-0.17.1}/.opencode/INSTALL.md +0 -0
  554. {sidegraph-0.16.0 → sidegraph-0.17.1}/.pre-commit-config.yaml +0 -0
  555. {sidegraph-0.16.0 → sidegraph-0.17.1}/.python-version +0 -0
  556. {sidegraph-0.16.0 → sidegraph-0.17.1}/CODE_OF_CONDUCT.md +0 -0
  557. {sidegraph-0.16.0 → sidegraph-0.17.1}/LICENSE +0 -0
  558. {sidegraph-0.16.0 → sidegraph-0.17.1}/SECURITY.md +0 -0
  559. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/concepts/decision-memory.md +0 -0
  560. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/guides/health-check.md +0 -0
  561. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/guides/verifying-your-setup.md +0 -0
  562. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/integrations/opencode.md +0 -0
  563. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/pilot-kit/README.md +0 -0
  564. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/pilot-kit/corpus_fit.py +0 -0
  565. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/pilot-kit/questions-prompt.md +0 -0
  566. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/pilot-kit/rubric-template.md +0 -0
  567. {sidegraph-0.16.0 → sidegraph-0.17.1}/docs/whitepaper/index.md +0 -0
  568. {sidegraph-0.16.0 → sidegraph-0.17.1}/index.js +0 -0
  569. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/.mcp.json +0 -0
  570. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/codex/hooks.json +0 -0
  571. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/codex/mcp.json +0 -0
  572. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/hooks/hooks.json +0 -0
  573. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/check-plan/SKILL.md +0 -0
  574. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/check-plan/agents/openai.yaml +0 -0
  575. {sidegraph-0.16.0/plugin/sidegraph/skills/health-check → sidegraph-0.17.1/plugin/sidegraph/skills/compact}/agents/openai.yaml +0 -0
  576. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/explain-why/SKILL.md +0 -0
  577. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/explain-why/agents/openai.yaml +0 -0
  578. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/heal-anchors/SKILL.md +0 -0
  579. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/heal-anchors/agents/openai.yaml +0 -0
  580. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/health-check/SKILL.md +0 -0
  581. {sidegraph-0.16.0/plugin/sidegraph/skills/import-adrs → sidegraph-0.17.1/plugin/sidegraph/skills/health-check}/agents/openai.yaml +0 -0
  582. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/health-check/scripts/collect.py +0 -0
  583. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/import-adrs/SKILL.md +0 -0
  584. {sidegraph-0.16.0/plugin/sidegraph/skills/manage-domains → sidegraph-0.17.1/plugin/sidegraph/skills/import-adrs}/agents/openai.yaml +0 -0
  585. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/manage-domains/SKILL.md +0 -0
  586. {sidegraph-0.16.0/plugin/sidegraph/skills/name-domains → sidegraph-0.17.1/plugin/sidegraph/skills/manage-domains}/agents/openai.yaml +0 -0
  587. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/name-domains/SKILL.md +0 -0
  588. {sidegraph-0.16.0/plugin/sidegraph/skills/setup → sidegraph-0.17.1/plugin/sidegraph/skills/name-domains}/agents/openai.yaml +0 -0
  589. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/ratify-decisions/SKILL.md +0 -0
  590. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/ratify-decisions/agents/openai.yaml +0 -0
  591. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/record-decision/SKILL.md +0 -0
  592. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/record-decision/agents/openai.yaml +0 -0
  593. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/record-fact/SKILL.md +0 -0
  594. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/record-fact/agents/openai.yaml +0 -0
  595. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/setup/SKILL.md +0 -0
  596. {sidegraph-0.16.0/plugin/sidegraph/skills/stats → sidegraph-0.17.1/plugin/sidegraph/skills/setup}/agents/openai.yaml +0 -0
  597. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/stats/SKILL.md +0 -0
  598. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/triage-drift/SKILL.md +0 -0
  599. {sidegraph-0.16.0 → sidegraph-0.17.1}/plugin/sidegraph/skills/triage-drift/agents/openai.yaml +0 -0
  600. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/adr_cli.py +0 -0
  601. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/adr_files.py +0 -0
  602. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/adr_identity.py +0 -0
  603. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/anchoring.py +0 -0
  604. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bash_paths.py +0 -0
  605. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/__init__.py +0 -0
  606. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/cli.py +0 -0
  607. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/integrations.py +0 -0
  608. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/model.py +0 -0
  609. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/planner.py +0 -0
  610. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/proof.py +0 -0
  611. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/review.py +0 -0
  612. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/bootstrap/scan.py +0 -0
  613. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/config.py +0 -0
  614. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/delivery.py +0 -0
  615. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/doc_import.py +0 -0
  616. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/domain_snapshot.py +0 -0
  617. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/domains.py +0 -0
  618. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/drift_checks.py +0 -0
  619. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/engine/__init__.py +0 -0
  620. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/engine/rationale.py +0 -0
  621. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/engine/reader.py +0 -0
  622. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/freshness.py +0 -0
  623. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/gitenv.py +0 -0
  624. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/githooks.py +0 -0
  625. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/host/__init__.py +0 -0
  626. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/host/claude_settings.py +0 -0
  627. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/host/diagnostics.py +0 -0
  628. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/host/launch.py +0 -0
  629. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/host/mcp_entry.py +0 -0
  630. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/host/session_identity.py +0 -0
  631. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/host/subagent.py +0 -0
  632. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/importer.py +0 -0
  633. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/input_limits.py +0 -0
  634. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/okf.py +0 -0
  635. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/profiles.py +0 -0
  636. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/redaction_scan.py +0 -0
  637. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/redaction_tokens.py +0 -0
  638. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/seed_ladder.py +0 -0
  639. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/stats/__init__.py +0 -0
  640. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/stats/render.py +0 -0
  641. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/sync.py +0 -0
  642. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/text_paths.py +0 -0
  643. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/tool_rate_limit.py +0 -0
  644. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/validation_errors.py +0 -0
  645. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/viz/__init__.py +0 -0
  646. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/viz/assets/vis-network.min.js +0 -0
  647. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/viz/model.py +0 -0
  648. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/viz/render.py +0 -0
  649. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/viz/template.html +0 -0
  650. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/worktree_seeds.py +0 -0
  651. {sidegraph-0.16.0 → sidegraph-0.17.1}/src/sidegraph/write_boundary.py +0 -0
  652. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/__init__.py +0 -0
  653. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/auto_policy/parity_goldens.json +0 -0
  654. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bitfinex_slice.json +0 -0
  655. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/flows/bmad/_bmad-output/planning-artifacts/architecture/cache/ARCHITECTURE-SPINE.md +0 -0
  656. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/flows/generic-adr/docs/adr/001-retry.md +0 -0
  657. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/flows/genkovich-sdd/docs/features/cache/adr/001.md +0 -0
  658. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/flows/spec-kit/specs/cache/plan.md +0 -0
  659. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/flows/superpowers/docs/superpowers/specs/2026-07-01-cache-design.md +0 -0
  660. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/graph.json +0 -0
  661. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/hosts/claude/.claude/settings.json +0 -0
  662. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/hosts/claude/.mcp.json +0 -0
  663. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/hosts/codex/.codex/config.toml +0 -0
  664. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/hosts/codex/.codex/hooks/hooks.json +0 -0
  665. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/bootstrap/scan/docs/adr/001-safe.md +0 -0
  666. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/corpus/PUBLIC_CORPORA.txt +0 -0
  667. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/corpus/openspec/_provenance.json +0 -0
  668. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/corpus/openspec/graph.json +0 -0
  669. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/corpus/self-corpus/_provenance.json +0 -0
  670. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/corpus/self-corpus/expected/retrieval-engine-reader.md +0 -0
  671. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/corpus/self-corpus/graph.json +0 -0
  672. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/adr/0001-use-sessions.md +0 -0
  673. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/bmad/ARCHITECTURE-SPINE.md +0 -0
  674. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/architecture/architecture-payments-2026-07-30/.memlog.md +0 -0
  675. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/architecture/architecture-payments-2026-07-30/ARCHITECTURE-SPINE.md +0 -0
  676. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/prds/prd-payments-2026-07-30/prd.md +0 -0
  677. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/genkovich/0001-queue-backpressure.md +0 -0
  678. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/genkovich/sad.md +0 -0
  679. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/genkovich/tree/docs/features/payments/adr/0001-queue-backpressure.md +0 -0
  680. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/genkovich/tree/docs/features/payments/sad.md +0 -0
  681. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/genkovich/tree/docs/features/payments/spec.md +0 -0
  682. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/design-empty.md +0 -0
  683. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/design-h3-split.md +0 -0
  684. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/design-with-summary.md +0 -0
  685. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/design.md +0 -0
  686. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/proposal-alternatives.md +0 -0
  687. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/proposal.md +0 -0
  688. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/design.md +0 -0
  689. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/proposal.md +0 -0
  690. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/specs/cap/spec.md +0 -0
  691. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/tasks.md +0 -0
  692. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/changes/archive/2026-01-01-add-thing/design.md +0 -0
  693. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/changes/archive/2026-01-01-add-thing/proposal.md +0 -0
  694. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/config.yaml +0 -0
  695. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/openspec/tree/openspec/specs/cap/spec.md +0 -0
  696. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/spec-kit/plan.md +0 -0
  697. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/spec-kit/tree/specs/003-payment-retries/plan.md +0 -0
  698. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/spec-kit/tree/specs/003-payment-retries/spec.md +0 -0
  699. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/superpowers/2026-07-01-example-design.md +0 -0
  700. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/flows/superpowers/2026-07-01-thin-design.md +0 -0
  701. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/member_names_python_graph.json +0 -0
  702. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/member_names_swift_graph.json +0 -0
  703. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/fixtures/mini_graph.json +0 -0
  704. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/graph_fixtures.py +0 -0
  705. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/opencode_plugin_runner.mjs +0 -0
  706. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/snapshot_support.py +0 -0
  707. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_adr_files.py +0 -0
  708. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_adr_identity.py +0 -0
  709. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_agent_brief_manifests.py +0 -0
  710. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_anchor_descriptor.py +0 -0
  711. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_anchor_paths.py +0 -0
  712. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_anchoring.py +0 -0
  713. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_anchoring_mapping_refresh.py +0 -0
  714. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_batch_panel_fixes.py +0 -0
  715. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_catalog.py +0 -0
  716. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_descriptor_cleanup.py +0 -0
  717. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_integrations.py +0 -0
  718. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_model.py +0 -0
  719. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_proof.py +0 -0
  720. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_review.py +0 -0
  721. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_scan.py +0 -0
  722. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_bootstrap_unanchored.py +0 -0
  723. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_capture_auto_accept.py +0 -0
  724. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_capture_initiative.py +0 -0
  725. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_capture_integration.py +0 -0
  726. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_capture_redact.py +0 -0
  727. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_cli_adr.py +0 -0
  728. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_cli_doctor.py +0 -0
  729. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_cli_viz.py +0 -0
  730. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_command_windows.py +0 -0
  731. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_config_ancestor_lookup.py +0 -0
  732. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_corpus_self_corpus.py +0 -0
  733. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_coverage_telemetry_e2e.py +0 -0
  734. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_delivery_stats.py +0 -0
  735. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_delivery_surfaces.py +0 -0
  736. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_doc_corpus_integration.py +0 -0
  737. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_doctor_duplicate_entity.py +0 -0
  738. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_doctor_graph_root_mismatch.py +0 -0
  739. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_doctor_never_surfaced.py +0 -0
  740. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_doctor_stale_instructions.py +0 -0
  741. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_doctor_unratified_accept.py +0 -0
  742. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_domain_seed_names.py +0 -0
  743. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_domain_snapshot_format.py +0 -0
  744. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_domain_snapshot_notices.py +0 -0
  745. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_entity_duplicate_resolution.py +0 -0
  746. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_fact_reachability_gate.py +0 -0
  747. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_git_env.py +0 -0
  748. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_graphify_pin.py +0 -0
  749. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_hook_body_compaction.py +0 -0
  750. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_hook_payload_encoding.py +0 -0
  751. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_hook_showings.py +0 -0
  752. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_agent_brief.py +0 -0
  753. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_agent_state.py +0 -0
  754. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_claude_settings.py +0 -0
  755. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_drift_nudge.py +0 -0
  756. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_pretool.py +0 -0
  757. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_session_key.py +0 -0
  758. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_session_start_concurrent.py +0 -0
  759. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_subagent_start.py +0 -0
  760. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_host_subdirectory_launch.py +0 -0
  761. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_hot_index_hook.py +0 -0
  762. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_hot_path_imports.py +0 -0
  763. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_import_dry_run_preview.py +0 -0
  764. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_importer.py +0 -0
  765. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_lazy_root.py +0 -0
  766. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_mcp_entry_ratify_policy.py +0 -0
  767. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_mcp_entry_repo_root.py +0 -0
  768. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_mind_model_additive_fields.py +0 -0
  769. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_muse_plugin.py +0 -0
  770. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_nearest_anchored.py +0 -0
  771. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_okf.py +0 -0
  772. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_opencode_plugin.py +0 -0
  773. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_openspec_profile.py +0 -0
  774. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_portable_json.py +0 -0
  775. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_proposal_lifecycle.py +0 -0
  776. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_ratify_listing_gone_dark.py +0 -0
  777. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_rationale_compatibility.py +0 -0
  778. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_reader_graph.py +0 -0
  779. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_reader_integration.py +0 -0
  780. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_reader_member_names.py +0 -0
  781. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_reader_rationale.py +0 -0
  782. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_reader_subdir_mismatch.py +0 -0
  783. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_reader_type_split.py +0 -0
  784. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_rebuild_instruction.py +0 -0
  785. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_redaction_seeded.py +0 -0
  786. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_repo_relative_paths_portable.py +0 -0
  787. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_repoint_integration.py +0 -0
  788. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_retrieval_context.py +0 -0
  789. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_retrieval_drift_marker.py +0 -0
  790. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_retrieval_integration.py +0 -0
  791. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_retrieval_membership_index.py +0 -0
  792. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_retrieval_seeds.py +0 -0
  793. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_retrieval_terminal_evidence.py +0 -0
  794. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_retrieval_unratified.py +0 -0
  795. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_schema_domain.py +0 -0
  796. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_schema_fact.py +0 -0
  797. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_security_capture_diagnostics.py +0 -0
  798. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_security_capture_limits.py +0 -0
  799. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_security_cli_diagnostics.py +0 -0
  800. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_security_doc_limits.py +0 -0
  801. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_security_mcp_write_diagnostics.py +0 -0
  802. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_security_redaction_cursor.py +0 -0
  803. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_seed_ladder.py +0 -0
  804. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_decision_listing.py +0 -0
  805. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_domains.py +0 -0
  806. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_find_entity.py +0 -0
  807. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_get_store.py +0 -0
  808. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_graph_path.py +0 -0
  809. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_import.py +0 -0
  810. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_invocation_policy.py +0 -0
  811. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_mcp_smoke.py +0 -0
  812. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_nearest_anchored.py +0 -0
  813. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_ratify_facts.py +0 -0
  814. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_record_types.py +0 -0
  815. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_redaction.py +0 -0
  816. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_refresh.py +0 -0
  817. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_result_contract.py +0 -0
  818. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_supersede.py +0 -0
  819. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_sync_anchors.py +0 -0
  820. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_telemetry.py +0 -0
  821. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_server_verify.py +0 -0
  822. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_stats_skill.py +0 -0
  823. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_stop_hot_path.py +0 -0
  824. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_stop_rearm.py +0 -0
  825. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_atomic_write_tmp_names.py +0 -0
  826. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_binding_index.py +0 -0
  827. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_domain_members.py +0 -0
  828. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_entities.py +0 -0
  829. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_fact_cascade.py +0 -0
  830. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_facts.py +0 -0
  831. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_file_anchor_names.py +0 -0
  832. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_migration.py +0 -0
  833. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_mutation_immediate.py +0 -0
  834. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_opens_with_merged_duplicate.py +0 -0
  835. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_ratification.py +0 -0
  836. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_rebuild_atomicity.py +0 -0
  837. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_record_types.py +0 -0
  838. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_retrieval.py +0 -0
  839. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_slug_conflicts.py +0 -0
  840. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_snapshot_wiring.py +0 -0
  841. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_store_update_meta_if.py +0 -0
  842. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_subagent_start_manifests.py +0 -0
  843. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_subprocess_text_encoding.py +0 -0
  844. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_sync_clean.py +0 -0
  845. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_sync_drift_cache.py +0 -0
  846. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_sync_fresh_clone.py +0 -0
  847. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_sync_integration.py +0 -0
  848. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_sync_report_has_findings.py +0 -0
  849. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_sync_run.py +0 -0
  850. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_sync_toc_cache.py +0 -0
  851. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_telemetry_retention.py +0 -0
  852. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_verify_git_stdin.py +0 -0
  853. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_viz_asset_packaged.py +0 -0
  854. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_viz_model.py +0 -0
  855. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/test_viz_render_json.py +0 -0
  856. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/wheel_server_trace.py +0 -0
  857. {sidegraph-0.16.0 → sidegraph-0.17.1}/tests/wheel_smoke.py +0 -0
  858. {sidegraph-0.16.0 → sidegraph-0.17.1}/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.10 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).