Goal
Make the Base history test suite pass in every supported host timezone, including zones with half-hour or quarter-hour offsets.
Background
parse_history_bound correctly treats naive short timestamps as host-local time and converts them to UTC. The regression test only asserts that the converted minute remains 15, which is false in Asia/Kolkata: 2026-06-10 10:15 local correctly becomes 04:45 UTC.
The focused test passes under TZ=UTC and fails under TZ=Asia/Kolkata. This causes the supported ./bin/base-test path to fail locally while hosted UTC CI remains green.
Relevant code:
Related issue:
Scope
- Replace the UTC-biased assertion with a deterministic host-timezone expectation.
- Add explicit coverage for a non-whole-hour UTC offset.
- Preserve the public rule that naive short forms use host-local time and explicit offsets take precedence.
- Keep canonical JSON timestamps in UTC.
Acceptance Criteria
- The focused test passes under UTC, Asia/Kolkata, and at least one negative UTC offset.
- Tests assert the complete expected instant rather than one coincidentally stable field.
- Explicit Z and offset-bearing inputs remain unchanged.
- The full supported test harness passes in the host timezone.
Validation
- Run the focused test under TZ=UTC.
- Run the focused test under TZ=Asia/Kolkata.
- Run the complete base_history test module.
- env -u BASE_HOME ./bin/base-test
- git diff --check
Non-Goals
- Do not change the documented parsing semantics.
- Do not force all users to enter UTC.
- Do not change timestamp rendering options.
Project Fields
- Status: Ready
- Priority: P2
- Area: Python
- Initiative: Contract Hardening
- Size: S
Agent Assignment
Goal
Make the Base history test suite pass in every supported host timezone, including zones with half-hour or quarter-hour offsets.
Background
parse_history_bound correctly treats naive short timestamps as host-local time and converts them to UTC. The regression test only asserts that the converted minute remains 15, which is false in Asia/Kolkata: 2026-06-10 10:15 local correctly becomes 04:45 UTC.
The focused test passes under TZ=UTC and fails under TZ=Asia/Kolkata. This causes the supported ./bin/base-test path to fail locally while hosted UTC CI remains green.
Relevant code:
Related issue:
Scope
Acceptance Criteria
Validation
Non-Goals
Project Fields
Agent Assignment