{“content”:”---\nname: obsidian-canvas-sync\ndescription: Obsidian Canvas upload workflow — SCP+base64 method for updating .canvas files when Obsidian API is unavailable\n---\n\n# Obsidian Canvas Sync Workflow\n\n## Obsidian Vault Location\n- PC: H:\\My Drive\\Jakephone\\Obsidian Vault\\ (Google Drive 本地掛載)\n- Canvas file: 幸福-canvas.canvas\n\n## Canvas Update Method (2026-04-20 confirmed working)\n\nObsidian is a desktop GUI app — it CANNOT run headless via SSH. API only works when Obsidian is open with a live desktop session. Do NOT try to start Obsidian via SSH .lnk shortcuts — they require an interactive logon session.\n\nWorking upload method (SCP + base64):\n1. Locally (Termux): base64 幸福-canvas.canvas > canvas_b64.txt\n2. SCP to PC: scp canvas_b64.txt [email protected]:/tmp/\n3. PC decode: powershell -Command \"[System.IO.File]::WriteAllText('H:\\\\My Drive\\\\Jakephone\\\\Obsidian Vault\\\\幸福-canvas.canvas', [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String((Get-Content C:\\\\Users\\\\Sozo\\\\canvas_b64.txt -Raw).Trim())), [System.Text.Encoding]::UTF8)\"\n\n## Future: Syncthing (planned setup)\nUser chose Syncthing for free cross-device sync instead of Remotely Save (PRO required for Google Drive). PC needs Syncthing installed. Setup pending.\n\n## Recent Canvas Changes (2026-04-20)\nAdded 5 new todo nodes to 幸福-canvas.canvas (n330-n334):\n- n330: 报税 2026 ⏰ → 财富 → 理財\n- n331: 健康检查 2026 ⏰ 6/19 → 身体 → 身体检查\n- n332: 拿电脑去检查 ⏰ → 心理 → 执行力\n- n333: 石材桌面安装 ⏰ 4/25 → 财富 → 生意\n- n334: Desa Tebrau 看门 ⏰ 5/7 → 财富 → 生意\n- 洗车 (n57) already existed under 整理周围的习惯\n- 每日新闻播客 stays as cron (not in Canvas)\n”}