piker/ai/prompt-io/codex/20260924T232405Z_441358e2_s...

2.7 KiB
Raw Blame History

git diff HEAD~1..HEAD -- piker/brokers/ib/api.py

git diff HEAD~1..HEAD -- tests/providers/test_ib_schedule.py

git diff HEAD~1..HEAD -- docs/history_segment_backfill.rst

Client.history_schedule() widens incomplete left coverage by doubling numDays up to 31 while preserving endDateTime and actual returned coverage. All attempts share an asyncio timeout. Missing right coverage returns unchanged because extending the lookback cannot repair it. Tests replay the captured MNQ schedules through the real client and reservation allocator, check bounded incomplete coverage and retry cancellation under one timeout. Documentation describes these limits.

User-facing output

The captured MNQ case now passes through the real client method and allocator: the request widens from one day to two, then reserves 51,824 slots while leaving the venue closure compressed.

The tests also cover permanently incomplete replies and a timeout during the retry. I’m running the related regression suites now.

All 39 selected tests passed, and Ruff passed. The reservation suite needed a retry outside the sandbox because Trio’s local wakeup socket was blocked.

The fix and regression tests are ready for review. I’m recording the prompt provenance; live SHM and parquet remain unchanged.

Validation commands and results

Worktree-local py313 in the existing Nix environment; import piker resolved inside this worktree.

  • py313/bin/python -m pytest -p no:xonsh -q -x –tb=short –no-header tests/providers/test_ib_schedule.py tests/providers/test_history_reservations.py Sandbox: 11 passed then PermissionError creating Trio wakeup socket. Escalated rerun: 22 passed in 1.02s; fake IB, disposable test SHM.
  • py313/bin/python -m pytest -p no:xonsh -q -x –tb=short –no-header tests/test_ib_history.py 17 passed in 0.69s.
  • ruff check piker/brokers/ib/api.py tests/providers/test_ib_schedule.py All checks passed (existing deprecated configuration warning).
  • git diff –check: passed.

No live service restart, live history repair, staging, or commit.

Follow-up user review and generated changes

User: “feels like this same magic # from the prior commit should be factored and commented once? num_days: int = max(1, ceil(seconds / 86400)) other then that all looks decent”

git diff HEAD~1..HEAD -- piker/calc.py piker/tsp/_reserve.py

Added SECONDS_PER_DAY for both consumers, with one comment explaining fixed elapsed days versus calendar days and trading sessions. Named the client’s 31-day retry limit locally. After this change the schedule suite passed 11 tests and Ruff passed all four Python files.