chore: link vault wiki to Gitea

This commit is contained in:
2026-03-11 11:20:12 -04:00
parent fe6ec20351
commit 9c22a661ea
54 changed files with 3069 additions and 3 deletions

View File

@@ -0,0 +1,116 @@
---
tags:
- obsidian
- troubleshooting
- windows
- majortwin
created: '2026-03-11'
status: resolved
---
# Obsidian Vault Recovery — Loading Cache Hang
## Problem
Obsidian refused to open MajorVault, hanging indefinitely on "Loading cache" with no progress. The issue began with an `EACCES` permission error on a Python venv symlink inside the vault, then persisted even after the offending files were removed.
## Root Causes
Two compounding issues caused the hang:
1. **79GB of ML project files inside the vault.** The `20-Projects/MajorTwin` directory contained model weights, training artifacts, and venvs that Obsidian tried to index on every launch. Specifically:
- `06-Models` — ~39GB of model weights
- `09-Artifacts` — ~38GB of training artifacts
- `10-Training` — ~1.8GB of training data
- `11-Tools` — Python venvs and llama.cpp builds (with broken symlinks on Windows)
2. **Stale Electron app data.** After Obsidian attempted to index the 79GB, it wrote corrupt state into its global app data (`%APPDATA%\obsidian`). This persisted across vault config resets and caused the hang even after the large files were removed.
A secondary contributing factor was `"open": true` in `obsidian.json`, which forced Obsidian to resume the broken session on every launch.
## Resolution Steps
### 1. Remove large non-note directories from the vault
```powershell
Move-Item "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\06-Models" "D:\MajorTwin\06-Models"
Move-Item "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\09-Artifacts" "D:\MajorTwin\09-Artifacts"
Move-Item "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\10-Training" "D:\MajorTwin\10-Training"
Remove-Item -Recurse -Force "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\11-Tools\venv-unsloth"
Remove-Item -Recurse -Force "C:\Users\majli\Documents\MajorVault\20-Projects\MajorTwin\11-Tools\llama.cpp"
```
### 2. Reset the vault config
```powershell
Rename-Item "C:\Users\majli\Documents\MajorVault\.obsidian" "C:\Users\majli\Documents\MajorVault\.obsidian.bak"
```
### 3. Fix the open flag in obsidian.json
```powershell
'{"vaults":{"9147b890194dceb0":{"path":"C:\\Users\\majli\\Documents\\MajorVault","ts":1773207898521,"open":false}}}' | Set-Content "$env:APPDATA\obsidian\obsidian.json"
```
### 4. Wipe Obsidian global app data (the key fix)
```powershell
Stop-Process -Name "Obsidian" -Force -ErrorAction SilentlyContinue
Rename-Item "$env:APPDATA\obsidian" "$env:APPDATA\obsidian.bak"
```
### 5. Launch Obsidian and reselect the vault
Obsidian will treat it as a fresh install. Select MajorVault — it should load cleanly.
### 6. Restore vault config and plugins
```powershell
Copy-Item "$env:APPDATA\obsidian.bak\obsidian.json" "$env:APPDATA\obsidian\obsidian.json"
Copy-Item "C:\Users\majli\Documents\MajorVault\.obsidian.bak\*.json" "C:\Users\majli\Documents\MajorVault\.obsidian\"
Copy-Item "C:\Users\majli\Documents\MajorVault\.obsidian.bak\plugins.bak" "C:\Users\majli\Documents\MajorVault\.obsidian\plugins" -Recurse
```
### 7. Clean up backups
```powershell
Remove-Item -Recurse -Force "$env:APPDATA\obsidian.bak"
Remove-Item -Recurse -Force "C:\Users\majli\Documents\MajorVault\.obsidian.bak"
```
## Prevention
### Add a .obsidianignore file to the vault root
```
20-Projects/MajorTwin/06-Models
20-Projects/MajorTwin/09-Artifacts
20-Projects/MajorTwin/10-Training
20-Projects/MajorTwin/11-Tools
```
### Add exclusions in Obsidian settings
Settings → Files & Links → Excluded files → add `20-Projects/MajorTwin/11-Tools`
### Keep ML project files off the vault entirely
Model weights, venvs, training artifacts, and datasets do not belong in Obsidian. Store them on D drive or in WSL2. WSL2 (Fedora43) can access D drive at `/mnt/d/MajorTwin/`.
## Key Diagnostic Commands
```powershell
# Check vault size by top-level directory
Get-ChildItem "C:\Users\majli\Documents\MajorVault" -Directory | ForEach-Object {
$size = (Get-ChildItem $_.FullName -Recurse -File -ErrorAction SilentlyContinue | Measure-Object -Property Length -Sum).Sum
[PSCustomObject]@{ Name = $_.Name; SizeMB = [math]::Round($size/1MB, 1) }
} | Sort-Object SizeMB -Descending
# Check obsidian.json vault state
Get-Content "$env:APPDATA\obsidian\obsidian.json"
# Check Obsidian log
Get-Content "$env:APPDATA\obsidian\obsidian.log" -Tail 50
# Check if Obsidian is running/frozen
Get-Process -Name "Obsidian" | Select-Object CPU, WorkingSet, PagedMemorySize
```