generated from coulomb/repo-seed
- Replace token-based auth with HTTP Basic Authentication per Binect API v1 spec - Improve PDF detection: check current tab first, then background service, fallback to recent downloads - Add password visibility toggle in login form - Add extensive debug logging throughout for troubleshooting - Update manifest with alarms, activeTab permissions and <all_urls> host permission - Add documentation files and development helper scripts - Add Binect API specs for reference Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
181 lines
5.7 KiB
Markdown
181 lines
5.7 KiB
Markdown
# Recent Changes - BinectChrome
|
|
|
|
## Summary
|
|
|
|
Three new features have been implemented:
|
|
1. ✅ Password visibility toggle with eye icon
|
|
2. ✅ Default badge on extension icon
|
|
3. ✅ Enhanced API error logging for debugging
|
|
|
|
## 1. Password Visibility Toggle
|
|
|
|
**Location:** Login form in popup
|
|
|
|
**What it does:**
|
|
- Adds an eye icon button next to the password field
|
|
- Click to toggle between showing and hiding password
|
|
- Icon changes: 👁️ (show) ↔ 🚫👁️ (hide)
|
|
|
|
**Files changed:**
|
|
- `src/popup/popup.html` - Added password wrapper and eye icon SVGs
|
|
- `src/popup/popup.css` - Styled the toggle button
|
|
- `src/popup/popup.ts` - Added toggle functionality
|
|
|
|
**How to use:**
|
|
1. Open the extension popup
|
|
2. Enter username
|
|
3. Start typing password
|
|
4. Click the eye icon to reveal/hide password
|
|
|
|
## 2. Default Badge on Extension Icon
|
|
|
|
**What it does:**
|
|
- Extension icon now always shows a blue dot (•) badge
|
|
- Badge changes to "1" when PDF is detected
|
|
- Badge resets to dot (•) after PDF is sent or cleared
|
|
- Makes extension more visible in the toolbar
|
|
|
|
**Files changed:**
|
|
- `src/background/service-worker.ts` - Added `initializeBadge()` function
|
|
|
|
**Badge states:**
|
|
- `•` (blue dot) - Extension active, no PDF detected
|
|
- `1` (blue) - PDF detected and ready to send
|
|
- Returns to `•` after sending or clearing
|
|
|
|
**Visual:**
|
|
- Before: No badge (extension hard to notice)
|
|
- Now: Blue dot always visible (easy to spot in toolbar)
|
|
|
|
## 3. Enhanced API Error Logging
|
|
|
|
**What it does:**
|
|
- Detailed console logging for all Binect API calls
|
|
- Shows request details (URL, username, payload)
|
|
- Logs response status and headers
|
|
- Captures and displays error responses
|
|
- Better error messages for common issues
|
|
|
|
**Files changed:**
|
|
- `src/utils/binect-api.ts` - Added console logging throughout
|
|
|
|
**Console output example (authentication):**
|
|
```
|
|
[Binect API] Authenticating with Binect API...
|
|
[Binect API] URL: https://api.binect.de/auth/login
|
|
[Binect API] Username: testuser
|
|
[Binect API] Response status: 200
|
|
[Binect API] Response content-type: application/json
|
|
[Binect API] Authentication successful!
|
|
[Binect API] Response data: {token: "...", expiresAt: "..."}
|
|
```
|
|
|
|
**Console output example (error):**
|
|
```
|
|
[Binect API] Authenticating with Binect API...
|
|
[Binect API] URL: https://api.binect.de/auth/login
|
|
[Binect API] Username: wronguser
|
|
[Binect API] Response status: 401
|
|
[Binect API] Error response body: {"error": "Invalid credentials"}
|
|
[Binect API] Authentication error: BinectAPIError: Invalid credentials
|
|
```
|
|
|
|
**Error improvements:**
|
|
- Network errors now show: "Cannot reach Binect API at https://api.binect.de. Please check your internet connection."
|
|
- Auth errors show: "Invalid credentials" (401)
|
|
- Upload errors show specific issue (file format, size limit, etc.)
|
|
|
|
## How to Test
|
|
|
|
### 1. Reload Extension
|
|
```bash
|
|
# Extension is already built
|
|
# Just reload at chrome://extensions/
|
|
```
|
|
|
|
### 2. Test Password Toggle
|
|
1. Click extension icon
|
|
2. If not logged in, you'll see the login form
|
|
3. Type in the password field
|
|
4. Click the eye icon - password should become visible
|
|
5. Click again - password should hide
|
|
|
|
### 3. Test Default Badge
|
|
1. Look at your Chrome toolbar
|
|
2. Find the BinectChrome icon
|
|
3. Should see a small blue dot (•) badge
|
|
4. Download or view a PDF
|
|
5. Badge should change to "1"
|
|
|
|
### 4. Test API Error Logging
|
|
1. Right-click popup → "Inspect" (opens DevTools)
|
|
2. Go to Console tab
|
|
3. Try to sign in (with wrong or correct credentials)
|
|
4. Watch for `[Binect API]` log messages
|
|
5. All API calls are now logged with details
|
|
|
|
## Debugging Binect API Login Issues
|
|
|
|
**With the new logging, you can now:**
|
|
|
|
1. **See the exact error from Binect:**
|
|
- Open popup DevTools (right-click → Inspect)
|
|
- Try to sign in
|
|
- Check console for `[Binect API] Error response body:`
|
|
- This shows what the Binect API actually returned
|
|
|
|
2. **Verify the request is correct:**
|
|
- Console shows the URL being called
|
|
- Shows the username being sent
|
|
- Confirms request format
|
|
|
|
3. **Check network connectivity:**
|
|
- If you see "Cannot reach Binect API", it's a network issue
|
|
- If you see status codes (401, 400, etc.), the API is reachable but rejecting the request
|
|
|
|
**Common login issues:**
|
|
|
|
| Console Log | Problem | Solution |
|
|
|------------|---------|----------|
|
|
| "Cannot reach Binect API" | Network issue | Check internet connection |
|
|
| "Response status: 401" + "Invalid credentials" | Wrong username/password | Verify credentials |
|
|
| "Response status: 404" | API endpoint changed | Check API_BASE_URL in code |
|
|
| "Response status: 500" | Server error | Check Binect API status |
|
|
| "TypeError: Failed to fetch" | CORS or network | Check browser permissions |
|
|
|
|
## Testing Checklist
|
|
|
|
- [ ] Extension icon shows blue dot badge
|
|
- [ ] Password field has eye icon
|
|
- [ ] Clicking eye icon toggles password visibility
|
|
- [ ] Console shows `[Binect API]` logs when signing in
|
|
- [ ] Error messages are clear and helpful
|
|
- [ ] Badge updates when PDF detected
|
|
- [ ] Badge resets after sending PDF
|
|
|
|
## Next Steps for API Debugging
|
|
|
|
1. **Try to sign in with your Binect credentials**
|
|
2. **Open popup DevTools** (right-click popup → Inspect)
|
|
3. **Check the Console tab** for `[Binect API]` messages
|
|
4. **Share the console output** if login fails
|
|
|
|
The detailed logs will show exactly what's happening with the API request and response, making it much easier to diagnose the login problem.
|
|
|
|
## Files Modified
|
|
|
|
```
|
|
src/popup/popup.html - Added password toggle UI
|
|
src/popup/popup.css - Styled password toggle
|
|
src/popup/popup.ts - Added toggle functionality
|
|
src/background/service-worker.ts - Added default badge
|
|
src/utils/binect-api.ts - Enhanced error logging
|
|
```
|
|
|
|
## Build Info
|
|
|
|
- Build completed successfully
|
|
- Extension size: ~17KB (popup.js: 10.4KB, background.js: 4.18KB)
|
|
- All assets compiled and minified
|
|
- Ready for testing!
|