# Build & Deploy Guidelines

## Build machine: Windows (PC_WIN_ALEXIS)
- **SSH**: `alexi@192.168.1.37` / password `3011199898aD-a`
- **Key**: `~/.ssh/id_win` (already configured, passwordless)
- **Shell**: CMD (`%COMSPEC%` = `C:\WINDOWS\system32\cmd.exe`)
- **No** `dart analyze` / `flutter build` on Linux — use Windows for build/run/testing.

## Projects
### ynab_lite (Linux) ↔ m3money/ynab_lite (Windows)
- **Linux**: `/home/alexis/project/ynab_lite` — git repo, edits & commits here
## Syncing (git push Linux → Windows)
### Quick tar-over-SSH (works)
```
cd /home/alexis/project/ynab_lite
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_win" git push ssh://alexi@192.168.1.37/d/opencode_project/m3money/ynab_lite main
```
`#` Note: SSH URL format needs `/d/` not `D:/` or `D:\`.
If push fails (path issues), use tar-over-SSH instead:
```
cd /home/alexis/project/ynab_lite
tar cz .git | ssh -i ~/.ssh/id_win alexi@192.168.1.37 "cd /d D:\opencode_project\m3money\ynab_lite && tar xzf -"
ssh -i ~/.ssh/id_win alexi@192.168.1.37 "cd /d D:\opencode_project\m3money\ynab_lite && git reset --hard HEAD"
```
### Verified
- `dart analyze` clean on both Linux and Windows (bd0068d)
- Syncing: pull/push via network (or rsync over SSH)
- **Windows remote (git push)**: `ssh://alexi@192.168.1.37/D:/opencode_project/m3money/ynab_lite`

### SSH commands (Windows CMD)
```
ssh -i ~/.ssh/id_win alexi@192.168.1.37 "cd /d D:\opencode_project\m3money\ynab_lite && <command>"
```
- Use `cd /d D:\path` for drive+dir change
- Single commands work fine; avoid `&&` chains with complex syntax
- Git Bash not available — pure CMD
