requestBorrowConfirmation returned `true` (approve the borrow) when
`chrome.tabs.get(tabId)` threw. That fail-open was not one of the
documented fail-open cases in the function's own doc comment (no
candidate window; abort signal; timeout), and the tab was already
fetched successfully moments earlier by the borrow pipeline
(validateBorrowTarget), so a failure here is a transient SW/page hiccup
— not a missing tab. Silently approving a borrow with no confirmation
UI shown defeats the entire human-in-the-loop gate for seizing a user's
logged-in tab.
On a tabs.get failure, fall back to a generic title (the numeric tab id)
and still run the overlay + OS-notification confirmation flow so the
user gets a real chance to approve or deny.
Adds two regression tests (both fail on the unpatched code). Full
extension suite green (361 tests).
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Add-ToBashProfile helper to append install dir to ~/.bashrc
- Converts Windows paths to Unix-style for Git Bash compatibility
- Integrate into Main install flow alongside Add-ToUserPath
- Update completion message to mention Git Bash
- Add install.ps1 mirrored from install.sh patterns
- Same env var overrides (BSK_REPO, BSK_VERSION, BSK_INSTALL_DIR)
- Default install dir ~/.local/bin
- Fetches latest version from version.json via Invoke-RestMethod
- Downloads, extracts zip, installs bsk.exe
- Adds to user PATH persistently with idempotent check
- Supports x64 and ARM64 architecture detection
- Update README.md Windows section with irm | iex one-liner
- Update AGENT_INSTALL.md with Windows PowerShell instructions