sidegraph 0.21.0__tar.gz → 0.22.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.
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/workflows/ci.yml +9 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/CHANGELOG.md +63 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/CLAUDE.md +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/PKG-INFO +31 -27
- {sidegraph-0.21.0 → sidegraph-0.22.0}/README.md +30 -26
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/README.md +5 -5
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/concepts/data-model.md +5 -3
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/getting-started/installation.md +11 -7
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/getting-started/quickstart.md +8 -5
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/ci-cd-maintenance.md +7 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/migrating-to-0.17.md +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/team-workflow.md +3 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/troubleshooting.md +2 -2
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/verifying-your-setup.md +7 -3
- sidegraph-0.22.0/docs/integrations/grok.md +131 -0
- sidegraph-0.22.0/docs/integrations/muse.md +62 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/llms.txt +2 -2
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/cli.md +40 -7
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/configuration.md +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/hooks.md +45 -15
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/mcp-tools.md +2 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/releasing.md +1 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/stability.md +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/store-format.md +38 -8
- {sidegraph-0.21.0 → sidegraph-0.22.0}/package.json +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/.claude-plugin/plugin.json +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/.codex-plugin/plugin.json +1 -1
- sidegraph-0.22.0/plugin/sidegraph/.grok-plugin/plugin.json +21 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/.muse-plugin/plugin.json +21 -1
- sidegraph-0.22.0/plugin/sidegraph/grok/hooks.json +68 -0
- sidegraph-0.22.0/plugin/sidegraph/muse/hook.py +165 -0
- sidegraph-0.22.0/plugin/sidegraph/muse/session_start.py +3 -0
- sidegraph-0.22.0/plugin/sidegraph/muse/subagent_start.py +3 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/compact/SKILL.md +4 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/setup/SKILL.md +10 -6
- {sidegraph-0.21.0 → sidegraph-0.22.0}/pyproject.toml +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/__init__.py +1 -1
- sidegraph-0.22.0/src/sidegraph/check_fold.py +200 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/cli.py +8 -3
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/config.py +4 -4
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/doctor.py +1 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/drift_checks.py +217 -22
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/host/hooks.py +245 -22
- sidegraph-0.22.0/src/sidegraph/host/mcp_entry.py +289 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/host/session_identity.py +13 -2
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/integrity.py +43 -8
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/maintenance.py +299 -13
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/maintenance_clock.py +35 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/store.py +64 -1
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/store_layout.py +10 -2
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/verify.py +240 -15
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/store_format2_support.py +64 -6
- sidegraph-0.22.0/tests/test_check_fold_plan.py +291 -0
- sidegraph-0.22.0/tests/test_check_fold_publish.py +474 -0
- sidegraph-0.22.0/tests/test_check_fold_wiring.py +188 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_compact_format2.py +181 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_docs_claims.py +22 -4
- sidegraph-0.22.0/tests/test_drift_checks_packed.py +335 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_format2_notices.py +25 -0
- sidegraph-0.22.0/tests/test_grok_hooks_manifest.py +258 -0
- sidegraph-0.22.0/tests/test_grok_session_map.py +330 -0
- sidegraph-0.22.0/tests/test_grok_stop.py +278 -0
- sidegraph-0.22.0/tests/test_host_grok_tools.py +306 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_wiring_checks.py +71 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_integrity_stranded.py +66 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_maintenance_clock.py +39 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_maintenance_dry_run_parity.py +62 -0
- sidegraph-0.22.0/tests/test_muse_hook_adapter.py +746 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_muse_plugin.py +17 -3
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_readers_format2.py +3 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_session_attribution.py +32 -1
- sidegraph-0.22.0/tests/test_verify_packed_checks.py +230 -0
- sidegraph-0.22.0/tests/test_verify_packed_checks_against.py +368 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/uv.lock +1 -1
- sidegraph-0.21.0/docs/integrations/grok.md +0 -36
- sidegraph-0.21.0/docs/integrations/muse.md +0 -52
- sidegraph-0.21.0/src/sidegraph/host/mcp_entry.py +0 -140
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.agents/plugins/marketplace.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.claude-plugin/marketplace.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/CODEOWNERS +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/secret_scanning.yml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/workflows/publish.yml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/workflows/scorecard.yml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.github/workflows/session-link-gate.yml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.gitignore +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.gitleaks.toml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.opencode/INSTALL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.pre-commit-config.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/.python-version +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/AGENTS.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/CODE_OF_CONDUCT.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/CONTRIBUTING.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/LICENSE +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/SECURITY.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/concepts/anchoring.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/concepts/decision-memory.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/concepts/mind-model.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/concepts/retrieval.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/getting-started/bootstrap.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/getting-started/claude-code-setup.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/getting-started/codex-setup.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/adr-export.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/capturing-decisions.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/health-check.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/migrating-to-0.14.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/naming-your-domains.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/retrieval-in-sessions.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/semantic-docs.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/surviving-refactors.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/using-0.15.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/guides/using-0.16.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/integrations/claude-code.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/integrations/codex.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/integrations/graphify.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/integrations/opencode.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/pilot-kit/README.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/pilot-kit/corpus_fit.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/pilot-kit/judge-prompt.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/pilot-kit/questions-prompt.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/pilot-kit/rubric-template.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/git-bindings.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/reference/operations.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/docs/whitepaper/index.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/index.js +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/.mcp.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/codex/hooks.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/codex/mcp.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/hooks/hooks.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/check-plan/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/check-plan/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/compact/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/explain-why/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/explain-why/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/heal-anchors/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/heal-anchors/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/health-check/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/health-check/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/health-check/scripts/collect.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/import-adrs/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/import-adrs/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/manage-domains/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/manage-domains/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/name-domains/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/name-domains/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/ratify-decisions/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/ratify-decisions/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/record-decision/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/record-decision/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/record-fact/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/record-fact/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/setup/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/stats/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/stats/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/triage-drift/SKILL.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/plugin/sidegraph/skills/triage-drift/agents/openai.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/adr.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/adr_cli.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/adr_files.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/adr_identity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/anchoring.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bash_paths.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/__init__.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/apply.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/catalog.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/cli.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/integrations.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/model.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/planner.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/proof.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/review.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/bootstrap/scan.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/capture.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/checkout_window.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/delivery.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/doc_import.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/domain_snapshot.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/domains.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/drift_groups.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/engine/__init__.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/engine/rationale.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/engine/reader.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/freshness.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/gitenv.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/githooks.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/gitio.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/host/__init__.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/host/claude_settings.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/host/diagnostics.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/host/launch.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/host/subagent.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/hot_index.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/importer.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/input_limits.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/md_sections.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/migrate.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/nearest_anchored.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/okf.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/profiles.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/redaction_scan.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/redaction_tokens.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/retrieval.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/schema.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/seed_ladder.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/server.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/stats/__init__.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/stats/model.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/stats/render.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/store_format.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/store_rules.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/store_view.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/sync.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/text_paths.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/tool_rate_limit.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/validation_errors.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/viz/__init__.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/viz/assets/vis-network.min.js +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/viz/model.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/viz/render.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/viz/template.html +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/worktree_seeds.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/src/sidegraph/write_boundary.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/__init__.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/bounded_listings_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/conftest.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/drift_checks_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/drift_groups_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/auto_policy/parity_goldens.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bitfinex_slice.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/flows/bmad/_bmad-output/planning-artifacts/architecture/cache/ARCHITECTURE-SPINE.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/flows/generic-adr/docs/adr/001-retry.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/flows/genkovich-sdd/docs/features/cache/adr/001.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/flows/spec-kit/specs/cache/plan.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/flows/superpowers/docs/superpowers/specs/2026-07-01-cache-design.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/graph.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/hosts/claude/.claude/settings.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/hosts/claude/.mcp.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/hosts/codex/.codex/config.toml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/hosts/codex/.codex/hooks/hooks.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/bootstrap/scan/docs/adr/001-safe.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/corpus/PUBLIC_CORPORA.txt +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/corpus/openspec/_provenance.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/corpus/openspec/graph.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/corpus/self-corpus/_provenance.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/corpus/self-corpus/expected/retrieval-engine-reader.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/corpus/self-corpus/graph.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/adr/0001-use-sessions.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/bmad/ARCHITECTURE-SPINE.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/architecture/architecture-payments-2026-07-30/.memlog.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/architecture/architecture-payments-2026-07-30/ARCHITECTURE-SPINE.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/bmad/tree/_bmad-output/planning-artifacts/prds/prd-payments-2026-07-30/prd.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/genkovich/0001-queue-backpressure.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/genkovich/sad.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/genkovich/tree/docs/features/payments/adr/0001-queue-backpressure.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/genkovich/tree/docs/features/payments/sad.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/genkovich/tree/docs/features/payments/spec.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/design-empty.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/design-h3-split.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/design-with-summary.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/design.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/proposal-alternatives.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/proposal.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/design.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/proposal.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/specs/cap/spec.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/changes/add-thing/tasks.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/changes/archive/2026-01-01-add-thing/design.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/changes/archive/2026-01-01-add-thing/proposal.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/config.yaml +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/openspec/tree/openspec/specs/cap/spec.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/spec-kit/plan.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/spec-kit/tree/specs/003-payment-retries/plan.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/spec-kit/tree/specs/003-payment-retries/spec.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/superpowers/2026-07-01-example-design.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/flows/superpowers/2026-07-01-thin-design.md +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/member_names_python_graph.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/member_names_swift_graph.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/fixtures/mini_graph.json +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/githooks_legacy_helper.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/githooks_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/graph_fixtures.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/graph_repo_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/membership_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/moved_adoption_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/opencode_plugin_runner.mjs +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/snapshot_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/store_non_file_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/store_record_support.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_adr.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_adr_files.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_adr_identity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_agent_brief_manifests.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_anchor_descriptor.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_anchor_paths.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_anchoring.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_anchoring_mapping_refresh.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_anchoring_membership.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bash_paths.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_batch_panel_fixes.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_apply.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_catalog.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_cli.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_descriptor_cleanup.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_integrations.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_model.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_planner.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_proof.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_review.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_scan.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_scan_regular.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bootstrap_unanchored.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_bounded_listings.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_capture_auto_accept.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_capture_facts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_capture_initiative.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_capture_integration.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_capture_neighbors.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_capture_propose.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_capture_redact.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_checkout_window.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_ci_workflow.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_claude_plugin_enabled.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_adr.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_compact.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_doctor.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_domains.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_domains_snapshot.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_graph_paths.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_import.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_init.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_init_hooks.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_okf.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_ratify.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_ratify_facts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_stats.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_store_open_errors.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_store_precedence.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_sync.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_sync_check.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_unreadable_paths.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_cli_viz.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_codex_plugin.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_command_windows.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_community_baseline.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_compact_skill.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_config.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_config_ancestor_lookup.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_config_borrowed_graph.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_corpus_expected_renders.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_corpus_self_corpus.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_coverage_telemetry_e2e.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_declared_sections_docs.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_declared_sections_schema.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_delivery_evidence.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_delivery_stats.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_delivery_surfaces.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_digest_integrity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doc_corpus_integration.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doc_import.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_auto_share.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_code_drift.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_dangling_supports.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_declared_sections.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_duplicate_entity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_graph_root_mismatch.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_graph_stale.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_grouped_drift.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_integrity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_never_surfaced.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_record_identity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_scan.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_stale_instructions.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_unhashable_payload.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_doctor_unratified_accept.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_domain_seed_names.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_domain_snapshot_format.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_domain_snapshot_notices.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_domains.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_drift_checks.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_drift_checks_blobs.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_drift_groups.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_drift_recency.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_drift_stamp_cache.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_engine_build.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_entity_duplicate_resolution.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_entity_get_or_create_race.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_entity_twins.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_entry_point_arguments.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_env_isolation.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_fact_reachability_gate.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_file_bound_retrieval.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_flow_profile.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_format2_windows.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_git_bindings_blame.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_git_bindings_hook.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_git_bindings_provenance.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_git_env.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_git_output_utf8.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_githooks.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_githooks_atomic_lock.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_graph_freshness.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_graphify_pin.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_health_check_skill.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hook_body_compaction.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hook_contention.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hook_failure_diagnostics.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hook_payload_encoding.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hook_showings.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hook_spawn_guard.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_agent_brief.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_agent_state.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_borrowed_graph.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_claude_settings.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_drift_nudge.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_integrity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_launch.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_pretool.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_pretool_records.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_session_key.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_session_start.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_session_start_concurrent.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_stop.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_subagent_start.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_subdirectory_launch.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_host_touch_events.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hot_index.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hot_index_facts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hot_index_hook.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_hot_path_imports.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_import_dry_run_preview.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_importer.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_index_journal_mode.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_integrity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_integrity_engine_version.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_integrity_refresh_hook.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_integrity_replay.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_lazy_root.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_maintenance_plan.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_maintenance_publish.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_markdown_it_dependency.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_mcp_entry_ratify_policy.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_mcp_entry_repo_root.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_md_sections.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_member_anchor_wiring.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_merge_matrix_format2.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_migrate.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_mind_model_additive_fields.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_nearest_anchored.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_okf.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_opencode_plugin.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_openspec_profile.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_pathless_descriptor_adoption.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_pilot_kit_corpus_fit.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_portable_json.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_private_tests_isolation.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_proposal_lifecycle.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_public_hook_launch.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_ratify_listing_gone_dark.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_ratify_policy.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_rationale_compatibility.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_community_labels.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_doc_nodes.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_engine_version.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_file_labels.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_graph.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_integration.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_label_conventions.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_member_name_lookup.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_member_names.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_nodes_in_file.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_perf.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_rationale.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_read.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_resolve.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_stub_collapse.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_subdir_mismatch.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_type_split.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_reader_version.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_rebuild_instruction.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_record_drift_check_sections.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_record_drift_check_sections_input.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_redaction_scan.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_redaction_seeded.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_redaction_tokens.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_repo_relative_paths_portable.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_repoint_integration.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_budget_counters.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_context.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_drift_marker.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_drilldown.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_facts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_guessed.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_ids.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_integration.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_membership_generations.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_membership_index.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_rank.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_related_cap.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_seeds.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_shown_ids.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_terminal_evidence.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_thin_tools.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_toc.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_toptier.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_retrieval_unratified.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_schema_descriptor.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_schema_domain.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_schema_fact.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_capture_diagnostics.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_capture_limits.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_cli_diagnostics.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_doc_limits.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_input_limits.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_mcp_write_diagnostics.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_numeric_enums.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_python_shapes.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_redaction_cursor.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_validation_errors.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_security_write_boundary.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_seed_ladder.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_seed_paths_portable.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_add_anchors.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_anchoring.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_annotations.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_argument_names.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_borrowed_graph.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_capture.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_commit_hint.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_coverage_events.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_decision_listing.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_domains.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_drilldown.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_facts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_find_entity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_get_store.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_get_task_context.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_graph_freshness.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_graph_path.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_import.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_invocation_policy.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_mcp_smoke.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_nearest_anchored.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_prewrite_anchor_validation.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_ratify_facts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_record_types.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_redaction.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_refresh.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_render_events.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_result_contract.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_supersede.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_sync_anchors.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_telemetry.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_thin_tools.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_tolerant_seeds.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_server_verify.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_skill_frontmatter.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stats_graph.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stats_health.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stats_model.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stats_render.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stats_skill.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stats_snapshot.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stop_hot_path.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_stop_rearm.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_agent_state.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_atomic_write_tmp_names.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_bad_file.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_binding_index.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_canonical_stat.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_compact.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_coverage_telemetry.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_cross_process_mutations.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_derived_community.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_domain_members.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_domains.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_entities.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_fact_cascade.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_facts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_file_anchor_names.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_format.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_format2_load.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_format2_marker.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_format2_writes.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_git_root_symlink.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_inventory.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_junctions.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_marker_checkout.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_marker_checkout_race.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_meta.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_migration.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_mutation_guard.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_mutation_immediate.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_non_file_entries.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_opens_with_merged_duplicate.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_persistence.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_ratification.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_rebuild_atomicity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_record_identity.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_record_types.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_render_events.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_requirement.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_retrieval.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_rules.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_rules_legacy_defaults.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_slug_conflicts.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_snapshot_wiring.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_stamping_marker.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_symlinks.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_telemetry.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_threading.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_tmp_sweep_age.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_store_update_meta_if.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_subagent_start_manifests.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_subprocess_text_encoding.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_canonical_writes.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_clean.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_domains.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_drift_cache.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_drift_stamps.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_fresh_clone.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_integration.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_membership.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_moved_adoption.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_rebind.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_repoint.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_report_has_findings.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_run.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_snapshot_membership.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_toc_cache.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_volatile_heal.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_sync_wiring.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_telemetry_retention.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_text_paths.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_domain_snapshot.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_format2_against.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_format2_snapshot.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_git_framing.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_git_revisions.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_git_stdin.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_snapshot.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_verify_transitions.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_viz_asset_packaged.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_viz_model.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_viz_render_html.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_viz_render_json.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/test_worktree_seeds.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/wheel_server_trace.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tests/wheel_smoke.py +0 -0
- {sidegraph-0.21.0 → sidegraph-0.22.0}/tools/check_no_session_links.py +0 -0
|
@@ -113,6 +113,15 @@ jobs:
|
|
|
113
113
|
- name: Install dependencies
|
|
114
114
|
run: uv sync --locked
|
|
115
115
|
|
|
116
|
+
# The Muse hook adapter runs on the stock macOS python3 (3.9); its test needs a 3.9 here.
|
|
117
|
+
- name: Install Python 3.9 for the Muse adapter test
|
|
118
|
+
run: |
|
|
119
|
+
set -euo pipefail
|
|
120
|
+
uv python install 3.9
|
|
121
|
+
py39="$(uv python find --no-project 3.9)"
|
|
122
|
+
"$py39" -c 'import sys; assert sys.version_info[:2] == (3, 9)'
|
|
123
|
+
echo "SIDEGRAPH_TEST_PY39=$py39" >> "$GITHUB_ENV"
|
|
124
|
+
|
|
116
125
|
- name: Run tests
|
|
117
126
|
run: uv run pytest -q --durations=30 --durations-min=1
|
|
118
127
|
|
|
@@ -7,6 +7,69 @@ interfaces, exactly, and what each one promises: [`docs/reference/stability.md`]
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.22.0] — 2026-10-30
|
|
11
|
+
|
|
12
|
+
### Changed (Contract change)
|
|
13
|
+
|
|
14
|
+
- **Packed drift checks (0.22.0).** On a format-2 store, `sidegraph-compact` now folds the
|
|
15
|
+
committed scoped drift-check files (`verifications/<id>.json`) into one file,
|
|
16
|
+
`verifications/packed.shard`, and drops dead checks: a check whose decision has a newer check
|
|
17
|
+
or is superseded, rejected or deprecated. A check file folds once it is tracked and
|
|
18
|
+
unmodified against `HEAD`. The first run that packs or drops a check raises
|
|
19
|
+
`requires-sidegraph` to `0.22.0`: 0.17 to 0.21 then refuse the store, and an older pinned
|
|
20
|
+
`sidegraph-verify` reports `requirement-above-verifier`, so move every teammate and CI pin
|
|
21
|
+
first. The dry run says so. `sidegraph-verify` reports `packed-checks-without-requirement`
|
|
22
|
+
and, with `--against`, `packed-check-without-source`; a deleted check is judged per check
|
|
23
|
+
instead of always illegal. Drift-check files now count toward the `maintenance-due` threshold.
|
|
24
|
+
A format-1 store and `sidegraph-migrate` are unchanged. See
|
|
25
|
+
[Scoped drift checks](docs/reference/store-format.md#scoped-drift-checks).
|
|
26
|
+
|
|
27
|
+
## [0.21.1] — 2026-10-30
|
|
28
|
+
|
|
29
|
+
### Added
|
|
30
|
+
|
|
31
|
+
- Muse sessions get the Sidegraph session map at start and a memory brief for subagents,
|
|
32
|
+
through two plugin hooks that run on the stock macOS `python3`. Approve the hook
|
|
33
|
+
capabilities with `muse plugins approve sidegraph`.
|
|
34
|
+
|
|
35
|
+
### Fixed
|
|
36
|
+
|
|
37
|
+
- On Grok Build, records now reach the agent when it reads, searches, edits or writes a file and when
|
|
38
|
+
it starts a subagent. The hook did not recognise Grok's tool names, and resolved a relative
|
|
39
|
+
path against the repository root instead of the directory the session started in; see
|
|
40
|
+
[`docs/integrations/grok.md`](docs/integrations/grok.md).
|
|
41
|
+
- On Grok Build, the hook now starts for shell reads (`sed`, `grep`, `rg`, `cat`), and the Hooks
|
|
42
|
+
tab no longer shows the four `if` errors. The plugin gives Grok its own hooks file without the
|
|
43
|
+
`if` field Grok skips.
|
|
44
|
+
- On Grok Build, every session shared one session key, because Grok names each transcript
|
|
45
|
+
`updates.jsonl`. A file's records reached the agent once across all Grok sessions, and after
|
|
46
|
+
ten files no Grok session got records at all. Each Grok session is now keyed by its own id.
|
|
47
|
+
- Grok Build sessions are attributed to Grok, not to Claude Code: hooks stamp the `grok` host
|
|
48
|
+
family, and MCP calls from Grok are bound to the same session as its hooks. A Grok session
|
|
49
|
+
no longer gets the notice about Claude Code's settings in subdirectories.
|
|
50
|
+
- Grok Build sessions now see the project's session map. Grok drops the SessionStart hook's
|
|
51
|
+
output, so as a workaround the MCP server sends the map as its instructions, to Grok clients
|
|
52
|
+
only; the map carries the domain table of contents but not SessionStart's status lines. It
|
|
53
|
+
goes away once Grok passes hook context to the model.
|
|
54
|
+
- On Grok Build, the Stop hook now asks for a capture once a session has had two prompts: it
|
|
55
|
+
reads Grok's own transcript, ignores the Stop Grok sends when a process exits and on the
|
|
56
|
+
turns Grok starts itself, and never asks in a headless `grok -p` run, where the request would
|
|
57
|
+
be printed into the run's output.
|
|
58
|
+
- On Grok Build, the first `SessionStart` after installing no longer runs out of time: it downloads
|
|
59
|
+
and builds Sidegraph (5–7 seconds measured on its own, about 10 inside Grok), past Grok's
|
|
60
|
+
5-second default for a hook. The Grok hooks file now gives `SessionStart` 30 seconds and the
|
|
61
|
+
file and subagent hooks 10.
|
|
62
|
+
- Grok Build is no longer marked experimental: with the hooks, the session map and the capture
|
|
63
|
+
request working, the README and the Grok guide list it beside Claude Code and Codex. The Grok
|
|
64
|
+
guide adds what to do when the plugin is disabled, and that under `--sandbox read-only` the
|
|
65
|
+
hooks deliver no records.
|
|
66
|
+
- A malformed line in a session transcript (a `method`, `origin.kind` or `promptSource` that is
|
|
67
|
+
a list or an object) no longer stops the prompt count, which had silently dropped the capture
|
|
68
|
+
reminder for that session.
|
|
69
|
+
- The Muse install and update instructions in the README and the Muse guide now use the
|
|
70
|
+
public marketplace (`muse plugins marketplace add`, `install sidegraph@sidegraph`) instead
|
|
71
|
+
of a maintained local clone of the repository.
|
|
72
|
+
|
|
10
73
|
## [0.21.0] — 2026-10-28
|
|
11
74
|
|
|
12
75
|
### Changed
|
|
@@ -13,7 +13,7 @@ task-aware retrieval + decision memory riding on the engine's entity graph.
|
|
|
13
13
|
continuing participant in the project. A core feature must preserve, organize, or deliver
|
|
14
14
|
accumulated project understanding. Document search by itself is not the product.
|
|
15
15
|
|
|
16
|
-
Sidegraph is pre-1.0 (v0.
|
|
16
|
+
Sidegraph is pre-1.0 (v0.22.0) — the full loop (capture, ratification, mistakes-first
|
|
17
17
|
retrieval, refactor-surviving re-anchoring, semantic docs layer, mind-model domains, and the
|
|
18
18
|
facts evidence layer) ships and is exercised end-to-end, but interfaces may still move before
|
|
19
19
|
a stable release. See
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: sidegraph
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.22.0
|
|
4
4
|
Summary: Own the memory, rent the graph — a durable decision/lessons layer as a sidecar over a code-graph engine.
|
|
5
5
|
Project-URL: Homepage, https://github.com/SantyagoSeaman/sidegraph
|
|
6
6
|
Project-URL: Repository, https://github.com/SantyagoSeaman/sidegraph
|
|
@@ -48,9 +48,10 @@ the files and symbols an agent is working on.
|
|
|
48
48
|
|
|
49
49
|
Records live in your repository as reviewable JSON files. A derived SQLite index supports
|
|
50
50
|
retrieval; [Graphify](https://github.com/Graphify-Labs/graphify) supplies the code and document
|
|
51
|
-
graph used to anchor records. Claude Code and
|
|
52
|
-
to coding sessions. OpenCode V2 and the experimental Muse
|
|
53
|
-
for explicit retrieval and capture
|
|
51
|
+
graph used to anchor records. Claude Code, Codex and Grok Build plugins connect capture and
|
|
52
|
+
retrieval to coding sessions. OpenCode V2 and the experimental Muse expose MCP tools and shared
|
|
53
|
+
skills for explicit retrieval and capture; Muse also receives the session map and a subagent
|
|
54
|
+
brief.
|
|
54
55
|
|
|
55
56
|
- Keep decisions, rejected alternatives, and evidence with their provenance and history.
|
|
56
57
|
- Hand the agent the relevant mistakes and constraints before it edits, sized to fit its context.
|
|
@@ -83,8 +84,7 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
|
|
|
83
84
|
```
|
|
84
85
|
|
|
85
86
|
Linux follows the macOS commands but is not among the checked platforms. Open a new terminal afterwards so `uv` is on your PATH, then change into the root of your
|
|
86
|
-
repository (`cd /path/to/your/repo`). Every command below runs there
|
|
87
|
-
install, which says otherwise.
|
|
87
|
+
repository (`cd /path/to/your/repo`). Every command below runs there.
|
|
88
88
|
|
|
89
89
|
**Already using Sidegraph?** (New here? Skip to step 1.) Follow the [0.14 migration guide](docs/guides/migrating-to-0.14.md)
|
|
90
90
|
before upgrading Graphify, so accepted domains keep their membership. Update every client
|
|
@@ -148,9 +148,9 @@ Details: [`sidegraph-init`](docs/reference/cli.md#sidegraph-init).
|
|
|
148
148
|
|---|---|---|
|
|
149
149
|
| Claude Code | yes: hooks, capture reminders, context on reads | macOS and Windows |
|
|
150
150
|
| Codex | yes: hooks, after you approve them | macOS and Windows |
|
|
151
|
-
| Muse (experimental) |
|
|
151
|
+
| Muse (experimental) | partly: session map and subagent brief, after you approve them | macOS |
|
|
152
152
|
| OpenCode V2 | no: MCP and skills | macOS |
|
|
153
|
-
| Grok Build
|
|
153
|
+
| Grok Build | yes: hooks, capture reminders, context on reads; the session map through the MCP server | macOS |
|
|
154
154
|
|
|
155
155
|
Claude Code is shown first; open the section for another host. Host plugin updates and the
|
|
156
156
|
MCP runtime are separate: the default runtime follows the public repository's `main`, which
|
|
@@ -207,12 +207,14 @@ or later. See the [Codex guide](docs/getting-started/codex-setup.md#keep-the-plu
|
|
|
207
207
|
</details>
|
|
208
208
|
|
|
209
209
|
<details>
|
|
210
|
-
<summary><strong>Grok Build</strong
|
|
210
|
+
<summary><strong>Grok Build</strong></summary>
|
|
211
211
|
|
|
212
|
-
#### Grok Build
|
|
212
|
+
#### Grok Build
|
|
213
213
|
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
The plugin brings the MCP tools, the skills and the hooks: records arrive when the agent reads,
|
|
215
|
+
searches, edits or writes a file or starts a subagent, and the agent is reminded to propose
|
|
216
|
+
decisions once a session has done some work. Grok does not pass the `SessionStart` hook's output
|
|
217
|
+
to the model, so the session map comes from the MCP server instead. Run in a terminal:
|
|
216
218
|
|
|
217
219
|
```sh
|
|
218
220
|
grok plugin marketplace add SantyagoSeaman/sidegraph
|
|
@@ -221,8 +223,9 @@ grok plugin install sidegraph@sidegraph
|
|
|
221
223
|
|
|
222
224
|
Accept the trust prompt (`--trust` skips it), then start a new Grok session in the repository.
|
|
223
225
|
Ask the agent which Sidegraph tools it has: `get_task_context` should be among them. Checked
|
|
224
|
-
with Grok Build 1.0.
|
|
225
|
-
|
|
226
|
+
on macOS with Grok Build 1.0.70 (hooks, session map, capture reminder) and 1.0.62 (install,
|
|
227
|
+
MCP tools, skills, a gotcha recorded in one session and retrieved in the next). Windows is not
|
|
228
|
+
checked. See the [Grok Build guide](docs/integrations/grok.md).
|
|
226
229
|
For an existing install, run these in your terminal, then start a new session:
|
|
227
230
|
|
|
228
231
|
```sh
|
|
@@ -237,17 +240,17 @@ grok plugin update sidegraph
|
|
|
237
240
|
|
|
238
241
|
#### Muse (experimental)
|
|
239
242
|
|
|
240
|
-
MCP
|
|
241
|
-
|
|
242
|
-
|
|
243
|
+
MCP, shared skills, a session map at start and a memory brief for subagents; no context on
|
|
244
|
+
reads and no capture reminder. The hooks need `python3` (3.9 or later; the macOS one works).
|
|
245
|
+
Add the marketplace and install the plugin:
|
|
243
246
|
|
|
244
247
|
```sh
|
|
245
|
-
|
|
246
|
-
muse plugins install
|
|
248
|
+
muse plugins marketplace add sidegraph https://github.com/SantyagoSeaman/sidegraph
|
|
249
|
+
muse plugins install sidegraph@sidegraph
|
|
247
250
|
muse plugins inspect sidegraph
|
|
248
251
|
```
|
|
249
252
|
|
|
250
|
-
Review the MCP capability, then approve
|
|
253
|
+
Review the two hook capabilities and the MCP capability, then approve them:
|
|
251
254
|
|
|
252
255
|
```sh
|
|
253
256
|
muse plugins approve sidegraph
|
|
@@ -255,10 +258,11 @@ muse plugins approve sidegraph
|
|
|
255
258
|
|
|
256
259
|
Exit Muse and start a new Muse process from the intended project directory. Restart it there
|
|
257
260
|
whenever you switch projects; selecting a workspace in a running process is insufficient.
|
|
258
|
-
For an existing install, refresh the
|
|
261
|
+
For an existing install, refresh the marketplace and the plugin, then inspect the changed
|
|
262
|
+
capability:
|
|
259
263
|
|
|
260
264
|
```sh
|
|
261
|
-
|
|
265
|
+
muse plugins marketplace update sidegraph
|
|
262
266
|
muse plugins update sidegraph
|
|
263
267
|
muse plugins inspect sidegraph
|
|
264
268
|
```
|
|
@@ -269,9 +273,8 @@ Review changes, then approve and restart Muse from the target project:
|
|
|
269
273
|
muse plugins approve sidegraph
|
|
270
274
|
```
|
|
271
275
|
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
[Muse guide](docs/integrations/muse.md).
|
|
276
|
+
Installation, update, MCP approval, the session map and the subagent brief were checked on
|
|
277
|
+
Muse 1.4.14 on macOS; Windows is not checked. See the [Muse guide](docs/integrations/muse.md).
|
|
275
278
|
|
|
276
279
|
</details>
|
|
277
280
|
|
|
@@ -388,8 +391,9 @@ evaluate it on your own repository.
|
|
|
388
391
|
## How it works
|
|
389
392
|
|
|
390
393
|
1. **Capture.** During a session the agent saves a decision when you ask for one. At the end of
|
|
391
|
-
a Claude Code or
|
|
392
|
-
|
|
394
|
+
a Claude Code, Codex or Grok Build session the plugin reminds it to propose decisions worth
|
|
395
|
+
keeping (on Grok Build in interactive sessions only). In OpenCode and Muse, ask for capture
|
|
396
|
+
explicitly. Known secret patterns are redacted before storage (best effort).
|
|
393
397
|
2. **Review.** You accept or drop what the agent proposed; Sidegraph calls this *ratifying*.
|
|
394
398
|
Records are JSON in `.sidegraph/`, committed with your code: one file per record, or lines
|
|
395
399
|
in shard files once maintenance has packed them.
|
|
@@ -15,9 +15,10 @@ the files and symbols an agent is working on.
|
|
|
15
15
|
|
|
16
16
|
Records live in your repository as reviewable JSON files. A derived SQLite index supports
|
|
17
17
|
retrieval; [Graphify](https://github.com/Graphify-Labs/graphify) supplies the code and document
|
|
18
|
-
graph used to anchor records. Claude Code and
|
|
19
|
-
to coding sessions. OpenCode V2 and the experimental Muse
|
|
20
|
-
for explicit retrieval and capture
|
|
18
|
+
graph used to anchor records. Claude Code, Codex and Grok Build plugins connect capture and
|
|
19
|
+
retrieval to coding sessions. OpenCode V2 and the experimental Muse expose MCP tools and shared
|
|
20
|
+
skills for explicit retrieval and capture; Muse also receives the session map and a subagent
|
|
21
|
+
brief.
|
|
21
22
|
|
|
22
23
|
- Keep decisions, rejected alternatives, and evidence with their provenance and history.
|
|
23
24
|
- Hand the agent the relevant mistakes and constraints before it edits, sized to fit its context.
|
|
@@ -50,8 +51,7 @@ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | ie
|
|
|
50
51
|
```
|
|
51
52
|
|
|
52
53
|
Linux follows the macOS commands but is not among the checked platforms. Open a new terminal afterwards so `uv` is on your PATH, then change into the root of your
|
|
53
|
-
repository (`cd /path/to/your/repo`). Every command below runs there
|
|
54
|
-
install, which says otherwise.
|
|
54
|
+
repository (`cd /path/to/your/repo`). Every command below runs there.
|
|
55
55
|
|
|
56
56
|
**Already using Sidegraph?** (New here? Skip to step 1.) Follow the [0.14 migration guide](docs/guides/migrating-to-0.14.md)
|
|
57
57
|
before upgrading Graphify, so accepted domains keep their membership. Update every client
|
|
@@ -115,9 +115,9 @@ Details: [`sidegraph-init`](docs/reference/cli.md#sidegraph-init).
|
|
|
115
115
|
|---|---|---|
|
|
116
116
|
| Claude Code | yes: hooks, capture reminders, context on reads | macOS and Windows |
|
|
117
117
|
| Codex | yes: hooks, after you approve them | macOS and Windows |
|
|
118
|
-
| Muse (experimental) |
|
|
118
|
+
| Muse (experimental) | partly: session map and subagent brief, after you approve them | macOS |
|
|
119
119
|
| OpenCode V2 | no: MCP and skills | macOS |
|
|
120
|
-
| Grok Build
|
|
120
|
+
| Grok Build | yes: hooks, capture reminders, context on reads; the session map through the MCP server | macOS |
|
|
121
121
|
|
|
122
122
|
Claude Code is shown first; open the section for another host. Host plugin updates and the
|
|
123
123
|
MCP runtime are separate: the default runtime follows the public repository's `main`, which
|
|
@@ -174,12 +174,14 @@ or later. See the [Codex guide](docs/getting-started/codex-setup.md#keep-the-plu
|
|
|
174
174
|
</details>
|
|
175
175
|
|
|
176
176
|
<details>
|
|
177
|
-
<summary><strong>Grok Build</strong
|
|
177
|
+
<summary><strong>Grok Build</strong></summary>
|
|
178
178
|
|
|
179
|
-
#### Grok Build
|
|
179
|
+
#### Grok Build
|
|
180
180
|
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
The plugin brings the MCP tools, the skills and the hooks: records arrive when the agent reads,
|
|
182
|
+
searches, edits or writes a file or starts a subagent, and the agent is reminded to propose
|
|
183
|
+
decisions once a session has done some work. Grok does not pass the `SessionStart` hook's output
|
|
184
|
+
to the model, so the session map comes from the MCP server instead. Run in a terminal:
|
|
183
185
|
|
|
184
186
|
```sh
|
|
185
187
|
grok plugin marketplace add SantyagoSeaman/sidegraph
|
|
@@ -188,8 +190,9 @@ grok plugin install sidegraph@sidegraph
|
|
|
188
190
|
|
|
189
191
|
Accept the trust prompt (`--trust` skips it), then start a new Grok session in the repository.
|
|
190
192
|
Ask the agent which Sidegraph tools it has: `get_task_context` should be among them. Checked
|
|
191
|
-
with Grok Build 1.0.
|
|
192
|
-
|
|
193
|
+
on macOS with Grok Build 1.0.70 (hooks, session map, capture reminder) and 1.0.62 (install,
|
|
194
|
+
MCP tools, skills, a gotcha recorded in one session and retrieved in the next). Windows is not
|
|
195
|
+
checked. See the [Grok Build guide](docs/integrations/grok.md).
|
|
193
196
|
For an existing install, run these in your terminal, then start a new session:
|
|
194
197
|
|
|
195
198
|
```sh
|
|
@@ -204,17 +207,17 @@ grok plugin update sidegraph
|
|
|
204
207
|
|
|
205
208
|
#### Muse (experimental)
|
|
206
209
|
|
|
207
|
-
MCP
|
|
208
|
-
|
|
209
|
-
|
|
210
|
+
MCP, shared skills, a session map at start and a memory brief for subagents; no context on
|
|
211
|
+
reads and no capture reminder. The hooks need `python3` (3.9 or later; the macOS one works).
|
|
212
|
+
Add the marketplace and install the plugin:
|
|
210
213
|
|
|
211
214
|
```sh
|
|
212
|
-
|
|
213
|
-
muse plugins install
|
|
215
|
+
muse plugins marketplace add sidegraph https://github.com/SantyagoSeaman/sidegraph
|
|
216
|
+
muse plugins install sidegraph@sidegraph
|
|
214
217
|
muse plugins inspect sidegraph
|
|
215
218
|
```
|
|
216
219
|
|
|
217
|
-
Review the MCP capability, then approve
|
|
220
|
+
Review the two hook capabilities and the MCP capability, then approve them:
|
|
218
221
|
|
|
219
222
|
```sh
|
|
220
223
|
muse plugins approve sidegraph
|
|
@@ -222,10 +225,11 @@ muse plugins approve sidegraph
|
|
|
222
225
|
|
|
223
226
|
Exit Muse and start a new Muse process from the intended project directory. Restart it there
|
|
224
227
|
whenever you switch projects; selecting a workspace in a running process is insufficient.
|
|
225
|
-
For an existing install, refresh the
|
|
228
|
+
For an existing install, refresh the marketplace and the plugin, then inspect the changed
|
|
229
|
+
capability:
|
|
226
230
|
|
|
227
231
|
```sh
|
|
228
|
-
|
|
232
|
+
muse plugins marketplace update sidegraph
|
|
229
233
|
muse plugins update sidegraph
|
|
230
234
|
muse plugins inspect sidegraph
|
|
231
235
|
```
|
|
@@ -236,9 +240,8 @@ Review changes, then approve and restart Muse from the target project:
|
|
|
236
240
|
muse plugins approve sidegraph
|
|
237
241
|
```
|
|
238
242
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
[Muse guide](docs/integrations/muse.md).
|
|
243
|
+
Installation, update, MCP approval, the session map and the subagent brief were checked on
|
|
244
|
+
Muse 1.4.14 on macOS; Windows is not checked. See the [Muse guide](docs/integrations/muse.md).
|
|
242
245
|
|
|
243
246
|
</details>
|
|
244
247
|
|
|
@@ -355,8 +358,9 @@ evaluate it on your own repository.
|
|
|
355
358
|
## How it works
|
|
356
359
|
|
|
357
360
|
1. **Capture.** During a session the agent saves a decision when you ask for one. At the end of
|
|
358
|
-
a Claude Code or
|
|
359
|
-
|
|
361
|
+
a Claude Code, Codex or Grok Build session the plugin reminds it to propose decisions worth
|
|
362
|
+
keeping (on Grok Build in interactive sessions only). In OpenCode and Muse, ask for capture
|
|
363
|
+
explicitly. Known secret patterns are redacted before storage (best effort).
|
|
360
364
|
2. **Review.** You accept or drop what the agent proposed; Sidegraph calls this *ratifying*.
|
|
361
365
|
Records are JSON in `.sidegraph/`, committed with your code: one file per record, or lines
|
|
362
366
|
in shard files once maintenance has packed them.
|
|
@@ -8,10 +8,10 @@ agent.
|
|
|
8
8
|
|
|
9
9
|
1. [Install Sidegraph and Graphify](getting-started/installation.md).
|
|
10
10
|
2. Follow the [end-to-end quickstart](getting-started/quickstart.md).
|
|
11
|
-
3. Use the recommended host path for [Claude Code](getting-started/claude-code-setup.md)
|
|
12
|
-
[Codex](getting-started/codex-setup.md)
|
|
13
|
-
[OpenCode V2](../.opencode/INSTALL.md)
|
|
14
|
-
[
|
|
11
|
+
3. Use the recommended host path for [Claude Code](getting-started/claude-code-setup.md),
|
|
12
|
+
[Codex](getting-started/codex-setup.md) or [Grok Build](integrations/grok.md), or the narrower
|
|
13
|
+
paths for [OpenCode V2](../.opencode/INSTALL.md) (MCP and skills) and experimental
|
|
14
|
+
[Muse](integrations/muse.md) (MCP, skills, the session map and a subagent brief).
|
|
15
15
|
4. Run the [four-case verification checklist](guides/verifying-your-setup.md).
|
|
16
16
|
|
|
17
17
|
If the repository already has ADRs or specs, use the
|
|
@@ -62,4 +62,4 @@ it is optional background on evidence, limits, and repository fit.
|
|
|
62
62
|
- [Git bindings](reference/git-bindings.md)
|
|
63
63
|
- Integrations: [Claude Code](integrations/claude-code.md),
|
|
64
64
|
[Codex](integrations/codex.md), [OpenCode V2](integrations/opencode.md),
|
|
65
|
-
experimental [Muse](integrations/muse.md),
|
|
65
|
+
experimental [Muse](integrations/muse.md), [Grok Build](integrations/grok.md), [Graphify](integrations/graphify.md)
|
|
@@ -295,17 +295,19 @@ The `Initiative` model below is a separate low-level persisted record supported
|
|
|
295
295
|
|
|
296
296
|
## `DriftCheck` — attributed auxiliary inspection
|
|
297
297
|
|
|
298
|
-
An optional
|
|
298
|
+
An optional file under `.sidegraph/verifications/` records an explicit agent
|
|
299
299
|
judgment that an existing decision still holds. It preserves the decision and original
|
|
300
300
|
capture provenance; it never ratifies a proposal or proves semantic truth. It is outside
|
|
301
|
-
the shared canonical digest/index record tables.
|
|
301
|
+
the shared canonical digest/index record tables. A check file is never edited, but on a
|
|
302
|
+
format-2 store `sidegraph-compact` may pack it into `verifications/packed.shard` (the same JSON
|
|
303
|
+
body, one line) and drop it once it is dead: its decision has a newer check or is retired. See
|
|
302
304
|
[scoped checks](../reference/store-format.md#scoped-drift-checks) and
|
|
303
305
|
[`record_drift_check`](../reference/mcp-tools.md#record_drift_check).
|
|
304
306
|
|
|
305
307
|
| Field | Type | Meaning |
|
|
306
308
|
|---|---|---|
|
|
307
309
|
| `schema_version` | literal `1` | Version of the auxiliary assertion and fixed subject-digest definition; independent of the store format version. |
|
|
308
|
-
| `id` | ULID | Generated check identity, also its immutable filename. Highest generated id is the deterministic per-decision selection rule, not causal ordering. |
|
|
310
|
+
| `id` | ULID | Generated check identity, also its immutable filename (or, once packed, its line's key). Highest generated id is the deterministic per-decision selection rule, not causal ordering. |
|
|
309
311
|
| `decision_id` | str | Existing decision id; terminal or archived decisions remain valid history references. |
|
|
310
312
|
| `checked_at` | aware datetime | UTC time at which the assertion was recorded. |
|
|
311
313
|
| `checked_commit` | str | Full inspected Git HEAD object id, retained as provenance even after squash/clone removes the object locally. |
|
|
@@ -9,9 +9,11 @@ file- and domain-linked records without a graph; the complete workflow below ins
|
|
|
9
9
|
- **Python 3.13+** for Sidegraph (`.python-version` pins it).
|
|
10
10
|
- **Python 3.10+** for Graphify.
|
|
11
11
|
- [`uv`](https://docs.astral.sh/uv/) — used to install and run both.
|
|
12
|
-
- For automatic session integration: [Claude Code](claude-code-setup.md)
|
|
13
|
-
[Codex](codex-setup.md)
|
|
14
|
-
[
|
|
12
|
+
- For automatic session integration: [Claude Code](claude-code-setup.md),
|
|
13
|
+
[Codex](codex-setup.md) or [Grok Build](../integrations/grok.md).
|
|
14
|
+
[OpenCode V2](../../.opencode/INSTALL.md) provides MCP tools and shared skills without
|
|
15
|
+
lifecycle hooks; experimental [Muse](../integrations/muse.md) adds the session map and a
|
|
16
|
+
subagent brief through two hooks.
|
|
15
17
|
Other stdio MCP clients can call the tools directly; the CLI also works without a host.
|
|
16
18
|
|
|
17
19
|
### Platform coverage
|
|
@@ -37,8 +39,8 @@ above, including a Windows 3.14 cell with PowerShell 7 unavailable for preflight
|
|
|
37
39
|
real host sessions. Windows 3.13 retains PowerShell 7; its launcher checks also cover 5.1.
|
|
38
40
|
Stable publication of 0.14.0 required the full gate to pass without a known-issue exception.
|
|
39
41
|
The README's blue badges summarize release acceptance, rather than live workflow status or
|
|
40
|
-
support for every published version. Muse and
|
|
41
|
-
their installation guides and are outside this native matrix.
|
|
42
|
+
support for every published version. Muse, OpenCode and Grok Build have the narrower
|
|
43
|
+
coverage in their installation guides and are outside this native matrix.
|
|
42
44
|
|
|
43
45
|
On native Windows, the Claude Code hooks run through Git Bash, which comes with Git for
|
|
44
46
|
Windows; the MCP launchers and the Codex hooks need no POSIX shell. The native checks run
|
|
@@ -215,8 +217,10 @@ keep `sidegraph@sidegraph`; update cached assets with the host's native update c
|
|
|
215
217
|
then start a new session and review any changed approvals. The runtime's `@main` does not
|
|
216
218
|
refresh cached skills or manifests. OpenCode V2 uses the
|
|
217
219
|
[canonical Git package guide](../../.opencode/INSTALL.md). Experimental
|
|
218
|
-
[Muse](../integrations/muse.md) supplies MCP
|
|
219
|
-
intended project when switching workspaces; expanded native
|
|
220
|
+
[Muse](../integrations/muse.md) supplies MCP, skills, the session map and a subagent brief,
|
|
221
|
+
and must be restarted from the intended project when switching workspaces; expanded native
|
|
222
|
+
acceptance is deferred. Grok Build installs from its own plugin marketplace; see the
|
|
223
|
+
[Grok Build guide](../integrations/grok.md).
|
|
220
224
|
|
|
221
225
|
### Option C — uvx directly from git
|
|
222
226
|
|
|
@@ -33,7 +33,8 @@ creates the repo-committed `.sidegraph/` record directories and a gitignored der
|
|
|
33
33
|
|
|
34
34
|
Run `sidegraph-init` from the repository root before starting your host session. On Claude Code and Codex, without a
|
|
35
35
|
store, SessionStart shows setup guidance and Stop stays silent; neither creates one.
|
|
36
|
-
OpenCode
|
|
36
|
+
OpenCode uses explicit MCP calls instead of lifecycle hooks, and Muse has no `Stop` hook. On
|
|
37
|
+
Grok Build the setup guidance appears only in Grok's own interface, not to the agent. If an
|
|
37
38
|
older hook already left an empty store, init identifies it as empty and prints setup guidance.
|
|
38
39
|
|
|
39
40
|
In a terminal, `sidegraph-init` asks two questions. Both default to yes, so pressing Enter twice
|
|
@@ -74,8 +75,9 @@ codex plugin add sidegraph@sidegraph
|
|
|
74
75
|
|
|
75
76
|
Start a new interactive session in the repository and review its approval prompts; Codex
|
|
76
77
|
hooks require explicit trust through the startup warning or `/hooks`. For OpenCode V2, use
|
|
77
|
-
the [native Git installation guide](../../.opencode/INSTALL.md); for experimental
|
|
78
|
-
Muse, use the [Muse guide](../integrations/muse.md) and start its process in this project
|
|
78
|
+
the [native Git installation guide](../../.opencode/INSTALL.md); for experimental
|
|
79
|
+
Muse, use the [Muse guide](../integrations/muse.md) and start its process in this project; for
|
|
80
|
+
Grok Build, use the [Grok Build guide](../integrations/grok.md).
|
|
79
81
|
The [README host recipes](../../README.md#claude-code) describe installation and updates. For a
|
|
80
82
|
manual or source-checkout setup, use the host-specific page:
|
|
81
83
|
[Claude Code](claude-code-setup.md) or [Codex](codex-setup.md).
|
|
@@ -131,5 +133,6 @@ alone and only installs the graph hook.
|
|
|
131
133
|
|
|
132
134
|
Next, run the short
|
|
133
135
|
[verification checklist](../guides/verifying-your-setup.md), then
|
|
134
|
-
[name domains](../guides/naming-your-domains.md) if you want a table of contents of your memory. Claude Code and
|
|
135
|
-
SessionStart;
|
|
136
|
+
[name domains](../guides/naming-your-domains.md) if you want a table of contents of your memory. Claude Code, Codex and Muse also inject it at
|
|
137
|
+
SessionStart; Grok Build receives it through the MCP server's instructions; OpenCode retrieves it
|
|
138
|
+
explicitly through MCP.
|
|
@@ -420,5 +420,11 @@ drafts. Proposed content stays below accepted memory and may be hidden by regula
|
|
|
420
420
|
|
|
421
421
|
Scoped drift checks are committed auxiliary history under `.sidegraph/verifications/`.
|
|
422
422
|
Use the current `sidegraph-verify` for their schema/reference checks and write-once
|
|
423
|
-
`--against` enforcement; older verifiers ignore them.
|
|
423
|
+
`--against` enforcement; older verifiers ignore them. On a format-2 store
|
|
424
|
+
`sidegraph-compact` folds them into `verifications/packed.shard` and drops dead ones, and the
|
|
425
|
+
first such run raises the store's requirement to 0.22.0: move the CI pin to 0.22.0 or newer
|
|
426
|
+
before that pull request merges, or a pinned older `sidegraph-verify` fails with
|
|
427
|
+
`requirement-above-verifier`. `--against` accepts a fold only when each line equals a check
|
|
428
|
+
already on the target branch (`packed-check-without-source`), so land newly recorded checks
|
|
429
|
+
before folding them. CI should not create semantic
|
|
424
430
|
inspection assertions automatically merely to obtain fewer drift warnings.
|
|
@@ -126,7 +126,7 @@ Maintenance only folds a file that has been on your branch for at least **7 days
|
|
|
126
126
|
with `--settled-days`), runs on the default branch, and never commits. The 7-day window exists
|
|
127
127
|
so that a record still being ratified or edited stays a plain file where merges handle it
|
|
128
128
|
well. After a run, commit `.sidegraph/` in a pull request. Both SessionStart and
|
|
129
|
-
`sidegraph-doctor` say when maintenance is due: more than 200 per-record files, a legacy
|
|
129
|
+
`sidegraph-doctor` say when maintenance is due: more than 200 per-record files (drift-check files count), a legacy
|
|
130
130
|
`archive/` segment that maintenance would delete, a shard line in the wrong shard file or
|
|
131
131
|
repeated, or a stray shard file.
|
|
132
132
|
|
|
@@ -168,7 +168,9 @@ survivor and retire the other:
|
|
|
168
168
|
|
|
169
169
|
In a packed (format 2) store, `sidegraph-compact` is maintenance: it folds per-record files that
|
|
170
170
|
have settled (landed on the default branch at least seven days ago) into the shard files, byte
|
|
171
|
-
for byte, and deletes a file only once a shard line holds its exact content. It
|
|
171
|
+
for byte, and deletes a file only once a shard line holds its exact content. It also folds scoped
|
|
172
|
+
drift-check files into `verifications/packed.shard`, drops dead ones, and on the first such run
|
|
173
|
+
raises the store's minimum version to 0.22.0 for the whole team. It runs on the
|
|
172
174
|
default branch and never commits, so review and commit the result in a pull request. See
|
|
173
175
|
[`reference/cli.md`](../reference/cli.md#sidegraph-compact) and the
|
|
174
176
|
[0.17 migration guide](migrating-to-0.17.md). The rest of this section describes the
|
|
@@ -329,7 +329,7 @@ has nothing to migrate and says nothing. Doctor lists one finding at the store p
|
|
|
329
329
|
|
|
330
330
|
### maintenance-due
|
|
331
331
|
|
|
332
|
-
A packed (format 2) store has work for `sidegraph-compact`: more than 200 per-record files, a
|
|
332
|
+
A packed (format 2) store has work for `sidegraph-compact`: more than 200 per-record files (drift-check files count), a
|
|
333
333
|
legacy `archive/` segment that maintenance would delete, a shard line in the wrong shard file or
|
|
334
334
|
repeated with an equal body, or a stray shard file. Nothing is broken, and `sidegraph-verify`
|
|
335
335
|
does not report these states. A segment that stays because one of its lines is not safe to
|
|
@@ -337,7 +337,7 @@ delete does not count. Run `sidegraph-compact` on the default branch. Doctor lis
|
|
|
337
337
|
at the store path; `--check` reports it but does not exit `2` on it. A legacy segment that maintenance would delete counts, whether its records are already in shard
|
|
338
338
|
lines or maintenance would pack them. The check does not consult git, so a record file that
|
|
339
339
|
still has to settle (or is untracked) is not predicted. It reads the shard files once; a store
|
|
340
|
-
with more than 200 per-record files is decided from the directory listing.
|
|
340
|
+
with more than 200 per-record files (drift-check files included) is decided from the directory listing.
|
|
341
341
|
|
|
342
342
|
### version-skew
|
|
343
343
|
|
|
@@ -20,12 +20,16 @@ you can drop the prefix and use the bare `sidegraph-*` names.
|
|
|
20
20
|
**Success:** the tool is available and returns either task context or `No context found.` A
|
|
21
21
|
missing record is fine; a trailing `## No code graph` block means the code graph is missing or not
|
|
22
22
|
readable (build it with `graphify update .`, or fix its permissions), not that the wiring failed. “Unknown tool”, a different repository's
|
|
23
|
-
records, or a silent SessionStart hook is not fine. For Codex, confirm hook trust before debugging the JSON.
|
|
23
|
+
records, or a silent SessionStart hook is not fine. For Codex, confirm hook trust before debugging the JSON. On Grok Build
|
|
24
|
+
the opening map comes from the MCP server rather than the hook; it is there before the first
|
|
25
|
+
answer, unless the server started slowly, when it arrives after the first tool call (see the [Grok Build guide](../integrations/grok.md)); on Muse, approve the hooks
|
|
26
|
+
first (see the [Muse guide](../integrations/muse.md)).
|
|
24
27
|
|
|
25
28
|
If this fails, compare the resolved paths with
|
|
26
29
|
[Configuration](../reference/configuration.md#store-path-resolution) and the relevant host
|
|
27
|
-
page: [Claude Code](../getting-started/claude-code-setup.md)
|
|
28
|
-
[Codex](../getting-started/codex-setup.md).
|
|
30
|
+
page: [Claude Code](../getting-started/claude-code-setup.md),
|
|
31
|
+
[Codex](../getting-started/codex-setup.md), [Grok Build](../integrations/grok.md) or
|
|
32
|
+
[Muse](../integrations/muse.md).
|
|
29
33
|
|
|
30
34
|
## Case 2 — Durable capture and retrieval
|
|
31
35
|
|