Inpoxia Tooling Workflow
Run Inpoxia repo tasks with consistent commands and validation gates.
Quick Start
-
Detect task type: CLI behavior, GraphMail library behavior, configuration/auth flow, or packaging/release.
-
Run the narrowest command that validates the change first (single test module or targeted command).
-
Run broader checks before finishing: tests plus static checks relevant to changed files.
-
Report exact commands executed and key results.
⚠️ Critical: Search vs Filter
Before using messages search or messages filter , read references/search-vs-filter.md .
-
filter = Exact field matching + date ranges (OData $filter)
-
search = Fuzzy/full-text search (Microsoft Graph $search)
-
These are mutually exclusive — you cannot combine $search with $filter in Microsoft Graph.
Common mistake: Trying to use --from <email> with search (expects fuzzy KQL syntax, not flags). Use messages filter for exact matches instead.
Use Repo Commands
Use uv -managed tools in this repo.
-
Run tests: pytest
-
Run targeted tests: pytest tests/inpoxia/test_cli_messages.py -q
-
Run type checks: pyright
-
Run lint checks: ruff check .
-
Run formatting: ruff format .
-
Run CLI locally: ./.venv/bin/inpoxia --help
Prefer targeted test selection first, then expand scope as confidence increases.
Validate By Change Type
CLI command/output changes (src/inpoxia/cli/** )
-
Run the relevant CLI test module under tests/inpoxia/ .
-
Run related GraphMail tests if the command calls inpoxia.graphmail .
-
Run ruff check . and pyright .
GraphMail library changes (src/inpoxia/graphmail/** )
-
Run matching tests under tests/inpoxia/graphmail/ .
-
Run full tests/inpoxia/graphmail/ suite when behavior contracts change.
-
Run pyright and ruff check . .
Config/auth/token handling changes
-
Run tests/inpoxia/test_config*.py , tests/inpoxia/test_cli_auth.py , and tests/inpoxia/test_auth_manager.py as applicable.
-
Confirm token resolution order and error handling behavior remain consistent.
Use References
-
references/command-recipes.md : Compact command map and task-to-test routing.
-
references/search-vs-filter.md : Critical guide to choosing between messages search (fuzzy) and messages filter (exact match). Read this to avoid AI agents attempting fuzzy searches with filters or vice versa.