boost-skill-cli 1.0.259__tar.gz → 1.0.261__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.
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/PKG-INFO +1 -1
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/_version.py +2 -2
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/dense.py +17 -1
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/rag.py +8 -1
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/PKG-INFO +1 -1
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_dense_fallback.py +39 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_rag.py +37 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.gitattributes +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.gitignore +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.gitleaks.toml +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.htmlvalidate.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.lighthouserc.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.lycheeignore +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.markdownlint-cli2.jsonc +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.pre-commit-config.yaml +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.stylelintrc.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.vale/styles/boost/Terminology.yml +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.vale/styles/config/vocabularies/boost/accept.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/.vale.ini +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/CLAUDE.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/CODE_OF_CONDUCT.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/CONTRIBUTING.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/LICENSE +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/MANIFEST.in +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/Makefile +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/README.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/SECURITY.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/__init__.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/__main__.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/cli.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/cliparse.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/__init__.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/_common.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/bmad.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/configuration.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/discovery.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/hooks.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/info.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/intelligence.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/pkg.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/quality.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/run.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/safety.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/taps.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/commands/team.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/__init__.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/adapters.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/agents.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/ai.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/capabilities.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/catalog.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/claude_settings.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/config.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/ed25519.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/embed.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/faithfulness.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/frontmatter.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/gitutil.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/imperative.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/injectscan.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/integrity.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/journal.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/lockfile.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/logs.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/mcp.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/mcpdecl.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/minisign.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/nethttp.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/output.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/paths.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/policy.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/projectlock.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/provenance.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/registry.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/resolve.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/rules.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/scopes.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/secretscan.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/selfupdate.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/serve.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/stackprobe.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/staleness.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/store.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/trustaudit.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/typosquat.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/updatediff.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/util.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/core/workflows.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/data/registries.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/errors.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_cli/spin.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/SOURCES.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/dependency_links.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/entry_points.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/requires.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/top_level.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/codecov.yml +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/.claude/settings.local.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/DEBUGGING.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/adapters.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/distill.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/doctor.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/explain.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/hooks.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/install.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/pulse.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/search.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/gifs/tap.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/distill.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/doctor.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/explain.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/hooks.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/install.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/pulse.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/search.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel/tapes/tap.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/carousel.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/commands.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/demo.gif +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/demo.tape +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/design-roadmap.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/eval.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/index.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/mcp-hub.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/rag-architecture.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D01.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D02.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D03.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D04.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D05.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D06.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D07.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D08.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D09.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D10.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D11.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D12.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D13.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D14.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D15.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D16.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D17.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D18.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D19.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D20.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D21.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D22.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D23.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D24.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D25.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/BOOST-D26.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/accessibility-audit-pa11y-ci-axe-core.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/adapter-conformance-langgraph-leg-never-ran.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/ai-bridge-silent-failure-logging.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/ambiguous-tap-short-name-resolution.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/atomic-corruption-safe-lock-file-writes.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/atomic-skill-install-temp-dir-swap.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/autonomous-ship-workflow-and-isolated-worktree.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/boost-run-live-agents.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/bring-commands-under-mutation-testing.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/broken-link-and-anchor-checking-lychee.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/browse-crashes-selecting-a-rule-or-workflow.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/build-provenance-slsa-attestations.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/cache-the-catalog-entry-set-across-rag-queries.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/capability-manifest-and-least-privilege-policy.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/ci-job-timeout-minutes.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/ci-summary-step-fails-itself.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/clean-env-install-smoke-pip-and-pipx.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/command-carousel-page.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/command-reference-docs-site.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/complexity-and-dead-code-radar-xenon-vulture.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/consolidate-skill-staleness-drift-logic-into-cor.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/coverage-dashboard-codecov-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/coverage-guided-fuzzing-atheris-oss-fuzz.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/crash-listing-branch-untested.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/crash-recorder-error-paths-core-logs-py.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/demo-gif-workflow-has-never-succeeded.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/dense-search-fallback-and-stale-tap-pruning.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/dependabot-missing-pip-ecosystem.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/dependency-cve-gate-pip-audit.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/docsite-chrome-and-content-audit.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/docstring-coverage-interrogate.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/doctor-checks-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/end-of-options-guard-on-git-commands.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/extension-free-tests-core-dense-py.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/extract-mcp-http-servers-out-of-configuration-py.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/finish-mutation-hardening-across-core.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/fix-self-update-version-detection-dead-branch.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/fork-safe-network-proxy-handler.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/framework-adapter-langgraph.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/framework-adapter-multi-agent.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/framework-adapters-boost-adapt.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/frontmatter-scalar-over-coercion.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/github-community-health-files.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/github-pages-deploy-is-broken-every-push.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/golden-set-statistical-power.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/hash-pinned-reproducible-toolchain-uv-lock.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/html-validation-html-validate.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/install-docs-never-mentioned-upgrading.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/install-from-path-bypasses-policy-and-pin-checks.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/install-resolves-skill-dependencies.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/install-scope-user-or-project.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/installed-skill-trust-audit.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/integrity-verification-boost-verify.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/invocation-pid-logging-for-crash-correlation.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/journal-rotation-race-and-handle-leak.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/layering-guard-import-linter.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/license-compliance-scanning.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/lighthouse-ci-on-the-pages-site.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/lint-tap-misscopes-rule-workflow-entries.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/list-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/localize-the-stored-bm25-snippet.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/lock-invariant-cannot-parse-extras-pins.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/lockfile-enforcement-and-commit-pinning.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/log-timestamps-mislabeled-utc.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/lowest-version-resolution-uv-resolution-lowest-d.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/main-has-no-branch-protection.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/main-ruleset-ref-pattern-has-literal-quotes.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/make-the-roadmaps-discoverable.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/markdown-consistency-markdownlint-cli2.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/markdownlint-lints-the-fuzz-corpus.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mcp-aware-skills.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mcp-hub-diagram-node-text-overflow.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mcp-launch-objc-fork-safety.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mcp-register-names-server-before-env.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mcp-search-before-reinventing.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mcp-startup-self-harden-fork-safety.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/memoize-config-load-in-process.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/merge-queue-would-deadlock-most-required-checks.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/modernization-smells-refurb-pyupgrade.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mutation-gate-was-the-whole-critical-path.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mutation-hardening-core-frontmatter-py.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mutation-hardening-core-gitutil-py.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mutation-hardening-core-store-py.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/mypy-strict-mode-for-commands.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/negative-limit-inverts-log-pulse-output.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/onboard-overwrites-generated-files-without-confirm.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/one-command-every-env-nox.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/one-shared-atomic-write-helper.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/package-metadata-validation-twine-check-friends.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/patch-coverage-gate-diff-cover.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/path-traversal-unsanitized-rule-workflow-name.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/performance-regression-gate-pytest-benchmark.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/pin-the-lint-toolchain.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/post-deploy-always-defeated-by-skipped-setup.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/post-deploy-smoke-headless-load-check.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/pre-release-python-canary-3-14t-free-threaded.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/project-scope-across-every-command.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/project-scope-symlink-escape-on-write.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/promote-nav-footer-into-the-shared-style-system.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/prompt-injection-scanning-of-skill-markdown.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/property-based-tests-hypothesis-on-the-parsers.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/prose-and-terminology-linting-vale.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/prune-ignored-dirs-during-scan-dir-walk.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/publish-gate-ignores-pip-audit-and-metadata.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/publish-trigger-was-reachable-from-a-fork.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/pytest-tmpdir-cve-blocked-by-py39-floor.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/quality-dashboard-sonarcloud-free-for-oss.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/ranx-significance-monitor.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/reconcile-the-theme-drift.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/refresh-the-marketing-surface.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/rel-time-tests-race-the-wall-clock.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/required-checks-can-declare-a-check-that-deadlocks-prs.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/required-checks-config-drift.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/retrieval-quality-eval-harness.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/reuse-helpers-kill-minor-dead-work.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/roadmap-html-goes-stale-on-every-rebase.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/robust-tag-argument-parsing.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/ruff-016-widens-the-default-rule-set.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/rule-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/runner-egress-monitoring-stepsecurity-harden-run.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/runtime-explain-faithfulness-guardrail.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/sbom-aware-scanning-osv-scanner.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/sbom-on-every-release-cyclonedx-syft.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/sbom-release-event-never-fires.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/scan-and-sync-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/scorecard-findings-triage.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/second-type-checker-pyright.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/secret-and-pii-scanning-of-installed-skills.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/secret-scanning-gitleaks-push-protection.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/security-linting-bandit-via-ruff-s-rules.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/self-update-broken-for-pip-pipx-installs.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/serve-py-traversal-guards-untested.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/shift-left-gate-pre-commit-pre-commit-ci.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/single-imperative-rule-extractor.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/single-tech-stack-prober.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/split-oversized-command-modules.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/startup-and-import-time-budget-x-importtime.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/stop-re-serializing-entry-meta-on-every-search.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/structured-json-log-output-mode.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/supply-chain-posture-openssf-scorecard.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/surface-every-docs-page-from-the-guide.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/sync-deletes-unowned-broken-symlinks.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/tap-signing-and-provenance-sigstore-minisign.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/theme-asset-linting-stylelint-eslint.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/typo-detection-codespell.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/typosquat-and-name-confusion-detection.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/unify-tilde-two-copies-have-a-boundary-bug.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/uninstall-has-no-confirmation-prompt.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/untrack-generated-build-noise.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/update-diff-before-apply.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/update-refreshes-rules-and-workflows.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/update-reinstall-widens-agent-scope.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/visual-regression-pass-on-the-guide.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/widen-the-ruff-rule-surface-b-sim-c4-perf-ruf.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/windows-in-the-ci-matrix.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/wire-bdd-suite-into-ci.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/workflow-install-native-materialization.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/workflow-linting-actionlint.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/workflow-sast-zizmor.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/workspace-scope-install.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/eslint.config.mjs +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/examples/README.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/examples/adapt-demo.sh +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/examples/boost-run-prototype.sh +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/index.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/noxfile.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/pyproject.toml +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/coverage-tools.in +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/coverage-tools.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/lint-tools.in +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/lint-tools.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/mutation-tools.in +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/mutation-tools.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/release-tools.in +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/release-tools.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/test-tools.in +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/requirements/test-tools.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/a11y_check.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/bench_cli.sh +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/build_command_reference.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/build_registries.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/build_roadmap.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/check_anchors.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/check_required_checks.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/ensure_eval_corpus.sh +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/eval_explain.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/eval_recommend.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/eval_retrieval.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/import_budget.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/lock_toolchain.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/mutation_gate.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/mutation_shards.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/mutation_weights.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/perf_gate.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/scripts/release_preflight.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/setup.cfg +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/sonar-project.properties +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/style/README.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/style/boost.css +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/style/boost.js +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/style/demo.html +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/adapt.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/browse.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/count.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/discover.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/doctor.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/environment.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/explain.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/index.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/install.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/list.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/mcp.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/search.feature +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/steps/cli_steps.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/steps/discovery_steps.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/steps/mcp_steps.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/bdd/features/steps/quality_steps.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/conftest.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/eval/baseline.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/eval/explain.jsonl +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/eval/golden.jsonl +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/eval/recommend.jsonl +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/eval/taps.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_capabilities_policy.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_adapt.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_bmad.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_configuration.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_discovery.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_hooks.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_info.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_intelligence.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_pkg.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_quality.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_taps.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_cli_team.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_everyday_loop.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_integrity_enforce.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_property_parsers.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_run.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_tap_signing.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/functional/test_workspace_scope.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/README.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/01-typical.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/02-lossy-version.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/03-lossy-numbers.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/04-lists.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/05-nested.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/06-empty-block.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/07-unterminated.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/08-none.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/09-unbalanced-quote.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/10-keywords.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/11-crlf.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/frontmatter/12-bom.md +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/01-shorthand.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/02-https.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/03-ssh.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/04-traversal.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/05-empty.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/06-space.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/07-slash.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/corpus/registry/08-bare-host.txt +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/fuzz_frontmatter.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/fuzz/fuzz_registry.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/make_fixture.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/perf/test_benchmarks.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/smoke.sh +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_a11y_check.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_adapters.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_adapters_multi.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_adapters_runner.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_agents.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_ai.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_capabilities.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_catalog.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_check_anchors.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_claude_settings.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_cliparse.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_command_reference_fresh.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_community_health_files.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_config.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_dense.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_dependabot_config.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_docs_pages_linked.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_docsite_chrome.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_ed25519.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_embed.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_errors_and_cli_table.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_eval_stats_summary.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_faithfulness.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_frontmatter.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_fuzz_targets.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_gitleaks_config.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_gitutil.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_imperative.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_import_budget.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_injectscan.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_integrity.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_journal.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_lockfile.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_logs.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_marketing_counts.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_mcp.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_mcpdecl.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_minisign.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_mutation_hardening.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_mutation_shards.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_mutmut_source_paths.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_nethttp.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_output.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_paths.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_perf_gate.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_pkg_confusions.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_pkg_injection.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_pkg_secrets.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_policy.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_post_deploy_smoke.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_projectlock.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_provenance.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_registries_fresh.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_registry.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_release_preflight.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_required_checks.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_resolve.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_roadmap_fresh.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_rules.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_scopes.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_secretscan.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_selfupdate.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_serve.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_spin.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_stackprobe.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_staleness.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_store.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_token_parity.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_toolchain_lock.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_trustaudit.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_typosquat.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_updatediff.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_util.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_version.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_workflow_timeouts.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/unit/test_workflows.py +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/visual/a11y_check.mjs +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/visual/console_check.mjs +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/visual/package.json +0 -0
- {boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/tests/visual/visual_check.mjs +0 -0
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '1.0.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 0,
|
|
21
|
+
__version__ = version = '1.0.261'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 0, 261)
|
|
23
23
|
|
|
24
24
|
__commit_id__ = commit_id = None
|
|
@@ -163,7 +163,14 @@ def build(entries: Optional[List[dict]] = None,
|
|
|
163
163
|
fresh = [e for e in entries
|
|
164
164
|
if e["tap"].replace("/", "__") not in reused]
|
|
165
165
|
changed_taps = sorted({e["tap"] for e in fresh})
|
|
166
|
-
|
|
166
|
+
# Prune taps that are gone entirely, not only the ones that changed.
|
|
167
|
+
# `boost untap` removes a tap's entries, so it can never appear in
|
|
168
|
+
# `fresh` and its vectors survived every later incremental build —
|
|
169
|
+
# crowding the KNN pool on every query with rows `retrieve` then
|
|
170
|
+
# discards for not being live, which is how a dense search quietly
|
|
171
|
+
# returns fewer hits the longer an index has been in use.
|
|
172
|
+
removed_taps = sorted(_indexed_taps(con) - {e["tap"] for e in entries})
|
|
173
|
+
_delete_taps(con, changed_taps + removed_taps)
|
|
167
174
|
|
|
168
175
|
added = _embed_and_store(con, fresh, tap_paths)
|
|
169
176
|
_write_meta(con, {"version": INDEX_VERSION, "provider": prov,
|
|
@@ -176,6 +183,7 @@ def build(entries: Optional[List[dict]] = None,
|
|
|
176
183
|
"added": added,
|
|
177
184
|
"taps": len(commits),
|
|
178
185
|
"reindexed": changed_taps,
|
|
186
|
+
"pruned": removed_taps,
|
|
179
187
|
"reused": sorted(reused),
|
|
180
188
|
"provider": prov,
|
|
181
189
|
"model": mdl,
|
|
@@ -184,6 +192,14 @@ def build(entries: Optional[List[dict]] = None,
|
|
|
184
192
|
con.close()
|
|
185
193
|
|
|
186
194
|
|
|
195
|
+
def _indexed_taps(con: sqlite3.Connection) -> set:
|
|
196
|
+
"""Every tap name the vector index currently holds chunks for."""
|
|
197
|
+
try:
|
|
198
|
+
return {r[0] for r in con.execute("SELECT DISTINCT tap FROM chunks")}
|
|
199
|
+
except sqlite3.OperationalError:
|
|
200
|
+
return set() # no chunks table yet — nothing indexed, nothing stale
|
|
201
|
+
|
|
202
|
+
|
|
187
203
|
def _delete_taps(con: sqlite3.Connection, taps: List[str]) -> None:
|
|
188
204
|
for tap in taps:
|
|
189
205
|
ids = [r[0] for r in
|
|
@@ -432,7 +432,14 @@ def _retrieve_any(query: str, k: int, kind: Optional[str],
|
|
|
432
432
|
from . import dense
|
|
433
433
|
if dense.ready():
|
|
434
434
|
hits = dense.retrieve(query, k=k, kind=kind, entries=entries)
|
|
435
|
-
|
|
435
|
+
# An empty list is not the same answer as None. ``dense.retrieve``
|
|
436
|
+
# returns ``[]`` whenever every KNN neighbour was dropped for a kind
|
|
437
|
+
# mismatch or for no longer being live, which is a *thin index*, not a
|
|
438
|
+
# verdict on the query — and taking it as final short-circuits the
|
|
439
|
+
# documented "everything degrades to BM25" contract, so `boost search`
|
|
440
|
+
# answered "no results" while a perfectly good BM25 index sat unused.
|
|
441
|
+
# Only a non-empty dense result is final.
|
|
442
|
+
if hits:
|
|
436
443
|
return hits, "dense vectors"
|
|
437
444
|
if ready():
|
|
438
445
|
return retrieve(query, k=k, kind=kind, entries=entries), "BM25 full-content"
|
|
@@ -439,6 +439,45 @@ class TestBuildWithoutExtension:
|
|
|
439
439
|
assert stats["added"] == 2
|
|
440
440
|
assert stats["chunks"] == 2 # replaced, not dupe
|
|
441
441
|
|
|
442
|
+
def test_an_untapped_tap_is_pruned_from_the_index(self, store):
|
|
443
|
+
# THE GHOST-VECTOR BUG. `boost untap` removes a tap's entries, so it
|
|
444
|
+
# can never appear in `fresh` — the incremental path only ever deleted
|
|
445
|
+
# taps that CHANGED, and everything from a removed tap survived every
|
|
446
|
+
# later build, crowding the KNN pool that retrieve() then filters back
|
|
447
|
+
# out for not being live.
|
|
448
|
+
both = [*_ENTRIES, _e("gone", "from the other tap", tap="old/skills")]
|
|
449
|
+
store.setattr(rag, "_tap_commits",
|
|
450
|
+
lambda: {"acme__skills": "c1", "old__skills": "c1"})
|
|
451
|
+
dense.build(entries=both, force=True)
|
|
452
|
+
con = sqlite3.connect(str(dense.db_path()))
|
|
453
|
+
assert con.execute("SELECT COUNT(*) FROM chunks WHERE tap = 'old/skills'"
|
|
454
|
+
).fetchone()[0] == 1
|
|
455
|
+
con.close()
|
|
456
|
+
|
|
457
|
+
# …the tap is removed: gone from the entry set and from the commit map.
|
|
458
|
+
store.setattr(rag, "_tap_commits", lambda: {"acme__skills": "c1"})
|
|
459
|
+
stats = dense.build(entries=_ENTRIES)
|
|
460
|
+
|
|
461
|
+
assert stats["pruned"] == ["old/skills"]
|
|
462
|
+
assert stats["reused"] == ["acme__skills"], "the surviving tap is untouched"
|
|
463
|
+
con = sqlite3.connect(str(dense.db_path()))
|
|
464
|
+
assert con.execute("SELECT COUNT(*) FROM chunks WHERE tap = 'old/skills'"
|
|
465
|
+
).fetchone()[0] == 0
|
|
466
|
+
assert con.execute("SELECT COUNT(*) FROM vec_chunks").fetchone()[0] == 2
|
|
467
|
+
con.close()
|
|
468
|
+
|
|
469
|
+
def test_nothing_is_pruned_when_every_tap_is_still_present(self, store):
|
|
470
|
+
dense.build(entries=_ENTRIES, force=True)
|
|
471
|
+
assert dense.build(entries=_ENTRIES)["pruned"] == []
|
|
472
|
+
|
|
473
|
+
def test_indexed_taps_is_empty_before_any_schema_exists(self, tmp_path):
|
|
474
|
+
# _indexed_taps runs against whatever connection build() has; on a
|
|
475
|
+
# database with no chunks table the answer is "nothing indexed", not a
|
|
476
|
+
# crash that takes the whole build down.
|
|
477
|
+
con = sqlite3.connect(str(tmp_path / "empty.sqlite"))
|
|
478
|
+
assert dense._indexed_taps(con) == set()
|
|
479
|
+
con.close()
|
|
480
|
+
|
|
442
481
|
def test_provider_switch_wipes_and_rebuilds(self, store):
|
|
443
482
|
dense.build(entries=_ENTRIES, force=True)
|
|
444
483
|
store.setattr(embed, "provider", lambda: "voyage")
|
|
@@ -994,6 +994,43 @@ class TestEngineRouting:
|
|
|
994
994
|
monkeypatch.setattr(dense_mod, "ready", lambda: False)
|
|
995
995
|
assert rag.search("react", smart=False) is None
|
|
996
996
|
|
|
997
|
+
def test_dense_zero_hits_still_falls_through_to_bm25(self, sandbox,
|
|
998
|
+
monkeypatch):
|
|
999
|
+
# THE BUG: `[]` is what dense.retrieve returns when every KNN neighbour
|
|
1000
|
+
# was dropped for a kind mismatch or for no longer being live — a thin
|
|
1001
|
+
# index, not a verdict on the query. Taking it as final answered "no
|
|
1002
|
+
# results" with a perfectly good BM25 index sitting unused.
|
|
1003
|
+
self._bm25_ready()
|
|
1004
|
+
monkeypatch.setattr(dense_mod, "ready", lambda: True)
|
|
1005
|
+
monkeypatch.setattr(dense_mod, "retrieve", lambda *a, **k: [])
|
|
1006
|
+
result = rag.search("react", smart=False,
|
|
1007
|
+
entries=[_entry("a", tap="x/y")])
|
|
1008
|
+
assert result is not None, "empty dense result must not end the search"
|
|
1009
|
+
hits, label = result
|
|
1010
|
+
assert label == "BM25 full-content"
|
|
1011
|
+
assert [h["entry"]["name"] for h in hits] == ["a"]
|
|
1012
|
+
|
|
1013
|
+
def test_dense_zero_hits_with_no_bm25_index_falls_all_the_way_out(
|
|
1014
|
+
self, sandbox, monkeypatch):
|
|
1015
|
+
# Nothing left to try: the caller has to know to use catalog.search,
|
|
1016
|
+
# which it only does when it gets None back.
|
|
1017
|
+
monkeypatch.setattr(dense_mod, "ready", lambda: True)
|
|
1018
|
+
monkeypatch.setattr(dense_mod, "retrieve", lambda *a, **k: [])
|
|
1019
|
+
assert rag.search("react", smart=False) is None
|
|
1020
|
+
|
|
1021
|
+
def test_a_non_empty_dense_result_is_still_final(self, sandbox, monkeypatch):
|
|
1022
|
+
# The fix must not turn into "always run BM25 too": a real dense hit
|
|
1023
|
+
# ends the search, even with a BM25 index present that would rank
|
|
1024
|
+
# something else first.
|
|
1025
|
+
self._bm25_ready()
|
|
1026
|
+
monkeypatch.setattr(dense_mod, "ready", lambda: True)
|
|
1027
|
+
monkeypatch.setattr(dense_mod, "retrieve", lambda *a, **k: [
|
|
1028
|
+
{"entry": {"name": "d", "tap": "x/y"}, "score": 9.0, "snippet": "D"}])
|
|
1029
|
+
hits, label = rag.search("react", smart=False,
|
|
1030
|
+
entries=[_entry("a", tap="x/y")])
|
|
1031
|
+
assert label == "dense vectors"
|
|
1032
|
+
assert [h["entry"]["name"] for h in hits] == ["d"]
|
|
1033
|
+
|
|
997
1034
|
|
|
998
1035
|
class TestAtomicIndexSave:
|
|
999
1036
|
"""`_save` must route the index through util.atomic_write_text so a crash
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/boost_skill_cli.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/boost-run-live-agents.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{boost_skill_cli-1.0.259 → boost_skill_cli-1.0.261}/docs/roadmap/items/ci-job-timeout-minutes.md
RENAMED
|
File without changes
|
|
File without changes
|