Commit History
-
ci: run Sentinel Scout every 6 hours instead of daily
ritvikv034a396c8
-
feat: Flask-Caching singletons, rewrite CI workflow for Astra DB / HuggingFace stackβ
ritvikv03 +1: Claude Sonnet 4.6- Replace all _get_db().get_all() and _db_stats() call sites with _get_all_signals_cached() / _db_stats_cached() / _load_graph_elements_cached() (Flask-Caching SimpleCache, 30 s TTL) β eliminates one Astra DB round-trip per tab render and per sidebar tick - Remove stale _db_stats() definition (replaced by cached variant below app init) - Rewrite .github/workflows/sentinel.yml: Python 3.11, ASTRA_DB_TOKEN + HF_TOKEN secrets, two-job pipeline (scout-ingest β analyst-brief), brief uploaded as 30-day artifact; removes dead references to sentinel.py / GEMINI_API_KEY / q2_solution SQLite paths - Delete run_daily_intelligence.sh and .mcp.json (pruned legacy files) - Pin data/graph.json schema_version 2 (triples ontology) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>8954441
-
chore: add core/ modules, archive legacy code, update gitignoreβ
ritvikv03 +1: Claude Sonnet 4.6- Add core/ package: database, pipeline, scheduler, scraper, sources, summary_engine, logger, utils (new architecture modules) - Move q2_solution/ and standalone scripts to _archive_legacy/ (read-only) - Add assets/style.css, run_pipeline.py, tests/ - Add docs/plans/ implementation plan - Update .gitignore: exclude data/chroma_db/, data/summaries.db - Add .claudeignore - Update CLAUDE.md and .github/workflows/sentinel.yml Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>c8cf81d
-
Remove synthetic data, fix Gemini quota probe, rewrite Tab 7 as dynamic Intelligence Lensβ
ritvikv03 +1: Claude Sonnet 4.6- Delete use_case_1_etractor.py β all 668 lines of hardcoded subsidy/recommendation data violated no-synthetic-data rule - Remove check_gemini_health() probe that called generate_content() on every page load, exhausting free-tier quota silently - Replace with zero-probe session-state demand tracking: _get_gemini_model() configures model without API call; _call_gemini() catches 429/quota errors and sets session_state['_gemini_quota_hit'] to block further calls in session - Fix sidebar, _api_unavailable_state(), Inquisition tab to read session state instead of probing API - Rewrite Tab 7 as 'Strategic Intelligence Lens' β 8 preset lenses + custom input, 100% driven by SemanticSearch over live signals, PESTEL dimension chart, severity donut, full source links - Strip unused Node.js / Claude Code CLI install steps from CI workflow (not needed for python sentinel.py) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>aae338b -
Add E-Tractor Intelligence, sponsor UX fixes, semantic search, Gemini quota resilienceβ
ritvikv03 +1: Claude Sonnet 4.6Dashboard changes: - Rename tabs: Executive Summary β Intelligence Overview, Live Signal Feed β PESTEL Signal Monitor - Add 7th tab: E-Tractor Intelligence (Use Case 1) with subsidy programs, business impact, sales/marketing recommendations, customer needs, and semantic search - Add metric help tooltips, Temporal Velocity definition, BLUF clarifications - Add URL column with deduplication to PESTEL Signal Monitor - Add PDF + PPTX export to Strategic Reports - Add Gemini API health indicator to sidebar Innovation Radar: - Fix ring colors: each time-horizon ring now uses its own color (was all green) - Hide empty dimension labels (INNOVATION, SOCIAL_MEDIA) when no signals present - Add signal reference table with clickable source URLs below the radar chart Gemini API resilience: - Add check_gemini_health() with 30-min cache β probes API on startup, detects quota errors - All three Gemini call sites (BLUF, Inquisition questions, chat) route through _get_gemini_model() and fall back β¦cd2079b
-
Initial commit for Fendt PESTEL-EL Sentinel Dashboard
ritvikv03b57c585