Bootstrap a New Machine (Appendix)
Steps to bring up the session workflow on a fresh Mac. Run once per machine.
Process lifecycle
Prerequisites
Before starting: Python 3 already installed (every modern Mac has /usr/bin/python3), git installed (comes with Xcode Command Line Tools — run xcode-select --install if missing), and an SSH key on this Mac added to my GitHub account (so git clone and push work without a password).
Clone the repo
Create the Projects directory if needed, then clone bpc-war-plan via SSH. Command: mkdir -p ~/Projects && cd ~/Projects && git clone git@github.com:BPConsulting/bpc-war-plan.git. After this I should see scripts/, exports/, and session in ~/Projects/bpc-war-plan/.
Install the session wrapper
The session wrapper lives in the repo. Symlink it into PATH so I can type "session" from any directory. Commands: cd ~/Projects/bpc-war-plan && sudo ln -sf $(pwd)/session /usr/local/bin/session && sudo chmod +x /usr/local/bin/session. Verify: which session (should print /usr/local/bin/session) and session help (should print the banner). The symlink means any future git pull that updates the wrapper auto-applies without re-copying.
Setup the Keychain password
Run session setup. The config (URL, DB, username) is already in the repo from the other machine. When asked "Edit?" press N. Enter the Odoo password at the hidden prompt. macOS will pop a Keychain access dialog — click Always Allow. Expected final line: "OK — authenticated, uid=2".
Verify with session open
Run session open. Expected: git pull reports up to date (or shows recent commits from the other machine), the Last CLOSE line shows the last close from the other machine, and "N open To-do tasks -> exports/latest.json" where N matches what I see in Odoo. If N matches, the machine is fully set up. No need to run session seed — that only runs once per entire setup.