docsif 0.2.0__tar.gz → 1.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {docsif-0.2.0 → docsif-1.0.1}/.github/workflows/docs.yml +6 -2
- docsif-1.0.1/.gsd/.gitignore +1 -0
- docsif-1.0.1/.gsd/dispatch-isolation-sentinel.json +1 -0
- docsif-1.0.1/.planning/.continue-here.md +80 -0
- docsif-1.0.1/.planning/HANDOFF.json +37 -0
- docsif-1.0.1/.planning/MILESTONES.md +52 -0
- docsif-1.0.1/.planning/PROJECT.md +102 -0
- docsif-1.0.1/.planning/RETROSPECTIVE.md +41 -0
- docsif-1.0.1/.planning/ROADMAP.md +26 -0
- docsif-1.0.1/.planning/STATE.md +204 -0
- docsif-1.0.1/.planning/WINDOWS.md +130 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/codebase/STACK.md +1 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/config.json +3 -2
- docsif-1.0.1/.planning/milestones/v1.0-MILESTONE-AUDIT.md +87 -0
- docsif-0.2.0/.planning/REQUIREMENTS.md → docsif-1.0.1/.planning/milestones/v1.0-REQUIREMENTS.md +60 -45
- docsif-0.2.0/.planning/ROADMAP.md → docsif-1.0.1/.planning/milestones/v1.0-ROADMAP.md +130 -14
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-07-PLAN.md +353 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-07-SUMMARY.md +261 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-08-PLAN.md +267 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-08-SUMMARY.md +349 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-REVIEW-FIX.md +224 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-REVIEW.md +434 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-SECURITY.md +97 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-UAT.md +217 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-VALIDATION.md +97 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/03-VERIFICATION.md +277 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/COVERAGE.md +23 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/03-embedding-vector-search/deferred-items.md +13 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/04-advanced-search-pipeline/04-06-PLAN.md +273 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/04-advanced-search-pipeline/04-06-SUMMARY.md +204 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/04-advanced-search-pipeline/04-REVIEW.md +294 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/04-advanced-search-pipeline/04-SECURITY.md +100 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/04-advanced-search-pipeline/04-UAT.md +140 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/04-advanced-search-pipeline/04-UI-REVIEW.md +73 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-VALIDATION.md +40 -20
- docsif-1.0.1/.planning/milestones/v1.0-phases/04-advanced-search-pipeline/04-VERIFICATION.md +187 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-08-PLAN.md +292 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-08-SUMMARY.md +179 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-09-PLAN.md +261 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-09-SUMMARY.md +199 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-10-PLAN.md +259 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-10-SUMMARY.md +189 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-11-PLAN.md +184 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-11-SUMMARY.md +186 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-12-PLAN.md +212 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-12-SUMMARY.md +169 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-REVIEW-DISPOSITION.md +223 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-REVIEW-FIX.md +91 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-REVIEW.md +110 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-SECURITY.md +118 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-UAT.md +45 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-UI-REVIEW.md +95 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-VALIDATION.md +118 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/05-VERIFICATION.md +245 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/05-agent-context-experience/deferred-items.md +6 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-08-PLAN.md +181 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-08-SUMMARY.md +117 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-09-PLAN.md +138 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-09-SUMMARY.md +105 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-10-PLAN.md +142 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-10-SUMMARY.md +110 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-REVIEW-DISPOSITION.md +99 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-REVIEW.md +214 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-SECURITY.md +58 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-UAT.md +375 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-UI-REVIEW.md +98 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-VALIDATION.md +81 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/06-documentation-audit-refresh/06-VERIFICATION.md +216 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-01-SUMMARY.md +44 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-02-SUMMARY.md +42 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-REVIEW-DISPOSITION.md +68 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-REVIEW.md +139 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-SECURITY.md +67 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-UAT.md +178 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-UI-REVIEW.md +82 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-VALIDATION.md +64 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill/07-VERIFICATION.md +212 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/09-mcp-server-implementation/.continue-here.md +76 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/09-mcp-server-implementation/.gitkeep +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/9-UAT.md +14 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/.gitkeep +1 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-01-PLAN.md +183 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-01-SUMMARY.md +187 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-02-PLAN.md +218 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-02-SUMMARY.md +226 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-03-PLAN.md +179 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-03-SUMMARY.md +197 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-04-PLAN.md +215 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-04-SUMMARY.md +240 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-05-PLAN.md +226 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-05-SUMMARY.md +218 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-06-PLAN.md +221 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-06-SUMMARY.md +220 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-07-PLAN.md +196 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-07-SUMMARY.md +223 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-CONTEXT.md +109 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-DISCUSSION-LOG.md +139 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-PATTERNS.md +167 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-RESEARCH.md +487 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-REVIEW-DELTA-DISPOSITION.md +60 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-REVIEW-DELTA.md +205 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-REVIEW-DISPOSITION.md +128 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-REVIEW.md +223 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-SECURITY.md +60 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-UI-REVIEW.md +71 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-VALIDATION.md +100 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10-raise-pytest-coverage-to-90/10-VERIFICATION.md +242 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/.continue-here.md +66 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/.gitkeep +1 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-01-PLAN.md +224 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-01-SUMMARY.md +210 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-02-PLAN.md +162 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-02-SUMMARY.md +177 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-03-PLAN.md +178 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-03-SUMMARY.md +196 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-04-PLAN.md +208 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-04-SUMMARY.md +167 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-PATTERNS.md +174 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-RESEARCH.md +658 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-REVIEW-DISPOSITION.md +140 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-REVIEW.md +151 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-SECURITY.md +83 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-UI-REVIEW.md +77 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-VALIDATION.md +89 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/10.1-VERIFICATION.md +196 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/COVERAGE.md +3 -0
- docsif-1.0.1/.planning/milestones/v1.0-phases/10.1-address-tech-debt-path-normalization-review-findings-cr-01-c/deferred-items.md +30 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-hc3-fix-g-04-1-snippet-relevance-markdown-li/260905-hc3-PLAN.md +176 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-hc3-fix-g-04-1-snippet-relevance-markdown-li/260905-hc3-SUMMARY.md +118 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-kmv-fix-g-04-2-reranker-load-crash-model-dir/260905-kmv-PLAN.md +152 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-kmv-fix-g-04-2-reranker-load-crash-model-dir/260905-kmv-SUMMARY.md +116 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-sxc-fix-g-04-3-hyde-unreachable-add-create-c/260905-sxc-PLAN.md +126 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-sxc-fix-g-04-3-hyde-unreachable-add-create-c/260905-sxc-SUMMARY.md +100 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-tax-fix-g-04-4-gguf-embed-shape-unwrap-llama/260905-tax-PLAN.md +131 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-tax-fix-g-04-4-gguf-embed-shape-unwrap-llama/260905-tax-SUMMARY.md +192 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260905-tax-fix-g-04-4-gguf-embed-shape-unwrap-llama/deferred-items.md +48 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260910-kps-fix-json-output-emit-via-click-echo-no-w/260910-kps-PLAN.md +135 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260910-kps-fix-json-output-emit-via-click-echo-no-w/260910-kps-SUMMARY.md +106 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-g63-audit-follow-up-fix-deferred-items-doc-f/260914-g63-PLAN.md +176 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-g63-audit-follow-up-fix-deferred-items-doc-f/260914-g63-SUMMARY.md +104 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-v5f-fix-exclude-all-collection-leak-empty-co/260914-v5f-PLAN.md +148 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-v5f-fix-exclude-all-collection-leak-empty-co/260914-v5f-SUMMARY.md +88 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-vyr-rename-distribution-docsif-to-sif-pyproj/260914-vyr-PLAN.md +150 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-vyr-rename-distribution-docsif-to-sif-pyproj/260914-vyr-SUMMARY.md +97 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-wxv-fix-stale-command-references-nonexistent/260914-wxv-PLAN.md +167 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260914-wxv-fix-stale-command-references-nonexistent/260914-wxv-SUMMARY.md +186 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260917-bo2-typing-debt-batch-1-clear-search-rerank-/260917-bo2-PLAN.md +143 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260917-bo2-typing-debt-batch-1-clear-search-rerank-/260917-bo2-SUMMARY.md +96 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260917-dkf-typing-debt-batch-2-clear-indexing-watch/260917-dkf-PLAN.md +204 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260917-dkf-typing-debt-batch-2-clear-indexing-watch/260917-dkf-SUMMARY.md +133 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260917-kav-typing-debt-batch-3-clear-mcp-handlers-p/260917-kav-PLAN.md +197 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/260917-kav-typing-debt-batch-3-clear-mcp-handlers-p/260917-kav-SUMMARY.md +98 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-eev-document-embedding-hardware-device-selec/261105-eev-PLAN.md +155 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-eev-document-embedding-hardware-device-selec/261105-eev-SUMMARY.md +97 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-g1u-fix-05-review-wr-03-and-wr-09-context-ad/261105-g1u-PLAN.md +171 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-g1u-fix-05-review-wr-03-and-wr-09-context-ad/261105-g1u-SUMMARY.md +99 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-g1u-fix-05-review-wr-03-and-wr-09-context-ad/deferred-items.md +19 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-wbj-embed-o-n-bug-src-sif-search-vector-py-2/261105-wbj-PLAN.md +150 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-wbj-embed-o-n-bug-src-sif-search-vector-py-2/261105-wbj-SUMMARY.md +160 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-wwz-vec0-metadata-src-sif-search-vector-py-8/261105-wwz-PLAN.md +127 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261105-wwz-vec0-metadata-src-sif-search-vector-py-8/261105-wwz-SUMMARY.md +214 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261106-u7d-typing-debt-batch-4-clear-all-17-ledgere/261106-u7d-PLAN.md +153 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/261106-u7d-typing-debt-batch-4-clear-all-17-ledgere/261106-u7d-SUMMARY.md +104 -0
- docsif-1.0.1/.planning/milestones/v1.0-quick/README.md +19 -0
- docsif-1.0.1/.planning/state.json +12 -0
- docsif-1.0.1/.planning/tmp/03-contribution-ai-integration.md +140 -0
- docsif-1.0.1/.planning/tmp/03-contribution-assumption-delta.md +57 -0
- docsif-1.0.1/.planning/tmp/03-contribution-schema-gate.md +62 -0
- docsif-1.0.1/.planning/tmp/03-contribution-security.md +1 -0
- docsif-1.0.1/.planning/tmp/03-edge-coverage.json +49 -0
- docsif-1.0.1/.planning/tmp/05-09-tdd/task1-red-raw.txt +21 -0
- docsif-1.0.1/.planning/tmp/05-09-tdd/task1-red-record.json +9 -0
- docsif-1.0.1/.planning/tmp/05-09-tdd/task2-red-raw.txt +20 -0
- docsif-1.0.1/.planning/tmp/05-09-tdd/task2-red-record.json +9 -0
- docsif-1.0.1/.planning/tmp/05-10-red-evidence-task1.json +11 -0
- docsif-1.0.1/.planning/tmp/05-10-red-evidence-task3.json +11 -0
- docsif-1.0.1/.planning/tmp/05-11-decision1.txt +1 -0
- docsif-1.0.1/.planning/tmp/05-11-decision2.txt +1 -0
- docsif-1.0.1/.planning/tmp/05-11-full-suite.txt +191 -0
- docsif-1.0.1/.planning/tmp/05-11-red-console.txt +89 -0
- docsif-1.0.1/.planning/tmp/05-11-red-end.txt +1 -0
- docsif-1.0.1/.planning/tmp/05-11-red-evidence-task1.json +14 -0
- docsif-1.0.1/.planning/tmp/05-11-red-junit.xml +66 -0
- docsif-1.0.1/.planning/tmp/05-11-red-start.txt +1 -0
- docsif-1.0.1/.planning/tmp/10-02-collection.xml +5757 -0
- docsif-1.0.1/.planning/tmp/10-02-final-coverage.txt +475 -0
- docsif-1.0.1/.planning/tmp/10-02-final.xml +5757 -0
- docsif-1.0.1/.planning/tmp/10-02-full-plain.txt +11 -0
- docsif-1.0.1/.planning/tmp/10-02-full-suite.txt +475 -0
- docsif-1.0.1/.planning/tmp/10-02-get.xml +5757 -0
- docsif-1.0.1/.planning/tmp/10-02-main.xml +5757 -0
- docsif-1.0.1/.planning/tmp/10-03-full.xml +5758 -0
- docsif-1.0.1/.planning/tmp/10-03-rerank.xml +5757 -0
- docsif-1.0.1/.planning/tmp/10-03-search-before.xml +5757 -0
- docsif-1.0.1/.planning/tmp/10-03-search.xml +5758 -0
- docsif-1.0.1/.planning/tmp/10-04-cache.xml +5774 -0
- docsif-1.0.1/.planning/tmp/10-04-database.xml +5772 -0
- docsif-1.0.1/.planning/tmp/10-04-full.xml +5774 -0
- docsif-1.0.1/.planning/tmp/10-04-migrations.xml +5772 -0
- docsif-1.0.1/.planning/tmp/10-04-repositories.xml +5758 -0
- docsif-1.0.1/.planning/tmp/10-05-collection.xml +5774 -0
- docsif-1.0.1/.planning/tmp/10-05-context.xml +5774 -0
- docsif-1.0.1/.planning/tmp/10-05-download.xml +5774 -0
- docsif-1.0.1/.planning/tmp/10-05-full.xml +5777 -0
- docsif-1.0.1/.planning/tmp/10-05-logging.xml +5777 -0
- docsif-1.0.1/.planning/tmp/10-05-paths.xml +5777 -0
- docsif-1.0.1/.planning/tmp/10-05-progress.xml +5777 -0
- docsif-1.0.1/.planning/tmp/10-05-text.xml +5777 -0
- docsif-1.0.1/.planning/tmp/10-06-chunker.xml +5778 -0
- docsif-1.0.1/.planning/tmp/10-06-full.xml +5778 -0
- docsif-1.0.1/.planning/tmp/10-06-http.xml +5778 -0
- docsif-1.0.1/.planning/tmp/10-06-parser.xml +5777 -0
- docsif-1.0.1/.planning/tmp/10-06-scanner.xml +5777 -0
- docsif-1.0.1/.planning/tmp/10-06-server.xml +5778 -0
- docsif-1.0.1/.planning/tmp/10-06-stdio-handler-before.xml +5778 -0
- docsif-1.0.1/.planning/tmp/10-07-duration +1 -0
- docsif-1.0.1/.planning/tmp/10-07-start-epoch +1 -0
- docsif-1.0.1/.planning/tmp/10-07-start-time +1 -0
- docsif-1.0.1/.planning/tmp/10-plan-check-collection.xml +6038 -0
- docsif-1.0.1/.planning/tmp/10-plan-check-get.xml +6038 -0
- docsif-1.0.1/.planning/tmp/10-plan-check-http.xml +6038 -0
- docsif-1.0.1/.planning/tmp/10-plan-check-main.xml +6038 -0
- docsif-1.0.1/.planning/tmp/10-plan-check-repositories.xml +6038 -0
- docsif-1.0.1/.planning/tmp/10-plan-check-rerank.xml +6038 -0
- docsif-1.0.1/.planning/tmp/10-plan-check-search.xml +6038 -0
- docsif-1.0.1/.planning/tmp/261105-wwz-probe.py +168 -0
- docsif-0.2.0/docs/configuration.md → docsif-1.0.1/.planning/tmp/cfg-before-fmt.md +25 -20
- docsif-1.0.1/.planning/tmp/cfg-check.md +228 -0
- docsif-1.0.1/.planning/tmp/dec-05-12-a-rationale.txt +1 -0
- docsif-1.0.1/.planning/tmp/dec-05-12-a-summary.txt +1 -0
- docsif-1.0.1/.planning/tmp/docs-work-manifest.json +136 -0
- docsif-1.0.1/.planning/tmp/phase10-current-coverage.txt +181 -0
- docsif-1.0.1/.planning/tmp/phase10-final-command-paths.json +581 -0
- docsif-1.0.1/.planning/tmp/phase10-final-failure-directions.json +315 -0
- docsif-1.0.1/.planning/tmp/phase10-focused-coverage.xml +6038 -0
- docsif-1.0.1/.planning/tmp/phase10-focused-module-probe.txt +96 -0
- docsif-1.0.1/.planning/tmp/phase10-focused-probe.txt +92 -0
- docsif-1.0.1/.planning/tmp/phase10-focused-total-probe.txt +87 -0
- docsif-1.0.1/.planning/tmp/phase10-format-baseline.txt +1 -0
- docsif-1.0.1/.planning/tmp/phase10-openai-forward.txt +87 -0
- docsif-1.0.1/.planning/tmp/phase10-openai-isolated.txt +87 -0
- docsif-1.0.1/.planning/tmp/phase10-openai-reverse.txt +87 -0
- docsif-1.0.1/.planning/tmp/phase10-ruff-baseline.txt +1 -0
- docsif-1.0.1/.planning/tmp/phase10-xml-gate-probe.txt +87 -0
- docsif-1.0.1/.planning/tmp/red-run-05-08.txt +67 -0
- docsif-1.0.1/.planning/tmp/tdd-red-05-12-console.txt +122 -0
- docsif-1.0.1/.planning/tmp/tdd-red-05-12-junit.xml +96 -0
- docsif-1.0.1/.planning/tmp/tdd-red-05-12-record.json +10 -0
- docsif-1.0.1/.planning/tmp/tdd-red-10.1-01-console.txt +268 -0
- docsif-1.0.1/.planning/tmp/tdd-red-10.1-01.json +14 -0
- docsif-1.0.1/.planning/tmp/tdd-red-10.1-01.xml +225 -0
- docsif-1.0.1/.planning/tmp/tdd-red-evidence-05-08-task1.json +11 -0
- docsif-1.0.1/.planning/tmp/verify-cr03/probe/plain.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/CLAUDE.md +16 -17
- {docsif-0.2.0 → docsif-1.0.1}/DESIGN.md +88 -56
- {docsif-0.2.0 → docsif-1.0.1}/INTEGRATION_STATUS.md +1 -1
- {docsif-0.2.0 → docsif-1.0.1}/Makefile +6 -7
- docsif-0.2.0/README.md → docsif-1.0.1/PKG-INFO +130 -12
- docsif-0.2.0/PKG-INFO → docsif-1.0.1/README.md +73 -62
- {docsif-0.2.0 → docsif-1.0.1}/docs/api-reference.md +213 -215
- docsif-1.0.1/docs/architecture.md +629 -0
- {docsif-0.2.0 → docsif-1.0.1}/docs/changelog.md +10 -3
- {docsif-0.2.0 → docsif-1.0.1}/docs/cli-reference.md +21 -24
- docsif-1.0.1/docs/configuration.md +228 -0
- {docsif-0.2.0 → docsif-1.0.1}/docs/contributing.md +73 -5
- {docsif-0.2.0 → docsif-1.0.1}/docs/development.md +155 -36
- {docsif-0.2.0 → docsif-1.0.1}/docs/index.md +2 -2
- {docsif-0.2.0 → docsif-1.0.1}/docs/installation.md +17 -13
- docsif-1.0.1/docs/mcp-server.md +383 -0
- {docsif-0.2.0 → docsif-1.0.1}/docs/migration.md +7 -6
- {docsif-0.2.0 → docsif-1.0.1}/docs/models.md +28 -24
- {docsif-0.2.0 → docsif-1.0.1}/docs/quickstart.md +125 -3
- {docsif-0.2.0 → docsif-1.0.1}/docs/search-algorithms.md +17 -13
- docsif-1.0.1/docs/testing.md +193 -0
- {docsif-0.2.0 → docsif-1.0.1}/example_config.yaml +2 -2
- {docsif-0.2.0 → docsif-1.0.1}/mkdocs.yml +1 -0
- {docsif-0.2.0 → docsif-1.0.1}/pyproject.toml +33 -40
- docsif-1.0.1/scripts/generate_arch_diagram.py +135 -0
- {docsif-0.2.0 → docsif-1.0.1}/scripts/generate_cli_ref.py +122 -71
- {docsif-0.2.0 → docsif-1.0.1}/scripts/generate_config_ref.py +116 -73
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/__init__.py +1 -1
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/_version.py +1 -1
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/cli/__init__.py +1 -1
- docsif-1.0.1/src/sif/cli/commands/bench.py +148 -0
- docsif-1.0.1/src/sif/cli/commands/collection.py +369 -0
- docsif-1.0.1/src/sif/cli/commands/context.py +315 -0
- docsif-1.0.1/src/sif/cli/commands/get.py +247 -0
- docsif-1.0.1/src/sif/cli/commands/index.py +430 -0
- docsif-1.0.1/src/sif/cli/commands/ls.py +67 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/cli/commands/mcp.py +2 -3
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/cli/commands/pull.py +1 -1
- docsif-1.0.1/src/sif/cli/commands/search.py +690 -0
- docsif-1.0.1/src/sif/cli/formatters.py +25 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/cli/main.py +74 -63
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/config/constants.py +1 -1
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/config/settings.py +28 -6
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/core/models.py +16 -4
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/database/connection.py +7 -5
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/database/database.py +8 -4
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/database/migrations.py +53 -8
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/database/repositories.py +61 -14
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/database/repository.py +3 -1
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/database/schema.py +78 -15
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/embedding/cache.py +37 -10
- docsif-1.0.1/src/sif/embedding/embedder.py +597 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/embedding/factory.py +27 -15
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/embedding/manager.py +79 -31
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/embedding/model.py +2 -2
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/indexing/chunker.py +10 -8
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/indexing/indexer.py +26 -14
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/indexing/parser.py +41 -32
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/indexing/scanner.py +2 -2
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/indexing/watcher.py +26 -11
- docsif-1.0.1/src/sif/mcp/README.md +238 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/backend.py +21 -5
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/claude_desktop_config.json +4 -4
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/handlers.py +11 -11
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/protocol.py +29 -29
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/server.py +2 -2
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/transports/http.py +8 -3
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/models/__init__.py +12 -17
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/models/download.py +23 -29
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/models/embedding.py +12 -10
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/benchmark.py +2 -3
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/bm25.py +70 -54
- docsif-1.0.1/src/sif/search/context_attach.py +62 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/expansion.py +1 -1
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/hybrid.py +52 -54
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/rerank.py +57 -17
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/rrf.py +3 -1
- docsif-1.0.1/src/sif/search/snippets.py +217 -0
- docsif-1.0.1/src/sif/search/term_match.py +185 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/vector.py +85 -25
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/utils/__init__.py +1 -3
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/utils/logging.py +2 -2
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/utils/paths.py +30 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/utils/progress.py +6 -6
- docsif-1.0.1/src/sif/utils/text.py +40 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/conftest.py +8 -10
- {docsif-0.2.0 → docsif-1.0.1}/tests/factories.py +6 -7
- docsif-1.0.1/tests/integration/test_embed_idempotency.py +605 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/integration/test_search_pipeline.py +75 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/test_docs.py +27 -8
- {docsif-0.2.0 → docsif-1.0.1}/tests/test_sif_complete.py +71 -70
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/cli/test_bench.py +49 -2
- docsif-1.0.1/tests/unit/cli/test_collection.py +570 -0
- docsif-1.0.1/tests/unit/cli/test_context.py +1040 -0
- docsif-1.0.1/tests/unit/cli/test_database_lifecycle.py +202 -0
- docsif-1.0.1/tests/unit/cli/test_get.py +787 -0
- docsif-1.0.1/tests/unit/cli/test_index.py +571 -0
- docsif-1.0.1/tests/unit/cli/test_main.py +230 -0
- docsif-1.0.1/tests/unit/cli/test_search.py +2066 -0
- docsif-1.0.1/tests/unit/cli/test_status.py +79 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/config/test_settings.py +33 -2
- docsif-1.0.1/tests/unit/core/__init__.py +0 -0
- docsif-1.0.1/tests/unit/core/test_collection_entity.py +237 -0
- docsif-1.0.1/tests/unit/core/test_context.py +196 -0
- docsif-1.0.1/tests/unit/database/__init__.py +1 -0
- docsif-1.0.1/tests/unit/database/test_database.py +194 -0
- docsif-1.0.1/tests/unit/database/test_migrations.py +182 -0
- docsif-1.0.1/tests/unit/database/test_repositories.py +483 -0
- docsif-1.0.1/tests/unit/database/test_schema.py +706 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/db/test_database.py +47 -38
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/db/test_repositories.py +70 -30
- docsif-1.0.1/tests/unit/embedding/test_cache.py +189 -0
- docsif-1.0.1/tests/unit/embedding/test_embedder_impl.py +799 -0
- docsif-1.0.1/tests/unit/embedding/test_factory.py +227 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/embedding/test_manager.py +83 -1
- docsif-1.0.1/tests/unit/embedding/test_openai_embedder.py +428 -0
- docsif-1.0.1/tests/unit/indexing/test_chunker.py +235 -0
- docsif-1.0.1/tests/unit/indexing/test_indexer.py +657 -0
- docsif-1.0.1/tests/unit/indexing/test_parser.py +157 -0
- docsif-1.0.1/tests/unit/indexing/test_parser_checksum.py +70 -0
- docsif-1.0.1/tests/unit/indexing/test_scanner.py +98 -0
- docsif-1.0.1/tests/unit/indexing/test_watcher.py +395 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/inference/test_embedder.py +12 -12
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/inference/test_query_expander.py +4 -4
- docsif-1.0.1/tests/unit/inference/test_reranker.py +784 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/mcp/test_backend.py +99 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/mcp/test_integration.py +91 -6
- docsif-1.0.1/tests/unit/mcp/test_server.py +241 -0
- docsif-1.0.1/tests/unit/mcp/test_transports_http.py +378 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/mcp/test_transports_stdio.py +73 -3
- docsif-1.0.1/tests/unit/models/__init__.py +0 -0
- docsif-1.0.1/tests/unit/models/test_download.py +277 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/search/test_benchmark.py +5 -5
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/search/test_bm25.py +109 -39
- docsif-1.0.1/tests/unit/search/test_collection_filter.py +219 -0
- docsif-1.0.1/tests/unit/search/test_context_attach.py +240 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/search/test_hybrid.py +133 -25
- docsif-1.0.1/tests/unit/search/test_rerank.py +138 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/search/test_rrf.py +95 -28
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/search/test_snippets.py +69 -0
- docsif-1.0.1/tests/unit/search/test_term_match.py +123 -0
- docsif-1.0.1/tests/unit/search/test_vector.py +553 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/test_collection.py +1 -1
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/test_search.py +3 -3
- docsif-1.0.1/tests/unit/utils/__init__.py +0 -0
- docsif-1.0.1/tests/unit/utils/test_logging.py +171 -0
- docsif-1.0.1/tests/unit/utils/test_paths.py +107 -0
- docsif-1.0.1/tests/unit/utils/test_progress.py +93 -0
- docsif-1.0.1/tests/unit/utils/test_text.py +73 -0
- {docsif-0.2.0 → docsif-1.0.1}/uv.lock +602 -1565
- docsif-0.2.0/.planning/.continue-here.md +0 -81
- docsif-0.2.0/.planning/HANDOFF.json +0 -35
- docsif-0.2.0/.planning/PROJECT.md +0 -80
- docsif-0.2.0/.planning/STATE.md +0 -113
- docsif-0.2.0/.planning/phases/03-embedding-vector-search/.continue-here.md +0 -69
- docsif-0.2.0/.planning/phases/03-embedding-vector-search/03-VALIDATION.md +0 -83
- docsif-0.2.0/.planning/phases/04-advanced-search-pipeline/.continue-here.md +0 -81
- docsif-0.2.0/.planning/phases/05-agent-context-experience/.continue-here.md +0 -62
- docsif-0.2.0/.planning/phases/05-agent-context-experience/05-UAT.md +0 -161
- docsif-0.2.0/.planning/phases/05-agent-context-experience/05-VALIDATION.md +0 -80
- docsif-0.2.0/docs/architecture.md +0 -520
- docsif-0.2.0/docs/mcp-server.md +0 -534
- docsif-0.2.0/mypy.ini +0 -95
- docsif-0.2.0/scripts/generate_arch_diagram.py +0 -121
- docsif-0.2.0/src/sif/cli/commands/bench.py +0 -148
- docsif-0.2.0/src/sif/cli/commands/collection.py +0 -360
- docsif-0.2.0/src/sif/cli/commands/context.py +0 -154
- docsif-0.2.0/src/sif/cli/commands/get.py +0 -200
- docsif-0.2.0/src/sif/cli/commands/index.py +0 -294
- docsif-0.2.0/src/sif/cli/commands/ls.py +0 -67
- docsif-0.2.0/src/sif/cli/commands/search.py +0 -574
- docsif-0.2.0/src/sif/cli/config.py +0 -206
- docsif-0.2.0/src/sif/cli/formatters.py +0 -270
- docsif-0.2.0/src/sif/embedding/embedder.py +0 -328
- docsif-0.2.0/src/sif/mcp/README.md +0 -258
- docsif-0.2.0/src/sif/search/snippets.py +0 -130
- docsif-0.2.0/src/sif/utils/text.py +0 -127
- docsif-0.2.0/tests/unit/cli/test_collection.py +0 -267
- docsif-0.2.0/tests/unit/cli/test_context.py +0 -422
- docsif-0.2.0/tests/unit/cli/test_get.py +0 -269
- docsif-0.2.0/tests/unit/cli/test_index.py +0 -232
- docsif-0.2.0/tests/unit/cli/test_search.py +0 -658
- docsif-0.2.0/tests/unit/cli/test_status.py +0 -72
- docsif-0.2.0/tests/unit/database/test_schema.py +0 -216
- docsif-0.2.0/tests/unit/inference/test_reranker.py +0 -459
- docsif-0.2.0/tests/unit/mcp/test_transports_http.py +0 -202
- docsif-0.2.0/tests/unit/search/test_vector.py +0 -289
- {docsif-0.2.0 → docsif-1.0.1}/.gitignore +0 -0
- /docsif-0.2.0/.planning/phases/07-cli-claude-skill/.gitkeep → /docsif-1.0.1/.planning/.gsd-ws-arg +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/E2E-UAT.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/E2E-manual-test-plan.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/codebase/ARCHITECTURE.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/codebase/CONCERNS.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/codebase/CONVENTIONS.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/codebase/INTEGRATIONS.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/codebase/STRUCTURE.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/codebase/TESTING.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/debug/e2e-get-and-stats-bugs.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-03-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-03-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-04-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-05-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-06-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-06-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-PATTERNS.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-VALIDATION.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/01-foundation-fix/01-VERIFICATION.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-03a-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-03a-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-03b-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-03b-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-04-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-05-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-PATTERNS.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-REVIEW.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-VALIDATION.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/02-cli-core-completion/02-VERIFICATION.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-03-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-03-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-04-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-05-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-06-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-06-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-PATTERNS.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/03-embedding-vector-search/03-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-03-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-03-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-04-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-05-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-PATTERNS.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/04-advanced-search-pipeline/04-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-03-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-03-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-04-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-05-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-06-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-06-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-07-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-07-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-PATTERNS.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/05-agent-context-experience/05-SPEC.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/.continue-here.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-03-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-06-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-07-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/06-documentation-audit-refresh/06-SPEC.md +0 -0
- {docsif-0.2.0/.planning/phases/08-project-rename-from-docsift-to-sif → docsif-1.0.1/.planning/milestones/v1.0-phases/07-cli-claude-skill}/.gitkeep +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/07-cli-claude-skill/07-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/07-cli-claude-skill/07-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/07-cli-claude-skill/07-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/07-cli-claude-skill/07-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/07-cli-claude-skill/07-SPEC.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/.continue-here.md +0 -0
- {docsif-0.2.0/.planning/phases/09-mcp-server-implementation → docsif-1.0.1/.planning/milestones/v1.0-phases/08-project-rename-from-docsift-to-sif}/.gitkeep +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-03-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-03-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-04-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-05-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-06-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-06-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-07-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-07-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-08-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-08-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-PATTERNS.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-VALIDATION.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/08-project-rename-from-docsift-to-sif/08-VERIFICATION.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-01-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-01-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-02-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-02-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-03-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-03-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-04-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-04-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-05-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-05-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-06-PLAN.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-06-SUMMARY.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-CONTEXT.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-DISCUSSION-LOG.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-PATTERNS.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-RESEARCH.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-REVIEW-FIX.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-REVIEW.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-SPEC.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-VALIDATION.md +0 -0
- {docsif-0.2.0/.planning/phases → docsif-1.0.1/.planning/milestones/v1.0-phases}/09-mcp-server-implementation/09-VERIFICATION.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/research/ARCHITECTURE.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/research/FEATURES.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/research/PITFALLS.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/research/STACK.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/.planning/research/SUMMARY.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/DELIVERY_REPORT.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/LICENSE +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/MagicMock/mock/4398091296 +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/MagicMock/mock/4419046432 +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/MagicMock/mock/4419497200 +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/MagicMock/mock/4426075504 +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/PROJECT_SUMMARY.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/REFACTOR_REPORT.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/SIDE_BY_SIDE_TEST_REPORT.md +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/examples/quickstart.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/quick_test.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/simple_test.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/cli/commands/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/config/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/core/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/core/collection.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/core/context.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/core/document.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/database/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/embedding/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/indexing/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/cli.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/transports/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/mcp/transports/stdio.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/models/collection.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/models/context.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/models/document.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/models/search.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/src/sif/search/strategy.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/e2e/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/integration/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/cli/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/cli/test_formatters.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/cli/test_ls.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/cli/test_pull.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/db/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/indexing/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/inference/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/mcp/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/tests/unit/search/__init__.py +0 -0
- {docsif-0.2.0 → docsif-1.0.1}/verify_imports.py +0 -0
|
@@ -13,9 +13,13 @@ on:
|
|
|
13
13
|
push:
|
|
14
14
|
branches: [main]
|
|
15
15
|
|
|
16
|
+
permissions:
|
|
17
|
+
contents: read
|
|
18
|
+
|
|
16
19
|
jobs:
|
|
17
20
|
docs-test:
|
|
18
21
|
runs-on: ubuntu-latest
|
|
22
|
+
timeout-minutes: 15
|
|
19
23
|
steps:
|
|
20
24
|
- uses: actions/checkout@v4
|
|
21
25
|
|
|
@@ -29,10 +33,10 @@ jobs:
|
|
|
29
33
|
pip install -e ".[dev]"
|
|
30
34
|
|
|
31
35
|
- name: Run docs tests
|
|
32
|
-
run: pytest tests/test_docs.py -v
|
|
36
|
+
run: pytest tests/test_docs.py -v --no-cov
|
|
33
37
|
|
|
34
38
|
- name: Verify generation scripts work
|
|
35
39
|
run: |
|
|
36
40
|
python scripts/generate_cli_ref.py
|
|
37
41
|
python scripts/generate_config_ref.py
|
|
38
|
-
git diff --exit-code docs/cli-reference.md docs/configuration.md
|
|
42
|
+
git diff --exit-code docs/cli-reference.md docs/configuration.md
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"isolation":"none","harness_flag":null,"phase":null,"plan":null,"written_at":1794012884815}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
context: default
|
|
3
|
+
phase: none
|
|
4
|
+
task: 0
|
|
5
|
+
total_tasks: 0
|
|
6
|
+
status: milestone_shipped
|
|
7
|
+
last_updated: 2026-11-06T23:17:56.807Z
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# BLOCKING CONSTRAINTS — Read Before Anything Else
|
|
11
|
+
|
|
12
|
+
> These are not suggestions. Each constraint below was discovered through failure.
|
|
13
|
+
> Acknowledge each one explicitly before proceeding.
|
|
14
|
+
|
|
15
|
+
- [ ] CONSTRAINT: generator-owned docs are version-sensitive by construction — any change to generator behavior or the libraries they introspect (Click majors, Python minors, pydantic) re-drifts `docs/cli-reference.md`/`configuration.md`; after touching a generator or bumping an introspected dep, ALWAYS run `make docs-generate` and commit the regenerated output before push, or CI's `git diff --exit-code` gate fails.
|
|
16
|
+
|
|
17
|
+
**Do not proceed until the box is checked.**
|
|
18
|
+
|
|
19
|
+
## Critical Anti-Patterns
|
|
20
|
+
|
|
21
|
+
| Pattern | Description | Severity | Prevention Mechanism |
|
|
22
|
+
|---------|-------------|----------|---------------------|
|
|
23
|
+
| Floors-only unpinned deps | CI installs latest deps (Click 8.5 vs local 8.3) and behavior diverged, failing the drift gate; a fresh-install test env also surfaced undeclared pytest-asyncio | advisory | Generator output is now version-normalized; before releases, smoke-test a FRESH venv install (`uv pip install docsif[dev]`) — it catches undeclared/exploded deps the canonical env masks |
|
|
24
|
+
| Post-verification edits re-stale fingerprints | Fixing files covered by an already-verified phase (shared surfaces: get.py, Makefile, docs) invalidates that phase's digest, cascading | advisory | Sequence wide fixes BEFORE verifiers run, or expect one extra regeneration round; check `verification.status` per phase after multi-phase fix sessions |
|
|
25
|
+
|
|
26
|
+
<current_state>
|
|
27
|
+
Milestone v1.0 is SHIPPED and RELEASED. All planning artifacts archived under `.planning/milestones/v1.0-*`; `.planning/phases/` and `.planning/quick/` are empty; ROADMAP collapsed to a shipped-milestone summary; tag `v1.0` pushed; PR #1 (dev→main) open with green CI; **docsif 1.0.0 live on PyPI** (verified installable). No active phase work.
|
|
28
|
+
</current_state>
|
|
29
|
+
|
|
30
|
+
<completed_work>
|
|
31
|
+
|
|
32
|
+
- Milestone v1.0 close: verified_closeout, zero overrides (audit 3/3 resolved, not acknowledged)
|
|
33
|
+
- 4 stale phase verifications regenerated (05/06/07/10.1) — 5 review criticals + 4 verification gaps fixed en route (get.py markup display ×2, generator pipes/version-drift, README command, docs CI `--no-cov`, Mermaid sync, phantom fusion, k1)
|
|
34
|
+
- Version 1.0.0 (6 sites), tag v1.0, archives, MILESTONES.md, RETROSPECTIVE.md
|
|
35
|
+
- Pushed dev (207 commits) + tag; PR #1 created; CI Docs Validation failure diagnosed (Click 8.5 drift) and fixed — green
|
|
36
|
+
- PyPI: published as **docsif 1.0.0** (`sif` taken; user chose their own registered name)
|
|
37
|
+
- numpy≥2: canonical suite (numpy 2.3.5) 1015 green; published wheel on numpy 2.5.4 → CLI smoke + 974/974
|
|
38
|
+
- pytest-asyncio added to dev extras (fresh-env 56-failure root cause)
|
|
39
|
+
</completed_work>
|
|
40
|
+
|
|
41
|
+
<remaining_work>
|
|
42
|
+
|
|
43
|
+
No open phase work. Backlog (all ledgered in archived REVIEW-DISPOSITION files):
|
|
44
|
+
- 10-REVIEW WR-01..10, 10.1 IN-10..13, 07 WR-02/IN-02/03, delta WR-02 (pip constraints)/IN-02
|
|
45
|
+
- Version quadruplication sync mechanism; arch-generator CI wiring; Makefile test-fast echo wording; mcp/cli.py 0% shim; `context remove/prune` confirmation guardrails
|
|
46
|
+
- Human: merge PR #1; optionally `rm -rf ~/.claude/skills/docsift-{get,search}` (stale pre-rename dirs)
|
|
47
|
+
</remaining_work>
|
|
48
|
+
|
|
49
|
+
<decisions_made>
|
|
50
|
+
|
|
51
|
+
- Distribution name `docsif` on PyPI (import/console name stays `sif`)
|
|
52
|
+
- verified_closeout after resolving everything (user principle: resolve, don't acknowledge)
|
|
53
|
+
- Generator outputs normalized version-insensitively rather than pinning CI deps
|
|
54
|
+
- pytest-asyncio fix rides the next release (dev extras don't affect runtime users)
|
|
55
|
+
</decisions_made>
|
|
56
|
+
|
|
57
|
+
<blockers>
|
|
58
|
+
- None
|
|
59
|
+
</blockers>
|
|
60
|
+
|
|
61
|
+
## Required Reading (in order)
|
|
62
|
+
|
|
63
|
+
1. `.planning/MILESTONES.md` — what v1.0 shipped
|
|
64
|
+
2. `.planning/RETROSPECTIVE.md` — patterns/lessons (display-integrity triple precedent, gate discipline)
|
|
65
|
+
3. `.planning/STATE.md` — current position (Awaiting next milestone)
|
|
66
|
+
|
|
67
|
+
## Infrastructure State
|
|
68
|
+
|
|
69
|
+
- Branch `dev` @ d0682ba pushed; PR #1 open (CI green); tag `v1.0` pushed
|
|
70
|
+
- PyPI: docsif 1.0.0 published (pypi.org/project/docsif/1.0.0/) — twine creds in `~/.pypirc` ([pypi] + [testpypi])
|
|
71
|
+
- CI: Docs Validation green (run 42310044731) — triggers on docs/README/cli/config/scripts/test_docs paths
|
|
72
|
+
- Untracked by intent: `.planning/state.json` (runtime contract state), `.planning/tmp/` (transient)
|
|
73
|
+
|
|
74
|
+
<context>
|
|
75
|
+
Session arc: resume → quality gates → ty debt cleared → docs verified → user directed milestone close with "resolve everything" → 4-phase verification regeneration (with real bug fixes surfaced by each round) → clean closeout → push/PR → CI fix → PyPI release (name collision resolved to docsif) → numpy≥2 verification → dev-extras fix. The release is complete; next session starts fresh at milestone planning.
|
|
76
|
+
</context>
|
|
77
|
+
|
|
78
|
+
<next_action>
|
|
79
|
+
Start with: `/gsd-new-milestone` (or merge PR #1 first if handling the release flow manually).
|
|
80
|
+
</next_action>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0",
|
|
3
|
+
"timestamp": "2026-11-06T23:17:56.807Z",
|
|
4
|
+
"phase": null,
|
|
5
|
+
"phase_name": null,
|
|
6
|
+
"phase_dir": null,
|
|
7
|
+
"plan": null,
|
|
8
|
+
"task": null,
|
|
9
|
+
"total_tasks": 0,
|
|
10
|
+
"status": "paused",
|
|
11
|
+
"completed_tasks": [
|
|
12
|
+
{"id": 1, "name": "Milestone v1.0 close — verified_closeout (11/11 phases fresh-verified, 31/31 requirements, zero overrides)", "status": "done", "commit": "b63eca1"},
|
|
13
|
+
{"id": 2, "name": "Four stale-verification regenerations (05/06/07/10.1) incl. 5 review criticals fixed along the way", "status": "done", "commit": "92e0150"},
|
|
14
|
+
{"id": 3, "name": "Version 1.0.0 bump + tag v1.0 + archives (milestones/v1.0-*) + RETROSPECTIVE", "status": "done", "commit": "11b8640"},
|
|
15
|
+
{"id": 4, "name": "Push dev + tag; PR #1 dev→main", "status": "done", "commit": "1115409"},
|
|
16
|
+
{"id": 5, "name": "CI Docs Validation fixed (Click 8.5 vs 8.3 generator divergence normalized) — run 42310044731 green", "status": "done", "commit": "1115409"},
|
|
17
|
+
{"id": 6, "name": "PyPI release: docsif 1.0.0 published (sif name taken; docsif is the project's own registered name)", "status": "done"},
|
|
18
|
+
{"id": 7, "name": "numpy>=2 verification: canonical suite 1015 green on numpy 2.3.5; fresh install of PUBLISHED wheel on numpy 2.5.4 → CLI smoke + 974/974 (torch-only module excluded)", "status": "done", "commit": "d0682ba"},
|
|
19
|
+
{"id": 8, "name": "pytest-asyncio declared in dev extras (fresh-install 56-failure root cause; ships next release)", "status": "done", "commit": "d0682ba"}
|
|
20
|
+
],
|
|
21
|
+
"remaining_tasks": [],
|
|
22
|
+
"blockers": [],
|
|
23
|
+
"async_jobs": [],
|
|
24
|
+
"human_actions_pending": [
|
|
25
|
+
{"action": "Merge PR #1 (dev → main)", "context": "CI green, v1.0 tagged and published; merge completes the release flow", "blocking": false},
|
|
26
|
+
{"action": "Optionally remove stale pre-rename skill dirs: rm -rf ~/.claude/skills/docsift-get ~/.claude/skills/docsift-search", "context": "P07-T05: they teach the nonexistent docsift CLI; repo-side sif-* symlinks are correct. Agent home-dir deletion was permission-blocked by design", "blocking": false}
|
|
27
|
+
],
|
|
28
|
+
"decisions": [
|
|
29
|
+
{"decision": "Distribution name = docsif on PyPI", "rationale": "'sif' taken by an unrelated project; docsif is this account's own registered name (0.1.x-0.2.0). Import name and sif console script unchanged", "phase": "release"},
|
|
30
|
+
{"decision": "verified_closeout with zero overrides", "rationale": "User chose 'resolve everything': UAT gap live-verified, ResourceWarnings fixed (17→0 warnings), mypy ledger resolved, then 4 stale phases regenerated to fresh fingerprints", "phase": "close"},
|
|
31
|
+
{"decision": "CLI-reference generator normalized against Click version drift", "rationale": "CI installs unpinned Click (8.5) vs local 8.3: flag defaults (None vs False) and help indentation diverged, failing the drift gate. cleandoc + flag-default canonicalization make output version-insensitive", "phase": "release"},
|
|
32
|
+
{"decision": "pytest-asyncio added to dev extras rather than republishing 1.0.0", "rationale": "dev extras do not affect runtime installs; the gap only breaks fresh contributor envs; ships with the next version", "phase": "release"}
|
|
33
|
+
],
|
|
34
|
+
"uncommitted_files": ["?? .planning/state.json", "?? .planning/tmp/"],
|
|
35
|
+
"next_action": "/gsd-new-milestone to plan the next version (v1.1 candidates: LLM query expansion backlog item, open review ledgers WR-01..10/IN-10..13, version-sync mechanism, arch-generator CI wiring). Or merge PR #1 first.",
|
|
36
|
+
"context_notes": "Milestone v1.0 fully shipped: 11/11 phases verified-closeout, archived under .planning/milestones/v1.0-*, tag v1.0 pushed, docsif 1.0.0 live on PyPI (verified installable with numpy 2.5 + click 8.5 + latest starlette). Known follow-ups live in the phase REVIEW-DISPOSITION ledgers (now in milestones/v1.0-phases/). KNOWN QUIRKS: STATE.md frontmatter progress fields undercount by tool accounting — body is authoritative, do not hand-fix. Fresh-install dev envs now get pytest-asyncio via extras; torch is only in 'all' extras and tests/unit/inference/test_reranker.py needs it directly (skip with --ignore on minimal envs)."
|
|
37
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Milestones
|
|
2
|
+
|
|
3
|
+
## v1.0 MVP — qmd 功能对等的本地混合搜索引擎 (Shipped: 2026-11-07)
|
|
4
|
+
|
|
5
|
+
**Phases completed:** 11 phases, 68 plans, 112 tasks
|
|
6
|
+
|
|
7
|
+
**Key accomplishments:**
|
|
8
|
+
- Added all missing runtime dependencies to pyproject.toml so `pip install -e .` succeeds and the CLI launches without ModuleNotFoundError.
|
|
9
|
+
- Converted FTS5 virtual tables to external content tables with SQLite triggers, removed stale sqlite_repository.py, and fixed BM5 rowid joins.
|
|
10
|
+
- Fixed inverted checksum logic in index update and removed hardcoded embedding model paths, aligning CLI and embedder defaults with Settings
|
|
11
|
+
- Replaced random/placeholder embedding implementations in the factory with real `sentence-transformers` and `llama-cpp-python` loaders, and unified the `ModelType` enum across modules.
|
|
12
|
+
- Made sqlite-vec a hard requirement for vector search, removed all Python brute-force fallbacks, and rewrote the vsearch CLI to fail fast with clear errors.
|
|
13
|
+
- Implemented `multi-get` command with auto-detection for comma-separated IDs, glob patterns, and single docid/path fallback, plus full unit test coverage.
|
|
14
|
+
- Top-level `docsift ls` command displaying indexed documents as a virtual file tree, with optional collection and subpath filtering
|
|
15
|
+
- Collection update-cmd, include/exclude subcommands, and pre-index shell hook with fail-fast subprocess execution
|
|
16
|
+
- Wired `--all` flag into `search`, `query`, and `vsearch` CLI commands so default searches respect `include_by_default` collection setting.
|
|
17
|
+
- Implemented OpenAIEmbedder with dimension auto-detection, added MODELSCOPE to ModelType, refactored the factory to return Embedder protocol instances, and created unit tests for all backends.
|
|
18
|
+
- Refactored EmbeddingManager to work with the Embedder protocol and added comprehensive unit tests.
|
|
19
|
+
- OpenAIEmbedder(Embedder) with generic OpenAI-compatible endpoint support (api_base → {api_base}/embeddings), per-model dimension auto-detection cached to openai_dim_cache.json with a 7-day TTL and fail-fast SIF_EMBEDDING_DIM mismatch validation, wired through EmbeddingModelFactory — closing the single 03-VERIFICATION VEC-01 gap and delivering both missing Wave-0 test files.
|
|
20
|
+
- Idempotent `sif index embed`: delete-before-insert replaces a re-chunked document's vec0 rows, and a per-document exact-set check skips complete documents unless `--force` — closing UAT gap G-03-3 where 7 runs on a 3-chunk collection left 21 searchable embedding rows returning the document 7 times.
|
|
21
|
+
- Complete
|
|
22
|
+
- QueryExpansion with embedding-based pseudo-relevance feedback returning list[str], and SmartSnippetExtractor scoring sentences by weighted query term frequency.
|
|
23
|
+
- Snippet column in query/search CLI tables fed by transient content fetch and prefix-route snippet coverage.
|
|
24
|
+
- Unified contexts table with SAVEPOINT atomic migration, ContextRepository with context_type filtering, and SearchResult.context_description field preserved through RRF fusion and cross-encoder reranking
|
|
25
|
+
- Attach path context descriptions to all search results via batch query across BM25, vector, hybrid, and pipeline searchers.
|
|
26
|
+
- Shared `_collapse_duplicate_path_rows` helper collapses every same-file spelling into one canonical row on ALL re-add paths (truth 21), and `context list` escapes all Rich table cells so markup-bearing content renders literally (CR-02).
|
|
27
|
+
- escape() on every user-derived string crossing Rich in the search/vsearch/query tables and both explain prints — markup-bearing queries, titles, collection names, and content render literally instead of crashing with rich.errors.MarkupError
|
|
28
|
+
- Bracket-named context targets are now addable — rich.markup.escape at the three confirmation prints (add create, add update, remove) stops the MarkupError that rolled back writes inside the transaction, locked by three machine-validated RED-first regression tests.
|
|
29
|
+
- Auto-generated CLI reference via Click introspection, replacing stale manual documentation with accurate command/argument/option tables for all 32 commands.
|
|
30
|
+
- Auto-generated configuration reference from Pydantic Settings introspection, eliminating 6 phantom fields and documenting 25 real settings with Qwen3 defaults.
|
|
31
|
+
- Complete rewrite of docs/quickstart.md to match current CLI signatures, replacing all broken examples (collection create, add-path, update, search similar, mcp start) with working commands verified against installed package
|
|
32
|
+
- Updated README.md and docs/index.md to reflect current v1.0 features, Qwen3 default models, and correct CLI examples while removing "planned" labels from already-implemented features.
|
|
33
|
+
- Updated four technical docs and created an architecture diagram generator to reflect current implementation after Phases 1-5
|
|
34
|
+
- Renamed Python package directory from `src/docsift/` to `src/sif/` and updated all `pyproject.toml` metadata, scripts, URLs, and tool configs.
|
|
35
|
+
- SIF branding applied to all core constants, package metadata, and CLI entry point with automatic model cache migration from old docsift paths
|
|
36
|
+
- Bulk mechanical rename of all internal imports and string references from `docsift` to `sif` across 54 source files, with zero remaining `from docsift` imports and full compile/import verification.
|
|
37
|
+
- Updated Pydantic Settings env_prefix from "DOCSIFT_" to "SIF_", changed default DB path to "sif.db", and verified all filesystem paths resolve under sif/ directories.
|
|
38
|
+
- All 31 test files migrated from `docsift` to `sif` imports, patch targets, and command references with pytest collecting 388 tests successfully
|
|
39
|
+
- Full quality suite verification of DocSift-to-SIF rename with 377 tests passing, zero rename-related errors, and consistent SIF branding.
|
|
40
|
+
- Deleted the D-01 dead-code cluster and re-baselined coverage from 78% to 81.48% (5320 statements, 985 missed), with 690 tests passing and live CLI imports intact.
|
|
41
|
+
- Raised full-suite line coverage from 81.48% to 85.34% with real-SQLite CLI tests: collection 99.15%, main 86.99%, get 100%, and all D-06 order probes green.
|
|
42
|
+
- Raised full-suite line coverage from 85.34% to 88.57% with deterministic reranker tests and 64 search CLI tests; rerank.py reached 98.60%, search.py 99.44%, and XML now safely escapes machine output.
|
|
43
|
+
- Raised full-suite coverage from 88.57% to 90.89% with real-SQLite database/cache tests; repositories, database, schema, and cache reached 100%, migrations reached 92%, and real SQL exposed and proved fixes for stale FTS rows, lazy stats initialization, and broken migration scripts.
|
|
44
|
+
- Raised full-suite coverage from 90.89% to 93.48% with 78 new behavior tests; all seven target files reached 100%, ModelScope/network/home boundaries remained isolated, and the tests exposed and proved fixes for custom logging formatter and indeterminate Rich progress defects.
|
|
45
|
+
- Raised full-suite coverage from 93.48% to 96.16% with 83 new behavior tests, reached 100% parser/scanner/server/stdio coverage, and fixed chunker non-termination plus MCP session-limit defects exposed by the new edge cases.
|
|
46
|
+
- Rehearsed the 90% gate at TOTAL 96.16% with zero long-tail additions and landed `[tool.coverage.report] fail_under = 90` as the single pyproject coverage config change — the canonical suite now exits 0 only when src/sif line coverage stays at or above 90%.
|
|
47
|
+
- Symlink-alias paths now resolve to indexed documents across sif get/multi-get and MCP get_document via normalize_path-wrapped lookups, get.py owns its Database lifecycle, and the index-vs-disk fallback boundary is documented in the generated CLI reference.
|
|
48
|
+
- Generalized legacy-FTS-trigger detector migrating direct-DELETE triggers to 'delete'-command form with a detection-gated 'rebuild' that purges stale MATCHable entries on the same open
|
|
49
|
+
- W3C XML 1.0 Char-production sanitizer stripping forbidden code points from every `--xml`-bound string, plus context-manager Database ownership for search/query/vsearch with closure regression locks
|
|
50
|
+
- Context-manager Database ownership at all 21 remaining CLI construction sites (6 modules) plus a TrackingDatabase closure harness asserting success- and exception-path closure
|
|
51
|
+
|
|
52
|
+
---
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
# DocSift
|
|
2
|
+
|
|
3
|
+
## What This Is
|
|
4
|
+
|
|
5
|
+
DocSift 是 [qmd](https://github.com/tobi/qmd) 的 Python 重构版本,一个面向个人知识库的**本地混合搜索引擎**。它索引 Markdown 笔记、文档和会议纪要,支持关键词搜索(BM25)、语义向量搜索(Vector Search),以及基于 LLM 的重排序(Rerank)和查询扩展。同时提供 CLI 工具和 MCP(Model Context Protocol)服务器两种使用方式,完全在本地运行,无需外部 API。
|
|
6
|
+
|
|
7
|
+
## Core Value
|
|
8
|
+
|
|
9
|
+
用户可以在自己的笔记和文档库中,用自然语言快速、准确地找到需要的信息——无论关键词是否匹配。
|
|
10
|
+
|
|
11
|
+
## Requirements
|
|
12
|
+
|
|
13
|
+
### Validated
|
|
14
|
+
|
|
15
|
+
- ✓ 集合(Collection)的增删改查 — 现有
|
|
16
|
+
- ✓ 基于文件扫描的文档索引(含 checksum 去重) — 现有
|
|
17
|
+
- ✓ SQLite FTS5 全文搜索(BM25) — 现有
|
|
18
|
+
- ✓ 基础混合搜索(BM25 + Vector + RRF) — 现有
|
|
19
|
+
- ✓ MCP 服务器骨架(stdio + HTTP 双传输) — 现有
|
|
20
|
+
- ✓ 多格式输出(rich table / JSON / CSV / Markdown / XML) — 现有
|
|
21
|
+
- ✓ 文档片段(chunk)和嵌入存储 — 现有
|
|
22
|
+
- ✓ 修复现有 bug 和占位实现(stub):硬编码模型路径、随机 embedding fallback、MCP 连接安全等 — Validated in Phase 01
|
|
23
|
+
- ✓ 依赖声明完整性:补全 `pyproject.toml` 中缺失的运行时依赖 — Validated in Phase 01
|
|
24
|
+
- ✓ 补齐缺失的 CLI 命令:multi-get、ls、update-cmd、pull、bench — Validated in Phase 02/04
|
|
25
|
+
- ✓ 嵌入模型灵活可配置:本地 GGUF(llama-cpp-python)、sentence-transformers、ModelScope,及可选 OpenAI 兼容 API(默认 Qwen3 系列) — Validated in Phase 03
|
|
26
|
+
- ✓ LLM 重排序(Qwen3-Reranker)和查询扩展(SearchPipeline),`query` 搜索质量达标 — Validated in Phase 04/05
|
|
27
|
+
- ✓ 统一 MCP 服务器实现(`src/sif/mcp/`,stdio + Streamable HTTP) — Validated in Phase 09
|
|
28
|
+
- ✓ 上下文描述:path/collection/global 三种作用域,context CLI 全命令集,搜索结果自动附加描述 — Validated in Phase 05(2026-11-06 重新验证 24/24 通过,第五次陈旧验证再生)
|
|
29
|
+
- ✓ 测试覆盖率常驻门禁:TOTAL 96.22%(1011 项测试),`[tool.coverage.report] fail_under = 90` 落地且无任何豁免行 — Validated in Phase 10(2026-11-06 重新验证 35/35 通过,fresh fingerprint)
|
|
30
|
+
- ✓ 技术债收口:symlink/别名路径经 `get`/`multi-get`/MCP `get_document` 解析到已索引文档(DEBT-PN);旧版 FTS 触发器迁移 + 检测门控 rebuild 清除陈旧索引(CR-01);`--xml` 输出恒为良构 XML(CR-02);全部 26 处 CLI Database 构造点上下文管理器持有、异常路径确定性关闭(WR-01) — Validated in Phase 10.1(2026-11-06 重新验证 16/16 通过,fresh fingerprint)
|
|
31
|
+
|
|
32
|
+
### Active
|
|
33
|
+
|
|
34
|
+
(无 — v1.0 全部需求已交付,待 milestone 归档时全面复核)
|
|
35
|
+
|
|
36
|
+
### Out of Scope
|
|
37
|
+
|
|
38
|
+
- 多用户/权限系统 — 本地单用户工具,不需要
|
|
39
|
+
- 实时协作/同步 — 超出 qmd 原有范围
|
|
40
|
+
- Web UI — qmd 也没有,仅 CLI + MCP
|
|
41
|
+
- 非 Markdown 格式的复杂解析(如 PDF、Word)—— 先聚焦文本和代码文件
|
|
42
|
+
|
|
43
|
+
## Context
|
|
44
|
+
|
|
45
|
+
- 原始项目 qmd 使用 TypeScript / Bun 开发,依赖 `node-llama-cpp` 加载 GGUF 模型进行本地 embedding 和 rerank。
|
|
46
|
+
- 当前 docsift 代码库已完成大部分核心架构(分层设计、Repository 模式、插件化 Chunker / Searcher),但存在多处 stub、bug 和未实现的 CLI 命令。
|
|
47
|
+
- 目标是**功能对等**的 Python 版本,同时改进架构(更好的模块化、可测试性)。
|
|
48
|
+
- 需要保持与 qmd 的 CLI 命令和 MCP 工具接口兼容,方便现有用户迁移。
|
|
49
|
+
|
|
50
|
+
## Constraints
|
|
51
|
+
|
|
52
|
+
- **Tech Stack**: Python 3.10+、SQLite(FTS5 + 可选 sqlite-vec)、Click CLI、Pydantic Settings
|
|
53
|
+
- **Local-First**: 默认所有模型本地运行,不依赖外部 API;API 调用仅作为可选配置
|
|
54
|
+
- **Compatibility**: CLI 接口和 MCP Tool Schema 尽量与 qmd 保持一致
|
|
55
|
+
- **Build**: hatchling 构建后端,pytest 测试(常驻 fail_under=90 覆盖率门禁)
|
|
56
|
+
- **Type checking**: ty 为唯一类型检查器(mypy 已于 2026-11-06 退役,`ty check src/sif` 0 诊断)
|
|
57
|
+
|
|
58
|
+
## Key Decisions
|
|
59
|
+
|
|
60
|
+
| Decision | Rationale | Outcome |
|
|
61
|
+
|----------|-----------|---------|
|
|
62
|
+
| 远端维度探测 probe-free,缓存键 `base_url::model_name` | 避免对远端后端产生计费探测请求 | Phase 03 Complete |
|
|
63
|
+
| 上下文规范化:写入时存 `normalize_path` 规范形,读取时双侧重规范化匹配,显式 re-add 时合并旧 verbatim 行;永不批量回填迁移 | realpath 不可逆,SQL 预过滤永远无法匹配 verbatim 旧数据行(05-08/05-09,WR-01/WR-02/CR-02 根因) | Phase 05 Complete |
|
|
64
|
+
| 完全复刻 qmd 功能 | 用户明确要求功能对等 | — Complete (v1.0) |
|
|
65
|
+
| 本地模型 + API 切换双支持 | 提升灵活性和可访问性 | — Complete (v1.0) |
|
|
66
|
+
| 优先修复 bug/stub,再补 CLI,再做 rerank/MCP | 先让现有代码可用,再扩展功能 | Phase 01 Complete |
|
|
67
|
+
| 向量库幂等:re-chunk 事务内 delete-before-insert + 精确 chunk-id 集合跳过,`--force` 才全量重嵌 | G-03-3:重复 embed 不再产生孤儿向量/重复计费 | Phase 03 Complete (UAT 7/7) |
|
|
68
|
+
| embed_cmd 每集合一个事务,失败报告在事务外抛出 | CR-02:单集合失败不回滚已成功集合、退出码如实非零 | Phase 03 Complete (live-verified) |
|
|
69
|
+
| 覆盖率门禁 `fail_under = 90` 最后落地(D-04),禁用 exclude_lines / cov-branch / pragma 豁免 | 门禁不可绕过;覆盖率成为永久回归约束,只增不减 | Phase 10 Complete (96.22%, 1011 tests) |
|
|
70
|
+
| DEBT-PN 查找顺序(OQ2):精确路径仅规范化形查找;ID/裸文件名保持原始;glob 原始优先、规范化兜底 | realpath 不可逆前提下最小惊讶:别名路径可命中,手迁移相对模式行不破坏 | Phase 10.1 Complete |
|
|
71
|
+
| FTS 迁移检测门控 `VALUES('rebuild')`(OQ1):仅当检出旧版 direct-DELETE 触发器才重建索引,永不用 needs_rebuild_* 做门 | 修复状态而非仅机制:清除坏触发器时期的孤儿索引项;新库/已迁移库零开销 | Phase 10.1 Complete |
|
|
72
|
+
| CLI Database 生命周期:`with Database(index_path) as db:` 自 init_schema 起持有命令体,嵌套事务块原样保留 | 成功与异常路径都确定性关闭连接(57→13 ResourceWarnings,余量测试侧);main.py 作用域置于 try/except 内部保证异常先关句柄 | Phase 10.1 Complete |
|
|
73
|
+
| XML 输出净化器 = XML 1.0 Char 产生式补集,先于 `xml_escape`/`quoteattr` 应用 | 转义只管 `<>&'"`,禁用码位归净化器管——两者不可互相替代;`ET.fromstring` 往返测试锁定 | Phase 10.1 Complete |
|
|
74
|
+
| mypy 退役,ty 为唯一类型检查器 | 17 条 ty 诊断清零(断言收窄/Protocol/cast,零行为变化),全部 mypy 残留清除;typing-debt 四批次收官 | v1.0 Complete |
|
|
75
|
+
| 文档内容永不作为 Rich markup 渲染 | get/multi-get 内容 `markup=False` 直出、表头 `escape()`——与 05-10/05-11 同类第三例;回归测试锁定(字面渲染、批次不中断、回退路径同等契约) | v1.0 Complete |
|
|
76
|
+
| docs 局部套件 `--no-cov` | 全局 `addopts` 覆盖率 + `fail_under=90` 使 docs-only 运行必失败(CI 自 Phase 10 起恒红);Makefile 与 docs.yml 双修 | v1.0 Complete |
|
|
77
|
+
|
|
78
|
+
## Context(v1.0 shipped 2026-11-07)
|
|
79
|
+
|
|
80
|
+
- 版本 1.0.0;692 commits(2026-04-14 → 2026-11-07);src 12.5K 行 / tests 23.1K 行
|
|
81
|
+
- 质量门禁:pytest 1015 passed @ 96.20%(fail_under=90 常驻、零豁免行)、ruff/format/ty 全绿
|
|
82
|
+
- 里程碑收尾时全量文档事实核验:512 条声明 0 失败;四个陈旧验证全部再生(05/06/07/10.1)
|
|
83
|
+
|
|
84
|
+
## Evolution
|
|
85
|
+
|
|
86
|
+
This document evolves at phase transitions and milestone boundaries.
|
|
87
|
+
|
|
88
|
+
**After each phase transition** (via `/gsd-transition`):
|
|
89
|
+
1. Requirements invalidated? → Move to Out of Scope with reason
|
|
90
|
+
2. Requirements validated? → Move to Validated with phase reference
|
|
91
|
+
3. New requirements emerged? → Add to Active
|
|
92
|
+
4. Decisions to log? → Add to Key Decisions
|
|
93
|
+
5. "What This Is" still accurate? → Update if drifted
|
|
94
|
+
|
|
95
|
+
**After each milestone** (via `/gsd-complete-milestone`):
|
|
96
|
+
1. Full review of all sections
|
|
97
|
+
2. Core Value check — still the right priority?
|
|
98
|
+
3. Audit Out of Scope — reasons still valid?
|
|
99
|
+
4. Update Context with current state
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
*Last updated: 2026-11-07 after v1.0 milestone(11/11 阶段、68/68 计划全部交付并持新鲜验证;里程碑审计 tech_debt 项全部在收尾前解决:路径规范化、CR-01/02、WR-01、docs CI、ty 清零、get 显示完整性、需求追溯 31/31)*
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Project Retrospective
|
|
2
|
+
|
|
3
|
+
*A living document updated after each milestone. Lessons feed forward into future planning.*
|
|
4
|
+
|
|
5
|
+
## Milestone: v1.0 — MVP(qmd 功能对等的本地混合搜索引擎)
|
|
6
|
+
|
|
7
|
+
**Shipped:** 2026-11-07
|
|
8
|
+
**Phases:** 11 | **Plans:** 68 | **Tasks:** 112 | **Quick tasks:** 18
|
|
9
|
+
|
|
10
|
+
### What Was Built
|
|
11
|
+
- 可信的本地混合搜索引擎:BM25(FTS5 外部内容表 + 触发器同步)+ 向量(sqlite-vec,fail-fast)+ RRF 融合 + Qwen3 重排序/查询扩展,Click CLI 与 MCP 服务器(stdio + Streamable HTTP)双入口
|
|
12
|
+
- 可配置嵌入后端:sentence-transformers / GGUF(llama-cpp) / ModelScope / OpenAI 兼容(默认 Qwen3 系列,维度守护 + 缓存探测)
|
|
13
|
+
- 上下文系统(path/collection/global 三作用域)与路径规范化(别名解析、写入规范化、读取双侧匹配)
|
|
14
|
+
- 质量基线:1015 测试 @ 96.20%,`fail_under=90` 常驻门禁、零豁免行;ty 唯一类型检查器 0 诊断;docs 事实核验 512 声明 0 失败;CI 漂移门禁
|
|
15
|
+
|
|
16
|
+
### What Worked
|
|
17
|
+
- SDD 分层 + Repository/Protocol/Factory 模式让 11 个阶段可以在几乎无回归的情况下持续插入(05/07/08/09/10/10.1 均为后插)
|
|
18
|
+
- 质量门禁前置:fail_under=90 落地后,后续所有维护(ty 清债、get 修复、文档刷新)都套件全绿通过,零回归逃逸
|
|
19
|
+
- stale-verification 再生机制虽繁琐但可靠:四阶段(05/06/07/10.1)全部翻新,级联失效(06/07 被 10 的修复再度弄陈旧)也被指纹机制如实捕获
|
|
20
|
+
- 代码评审在里程碑收尾抓出 5 个真实 Critical(README 坏命令、生成器管道转义、版本依赖输出、get 内容 markup、表头 markup)——全部实测复现后修复
|
|
21
|
+
|
|
22
|
+
### What Was Inefficient
|
|
23
|
+
- 显示层 markup 完整性修了三次(05-10/05-11 context 表格、10.1 XML、v1.0 收尾 get 内容+表头)——同类缺陷应一次性全库扫清,而非每阶段撞一次
|
|
24
|
+
- docs CI 自 Phase 10 落地 fail_under 后恒红,直到里程碑收尾才被发现——门禁变更应立即跑一遍受影响的局部套件
|
|
25
|
+
- 版本号散布 6 处无同步机制(评审 WR-03,仍开放)
|
|
26
|
+
- 验证指纹的级联陈旧(修 A 阶段文件弄陈旧 B 阶段)在交叉覆盖集下产生两轮额外再生
|
|
27
|
+
|
|
28
|
+
### Patterns Established
|
|
29
|
+
- 用户内容永不经 Rich markup 渲染:内容 `markup=False`、表头 `escape()`、机器输出 XML 1.0 净化器——三例同构,已有回归测试锁定
|
|
30
|
+
- 生成器拥有的文档(cli-reference/configuration)只改生成器源 + `make docs-generate`,CI 漂移门禁兜底
|
|
31
|
+
- 测试侧也守资源契约:`contextlib.closing` 包裹裸 sqlite3 连接(全库 0 warning)
|
|
32
|
+
- optional 导入 None 回退是刻意的测试补丁目标:类型收窄在使用点(assert),不重构导入
|
|
33
|
+
|
|
34
|
+
### Key Lessons
|
|
35
|
+
1. 覆盖率门禁 + 零豁免一旦落地,后续一切维护的回归成本趋近于零——值得在 v1.x 前置
|
|
36
|
+
2. 跨阶段共享文件(显示层、CI、Makefile)的修复要按缺陷类全库横扫,不要按阶段纵切
|
|
37
|
+
3. 里程碑收尾时"审计→resolve 全部→验证全 fresh→归档"的顺序是对的:audit-open 的三项全部真修(CR-03 实测、ResourceWarning 清零、mypy 销账),不留 acknowledge
|
|
38
|
+
|
|
39
|
+
### Cost Observations
|
|
40
|
+
- 692 commits / 207 天(2026-04-14 → 2026-11-07);src 12.5K 行、tests 23.1K 行(测试:源 ≈ 1.8:1)
|
|
41
|
+
- 里程碑收尾日单会话完成:ty 清债 quick task、文档全量核验、版本 1.0.0、四阶段验证再生、5 个 Critical 修复、归档
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# DocSift Roadmap
|
|
2
|
+
|
|
3
|
+
## Milestones
|
|
4
|
+
|
|
5
|
+
- ✅ **v1.0 MVP — qmd 功能对等的本地混合搜索引擎** — Phases 1-10.1 (shipped 2026-11-07)
|
|
6
|
+
|
|
7
|
+
## Phases
|
|
8
|
+
|
|
9
|
+
<details>
|
|
10
|
+
<summary>✅ v1.0 MVP (Phases 1-10.1) — SHIPPED 2026-11-07</summary>
|
|
11
|
+
|
|
12
|
+
- [x] Phase 1: Foundation Fix (6/6 plans) — completed 2026-04-14
|
|
13
|
+
- [x] Phase 2: CLI Core Completion (6/6 plans) — completed 2026-04-15
|
|
14
|
+
- [x] Phase 3: Embedding & Vector Search (8/8 plans) — completed 2026-04-16
|
|
15
|
+
- [x] Phase 4: Advanced Search Pipeline (8/8 plans) — completed 2026-04-17
|
|
16
|
+
- [x] Phase 5: Agent Context Experience (12/12 plans) — completed 2026-09-07
|
|
17
|
+
- [x] Phase 6: Documentation Audit & Refresh (10/10 plans) — completed 2026-04-18
|
|
18
|
+
- [x] Phase 7: CLI Claude Skill (2/2 plans) — completed 2026-04-20
|
|
19
|
+
- [x] Phase 8: Project rename DocSift → SIF (8/8 plans) — completed 2026-04-27
|
|
20
|
+
- [x] Phase 9: MCP Server Implementation (6/6 plans) — completed 2026-05-12
|
|
21
|
+
- [x] Phase 10: Raise pytest coverage to 90% (7/7 plans) — completed 2026-11-06
|
|
22
|
+
- [x] Phase 10.1: Tech debt — path normalization + CR-01/CR-02/WR-01 (4/4 plans) — completed 2026-11-06
|
|
23
|
+
|
|
24
|
+
Full detail: `.planning/milestones/v1.0-ROADMAP.md`
|
|
25
|
+
|
|
26
|
+
</details>
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
gsd_state_version: "1.0"
|
|
3
|
+
milestone: v1.0
|
|
4
|
+
status: Awaiting next milestone
|
|
5
|
+
stopped_at: Phase 10.1 complete — all phases complete
|
|
6
|
+
last_updated: "2026-11-07T03:06:23.417Z"
|
|
7
|
+
last_activity: 2026-11-07
|
|
8
|
+
last_activity_desc: Milestone v1.0 completed and archived
|
|
9
|
+
state_head: c4088cafedd12250e7309ac7eb5768d4e049e138
|
|
10
|
+
progress:
|
|
11
|
+
total_phases: 11
|
|
12
|
+
completed_phases: 11
|
|
13
|
+
total_plans: 68
|
|
14
|
+
completed_plans: 68
|
|
15
|
+
milestone_name: milestone
|
|
16
|
+
current_phase: 10
|
|
17
|
+
current_phase_name: "Address tech debt: path normalization + review findings CR-01/CR-02/WR-01 (INSERTED)"
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# DocSift — Project State
|
|
21
|
+
|
|
22
|
+
## Project Reference
|
|
23
|
+
|
|
24
|
+
- **Name:** DocSift
|
|
25
|
+
- **Core Value:** 用户可以在自己的笔记和文档库中,用自然语言快速、准确地找到需要的信息——无论关键词是否匹配。
|
|
26
|
+
- **Current Focus:** Milestone v1.0 complete (all 11 phases; 10.1 verification regenerated 2026-11-06, 16/16, fresh fingerprint) — ready for milestone close/archive.
|
|
27
|
+
- **Tech Stack:** Python 3.10+, SQLite (FTS5 + sqlite-vec), Click, Pydantic, sentence-transformers, llama-cpp-python
|
|
28
|
+
|
|
29
|
+
## Current Position
|
|
30
|
+
|
|
31
|
+
Phase: Milestone v1.0 complete
|
|
32
|
+
Plan: —
|
|
33
|
+
Status: Awaiting next milestone
|
|
34
|
+
Last activity: 2026-11-07 - Completed quick task 261107-f5t: Bump version to 1.0.1 (release docsif 1.0.1: typo fixes + parser checksum fix since v1.0)
|
|
35
|
+
|
|
36
|
+
## Phase History
|
|
37
|
+
|
|
38
|
+
| Phase | Date Started | Date Completed | Outcome |
|
|
39
|
+
|-------|--------------|----------------|---------|
|
|
40
|
+
| 01–04 — Foundation / CLI / Embedding / Pipeline | 2026-04-14 | 2026-04-17 | All 23 plans passed across four phases; trustworthy core, full CLI surface, configurable embeddings, complete search pipeline. |
|
|
41
|
+
| 05 — Agent Context Experience | 2026-04-18 | 2026-09-07 | 9/9 plans passed incl. 05-08 read-side + 05-09 write/prune normalization gap closures. Qwen3 models default. |
|
|
42
|
+
| 06 — Documentation Audit & Refresh | 2026-04-18 | 2026-04-18 | All 7 plans passed. Auto-generated CLI/config references, docs code block validator (12 tests), Makefile target, GitHub Actions CI workflow. |
|
|
43
|
+
| 07 — CLI Claude Skill | 2026-04-20 | 2026-05-30 | 2/2 plans passed. sif-search and sif-get skills created, symlinked to ~/.claude/skills/. |
|
|
44
|
+
| 08 — Project rename from DocSift to SIF | 2026-04-27 | 2026-04-27 | 8/8 plans passed. Complete rename of package, CLI, env vars, docs, tests, and skills. |
|
|
45
|
+
| 09 — MCP Server Implementation | 2026-05-12 | 2026-05-12 | 6/6 plans passed. Unified MCP package, SearchBackend, 4 tool handlers, stdio/HTTP transports, integration tests. 86% MCP coverage. |
|
|
46
|
+
|
|
47
|
+
## Performance Metrics
|
|
48
|
+
|
|
49
|
+
- **Requirements mapped:** 31/31 v1 + 7 DOC requirements
|
|
50
|
+
- **Phases defined:** 10
|
|
51
|
+
- **Tests passing:** 1011 passed, 0 failed (post 10.1 + phase-10 regeneration, fail_under=90 active)
|
|
52
|
+
- **Known blockers:** 0
|
|
53
|
+
|
|
54
|
+
**Per-Plan Metrics:**
|
|
55
|
+
|
|
56
|
+
| Plan | Duration | Tasks | Files |
|
|
57
|
+
|------|----------|-------|-------|
|
|
58
|
+
| Phase 05 P08 | 17min | 2 tasks | 9 files |
|
|
59
|
+
| Phase 05 P09 | 12min | 2 tasks | 5 files |
|
|
60
|
+
| Phase 10 P01 | 6min | 2 tasks | 5 files |
|
|
61
|
+
| Phase 10 P02 | 13min | 3 tasks | 3 files |
|
|
62
|
+
| Phase 10 P03 | 19min | 2 tasks | 4 files |
|
|
63
|
+
| Phase 10 P04 | 30min | 3 tasks | 10 files |
|
|
64
|
+
| Phase 10 P05 | 11min | 3 tasks | 12 files |
|
|
65
|
+
| Phase 10 P06 | 20min | 3 tasks | 9 files |
|
|
66
|
+
| Phase 10 P07 | 198s | 2 tasks | 1 files |
|
|
67
|
+
| Phase 10.1 P01 | 13min | 2 tasks | 6 files |
|
|
68
|
+
| Phase 10.1 P02 | 9min | 2 tasks | 2 files |
|
|
69
|
+
| Phase 10.1 P03 | 13min | 3 tasks | 2 files |
|
|
70
|
+
| Phase 10.1 P04 | 16min | 3 tasks | 8 files |
|
|
71
|
+
| Phase 05 P10 | 8min | 3 tasks | 2 files |
|
|
72
|
+
| Phase 05 P11 | 12min | 2 tasks | 2 files |
|
|
73
|
+
| Phase 05 P12 | 8min | 2 tasks | 2 files |
|
|
74
|
+
|
|
75
|
+
## Accumulated Context
|
|
76
|
+
|
|
77
|
+
### Decisions
|
|
78
|
+
|
|
79
|
+
- ✓ D-01: FTS5 synchronization uses SQLite triggers on external content tables
|
|
80
|
+
- ✓ D-02: `sqlite_repository.py` deleted, all access consolidated into `repositories.py`
|
|
81
|
+
- ✓ D-03: Vector search fails fast with `RuntimeError` when sqlite-vec is unavailable
|
|
82
|
+
- ✓ D-04: MCP server uses connection-per-request via `DatabaseConnection`
|
|
83
|
+
- ✓ D-05: Heavy ML libraries remain optional extras in `pyproject.toml`
|
|
84
|
+
- [Phase 03 gap closure]: Vector store idempotency = delete-before-insert in the re-chunk transaction + exact chunk-id-set skip; `--force` re-embeds all (G-03-3)
|
|
85
|
+
- [Phase 03 gap closure]: embed_cmd uses one transaction per collection; failure report raised outside transactions (CR-02)
|
|
86
|
+
- [Phase 03 gap closure]: Remote dimension is probe-free at load; dim cache keyed `base_url::model_name` (WR-02/03-07)
|
|
87
|
+
- [Phase 03 gap closure]: Text egress strictly opt-in — OpenAIEmbedder reachable only via explicit `model_type=openai` (P-1, UAT-verified by egress audit)
|
|
88
|
+
- [Phase 09]: Unified `src/sif/mcp/` package replacing dual legacy/refactored implementations
|
|
89
|
+
- [Phase 09]: ToolHandler ABC pattern with async `handle(params, backend)` signature
|
|
90
|
+
- [Phase 09]: SearchBackend with `asyncio.to_thread()` wrapper over sync sqlite3
|
|
91
|
+
- [Phase 09]: Streamable HTTP (2025-11-25) — single `/mcp` endpoint, POST/GET, session-aware
|
|
92
|
+
- [Phase 09]: CORS defaults non-wildcard: `["http://localhost:3000", "http://127.0.0.1:3000"]`
|
|
93
|
+
- [Phase 02]: Mock index_path.exists on the mock object rather than patching Path.exists in ls.py, since ls.py does not import Path directly
|
|
94
|
+
- [Phase 02-cli-core-completion]: D-01 priority preserved: comma-separated detection takes precedence over glob detection in multi-get
|
|
95
|
+
- [Phase 02-cli-core-completion]: Refactored pull_cmd into helper functions to keep mccabe complexity under 10
|
|
96
|
+
- [Phase 02-cli-core-completion]: Used module-level optional imports with None fallback so patch targets exist for tests
|
|
97
|
+
- [Phase 04]: Mock optional dependencies (`llama_cpp`, `sentence_transformers`) via `sys.modules` injection before import in tests
|
|
98
|
+
- [Phase 04]: Patch `llama_cpp.Llama` and `sentence_transformers.CrossEncoder` at module level, not inside `docsift.search.rerank`
|
|
99
|
+
- [Phase 04]: BM25Searcher tests use MagicMock sqlite3 connections with `fetchall.return_value` for row data
|
|
100
|
+
- [Phase 04]: `include_highlights=False` required in basic BM25Searcher tests to avoid extra mock DB calls
|
|
101
|
+
- [Phase 05-gap-closure]: Used callable default for `--index` option (Click supports callable defaults) to allow dynamic resolution via Settings
|
|
102
|
+
- [Phase 05-gap-closure]: Normalized paths with `os.path.realpath()` in all three searchers due to macOS `/tmp` → `/private/tmp` resolution
|
|
103
|
+
- [Phase 05-model-update]: Default embedding model switched from `all-MiniLM-L6-v2` (384 dim) to `Qwen/Qwen3-Embedding-0.6B` (1024 dim)
|
|
104
|
+
- [Phase 05-model-update]: Default reranker switched from `cross-encoder/ms-marco-MiniLM-L-6-v2` to `Qwen/Qwen3-Reranker-0.6B` (transformers backend)
|
|
105
|
+
- [Phase 05-model-update]: Added `modelscope` model_type to `EmbeddingConfig.ModelType` and `_create_modelscope_model` to factory
|
|
106
|
+
- [Phase 05-model-update]: Added `Qwen3Reranker` class for transformers-based reranking with yes/no logits scoring
|
|
107
|
+
- [Phase 06-discuss]: CLI reference auto-generated via Python script traversing Click command tree (`scripts/generate_cli_ref.py`)
|
|
108
|
+
- [Phase 06-discuss]: Code block validation: fence-tag based classification (bash → execute, json/python → syntax check, text → skip)
|
|
109
|
+
- [Phase 06-discuss]: Blacklist for long-running commands (mcp start, pip install, etc.) in docs tests
|
|
110
|
+
- [Phase 06-discuss]: Docs tests use pytest fixture with temp DB + minimal test data, CliRunner primary + subprocess secondary
|
|
111
|
+
- [Phase 06-discuss]: Technical docs validated via AST parsing: extract public API from code, verify against documented names
|
|
112
|
+
- [Phase 06-discuss]: Architecture diagram strategy: keep ASCII in README (manual), generate Mermaid in architecture.md (scripted)
|
|
113
|
+
- [Phase 09]: [Phase 03-07]: OpenAI-compatible endpoints addressed via OpenAI(api_key, base_url) — SDK appends /embeddings; api_base=None uses SDK default (D-04)
|
|
114
|
+
- [Phase 09]: [Phase 03-07]: Dimension source of truth is the API — one minimal probe cached per model to openai_dim_cache.json with 7-day TTL; corrupt/missing cache degrades to probe, never crashes load (D-05)
|
|
115
|
+
- [Phase 09]: [Phase 03-07]: Configured embedding_dim disagreeing with API-detected dimension fails fast at load naming both values + SIF_EMBEDDING_DIM (extends D-09 fail-fast philosophy)
|
|
116
|
+
- [Phase 09]: [Phase 03-07]: api_key passes only to the OpenAI client constructor — never logged, interpolated, or embedded in exceptions (threat T-03-01)
|
|
117
|
+
- [Phase 09]: [Phase 03-07]: Factory honest signatures -> Embedder / **kwargs: Any completed the refactor plan 03-02 promised (03-REVIEW WR-01/WR-02)
|
|
118
|
+
- [Phase 04 UAT]: Shared stem-tolerant term matcher (src/sif/search/term_match.py): word-boundary + light-stem for ASCII, substring + per-char fallback for CJK — used by both SmartSnippetExtractor and BM25 highlights
|
|
119
|
+
- [Phase 04 UAT]: Snippets are line-aware: windows center on the matched line (heading/table row/code line), structural lines never anchor
|
|
120
|
+
- [Phase 04 UAT]: Reranker model dirs resolve by config qualification (config.json with model_type, root before aux subdirs like Qwen3-Reranker's 1_LogitScore)
|
|
121
|
+
- [Phase 04 UAT]: LlamaCppEmbedder owns generation (create_completion) + shape-aware embed (unwrap list-of-embeddings, mean-pool token-level); HyDE reachable end-to-end
|
|
122
|
+
- [Phase 04 UAT deferred]: embedding cache bucket key omits model_path — switching GGUF files under one model_name cross-pollutes cache; include path identity in _cache_model_id
|
|
123
|
+
- [Phase 03]: [Phase 03-08] Idempotent embed via delete-before-insert: chunk_repo.delete_by_document -> VectorSearcher.delete_embeddings_by_document -> add_embeddings_batch in one transaction; probe-free dimension from get_model_info() (isinstance-guarded probe fallback)
|
|
124
|
+
- [Phase 03]: [Phase 03-08] --force honored via exact chunk-id-set equality: _needs_embedding(live, embedded, force) module-level helper; default run skips complete documents with zero embed calls, partial/orphaned states self-heal
|
|
125
|
+
- [Phase 03]: [Phase 03-08] VectorSearcher construction failure in embed_cmd surfaces as click.ClickException (D-03 fail-fast extended to the embed path; never swallowed into failed_collections)
|
|
126
|
+
- [Phase 04]: [Phase 04-06]: Pipeline snippet content fetch is transient — fetched text feeds extraction only, never written into SearchResult.content (CLI-07 --full contract preserved)
|
|
127
|
+
- [Phase 04]: [Phase 04-06]: Snippet table cells wrapped in rich.markup.escape so document bracket sequences render literally (threat T-04-06-02 mitigated)
|
|
128
|
+
- [Phase 04]: [Phase 04-06]: _display_snippet guards snippet and highlights with getattr, falling back to the first BM25 highlight when no snippet exists
|
|
129
|
+
- [Phase 05]: 05-08: read-side re-normalization replaces the raw-string SQL pre-filter in context attachment — one constant-SQL batch query of all path contexts, both sides normalized in Python via normalize_path (realpath is not invertible, so no SQL path pre-filter can ever match a verbatim legacy row; D-06 batch shape preserved)
|
|
130
|
+
- [Phase 05]: 05-08: legacy verbatim context rows match on read — no contexts-table backfill migration; context_description is set only on match so RRF/rerank-carried descriptions are never clobbered; ORDER BY updated_at gives deterministic newest-wins for duplicate-normalizing targets
|
|
131
|
+
- [Phase 05]: 05-09: context add path stores normalize_path(target) canonical form with dual-form upsert — legacy verbatim rows are re-pointed via new ContextRepository.update_target() on explicit re-add; no bulk backfill migration ever runs (re-normalize-on-read + merge-on-re-add closes WR-02/CTX-01)
|
|
132
|
+
- [Phase 05]: 05-09: delete_orphaned_paths compares normalize_path on both sides in a Python set — SQL cannot call realpath so the raw-string NOT IN comparison is gone entirely; count semantics and D-12/D-13 explicit-command contract unchanged (closes CR-02/CTX-02)
|
|
133
|
+
- [Phase 10]: 10-01: Applied D-01 exactly, deleting the approved dead-code cluster while preserving live CLI imports; measured post-deletion coverage at 81.48% (5320 statements, 985 missed).
|
|
134
|
+
- [Phase 10]: 10-01: Kept pyproject.toml free of fail_under and coverage exclusions under D-04; final gate remains reserved for plan 10-07.
|
|
135
|
+
- [Phase 10]: 10-02: D-06 isolated, both-order, and full-suite probes were green; no speculative repair or production change was made.
|
|
136
|
+
- [Phase 10]: 10-02: Real-temp-DB CLI tests raised TOTAL coverage from 81.48% to 85.34%; collection 99.15%, main 86.99%, get 100%.
|
|
137
|
+
- [Phase 10]: 10-03: Used real torch tensor math with constructor/downloader mocks for deterministic Qwen3 yes/no scoring; scoped ML module injection under D-07.
|
|
138
|
+
- [Phase 10]: 10-03: Escaped XML query attributes and result fields so machine output strict-parses markup-sensitive content; search command reached 99.44% coverage.
|
|
139
|
+
- [Phase 10]: 10-04: Real SQLite exposed and repaired stale external-content FTS delete triggers, lazy stats initialization, and multi-statement migration execution; repositories/schema/database/cache reached 100% and migrations 92%.
|
|
140
|
+
- [Phase 10]: 10-05: Used real domain entities with repository Protocol doubles and scoped ModelScope/process-state isolation; all seven target files reached 100%.
|
|
141
|
+
- [Phase 10]: 10-05: Behavior tests exposed and repaired custom logging formatter and indeterminate Rich progress defects; TOTAL coverage reached 93.48%.
|
|
142
|
+
- [Phase 10]: 10-06: Real-file Unicode parsing, exact code-point chunk boundaries, and isolated MCP protocol tests raised TOTAL coverage to 96.16%.
|
|
143
|
+
- [Phase 10]: 10-06: Behavior tests repaired fixed-size chunker forward progress and post-insertion MCP session LRU bounds.
|
|
144
|
+
- [Phase 10]: 10-07: Zero long-tail tests required; Wave-2 combined TOTAL already 96.16% (>=90%). D-05 did not trigger; no candidate test file was modified.
|
|
145
|
+
- [Phase 10]: 10-07: Landed [tool.coverage.report] fail_under=90 LAST per D-04/Pattern 6; no exclude_lines/exclude_also/--cov-branch, no business-logic pragma. Canonical suite green under active gate (958 passed, 96.16%).
|
|
146
|
+
- [Phase 10.1]: DEBT-PN lookup order (OQ2): normalized-only for exact-path lookups; ID-first and bare-filename stay raw; globs raw-first-then-normalized
|
|
147
|
+
- [Phase 10.1]: get/multi-get own Database lifecycle via with Database(index_path) (WR-01, 2 sites); nested with db.connection kept for commit sequencing
|
|
148
|
+
- [Phase 10.1]: DEBT-PN-DOC lands in docstrings + make docs-generate output + sif-get skill note; no separate prose page (OQ3/A5)
|
|
149
|
+
- [Phase 10.1]: 10.1-02: CR-01 closed via generalized _fts_trigger_is_legacy detector (direct-UPDATE FND-06 + direct-DELETE forms) migrating all four FTS sync triggers on create_all()
|
|
150
|
+
- [Phase 10.1]: 10.1-02 OQ1: detection-gated FTS 'rebuild' purges entries orphaned by past broken deletes; gate is legacy detection alone, never needs_rebuild_*; fresh/migrated DBs pay nothing
|
|
151
|
+
- [Phase 10.1]: 10.1-02: migration logic extracted to _drop_legacy_fts_triggers returning legacy-delete booleans (ruff C901 mccabe-10 cap)
|
|
152
|
+
- [Phase 10.1]: 10.1-03: CR-02 closed — sanitizer is the XML 1.0 Char production complement transliterated (strip #x00-#x08/#x0B/#x0C/#x0E-#x1F/surrogates/#xFFFE-#xFFFF; keep tab/LF/CR; never strip #x7F-#x9F), applied BEFORE xml_escape/quoteattr which keep owning <>&'"
|
|
153
|
+
- [Phase 10.1]: 10.1-03: WR-01 search.py — with Database(index_path) covers each command body from init_schema onward; all nine nested with db.connection: transaction blocks preserved
|
|
154
|
+
- [Phase 10.1]: 10.1-03: closure doubles patch the import SOURCE for function-local imports — vsearch_cmd binds Database at call time, so its TrackingDatabase patches sif.database.database.Database; and real-Database doubles need settings.embedding_dim as a real int (init_schema resolves get_settings lazily per call)
|
|
155
|
+
- [Phase 10.1]: 10.1-04: WR-01 closed for six CLI modules (21 sites) — with Database(index_path) ownership wraps each command body from init_schema onward; nested with db.connection/transaction blocks preserved verbatim (57→13 ResourceWarnings, remainder test-side)
|
|
156
|
+
- [Phase 10.1]: 10.1-04: main.py ownership scopes sit INSIDE the existing try/except — exceptions close the Database via __exit__ before the ClickException handler runs
|
|
157
|
+
- [Phase 10.1]: 10.1-04: lifecycle harness asserts non-vacuous closure (every test asserts >=1 TrackingDatabase captured) and covers index update (not index status, which delegates to main's status_cmd and would not exercise index.py's scope)
|
|
158
|
+
- [Phase 05]: 05-10: truth-21 duplicate collapse centralized in _collapse_duplicate_path_rows — shared by exact-match branch, normalized branch, and upsert-hit path; exact-match branch gains the same landed-guard (update_target True before any deletion) as the normalized branch (T-05-16)
|
|
159
|
+
- [Phase 05]: 05-10: CR-02 closed — context list wraps all three Rich table cells in rich.markup.escape AFTER truncation so the 50-char display cap applies to raw text; display-only, stored bytes untouched (mirrors 04-06 snippet precedent)
|
|
160
|
+
- [Phase 05]: 05-11: CR-01 closed — rich.markup.escape at all 12 display sites (3 titles, 3 title cells, 3 collection cells, 3 content appends, 2 explain prints); display-layer only, machine outputs byte-unchanged
|
|
161
|
+
- [Phase 05]: 05-11: escape-after-truncation ordering (truncate raw text, then escape the whole displayed expression incl. ellipsis) — mirrors the 05-10 context-list precedent; tests renamed to *_renders_markup_literally so -k markup_literal selects all five
|
|
162
|
+
- [Phase 05]: 05-12: CR-03 closed — rich.markup.escape wraps display_target at both context add confirmation prints and context_id at the remove print; display-layer only, print placement inside the transaction and stored bytes unchanged (mirrors 05-10/05-11 precedents; 05-10-P3 now HOLDS at all three sites) — Bracket-named targets were permanently unaddable because the MarkupError from the confirmation print rolled back the open transaction; escaping removes the raising path while both write branches stay inside with db.transaction()
|
|
163
|
+
|
|
164
|
+
### Roadmap Evolution
|
|
165
|
+
|
|
166
|
+
- Later-added phases: 07 Claude skills (2026-04-20), 08 rename DocSift→SIF (2026-04-27), 09 MCP server (2026-05-08)
|
|
167
|
+
- Phase 10 added: Raise pytest coverage to 90% (2026-11-05; baseline 78% / 5587 stmts / 1220 missed — lowest: cli/config.py 0%, formatters 29%, collection 44%)
|
|
168
|
+
- Phase 10.1 inserted after Phase 10: Address tech debt: path normalization + review findings CR-01/CR-02/WR-01 (URGENT)
|
|
169
|
+
|
|
170
|
+
### TODOs
|
|
171
|
+
|
|
172
|
+
- [x] Plan Phase 06 documentation audit and refresh — 7 plans created and verified
|
|
173
|
+
- [x] Phase 7: CLI Claude Skill — sif-search and sif-get skills created, symlinked, and committed
|
|
174
|
+
- [ ] (Backlog) Phase 8: LLM-based query expansion — model tested (Qwen3.5-2B), awaiting v1.0 ship
|
|
175
|
+
- [ ] (Backlog) Phase 10 regen code review: 10 warnings open (WR-01..WR-10, 0 critical) — ledger in 10-REVIEW-DISPOSITION.md; candidates for a future debt phase (precedent: 10.1 arose from 10's original review)
|
|
176
|
+
- [ ] (Backlog) Phase 10.1 regen code review: 4 info findings open (IN-10..IN-13: stale test-count claims in docs/testing.md, invalid bare `sif search` in DESIGN.md, discarded `_collapse_duplicate_path_rows` return, duplicated test helpers) — ledger in 10.1-REVIEW-DISPOSITION.md
|
|
177
|
+
|
|
178
|
+
### Blockers
|
|
179
|
+
|
|
180
|
+
- None
|
|
181
|
+
|
|
182
|
+
### Quick Tasks Completed
|
|
183
|
+
|
|
184
|
+
| # | Description | Date | Commit | Directory |
|
|
185
|
+
|---|-------------|------|--------|-----------|
|
|
186
|
+
| 261107-cdh | Fix README.md install typo: docdocsif -> docsif in extras install command | 2026-11-07 | ef8edc2 | [261107-cdh-fix-readme-md-install-typo-docdocsif-doc](./quick/261107-cdh-fix-readme-md-install-typo-docdocsif-doc/) |
|
|
187
|
+
| 261107-f5t | Bump version to 1.0.1 (release docsif 1.0.1: typo fixes + parser checksum fix since v1.0) | 2026-11-07 | c4088ca | [261107-f5t-bump-version-to-1-0-1-release-docsif-1-0](./quick/261107-f5t-bump-version-to-1-0-1-release-docsif-1-0/) |
|
|
188
|
+
|
|
189
|
+
### Overrides
|
|
190
|
+
|
|
191
|
+
- [2026-09-03] Phase 03 decision-coverage gate override (user-approved): D-06/D-07/D-08/D-10 accepted as covered-by-legacy — implemented and behaviorally verified per 03-VERIFICATION.md; legacy plans 03-01…03-06 predate D-ID citation and are read-only in gap-closure mode. Verify-phase should re-surface this.
|
|
192
|
+
|
|
193
|
+
## Session Continuity
|
|
194
|
+
|
|
195
|
+
**Last session:** 2026-11-07 (milestone v1.0 close)
|
|
196
|
+
**Stopped at:** v1.0 shipped and archived — verified_closeout, zero overrides; 11/11 phases fresh-verified, 31/31 requirements, suite 1015 @ 96.20%
|
|
197
|
+
**Resume file:** None
|
|
198
|
+
|
|
199
|
+
- **Last action:** /gsd-complete-milestone v1.0 — four stale verifications regenerated (05/06/07/10.1) with 5 review criticals fixed along the way; archives at .planning/milestones/v1.0-*; tag v1.0.
|
|
200
|
+
- **Next expected action:** `/gsd-new-milestone` — v1.0 已归档,规划下一版本。
|
|
201
|
+
|
|
202
|
+
## Operator Next Steps
|
|
203
|
+
|
|
204
|
+
- Start the next milestone with /gsd-new-milestone
|