Files
binect-chrome/CLAUDE.md
tegwick 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>
2026-01-13 00:30:39 +01:00

3.1 KiB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

BinectChrome is a Chrome extension (Manifest V3) that enables users to send PDF documents from arbitrary cloud applications directly to Binect for physical printing and postal delivery, eliminating the manual download-upload workflow.

Core Architecture Principles

Browser Extension Structure (Manifest V3)

  • Service worker-based background script (no persistent background pages)
  • Popup UI for user interaction
  • Chrome Downloads API for PDF detection
  • Chrome Storage API for encrypted credential storage

Privacy-First Design

  • Zero PDF storage: PDFs are never stored by the extension
  • Explicit user intent: No automatic sending; all transfers require user click
  • Metadata minimization: No content inspection or filename persistence
  • Local-only tracking: All tracking data stored locally in browser, never transmitted except in support requests

Authentication & Security

  • Credential storage: Username/password encrypted at rest in extension storage
  • 60-day retention: Credentials auto-expire after 60 days of inactivity
  • No backend relay: Extension communicates directly with Binect API
  • Minimal permissions: Only downloads, storage, activeTab, and Binect API host permission

Key Functional Components

1. PDF Detection System

  • Primary: Detect completed PDF downloads via Chrome Downloads API
    • Identify by .pdf extension or Content-Type: application/pdf headers
  • Secondary: Detect in-browser PDF navigation via Content-Type: application/pdf
  • Limitation: blob URLs and complex JS viewers may not be detectable

2. PDF Acquisition & Transfer

  • Re-fetch PDF from original URL using user session (preferred)
  • Upload to Binect via official API
  • Show progress states: Uploading → Success/Failure

3. Credential Management

  • Encrypt at rest, decrypt only in memory during use
  • "Use" = successful authentication or successful send
  • Auto-delete after 60 days inactivity
  • Manual wipe option always available

4. Local Tracking ("Score")

Track locally only:

  • Timestamp
  • Source domain/URL
  • Destination URL
  • PDF filesize
  • Result (success/failure + error class)

Cap at ~500 entries to prevent unbounded growth.

5. User Interface

  • Popup: Shows last detected PDF (filename, size, timestamp, source domain) + "Send PDF to Binect" button
  • Info/Help ("?"): Access tracking view with summary counts and chronological transfer list
  • Feedback link: Opens email to bernd.worsch@binect.de with tracking data as CSV (embedded in body and/or clipboard)

Technical Constraints

  • Chrome Extension Manifest V3 required
  • No external backend services
  • No cross-browser support in v1 (Chrome only)
  • Service worker lifecycle limitations (no persistent background)

Distribution

  • Automated publication via Chrome Web Store
  • Must pass Chrome Web Store security review (minimal permissions critical)

Contact & Support

Feature requests and bug reports: bernd.worsch@binect.de