Base: accd5595926b080a1e17d1ea9b2fa2d7d0505ac6 Build, in each clean checkout: pnpm install --frozen-lockfile --prefer-offline pnpm exec turbo run build Live setup, with checkout-specific paths: BB_PI_BRIDGE_COMMAND= \ BB_PI_BRIDGE_ARGS='["/plugins/provider-pi/src/bridge/fake-pi-rpc.mjs"]' \ BB_PI_BRIDGE_SESSION_DIR=/fake-pi-sessions \ scripts/bb-dev-app current eval "$(scripts/bb-dev-app env)" unset BB_CLI BB_CLI_REEXEC node apps/cli/dist/index.js project create --name qa-3187 --root --json node apps/cli/dist/index.js thread spawn --project --environment --provider pi --model fake-provider/fake-model --reasoning-level medium --permission-mode full --title qa-3187-live --prompt '/tool update_environment_directory {"path":""}' --json node apps/cli/dist/index.js thread wait --status idle --timeout 20 --poll-interval 100 --json node apps/cli/dist/index.js thread tell '/tool bash {"command":"pwd"}' --json node apps/cli/dist/index.js thread wait --status idle --timeout 20 --poll-interval 100 --json node apps/cli/dist/index.js thread show --json node apps/cli/dist/index.js thread log --json Focused source test, in each clean checkout: pnpm exec turbo run test --filter=bb-plugin-provider-pi -- src/bridge/bridge.environment-switch.test.ts Cleanup, in each clean checkout: scripts/bb-dev-app stop verify all three checkout-derived ports have no listener verify the dev-store ownership marker move the fresh dev store to Trash