[profile.default]
# Default-profile tests: flag SLOW after 1s, hard-kill after 3s
slow-timeout = { period = "1s", terminate-after = 3 }
leak-timeout = "500ms"

    [[profile.default.overrides]]
    filter = "package(fabro-cli)"
    slow-timeout = { period = "6s", terminate-after = 4 }

    [[profile.default.overrides]]
    filter = "package(fabro-server)"
    slow-timeout = { period = "5s", terminate-after = 4 }

    [[profile.default.overrides]]
    filter = "package(fabro-workflow)"
    slow-timeout = { period = "2s", terminate-after = 3 }

    [[profile.default.overrides]]
    filter = "package(twin-openai) & test(debug_page_renders_in_headless_chrome)"
    slow-timeout = { period = "30s", terminate-after = 1 }

[profile.e2e]
# E2E (ignored) tests: flag SLOW after 10s, hard-kill after 30s
slow-timeout = { period = "10s", terminate-after = 3 }
leak-timeout = "500ms"

[profile.ci]
# CI runners are slower and more variable than dev machines; give tests room
# before flagging them as hung. CI uses one uniform timeout for every test.
#
# Nextest falls back to `[[profile.default.overrides]]` when the active
# profile has no matching override for a given setting, so the per-package
# overrides below re-assert the CI timeout for packages narrowed down in
# profile.default. See
# https://nexte.st/docs/configuration/per-test-overrides/#override-precedence
slow-timeout = { period = "30s", terminate-after = 4 }
leak-timeout = "2s"

    [[profile.ci.overrides]]
    filter = "package(fabro-cli)"
    slow-timeout = { period = "30s", terminate-after = 4 }

    [[profile.ci.overrides]]
    filter = "package(fabro-server)"
    slow-timeout = { period = "30s", terminate-after = 4 }

    [[profile.ci.overrides]]
    filter = "package(fabro-workflow)"
    slow-timeout = { period = "30s", terminate-after = 4 }

    [[profile.ci.overrides]]
    filter = "package(twin-openai) & test(debug_page_renders_in_headless_chrome)"
    slow-timeout = { period = "60s", terminate-after = 2 }
