- No close_all() on app exit — Chrome processes orphaned on quit → added
browser_sessions.close_all().awaitbeforerestore_terminal() - Temp dir collision — all sessions use same
codey-browser-session-{pid}, second session overwrites first profile copy → added atomic counter:codey-browser-{pid}-{n} - Field naming —
_handler_taskand_temp_dirhave leading underscore (Rust "unused" convention) but are used in close() → renamed tohandler_taskandtemp_dir
- page_load_wait_ms unused — config option still exists but sessions used hardcoded NETWORK_SETTLE_MS → now uses config value via
settle_ms()helper - Lock held during cleanup_expired() — calls browser.close().await while holding mutex; hung Chrome blocks all sessions
- Read-only tools could auto-approve — browser_list_sessions and browser_snapshot are read-only
- Move docs/browser-sessions.md to research/ — consistency with other research docs