.gitignore
.markdownlint-cli2.jsonc
AGENTS.md
CHANGELOG.md
CLAUDE.md
LICENCE.md
README.md
pyproject.toml
uv.lock
.agents/skills/screenshooter-e2e-session-verification/SKILL.md
.agents/skills/screenshooter-e2e-session-verification/scripts/run_session_smoke.sh
.agents/skills/screenshooter-e2e-session-verification/scripts/verify_report_pdf.py
.agents/skills/screenshooter-email-e2e-verification/SKILL.md
.agents/skills/screenshooter-email-e2e-verification/scripts/prepare_email_runtime.py
.agents/skills/screenshooter-tui-verification/SKILL.md
.agents/skills/screenshooter-tui-verification/scripts/tui_tmux.sh
.cursor/rules/backup-module.mdc
.cursor/rules/cli-menu.mdc
.cursor/rules/clients-module.mdc
.cursor/rules/code-style.mdc
.cursor/rules/database-migrations.mdc
.cursor/rules/database-module.mdc
.cursor/rules/dependency-management.mdc
.cursor/rules/directory-structure.mdc
.cursor/rules/image-upload.mdc
.cursor/rules/project-structure.mdc
.cursor/rules/report-design.mdc
.cursor/rules/reports-module.mdc
.cursor/rules/reports.mdc
.cursor/rules/runtime-overrides.mdc
.cursor/rules/s3-module.mdc
.cursor/rules/sandbox.mdc
.cursor/rules/screenshot-module.mdc
.cursor/rules/settings-module.mdc
.cursor/rules/sync-module.mdc
.cursor/rules/testing.mdc
.cursor/rules/upgrade-module.mdc
docs/CLI.md
docs/DB_STRUCTURE.md
docs/DEVELOPMENT.md
docs/README.md
docs/ROADMAP.md
docs/RUNTIME_OVERRIDES.md
docs/SYNC.md
scripts/README.md
scripts/abort_multipart_uploads.py
scripts/client_hours_report.py
scripts/refresh_sandbox_from_base.sh
scripts/run_tests_sandboxed.sh
scripts/sessions_with_missing_end_times.py
src/screenshooter/__init__.py
src/screenshooter/help.py
src/screenshooter/main.py
src/screenshooter/ui.py
src/screenshooter/versioning.py
src/screenshooter/cli/__init__.py
src/screenshooter/cli/app.py
src/screenshooter/menus/__init__.py
src/screenshooter/menus/extra_menu.py
src/screenshooter/menus/main_menu.py
src/screenshooter/modules/__init__.py
src/screenshooter/modules/backup/__init__.py
src/screenshooter/modules/backup/cli.py
src/screenshooter/modules/backup/main.py
src/screenshooter/modules/backup/menu.py
src/screenshooter/modules/clients/__init__.py
src/screenshooter/modules/clients/__main__.py
src/screenshooter/modules/clients/cli.py
src/screenshooter/modules/clients/main.py
src/screenshooter/modules/clients/manager.py
src/screenshooter/modules/clients/models.py
src/screenshooter/modules/clients/resolve.py
src/screenshooter/modules/clients/utils.py
src/screenshooter/modules/database/__init__.py
src/screenshooter/modules/database/cli.py
src/screenshooter/modules/database/database.py
src/screenshooter/modules/database/migration_models.py
src/screenshooter/modules/database/migration_runner.py
src/screenshooter/modules/database/migrations.py
src/screenshooter/modules/database/models.py
src/screenshooter/modules/database/operations.py
src/screenshooter/modules/database/timing_verification.py
src/screenshooter/modules/database/versions/001_initial_schema.sql
src/screenshooter/modules/database/versions/002_add_active_columns.sql
src/screenshooter/modules/database/versions/003_add_archived_at_columns.sql
src/screenshooter/modules/database/versions/004_add_sync_columns.sql
src/screenshooter/modules/database/versions/005_add_sync_state_table.sql
src/screenshooter/modules/database/versions/006_add_project_goals.sql
src/screenshooter/modules/reports/__init__.py
src/screenshooter/modules/reports/cli.py
src/screenshooter/modules/reports/db_session_log.py
src/screenshooter/modules/reports/report.py
src/screenshooter/modules/reports/report_email.py
src/screenshooter/modules/reports/stats.py
src/screenshooter/modules/reports/pdf/__init__.py
src/screenshooter/modules/reports/pdf/components.py
src/screenshooter/modules/reports/pdf/generation.py
src/screenshooter/modules/reports/pdf/generator.py
src/screenshooter/modules/reports/pdf/helper.py
src/screenshooter/modules/reports/pdf/models.py
src/screenshooter/modules/reports/pdf/multi_session.py
src/screenshooter/modules/reports/pdf/tables.py
src/screenshooter/modules/reports/pdf/utils.py
src/screenshooter/modules/s3/__init__.py
src/screenshooter/modules/s3/__main__.py
src/screenshooter/modules/s3/helper.py
src/screenshooter/modules/s3/main.py
src/screenshooter/modules/s3/vanity_helper.py
src/screenshooter/modules/screenshot/__init__.py
src/screenshooter/modules/screenshot/__main__.py
src/screenshooter/modules/screenshot/cli.py
src/screenshooter/modules/screenshot/config.py
src/screenshooter/modules/screenshot/db_integration.py
src/screenshooter/modules/screenshot/diagnostics.py
src/screenshooter/modules/screenshot/goals.py
src/screenshooter/modules/screenshot/interactive.py
src/screenshooter/modules/screenshot/main.py
src/screenshooter/modules/screenshot/models.py
src/screenshooter/modules/screenshot/post_session.py
src/screenshooter/modules/screenshot/project.py
src/screenshooter/modules/screenshot/qt_region_selector.py
src/screenshooter/modules/screenshot/session.py
src/screenshooter/modules/screenshot/session_recovery.py
src/screenshooter/modules/screenshot/utils.py
src/screenshooter/modules/settings/__init__.py
src/screenshooter/modules/settings/cli.py
src/screenshooter/modules/settings/logging_utils.py
src/screenshooter/modules/settings/main.py
src/screenshooter/modules/settings/models.py
src/screenshooter/modules/settings/settings_helper.py
src/screenshooter/modules/sync/__init__.py
src/screenshooter/modules/sync/auto.py
src/screenshooter/modules/sync/cli.py
src/screenshooter/modules/sync/config.py
src/screenshooter/modules/sync/image_uploader.py
src/screenshooter/modules/sync/manager.py
src/screenshooter/modules/sync/pull.py
src/screenshooter/modules/sync/push.py
src/screenshooter/modules/sync/state.py
src/screenshooter/modules/sync/transport.py
src/screenshooter/modules/upgrade/__init__.py
src/screenshooter/modules/upgrade/checker.py
src/screenshooter/modules/upgrade/cli.py
src/screenshooter/runtime/__init__.py
src/screenshooter/runtime/bootstrap.py
src/screenshooter/runtime/paths.py
src/screenshooter/runtime/startup.py
src/wm_screenshooter.egg-info/PKG-INFO
src/wm_screenshooter.egg-info/SOURCES.txt
src/wm_screenshooter.egg-info/dependency_links.txt
src/wm_screenshooter.egg-info/entry_points.txt
src/wm_screenshooter.egg-info/requires.txt
src/wm_screenshooter.egg-info/scm_file_list.json
src/wm_screenshooter.egg-info/scm_version.json
src/wm_screenshooter.egg-info/top_level.txt
tests/README.md
tests/component/test_email_provider.py
tests/fixtures/.gitkeep
tests/fixtures/sandbox/README.md
tests/fixtures/sandbox/db/backup_cache.json
tests/fixtures/sandbox/db/screenshooter.db
tests/fixtures/sandbox/db/settings.json
tests/fixtures/sandbox/db/upgrade_cache.json
tests/fixtures/sandbox/dir/.gitkeep
tests/fixtures/sandbox/dir/Big_Client/client.json
tests/fixtures/sandbox/dir/Big_Client/Big_Project/goals.json
tests/fixtures/sandbox/dir/Big_Client/Big_Project/project.json
tests/fixtures/sandbox/dir/Big_Client/Big_Project/reports/.gitkeep
tests/fixtures/sandbox/dir/Big_Client/Big_Project/sessions/.gitkeep
tests/fixtures/sandbox/dir/Big_Client/Big_Project/sessions/2026-05-21_10-43-56/session.json
tests/fixtures/sandbox/dir/Big_Client/Big_Project/sessions/2026-05-21_10-43-56/screenshots/Big Project_2026-05-21_10-45-02_manual_display1_screen.jpg
tests/fixtures/sandbox/dir/Big_Client/Big_Project/sessions/2026-05-21_10-43-56/screenshots/Big Project_2026-05-21_10-45-21_manual_display1_screen.jpg
tests/fixtures/sandbox/dir/Big_Client/Big_Project/sessions/2026-05-21_10-43-56/screenshots/Big Project_2026-05-21_10-48-05_snippet_region.jpg
tests/integration/test_screenshot_raw_input.py