Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
7232a6e
refactor(adapters): extract Windows/Zed specifics from src/utils (Фаз…
Aug 18, 2026
cb8f671
docs: add Universal MCP Engine implementation plan (EN + RU)
Aug 18, 2026
55a2af4
docs: sync AGENT_DIARY and KNOWN_ISSUES (Фаза 0 Universal Engine)
Aug 18, 2026
e661861
refactor(sources): add WorkspaceSource + LocalFsSource (Фаза 1)
Aug 18, 2026
7a8e703
docs: update Universal Engine plan (Фаза 1 status)
Aug 18, 2026
c980036
docs: sync AGENT_DIARY and KNOWN_ISSUES (Фаза 1 Universal Engine)
Aug 18, 2026
d296323
lock: implementation scope by agent-implementer (Фаза 2 GitUrlSource)
Aug 18, 2026
3bb3b6a
refactor(sources): add GitUrlSource (Фаза 2)
Aug 18, 2026
0915dcf
ci(hooks): wire layer-boundary gate into pre-commit and CI
Aug 18, 2026
69d38cd
docs: update Universal Engine plan (Фаза 2 status)
Aug 18, 2026
b26fbae
docs: sync AGENT_DIARY and KNOWN_ISSUES (Фаза 2 + audit round)
Aug 18, 2026
032aea9
unlock: implementation scope (Фаза 2 GitUrlSource done)
Aug 18, 2026
76b2991
fix(sources): clone directly into cache target (Windows rename lock, …
Aug 18, 2026
e01d1cc
experiment: add E-03 clone→index real-repo benchmark (4/4 PASSED)
Aug 18, 2026
51f950d
docs: sync plans ledgers (E-03 done, clone-in-place fix)
Aug 18, 2026
e4bc051
feat(index): add index_git_url tool (Фаза 2 MCP wiring)
Aug 18, 2026
b7d2f17
docs: sync plans ledgers (index_git_url tool) + coordination norm (кэ…
Aug 19, 2026
16b5e94
experiment: add E-08 live SSRF suite (9/9 PASSED)
Aug 19, 2026
b3907af
feat(sources): add UploadSource (Фаза 2, R-3)
Aug 19, 2026
f2a7596
feat(sources): DNS-rebinding detect in GitUrlSource (Фаза 2.5)
Aug 19, 2026
effb1af
fix(gates): prune nested git clones in health-scan + stale-detector (…
Aug 19, 2026
8ecec52
feat(transport): Streamable HTTP вход (Фаза 3, шаг 1-3)
Aug 19, 2026
9e8b849
feat(transport): rate-limit + circuit breaker on remote gate
Aug 19, 2026
f0109ff
docs(plan): Phase 3 step 4 status + backlog B-1 manifest parsers
Aug 19, 2026
88e2bfd
docs(meta): session sync — Phase 3 step 4 ledger update
Aug 19, 2026
462ea66
feat(transport): Docker deploy for remote engine (Phase 3 step 5)
Aug 19, 2026
9368f6b
docs(meta): session sync — Phase 3 step 5 (Docker) ledger + plan update
Aug 19, 2026
76646a0
experiment: E-07 transport equivalence stdio vs HTTP
Aug 19, 2026
109c930
docs(meta): session sync — E-07 + Phase 3 status update
Aug 19, 2026
ae2b01b
feat(plugins): Phase 4 v1 — trust-gate foundation
Aug 19, 2026
a34de35
docs(meta): session sync — Phase 4 v1 trust-gate ledger + plan
Aug 19, 2026
898e88f
feat(plugins): Phase 4 — subprocess isolation (runner + JSON-RPC proxy)
Aug 19, 2026
f636de7
docs(meta): session sync — Phase 4 subprocess isolation ledger + plan
Aug 19, 2026
2f30f58
feat(plugins): Phase 4 — MCP-proxy wiring + trust UX + deps scan
Aug 19, 2026
b8cc9f3
docs(meta): session sync — Phase 4 wiring ledger + plan
Aug 19, 2026
1f07952
feat(adapters): Phase 5 — client configs + thin CLI wrapper
Aug 19, 2026
85e9645
docs(meta): session sync — Phase 5 adapters ledger + plan
Aug 19, 2026
11c7126
feat(manifest): B-1 foundation — ManifestEntry + python/npm extractor…
Aug 19, 2026
e878543
docs(meta): session sync — Backlog B-1 foundation ledger + plan
Aug 19, 2026
8a28e95
feat(manifest): B-1 phase 1 complete — go/cargo/maven/nuget/composer/gem
Aug 19, 2026
4cd2f55
feat(manifest): B-1 phase 2 (stdlib batch) — lockfile extractors
Aug 19, 2026
efe07e3
feat(plugins): Phase 4 — wire plugins into MCP server (opt-in, fail-s…
Aug 19, 2026
2d9e882
docs(meta): session sync — B-1 phases 1+2 + Phase 4 wiring ledger
Aug 19, 2026
1a93c2d
feat(manifest): B-1 phase 2 — yarn.lock family (v1/v2/berry v10)
Aug 19, 2026
381e41b
feat(receipts): Action Receipt (TOR s11) — get_action_receipt + store…
Aug 19, 2026
e72117e
fix(receipts): E-05 gate — make reproducible_by fully self-contained …
Aug 19, 2026
aa3c4ee
docs(diary): add verified_from_clean_state marker to coordination-inc…
Aug 20, 2026
f8e766f
test(receipts): E-09 — upload-bomb gate GitUrlSource 4/4 (Phase 2 clo…
Aug 20, 2026
daf0121
docs(2e): add machine-readable red-team flip ledger
Aug 20, 2026
5feaec5
docs(2e): add machine-readable red-team flip ledger
Aug 20, 2026
4ac98e2
refactor(lsp): rebuild production LspClient on thin experiment engine
Aug 21, 2026
4aa9aef
test(lsp): pin production LspClient facade drop-in contract
Aug 21, 2026
a46fa4b
fix(smoke): onnx health non-fatal; retry transient empty index manifest
Aug 21, 2026
58dfe6a
Merge branch 'feat/universal-engine' into feat/lsp-thin-client
Aug 21, 2026
0920511
feat(manifest): wire VOR to multi-ecosystem parsers + pnpm/bun/yarn f…
Aug 21, 2026
6ba8f6c
build(python): drop 3.10-3.13 — support only Python 3.14+
Aug 21, 2026
a0fb140
fix(git_hooks): use src.__version__ as default
Aug 24, 2026
6e6e3ef
ci(python): 3.14 matrix + manifest-parity/transport-equiv/docker jobs
Aug 24, 2026
ca5af8b
chore(gitignore): ignore VS Code extension build artifacts
Aug 24, 2026
c89aafd
fix(engine): layer-clean set_project fallback, guard test isolation, …
Aug 24, 2026
a90bf17
feat(lint): add core circular-deps check and wire CI gate
Aug 24, 2026
4dc6ed0
feat(predict): change-preview gate and 56-lang import extraction
Aug 24, 2026
87df0c0
feat(live-sync): editor RAM daemon sync + ruff-clean CI gates
Aug 24, 2026
e0e0503
fix(ci): cross-platform plugin encoding, ruff gate, tool-count 63, li…
Aug 24, 2026
fd12c4d
docs(diary): CI PR #7 fix session — 10 red → 9/10 green
Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# ─── Образ docker: исключаем всё, что не нужно рантайму ───
# КРИТИЧНО: experiments/ содержит клоны исследователя (e-s1-polygon, 35k файлов) —
# попадание в build-context раздувает/ломает сборку.

.git
.gitignore
.gitmodules
**/__pycache__
**/*.py[cod]
*.log
*.pyc

# env/секреты и локальные данные
**/.env
.env
.data
.locks
telemetry

# окружения и кэши
venv
.venv
*.egg-info
.pytest_cache
.ruff_cache
.mypy_cache
.coverage
htmlcov

# не рантайм
tests
docs
experiments
scripts
tools
deploy # сам деплой-артефакт в контексте не нужен (не мешает, но держим image чистым)
*.md # README/etc — не нужны в образе
73 changes: 69 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest]
# P2-16 audit: requires-python = ">=3.10" — 3.10 добавлен в matrix
# (в т.ч. для регрессий wrong-loop на 3.10, см. P3-12)
python-version: ["3.10", "3.11", "3.12"]
python-version: ["3.14"] # 3.14-only (2026-08-21): 3.10-3.13 выведены — см. requires-python

runs-on: ${{ matrix.os }}

Expand Down Expand Up @@ -49,6 +47,19 @@ jobs:
- name: Lint (ruff)
run: ruff check src/ tests/

- name: Layer-boundary gate (Фаза 1 Universal Engine)
# Три оси ТЗ: ADAPTER → TRANSPORT → SOURCE → CORE. Гейт не даёт
# mcp/tools импортировать adapters/src.sources и core — adapters.*
# (кроме main.py dispatch); transitional core→src.sources.* обязан
# дойти до 0 к концу Фазы 2.
run: python scripts/check_layer_boundaries.py

- name: Architecture invariants (architecture_linter)
# 2026-08-24: скрипт вшит в CI — раньше гонялся только вручную.
# pytest-guard (tests/test_architecture_invariants.py) ловит импорты,
# но не stale-имена и циклы core-модулей.
run: python scripts/architecture_linter.py

- name: Check version consistency
run: python scripts/bump_version.py --check

Expand Down Expand Up @@ -85,8 +96,62 @@ jobs:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: "3.12"
python-version: "3.14"
cache: pip
- name: Verify clean state (no self-clone)
run: bash scripts/verify_clean_state.sh --no-clone "${{ github.repository }}"
timeout-minutes: 15

manifest-parity:
# B-1 (ADR-0005 scaling): наши экстракторы манифестов vs osv-scanner на корпусе
# e-s1-polygon (Вариант В спеки 07). Выхлоп обязан совпадать (расхождение = дыра
# в нашем парсере). Пин: osv-scanner v2.5.1 (release 2026-08-17); бамп по §5.19.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.14"
- name: Install project
run: pip install -e .
- name: Download osv-scanner
run: |
mkdir -p "$HOME/bin"
curl -sL -o "$HOME/bin/osv-scanner" https://github.com/google/osv-scanner/releases/download/v2.5.1/osv-scanner_linux_amd64
chmod +x "$HOME/bin/osv-scanner"
- name: Manifest parity
run: python scripts/manifest_parity.py --osv "$HOME/bin/osv-scanner"
timeout-minutes: 5

transport-equiv-e2e:
# E-07 (DoD Фазы 3): эквивалентность stdio ↔ Streamable HTTP на РЕАЛЬНОМ движке.
# Локально при живом основном MCP нестабилен (PID-lock embedder) — автор
# харнесса: только чистый раннер (CI Ubuntu).
runs-on: ubuntu-latest
# pip install -e делает _ext_root == checkout-каталог, а CWD-first резолвит
# его же — self-indexing guard блочит. Индексация самого себя здесь —
# намеренный сценарий (движок в own-repo engine-режиме): явный PROJECT_PATH
# + dev-флаг MSCODEBASE_ALLOW_SELF_INDEX=1.
env:
PROJECT_PATH: ${{ github.workspace }}
MSCODEBASE_ALLOW_SELF_INDEX: "1"
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.14"
- name: Install project
run: pip install -e .
- name: Transport equivalence (engine mode)
run: python experiments/universal-engine/e07_equiv.py
timeout-minutes: 10

docker-build:
# DoD Фазы 3 (deploy/docker): образ из python-only remote-движка собирается
# (локально Docker недоступен — CI-билд является верификацией).
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Build remote image
run: docker build -t mscodebase-remote:ci -f deploy/docker/Dockerfile .
timeout-minutes: 20
45 changes: 32 additions & 13 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ dist/

# IDE
.idea/

# Editor extensions (VS Code) — build artifacts
extensions/**/node_modules/
extensions/**/out/
extensions/**/*.vsix
.vscode/
.zed/
*.sublime-*
Expand Down Expand Up @@ -92,9 +97,11 @@ ANALYSIS_REPORT.md
TESTING.md

# Stress / benchmark artifacts (root level)
# Якорь ^/ обязателен: без него test_*.py матчит файлы на ЛЮБОЙ глубине
# (src/core/test_impact.py молча исключался из git, 2026-08-24).
stress_*.py
stress_*.log
test_*.py
/test_*.py
!tests/test_*.py
!tests/e2e/test_e2e_mcp_smoke.py
tmp_*.py
Expand Down Expand Up @@ -147,7 +154,17 @@ experiments/deep_research_log.md
experiments/github_research_log.md
experiments/sandbox_*.py
experiments/_*.py
experiments/_*.txt
>experiments/_*.txt

# Приватные стратегические/исследовательские документы (не публикуются, решение владельца 2026-08-21)
MSCODEBASE_UNIVERSAL_TOR.md
docs/research/universal-engine-study/
experiments/benchmark2/
experiments/lsp/lsp_client_demo.py
experiments/lsp/lsp_live_pyright.py
experiments/lsp/lsp_proto_index.py
experiments/lsp/lsp_wire_probe.py
experiments/lsp/fixture/
experiments/benchmark2/out/
experiments/_*.bat
experiments/_*.sh
Expand All @@ -167,17 +184,19 @@ scripts/_diag_*.py
scripts/_run_*.py
.codebase/

# One-off dev/test scripts — удалены из репозитория 2026-08-04 (hardcoded paths, 0 ссылок)
runner.py
quickrun.py
runtest.py
do_test.py
execute_test.py
quick_test.py
_run_test.py
.verify_final_render.py
run_test.bat
run_pytest.bat
# One-off dev/test scripts — удалены из репозитория 2026-08-04 (hardcoded paths, 0 ссылок).
# ЯКОРЬ-в-корень (/): паттерн должен матчить ТОЛЬКО корневые одноразовые скрипты,
# а не любой файл с таким именем в дереве (иначе скрывает легитимный src/plugins/runner.py).
/runner.py
/quickrun.py
/runtest.py
/do_test.py
/execute_test.py
/quick_test.py
/_run_test.py
/.verify_final_render.py
/run_test.bat
/run_pytest.bat
run_one_test.bat
run_one_test.sh

Expand Down
Loading
Loading