[
  "tests/test_agent.py::test_arm_timer_tracks_active_timer",
  "tests/test_agent.py::test_cooking_request_hands_off_to_kitchen",
  "tests/test_agent.py::test_does_not_claim_to_be_on_r1",
  "tests/test_agent.py::test_grounding",
  "tests/test_agent.py::test_kitchen_offers_timer_but_waits_for_yes",
  "tests/test_agent.py::test_kitchen_reads_action_only_and_stops",
  "tests/test_agent.py::test_kitchen_reads_detail_on_request",
  "tests/test_agent.py::test_note_capture_uses_tool",
  "tests/test_agent.py::test_offers_assistance",
  "tests/test_agent.py::test_refuses_harmful_request",
  "tests/test_agent.py::test_timer_tool_is_used",
  "tests/test_agent.py::test_weather_tool_is_used",
  "tests/test_agent.py::test_web_search_tool_is_used",
  "tests/test_tools.py::test_add_grocery_creates_missing_section",
  "tests/test_tools.py::test_add_grocery_files_under_section",
  "tests/test_tools.py::test_append_under_new_heading",
  "tests/test_tools.py::test_build_kitchen_state_not_cooking",
  "tests/test_tools.py::test_build_kitchen_state_shape",
  "tests/test_tools.py::test_capture_creates_inbox_with_tag",
  "tests/test_tools.py::test_categorize_grocery[asparagus-Produce]",
  "tests/test_tools.py::test_categorize_grocery[chicken thighs-Meat / Protein]",
  "tests/test_tools.py::test_categorize_grocery[frozen peas-Frozen]",
  "tests/test_tools.py::test_categorize_grocery[olive oil-Pantry]",
  "tests/test_tools.py::test_categorize_grocery[paper towels-Household]",
  "tests/test_tools.py::test_categorize_grocery[whole milk-Dairy]",
  "tests/test_tools.py::test_convert_measure[0-celsius-fahrenheit-32]",
  "tests/test_tools.py::test_convert_measure[100-celsius-kelvin-373]",
  "tests/test_tools.py::test_convert_measure[2-cups-ml-473]",
  "tests/test_tools.py::test_convert_measure[3-inches-cm-7.62]",
  "tests/test_tools.py::test_convert_measure[350-fahrenheit-celsius-176]",
  "tests/test_tools.py::test_convert_measure[5-miles-km-8.04]",
  "tests/test_tools.py::test_convert_measure_incompatible",
  "tests/test_tools.py::test_derive_tags[Banana Wild Blueberry Smoothie-keywords7-None-cooking.nytimes.com-recipe/drink-want_present7]",
  "tests/test_tools.py::test_derive_tags[Beer-Brined Roast Chicken-keywords0-American-cooking.nytimes.com-recipe/chicken-want_present0]",
  "tests/test_tools.py::test_derive_tags[Dan Dan Noodles-keywords2-Chinese-cooking.nytimes.com-recipe/pasta-want_present2]",
  "tests/test_tools.py::test_derive_tags[Grilled Chicken Caesar Salad-keywords4-None-seriouseats.com-recipe/salad-want_present4]",
  "tests/test_tools.py::test_derive_tags[Lamb Steak With Lebanese Spices-keywords5-None-cooking.nytimes.com-recipe/lamb-want_present5]",
  "tests/test_tools.py::test_derive_tags[Marcella Hazan's Tomato Sauce-None-None-cooking.nytimes.com-recipe/sauce-want_present3]",
  "tests/test_tools.py::test_derive_tags[Pressure Cooker Lamb Meatballs-keywords6-None-cooking.nytimes.com-recipe/lamb-want_present6]",
  "tests/test_tools.py::test_derive_tags[Taco Soup-keywords1-None-cooking.nytimes.com-recipe/soup-want_present1]",
  "tests/test_tools.py::test_find_recipe_fuzzy",
  "tests/test_tools.py::test_find_recipe_legacy_links",
  "tests/test_tools.py::test_import_web_recipe_writes_structured_note",
  "tests/test_tools.py::test_iso_duration_to_human",
  "tests/test_tools.py::test_list_skips_readme_and_inbox",
  "tests/test_tools.py::test_nyt_recipe_box_canonical_recipe_url[-None]",
  "tests/test_tools.py::test_nyt_recipe_box_canonical_recipe_url[/recipes/12345-soup?smid=ck-recipe-iOS-share-https://cooking.nytimes.com/recipes/12345-soup]",
  "tests/test_tools.py::test_nyt_recipe_box_canonical_recipe_url[https://cooking.nytimes.com/recipes/1025507-extra-green-pasta-salad?unlocked_article_code=x-https://cooking.nytimes.com/recipes/1025507-extra-green-pasta-salad]",
  "tests/test_tools.py::test_nyt_recipe_box_canonical_recipe_url[https://example.com/recipes/12345-soup-None]",
  "tests/test_tools.py::test_nyt_recipe_box_canonical_recipe_url[https://www.nytimes.com/section/food-None]",
  "tests/test_tools.py::test_nyt_recipe_box_dedupe_recipe_urls_preserves_order",
  "tests/test_tools.py::test_nyt_recipe_box_import_urls_dry_run",
  "tests/test_tools.py::test_pantry_add_and_remove",
  "tests/test_tools.py::test_parse_duration[-None]",
  "tests/test_tools.py::test_parse_duration[1 hr 30 min-5400]",
  "tests/test_tools.py::test_parse_duration[1.5 min-90]",
  "tests/test_tools.py::test_parse_duration[14 min-840]",
  "tests/test_tools.py::test_parse_duration[2 hours-7200]",
  "tests/test_tools.py::test_parse_duration[3 min-180]",
  "tests/test_tools.py::test_parse_duration[30 minutes-1800]",
  "tests/test_tools.py::test_parse_duration[45 seconds-45]",
  "tests/test_tools.py::test_parse_duration[90 sec-90]",
  "tests/test_tools.py::test_parse_duration[nope-None]",
  "tests/test_tools.py::test_parse_steps_attaches_detail_and_timer",
  "tests/test_tools.py::test_parse_timer[14 min-expected2]",
  "tests/test_tools.py::test_parse_timer[squash, 14 min-expected0]",
  "tests/test_tools.py::test_parse_timer[squash, nonsense-None]",
  "tests/test_tools.py::test_parse_timer[steak rest, 9 min-expected1]",
  "tests/test_tools.py::test_read_today_focus_only_today_column",
  "tests/test_tools.py::test_recipes_walk_instructions_flattens",
  "tests/test_tools.py::test_safe_path_rejects_escape",
  "tests/test_tools.py::test_spoken_duration[1-1 second]",
  "tests/test_tools.py::test_spoken_duration[45-45 seconds]",
  "tests/test_tools.py::test_spoken_duration[60-1 minute]",
  "tests/test_tools.py::test_spoken_duration[840-14 minutes]",
  "tests/test_tools.py::test_spoken_duration[90-1 minute 30 seconds]",
  "tests/test_tools.py::test_step_line_is_action_only",
  "tests/test_tools.py::test_structured_recipe_note_parsed",
  "tests/test_tools.py::test_timer_offer_present_only_with_timer",
  "tests/test_tools.py::test_web_steps_normalized_to_structured"
]