## Turn 1

*   `store.py`: `save_user` normalizes the email (strip and lower), but `get_user` does not.
    *   `routes.py`: `login` calls `get_user` with the raw input email.
    *   *Problem*: If a user registers with " User@Example.com ", it's stored as "user@example.com". If they login with "User@Example.com", `get_user` looks for "User@Example.com" and fails because it's not normalized.

    *   Option A: Normalize in `get_user`.
    *   Option B: Normalize in `login`.
    *   Option C: Normalize in both.
    *   *Best Practice*: Normalization should happen at the data access layer (`store.py`) to ensure consistency regardless of which route or service calls it.

    *   `store.py`: Update `get_user` to strip and lower the input email.
    *   `routes.py`: No changes needed if `get_user` is fixed.

    *   *File: store.py*
        *   Function: `get_user(email)`
        *   Change: `return USERS.get(email.strip().lower())`

    *   *Regression Test:*
        *   Scenario: Register with "  User@Example.Com  ", login with "user@example.com".
        *   Expected: Success.

    *   Concise patch plan? Yes.
    *   Exact file/function edits? Yes.
    *   One regression test? Yes.

    *   *Refining the patch:*
        `store.py`
        `get_user` -> `return USERS.get(email.strip().lower())`

    *   *Refining the test:*
        Test case: `save_user("  User@Example.Com  ", "hash")` followed by `login("user@example.com", "hash")` should return `True`.