Skip to content

fix: --until <fecha> excluye el día final entero (boundary off-by-one) #46

Description

@VGonPa

Detectado en la revisión del PR #45.

_parse_date("2025-12-31") produce 2025-12-31T00:00:00+00:00, y _filter_in_range descarta item.created_at > until. Un item del 31-dic a las 14:00Z es > until y se excluye, pese a que el docstring promete una ventana inclusiva [since, until] y el usuario que escribe --until 2025-12-31 espera incluir todo el 31. Solo sobrevive el instante exacto de medianoche. since no tiene el problema simétrico (medianoche-inclusivo coincide con la intuición).

Fix propuesto: cuando --until es solo-fecha (sin hora), snap a fin-de-día (until + 1 día exclusivo, o 23:59:59.999999), o documentar que --until es un bound de timestamp exclusivo. Afecta a _parse_date (cli.py) — código compartido por extract/fetch/generate, por eso se difirió fuera del PR #45.

Tests: añadir un caso con item en el día until.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions