copilot-swe-agent[bot]
7f06d94f74
Initial plan
2026-03-01 17:34:25 +00:00
github-actions[bot]
97cd1cdb92
chore(release): update build metadata files [skip ci]
2026-03-01 17:23:28 +00:00
semantic-release
25df15bdda
0.67.2
...
Automatically generated by python-semantic-release
2026-03-01 17:23:25 +00:00
Christian Krakau-Louis
0134ed37d5
Merge pull request #446 from christianlouis/copilot/optimize-test-timeouts
...
fix(ci): split test pipeline into quick/integration stages, fix hanging test
2026-03-01 18:23:06 +01:00
Christian Krakau-Louis
8ac4179b8b
Merge pull request #445 from christianlouis/copilot/enforce-database-upgrades-migration
...
refactor(database): enforce Alembic-only schema migrations, deprecate manual migration code
2026-03-01 18:22:48 +01:00
copilot-swe-agent[bot]
8d81ed6c74
fix: address code review feedback - use specific exceptions, dynamic revision IDs in tests
...
- Replace bare Exception catches with sa.exc.OperationalError in migration 007
- Use ScriptDirectory.get_heads() for dynamic revision ID assertions in tests
- Make migration count assertion flexible (>= 8 instead of == 8)
- Rewrite pending migrations test to actually test upgrade from revision 006
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 16:57:19 +00:00
copilot-swe-agent[bot]
87d1b9d935
refactor(database): enforce Alembic-only database migrations, deprecate manual schema migrations
...
- Create alembic.ini and migrations/env.py for full Alembic CLI + programmatic support
- Add Alembic migration 006: detail column on processing_logs
- Add Alembic migration 007: ocr_quality_score column + drop unique filehash index
- Add Alembic migration 008: performance indexes
- Replace _run_schema_migrations() call in init_db() with _run_alembic_upgrade()
- Deprecate _run_schema_migrations() with DeprecationWarning
- Update tests for new Alembic-based approach and deprecation
- Update DatabaseConfiguration.md documentation
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 16:47:41 +00:00
copilot-swe-agent[bot]
6a21adcdd4
fix(ci): increase quick test job timeout to 15 minutes for CI runner headroom
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 16:46:57 +00:00
copilot-swe-agent[bot]
c100250b23
docs: update CI workflow and integration test documentation for two-stage pipeline
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 16:45:44 +00:00
copilot-swe-agent[bot]
6c643e9962
fix(ci): add pytest-timeout, fix hanging test, split CI into quick + integration stages
...
- Add pytest-timeout>=2.3.0 to requirements-dev.txt with 120s global default
- Fix test_fallback_file_id_lookup: add missing _should_upload_* mocks that
caused .delay() calls to hang on Redis broker connection
- Split CI test job into two stages:
- Quick Tests (timeout: 10min, ~2min run): unit + basic integration
- Integration Tests (timeout: 20min): Docker containers, external services
- Quick tests gate integration tests for fast-fail feedback
- Build job now depends on both test stages
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 16:43:56 +00:00
github-actions[bot]
08b24e3e66
chore(release): update build metadata files [skip ci]
2026-03-01 16:27:22 +00:00
semantic-release
297d435be5
0.67.1
...
Automatically generated by python-semantic-release
2026-03-01 16:27:19 +00:00
Christian Krakau-Louis
91bd4ad837
Merge pull request #444 from christianlouis/copilot/optimize-database-queries
...
fix(db): check column existence before creating indexes; fix mypy error in cache.py
2026-03-01 17:27:03 +01:00
copilot-swe-agent[bot]
069be988ab
Initial plan
2026-03-01 16:23:46 +00:00
copilot-swe-agent[bot]
d45d0a424e
fix: add type: ignore for redis.scan() mypy false positive in cache.py
...
redis.Redis.scan() returns a tuple at runtime but mypy infers
Awaitable[Any] from the generic ResponseT return type, causing
a "not iterable" error on tuple unpacking.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 15:22:50 +00:00
copilot-swe-agent[bot]
febdf41469
fix(db): check column existence before creating performance indexes
...
_ensure_indexes() now verifies the target column exists in the table
before executing CREATE INDEX IF NOT EXISTS. This prevents failures
when migrating legacy database schemas that don't yet have all columns
(e.g. files table without created_at or mime_type).
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 15:09:32 +00:00
copilot-swe-agent[bot]
5c098d2ac7
Initial plan
2026-03-01 14:52:59 +00:00
github-actions[bot]
5b9f78d2d5
chore(release): update build metadata files [skip ci]
2026-03-01 14:52:47 +00:00
semantic-release
3a2a5a728f
0.67.0
...
Automatically generated by python-semantic-release
2026-03-01 14:52:44 +00:00
Christian Krakau-Louis
2223700404
Merge pull request #442 from christianlouis/copilot/add-feature-flag-gmail-processing
...
feat(imap): add IMAP_READONLY_MODE to prevent preprod from modifying shared mailboxes
2026-03-01 15:52:28 +01:00
copilot-swe-agent[bot]
ce87b53331
style: fix spelling (British to American English)
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 14:41:29 +00:00
copilot-swe-agent[bot]
d5a95e9270
docs: add Performance & Caching section to ConfigurationGuide
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 14:40:19 +00:00
copilot-swe-agent[bot]
b79ba81e05
perf(db): add indexes on query-hot columns and Redis caching layer
...
- Add database indexes on FileRecord.created_at, FileRecord.mime_type,
ProcessingLog.file_id, ProcessingLog.timestamp, and
FileProcessingStep.status for faster filtering, sorting, and joins.
- Add _ensure_indexes() migration for existing databases.
- Create app/utils/cache.py with fail-open Redis GET/SET/DELETE helpers.
- Cache MIME types dropdown query in files view (120s TTL).
- Optimize batch status query to load only needed columns.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 14:38:28 +00:00
copilot-swe-agent[bot]
a4fafe5c56
Initial plan
2026-03-01 14:30:22 +00:00
copilot-swe-agent[bot]
f8c5dd539d
feat(imap): add IMAP_READONLY_MODE feature flag to safeguard shared mailboxes
...
When enabled, IMAP processing will fetch and process attachments but
will NOT modify the mailbox state (no starring, labeling, deleting,
or flag changes). This allows preprod instances to safely share a
Gmail inbox with production without interfering with production
email processing.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 14:28:51 +00:00
copilot-swe-agent[bot]
88cd8c4098
Initial plan
2026-03-01 14:23:18 +00:00
github-actions[bot]
70579bc9b6
chore(release): update build metadata files [skip ci]
2026-03-01 14:20:18 +00:00
semantic-release
a973855fcd
0.66.0
...
Automatically generated by python-semantic-release
2026-03-01 14:20:15 +00:00
Christian Krakau-Louis
96b14ec74f
Merge pull request #440 from christianlouis/copilot/update-search-functionality
...
feat(search): add content-finding filters, saved searches, and text quality to Search view
2026-03-01 15:19:57 +01:00
copilot-swe-agent[bot]
68857c1785
style(search): address code review - use const/let, fix date timezone, deduplicate filter keys
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 13:59:23 +00:00
github-actions[bot]
b71f021860
chore(release): update build metadata files [skip ci]
2026-03-01 13:58:23 +00:00
semantic-release
46033ff7c2
0.65.0
...
Automatically generated by python-semantic-release
2026-03-01 13:58:20 +00:00
Christian Krakau-Louis
b65d937a36
Merge pull request #439 from christianlouis/copilot/add-bulk-file-operations
...
feat: bulk operations (delete, reprocess, Cloud OCR, ZIP download) + persisted OCR quality score filter
2026-03-01 14:58:01 +01:00
copilot-swe-agent[bot]
de09dba285
docs: update API and User Guide with search filters and saved searches
...
- Document new /api/search endpoint with all filter parameters
- Update saved searches docs with new allowed filter keys
- Update User Guide with search view filters and saved searches usage
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 13:55:55 +00:00
copilot-swe-agent[bot]
83c3405c98
feat: persist ocr_quality_score and use it for numeric filtering
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 13:46:43 +00:00
copilot-swe-agent[bot]
5bf0a4c0b9
feat(search): add content-finding filters, saved searches, and text quality to Search view
...
- Add tags, sender, text_quality filters to search API and Meilisearch client
- Add sender and ocr_text_length to Meilisearch filterable attributes
- Expand saved search allowed filter keys to include q, document_type, language, sender, text_quality
- Add filters panel and saved searches UI to the Search view template
- Add tests for new search filters, saved search keys, and search view elements
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 13:46:15 +00:00
copilot-swe-agent[bot]
705b970522
feat: add bulk download, cloud OCR, and basic OCR quality filter
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 13:38:42 +00:00
github-actions[bot]
fbfd2edc9e
chore(release): update build metadata files [skip ci]
2026-03-01 13:34:41 +00:00
semantic-release
9cd1206c3b
0.64.1
...
Automatically generated by python-semantic-release
2026-03-01 13:34:39 +00:00
Christian Krakau-Louis
4e5a3ad973
Merge pull request #438 from christianlouis/copilot/fix-upload-queue-overwrite
...
fix: append new drag-and-drop batches to upload queue instead of replacing it
2026-03-01 14:34:23 +01:00
copilot-swe-agent[bot]
e797832561
Initial plan
2026-03-01 13:32:57 +00:00
copilot-swe-agent[bot]
81c08ed9d0
fix: append new drops to upload queue instead of overwriting it
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-01 13:26:49 +00:00
copilot-swe-agent[bot]
e8ed375bba
Initial plan
2026-03-01 13:25:10 +00:00
copilot-swe-agent[bot]
f11b5e74b5
Initial plan
2026-03-01 13:23:51 +00:00
github-actions[bot]
3eb3b9f8db
chore(release): update build metadata files [skip ci]
2026-03-01 12:30:52 +00:00
semantic-release
11724b5500
0.64.0
...
Automatically generated by python-semantic-release
2026-03-01 12:30:49 +00:00
Christian Krakau-Louis
05c35a6775
Merge pull request #437 from christianlouis/copilot/add-file-download-endpoint
...
fix(api): change download endpoint default version from `original` to `processed`
2026-03-01 13:30:30 +01:00
github-actions[bot]
dc93cde437
chore(release): update build metadata files [skip ci]
2026-03-01 12:30:20 +00:00
semantic-release
eb695116e2
0.63.0
...
Automatically generated by python-semantic-release
2026-03-01 12:30:18 +00:00
Christian Krakau-Louis
be01232408
Merge pull request #436 from christianlouis/copilot/add-advanced-filtering-feature
...
feat: add advanced filtering and saved searches
2026-03-01 13:30:01 +01:00