8 Commits

Author SHA1 Message Date
shawn 66615dd3b9 Add AGENTS.md for AI agent context 2026-05-25 20:19:00 -04:00
shawn e408867aac Add diff tracking — compare exports between runs
- New cantaloupe/diff.py: diff engine comparing xlsx by Asset ID,
  manifest tracking at ~/.cantaloupe-exports/manifest.json
- New  subcommand: python -m cantaloupe diff [--from FILE] [--to FILE]
- Export --diff flag: auto-compare with previous export after download
- Every export auto-records to manifest for history tracking
- 44 new tests, 130/130 pass total
2026-05-21 18:53:11 -04:00
shawn 9c3d3ef7ed feat: Click CLI wrapper for cantaloupe export
- cantaloupe/ package with click CLI (python -m cantaloupe export)
- export command: --output, --headless/--visible, --scheduled, --email, --password
- configure command: saves credentials to ~/.cantaloupe.env (600 perms)
- cantaloupe/config.py: credential loading from env vars + env file
- Updated src/auth.py _get_credentials() to also check ~/.cantaloupe.env
- File size, row count (openpyxl), and elapsed time reporting
- 39 new CLI/config tests + 4 updated auth tests; 86/86 pass
2026-05-21 18:35:34 -04:00
shawn b5ae89a490 fix(download): fix _resolve_output_path default dir, add 20 download tests
- Fix: default None output now always treated as directory (timestamped filename)
- Fix: test_auth.py corrupted with line number prefixes cleaned up via regex
- Add: 20 tests for download.py covering path resolution, export, auth, CLI, full flow
- test_login_full_flow: Set-Cookie uses list format for httpx compatibility
- All 47 tests passing (27 auth + 20 download)
2026-05-21 18:09:20 -04:00
shawn 1a77f1941c t_50a4f551: Fix auth.py bugs + add 27 tests
- Fix _get_anti_forgery_state: parse JSON response (not raw text) to get Token
- Fix _do_login: pass __RequestVerificationToken header, add FormsAuthReturnUrl
- Fix login(): pass anti_forgery token through to _do_login
- Fix AuthSession: store password for refresh, handle NotVerifiedUserEmail
- Add 27 unit tests with respx mocking (all pass)
- Add respx+pytest to requirements.txt
2026-05-21 18:05:03 -04:00
shawn 5664fb7e0a t_54f0a481: Add API investigation findings doc 2026-05-21 17:58:05 -04:00
shawn ffa827fdf0 Add src/.gitkeep to preserve directory structure 2026-05-21 17:42:17 -04:00
shawn b6a4fb75b7 Initial project skeleton 2026-05-21 17:41:24 -04:00