Skip to content

Fix stale GUI results, scan inputs, and persistent settings - #23

Merged
OmarAlaaeldein merged 2 commits into
mainfrom
fix/review-sentinel-reliability
Sep 15, 2026
Merged

OmarAlaaeldein merged 2 commits into
mainfrom
fix/review-sentinel-reliability

Conversation

@OmarAlaaeldein

Copy link
Copy Markdown
Owner

GUI requests now capture their ticker and inputs before starting, and only the current request can publish results. Switching tickers, replacing an options window, or starting another scan no longer allows old fundamentals or option rows to overwrite the current view.

This also fixes several related result and persistence errors:

  • Dividend resolution continues after individual source failures and exposes source/error status in scan JSON. Option rows expose bid/ask and a canonical category; long breakeven and risk-neutral PoP use ask, while Fair remains a separate plot category.
  • Expiry time uses aware timestamps and the NYSE session calendar, including holidays, early closes and expired chains. The shared 252 × 6.5-hour trading-year convention is documented; AM-settled/index products require a separate adapter.
  • News retains TLS verification, normalizes timestamps to UTC, and cannot abort a usable chart refresh. Chart labels retain actual dates and ignore earnings outside the visible window.
  • Settings use writable user storage with atomic replacement and observable failures. Empty watchlists persist. Peer displays preserve multiple direct relationships and expose edge endpoints; graph summaries expose cache import status.
  • Native build scripts collect graph data/attribution and exchange-calendar resources. Release tags enter shell scripts through environment variables and are validated as data.

Validation: 315 passed, 1 skipped with PYTHONPATH=. python -m pytest tests -q --tb=short; the skipped case is the opt-in live Sectivia test. Regression fixtures use synthetic TEST/A/B tickers and mock providers. Bash syntax and git diff --check pass. Tested in Python 3.11 with available dependencies; the declared Python 3.12 release environment, native builds, interactive Tk behavior and live providers remain unverified. No live market scans or email sends were performed.

- numpy>=2.5.2 -> numpy>=2.0 in requirements*.txt (Sentinel core/testing
  uses only sliding_window_view and std numpy APIs; nothing numpy-2.5-only)
- CI/release workflows (and docs templates) move python-version 3.12 -> 3.11
so Python 3.11 venvs (e.g. chimp-stack root .venv) stay installable
@OmarAlaaeldein
OmarAlaaeldein marked this pull request as ready for review September 15, 2026 15:07
@OmarAlaaeldein
OmarAlaaeldein merged commit 0715d4b into main Sep 15, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant