Forge
markdowndeeb25a2
1# AVLN2000 Recovery Checklist (NuGet + родительские submodules)
2
3## Purpose
4
5Run this checklist when `AVLN2000` reappears after a known fix was already made in **`AIGuiders.AvaloniaEdit`** (или в исходниках форка), or when parent repos show unexpected submodule drift for **`cascade-ide` itself**.
6
7**Важно:** в репозитории CascadeIDE **нет** субмодуля `externals/avaloniaedit` — редактор подключается **NuGet-пакетами** (`CascadeIDE.csproj`). Патчи в исходниках ведут в отдельном клоне форка (типичный путь машины: **`D:\Experiments\AvaloniaEdit`** → push → публикация на nuget.org → bump версии пакетов в `CascadeIDE.csproj`).
8
9Root cause pattern для **родителей** `open` / workspace: `cascade-ide` fix exists in one remote/history, but parent repos still reference an older gitlink, or `main` differs across remotes.
10
11## Preconditions
12
13- You have access to all `cascade-ide` remotes used by the team (for example: `origin`, `github`, `wissance`).
14- You are in a clean state (or have stashed WIP) in each repo before sync.
15
16## Checklist
17
181. **Verify `main` parity inside `cascade-ide`**
19 - `git fetch --all --prune`
20 - `git checkout main`
21 - `git pull --ff-only`
22 - Compare remote heads:
23 - `git rev-parse main`
24 - `git rev-parse origin/main`
25 - `git rev-parse github/main` (if configured)
26 - `git rev-parse wissance/main` (if configured)
27 - All hashes for `main` must match.
28
292. **Publish missing commits from `cascade-ide/main`**
30 - If local `main` contains needed fix not present on one of remotes:
31 - `git push <remote> main`
32 - Repeat until all remotes point to the same `main` commit.
33
343. **Update gitlink in parent repo `open`**
35 - In `Financial/software/open`:
36 - `git submodule update --init --recursive`
37 - `cd cascade-ide` and checkout the synced `main` commit
38 - `cd ..`
39 - `git add cascade-ide`
40 - `git commit -m "chore(submodules): bump cascade-ide"`
41 - `git push`
42
434. **Update gitlink in workspace root parent (if used)**
44 - In the workspace root repo (for example `PersonalCursorFolder`), bump pointer to `Financial/software/open` the same way:
45 - `git add Financial/software/open`
46 - `git commit -m "chore(submodules): bump open"`
47 - `git push`
48
495. **Validate build on clean state**
50 - `git submodule update --init --recursive`
51 - Clean build:
52 - `dotnet build CascadeIDE.sln -c Debug`
53 - Confirm `AVLN2000` does not reproduce.
54
55## Fast diagnosis commands
56
57- Show remotes: `git remote -v`
58- Show current submodule pointer in parent: `git ls-tree HEAD cascade-ide`
59- Show submodule status in parent: `git submodule status`
60- Detect dirty submodule in parent status: `git status`
61
62## Completion criteria
63
64- `cascade-ide/main` is equal across active remotes.
65- Parent gitlinks (`open`, then workspace root if applicable) are bumped and pushed.
66- Fresh recursive checkout builds without `AVLN2000`.
67
View only · write via MCP/CIDE