19 Commits

Author SHA1 Message Date
a1597c23fa Added session cost file 2026-01-16 23:42:22 +01:00
1df93bd385 Add local tag server check, archive on delete, and first-run pin reminder
- Local tag is now clickable - checks if document exists on server by ID
  or filename, and re-links if found
- Delete from server now archives the proxy instead of removing it,
  making it a local-only document that can be re-uploaded
- Added first-run pin reminder banner to help users pin the extension
- Added issue report modal with context sections (extension info, browser
  info, document status, recent errors) and copy to clipboard as Markdown
- Added clearServerFields and attachServerDocument functions to pdf-queue
- Improved local tag styling with hover states and visual feedback

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 23:39:06 +01:00
e5f3f583d1 Refresh erroneous documents to detect server-side fixes
- Include erroneous server documents in auto-refresh
- Documents can transition from ERRONEOUS to SHIPPABLE when fixed on server
- Clear error message when document status becomes non-erroneous
- Properly handle status transitions in refresh flow

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 22:56:39 +01:00
24daa4bf82 Improve consistency for server-discovered documents
- Separate "Has Errors" section for erroneous server documents (already
  uploaded but have validation errors)
- "Ready to Upload" section now only shows truly local documents
- Erroneous server docs show only "Delete from server" button (no retry)
- Improved metadata display: show document ID for server docs, hide
  unknown file size
- Clean up verbose debug logging

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 22:49:07 +01:00
327943bc18 Server sync, erroneous doc handling, and @binect/js v0.1.0 integration
- Add server sync to discover documents uploaded elsewhere (fixes missing
  basket documents issue)
- Handle erroneous uploads: preserve binectDocumentId for delete button
- Add "Delete from server" button for erroneous and canceled documents
- Remove archive button for active documents (in_basket, in_production)
- Auto-restore archived documents that have active status
- Refactor to use @binect/js v0.1.0 features:
  - DocumentStatus enum instead of magic numbers
  - isErroneous(), getErrors() helper functions
  - getStatusDescription() for status text
- Add binect-js improvement requirements document

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-16 22:41:43 +01:00
f4c0481eda Show detailed error information for erroneous documents
- Extract error details from Binect API for documents with status 7
- Display error details in a highlighted box below the status
- Map status 7 (ERRONEOUS) to 'failed' status in refresh handler
- Add CSS styling for error details display

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 21:29:45 +01:00
4f0f7ed9eb UI refinements: Send button, server deletion detection, remove manual refresh
- Rename "Order" button to "Send" throughout UI
- Detect server-side document deletions (404) and auto-archive
- Remove manual refresh button (auto-refresh handles this)
- Fix password toggle button with preventDefault/stopPropagation
- Make auto-refresh silent (no status messages)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:51:14 +01:00
dd78c24e98 UI improvements: filename display, local tag, auto-refresh, password toggle
- Show only filename in list with full path as tooltip on hover
- Add "local" tag for documents not yet uploaded to server
- Auto-refresh after user interactions (upload/order) with Fibonacci-like
  sequence: 10, 20, 30, 50, 80, 130, 210 seconds
- Fix password toggle button (add pointer-events: none to SVG icons)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:30:16 +01:00
facae724bf Implement document proxy concept with archive/live views
- Add content hash (MD5) for document deduplication
- Separate local state (archived) from server state (binectStatus)
- Add archive toggle button to switch between live/archived views
- Add archive/restore/delete actions for documents
- Refactor pdf-queue.ts with DocumentProxy interface
- Add hash.ts utility for content hashing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 17:11:15 +01:00
5cb0194533 Move refresh to global header button
- Add refresh button in header (before help button)
- Refresh updates all uploaded documents at once (in_basket, in_production)
- Remove individual refresh buttons from production items
- Add spinning animation while refresh is in progress
- Show count of refreshed documents in status message

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 13:28:16 +01:00
468473f03b Fix state persistence when popup is closed
- Add 'dismissed' status to prevent dismissed PDFs from reappearing
- Persist PDFs discovered from current tab and recent downloads via background
- Add dismissPDF function that marks PDFs as dismissed instead of removing
- Dismissed PDFs are kept for 7 days for duplicate detection, then cleaned up
- Completed items (sent/canceled) can still be fully removed
- Add addPDF message handler to service worker for popup-discovered PDFs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 10:20:28 +01:00
3a48d4f497 Add document lifecycle tracking with order/production status
- Extended PDFStatus with full lifecycle: pending → uploading → in_basket →
  ordering → in_production → sent/canceled
- Added shipDocument() and getDocumentStatus() API methods
- Grouped UI sections: Ready to Upload, In Basket, In Production, Completed
- Order button for documents in basket to place production order
- Refresh button to check current status from Binect server
- Display price and recipient address for uploaded documents
- Status icons and color-coded indicators for each state

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 10:17:28 +01:00
724940ebf7 Fix: Restore fallback to check recent downloads
When the persistent queue is empty (e.g., after extension reload),
fall back to checking recent downloads from Chrome downloads API.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 15:14:04 +01:00
3e86bb126b Add PDF list view with upload status tracking
- Show all pending PDFs in a scrollable list instead of single PDF
- Track upload status (pending/uploading/uploaded/failed) per PDF
- Store queue in chrome.storage.local for persistence
- Prevent duplicate uploads by checking URL against uploaded PDFs
- Add Dismiss button to remove PDFs from queue
- Show badge with count of pending PDFs
- Auto-cleanup old entries (uploaded >7 days, failed >24h)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:55:32 +01:00
5bde27dcdd Fix base64 encoding for browser environment
The bufferToBase64 function from @binect/js expects Node.js Buffer
objects but was receiving browser ArrayBuffer, causing "[object ArrayBuffer]"
to be sent instead of valid base64. Use browser-native btoa() instead.

Also updates tests to work with @binect/js integration.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 14:41:44 +01:00
be4377253e Switch to HTTP Basic Auth and improve PDF detection
- 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>
2026-01-14 16:50:57 +01:00
0be7b56506 Fix: Add default_locale to manifest for Chrome extension compatibility
Added 'default_locale': 'en' to manifest.json to resolve Chrome error
when loading extension with _locales directory.

Error was: 'Lokalisierung wurde verwendet, in der Manifest-Datei war
jedoch kein Wert für default_locale angegeben'

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-13 00:49:32 +01:00
b09290cb83 Release 0.1: Complete BinectChrome implementation
Implements all requirements from ProductRequirementsDocument.md:
- PDF detection via Chrome Downloads API
- Secure credential storage with AES-GCM encryption
- Binect API integration for PDF uploads
- Popup UI with Binect branding
- Local transfer tracking (500 entry cap)
- Help page with tracking view and CSV export
- 60-day credential retention with auto-expiry
- Accessibility compliance (WCAG 2.1 AA)

Technical implementation:
- Chrome Extension Manifest V3
- TypeScript with strict mode
- Webpack build system
- Jest test suite (22/22 passing)
- ESLint configured (0 errors)

Build output: 13 KB total (production minified)
Test coverage: crypto, pdf-detector, tracker, binect-api

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
v0.1
2026-01-13 00:30:39 +01:00
Coulomb Social
8f85c51d4e Initial commit 2026-01-12 17:27:43 +00:00