__wrapped__ is a bound method where self is already the task instance,
so passing mock_task shifted all positional args causing TypeError.
Replace with direct assignment to embed_metadata_into_pdf.request.id.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Complete summary of mock OAuth2 server implementation
- Verification results and architecture overview
- Usage examples and next steps
- Technical details and file inventory
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Document GitHub Actions configuration for mock and real OAuth
- Add security best practices for OAuth secrets
- Include troubleshooting guide
- Provide complete workflow examples
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add MockOAuth2ServerContainer using testcontainers
- Create conftest_oauth.py with OAuth test fixtures
- Add comprehensive OAuth integration tests
- Support both mock (default) and real (CI secrets) OAuth modes
- Add documentation for OAuth testing setup
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Improve PDF test to use valid minimal PDF structure
- Clarify test intent for settings mock behavior
- Make assertions more specific where possible
- Fix singular/plural form test for time formatting
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add types-requests and types-paramiko stubs to requirements-dev.txt
- Configure mypy disable_error_code in pyproject.toml for SQLAlchemy/ORM
false positives and dynamic library type issues
- Add comprehensive pylint configuration in pyproject.toml with documented
suppressions for framework-specific patterns and false positives
- Update CI workflow to use pyproject.toml config instead of inline flags
- Both mypy and pylint now pass with exit code 0
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Create detailed implementation summary document
- Document all deliverables and technical specifications
- Include code statistics and browser compatibility matrix
- List all requirements met and acceptance criteria satisfied
- Provide success metrics and next steps
- Mark feature as production-ready
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Fix response.json() called before checking response.ok in popup.js
- Consolidate duplicate onInstalled listeners in background.js
- Remove unnecessary return true from content.js message handler
- Add better error handling for non-JSON responses
- Improve user experience by not auto-opening popup on install
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add explicit return value to message listener in content.js
- Fix documentation references in QUICKSTART.md
- Clarify that GET_PAGE_INFO listener is reserved for future use
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Refactors .github/workflows/tests.yaml so that flake8, black, mypy,
pylint, and bandit each run as their own job in parallel with the test
job. This ensures a failure in one tool never blocks the others, and
contributors see full feedback from every tool on every CI run.
- Upgrades actions/checkout to v4 and actions/setup-python to v5
- All linter jobs are enforced (no continue-on-error)
- Test artifacts (junit.xml, coverage.xml) always uploaded
- Bandit JSON report always uploaded as artifact
- Adds docs/CIWorkflow.md with maintainer documentation
- Updates CONTRIBUTING.md with CI workflow table and link
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Create comprehensive visual guide showing all UI states
- Document color scheme, typography, and accessibility features
- Include ASCII art mockups of popup interface
- Add browser support matrix and performance metrics
- Document user flow and security indicators
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
- Add complete browser extension with popup UI and background workers
- Support Chrome, Firefox, Edge, and other Chromium-based browsers
- Include context menu integration for quick file sending
- Add comprehensive documentation for users and administrators
- Update main README and API docs to include browser extension
- Implement secure configuration storage in browser extension storage
- Add SSRF-protected URL upload endpoint integration
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>