Repository navigation
What's New in v3.1.1
A focused maintenance release fixing the progress-bar behaviour in the web app and hardening the project so no user's secrets can ever be committed.
🐛 Fixes
- Alive progress bar under Streamlit / Docker — The
alive_progressterminal bar painted ANSI control codes even when there was no TTY (i.e. running the Streamlit web app or inside Docker), which flooded and garbled the server console. The live bar is now skipped in GUI/Docker mode (the browser already shows its own spinner); the CLI experience is unchanged. Applied to both the screening loop and the cache download.
🔒 Security / privacy hardening
.gitignore&.dockerignorenow exclude user secrets so they can never be committed or baked into the image:.env/.env.*, private keys (*.pem,*.key,*.p12),credentials*.json/secrets*.json, broker/Kite session files (.KJScreener_sessions/,kite_session*.json,*.session), and the local run lock.- Added
.env.exampledocumenting every supported environment variable (LLM API key, Kite MCP, runtime-mode flags) so users can configure safely without committing real secrets.
🧹 Housekeeping
- Synced the project version to 3.1.1 across
pyproject.tomland the in-app changelog (they had drifted: pyproject was still3.0.2while the app reported3.1.0).
Note: No secret files were ever present in this repository's history — this release adds the ignore rules preventively so every user's local .env, keys, and session data stay safe.
🐳 Docker
docker pull callmejainsahab/kjstockscreener:latest
docker run -p 8501:8501 -p 8000:8000 callmejainsahab/kjstockscreener:latest
Full Changelog: v3.1.0...v3.1.1