Skip to content

feat(install): doctor/clean inventory and text-first default (G6) - #121

Open
ManSio wants to merge 3 commits into
feat/g5-universal-installfrom
goal2-g6
Open

ManSio wants to merge 3 commits into
feat/g5-universal-installfrom
goal2-g6

Conversation

@ManSio

@ManSio ManSio commented Nov 11, 2026 •

Copy link
Copy Markdown
Owner

G6 — гигиена данных и контроль

Стек: goal2-g5 (#G5) → этот PR → goal2-g7 (#G7). Diff относительно goal2-g5.

Что делает

  • install.py --doctor [--json]: python/venv, install root, data root, проектные
    артефакты, число чанков в chunks.db, размеры (os.walk), read-only (каталоги не создаёт).
  • install.py --clean [--dry-run] [--yes] [--json]: удаление по слоям (install root /
    data root / .mscodebase / .codebase_indices / .codebase / .codebase_models),
    guard'ы на исходный чекаут, корень ФС, домашний каталог; exit 1 при остатке
    (файлы, залоченные работающим хостом).
  • Модели opt-in: models_enabled() + --with-models; дефолт text-first, без сети.
    --skip-models/--no-models совместимы.
  • docs/{en,ru,zh}/DATA_MAP.md — карта данных: путь, владелец, назначение, размер, политика.
  • docs/*/INSTALL.md §6/§7 — doctor/clean/uninstall описаны и совпадают с поведением
    (вместо несуществующего --uninstall).

Доказательства

2489 passed, 9 skipped  (python -m pytest tests/ -q, -n auto)
real --sync-only: 871 file(s) / 18 672 384 B / 3.1 s
--doctor:  install_root 3.0 GB / 28429 files · data_root 302.9 MB / 2934 files
           project_chunks 78.0 MB (7278 chunks) · total 4.3 GB / 31385 files
--clean --yes -> remaining_bytes == 0

Тесты: реальный --sync-only → --doctor → --clean --yes → remaining_bytes == 0;
dry-run ничего не удаляет; без --yes — exit 2; мутация «не удалять каталог» даёт
assert 1 == 0.

Не проверено

  • --clean в реальном профиле удаляет кэши всех проектов (по определению) — нужен
    --dry-run/--yes.

CI (head f814ba9, run 43101464681): 7/7 jobs success — test (ubuntu + windows),
clean-state, manifest-parity, secret-scan, docker-build, transport-equiv-e2e.
Локально: pytest tests/test_install_cli.py tests/test_cli.py → 25 passed;
--doctor на реальной машине показывает слои и 7278 чанков.


Base refreshed without rewriting history

feat/g5-universal-install moved forward; this branch absorbed it with a merge
commit
(dc1a94e, no force-push). Result: the PR diff vs its base now contains
install.py only — the duplicated scripts/verify_client_snippets.py change is gone
(gh pr view 121 --json files).


Final heads (after the base refresh and the clean-room fixes)

PR head CI
#120 G5 6010443 run 43107170075 → 7/7 success
#121 G6 dc1a94e run 43107312275 → 7/7 success
#122 G7 f4cb766 run 43108288221 → 7/7 success

Lines about earlier heads (ea09277, f814ba9, 6a346bb) describe previous
snapshots; the table above is the current state.

@coderabbitai

coderabbitai Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Pre-merge checks: Passed 1 · Inconclusive 1

Failed Failed checks: 1 inconclusive

Check name Status Explanation Resolution
Title check Pending This assessment has not completed. The check will be retried on the next pre-merge check run.
Passed Passed checks: 1 passed

Check name Status Explanation
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@ManSio
ManSio changed the base branch from goal2-g5 to feat/g5-universal-install November 11, 2026 20:36
@ManSio ManSio closed this Nov 11, 2026
@ManSio ManSio reopened this Nov 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant