https://github.com/random2haju/hunting_season_discovery
· scanned 2026-06-15 23:46 UTC (2 months, 4 weeks ago)
70 raw signals (0 security + 70 graph)
Last scanned 2 months, 4 weeks ago · v1 · 63 actionable findings from 1 signal source. 7 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 526 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
_scenes |
software | healthy | test_scene_history.py:24 |
_cfg |
software | healthy | test_scene_history.py:44 |
_read_all |
software | healthy | test_scene_history.py:49 |
test_only_scored_scenes_are_kept |
software | healthy | test_scene_history.py:57 |
test_scene_reachable_by_device_and_account |
software | healthy | test_scene_history.py:71 |
test_retention_prune_drops_old_runs |
software | healthy | test_scene_history.py:93 |
test_disabled_writes_nothing |
software | healthy | test_scene_history.py:108 |
test_scene_epoch_distinct_from_run_epoch |
software | healthy | test_scene_history.py:116 |
_scenes |
software | healthy | test_outbreaks.py:26 |
_dethist |
software | healthy | test_outbreaks.py:33 |
run |
software | healthy | test_outbreaks.py:48 |
_devs |
software | healthy | test_outbreaks.py:52 |
test_emerging_severe_detection |
software | healthy | test_outbreaks.py:59 |
test_spreading_rising_footprint |
software | healthy | test_outbreaks.py:72 |
test_benign_spread_is_gated_out |
software | healthy | test_outbreaks.py:90 |
test_endemic_steady_severe_is_silent |
software | healthy | test_outbreaks.py:104 |
test_thin_baseline_no_spreading |
software | healthy | test_outbreaks.py:113 |
test_stale_prior_run_pruned_by_window |
software | healthy | test_outbreaks.py:125 |
test_window_zero_disables_pruning |
software | healthy | test_outbreaks.py:137 |
test_empty_history_is_empty |
software | healthy | test_outbreaks.py:150 |
test_sorted_by_score |
software | healthy | test_outbreaks.py:158 |
_build_tier_lookup |
software | healthy | consolidate.py:83 |
parse_evidence_fields |
software | healthy | consolidate.py:117 |
_extract_destination |
software | healthy | consolidate.py:135 |
classify_execution_tier |
software | healthy | consolidate.py:140 |
classify_execution_context |
software | healthy | consolidate.py:152 |
_pattern_matches |
software | healthy | consolidate.py:174 |
score_commandline_shape |
software | healthy | consolidate.py:188 |
compute_context_multiplier |
software | healthy | consolidate.py:207 |
_proc_stem |
software | healthy | consolidate.py:225 |
is_service_account |
software | healthy | consolidate.py:234 |
classify_workflow_class |
software | healthy | consolidate.py:254 |
load_config |
software | healthy | consolidate.py:342 |
load_scenes |
software | healthy | consolidate.py:354 |
apply_prevalence_scoring |
software | healthy | consolidate.py:503 |
_multiplier |
software | healthy | consolidate.py:544 |
cluster_evidence |
software | healthy | consolidate.py:569 |
apply_scene_cap |
software | healthy | consolidate.py:623 |
assign_episodes |
software | healthy | consolidate.py:658 |
build_variation_clusters |
software | healthy | consolidate.py:684 |
compute_transition_bonus |
software | healthy | consolidate.py:729 |
build_episodes |
software | healthy | consolidate.py:768 |
build_seasons |
software | healthy | consolidate.py:916 |
enrich_seasons_with_workflow |
software | healthy | consolidate.py:1074 |
build_priority_cases |
software | healthy | consolidate.py:1169 |
_prep |
software | healthy | consolidate.py:2141 |
build_attack_chains |
software | healthy | consolidate.py:1253 |
find |
software | healthy | consolidate.py:1327 |
union |
software | healthy | consolidate.py:1337 |
load_pattern_suppressions |
software | healthy | consolidate.py:1409 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
test_scene_history.py |
software | healthy | test_scene_history.py |
test_outbreaks.py |
software | healthy | test_outbreaks.py |
consolidate.py |
software | healthy | consolidate.py |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
casecluster.py |
software | healthy | casecluster.py |
test_triage.py |
software | healthy | test_triage.py |
setup.sh |
software | healthy | setup.sh |
test_workflow_classification.py |
software | healthy | test_workflow_classification.py |
triage.py |
software | healthy | triage.py |
suppress.py |
software | healthy | suppress.py |
test_slow_chains.py |
software | healthy | test_slow_chains.py |
config.json |
software | healthy | config.json |
test_campaigns.py |
software | healthy | test_campaigns.py |
run_hunt.py |
software | healthy | run_hunt.py |
README.md |
software | healthy | falcon_cql/README.md |
app.py |
software | healthy | web/app.py |
state.py |
software | healthy | web/state.py |
requirements.txt |
software | healthy | web/requirements.txt |
vite.config.js |
software | healthy | web/frontend/vite.config.js |
package.json |
software | healthy | web/frontend/package.json |
index.html |
software | healthy | web/frontend/index.html |
package-lock.json |
software | healthy | web/frontend/package-lock.json |
App.jsx |
software | healthy | web/frontend/src/App.jsx |
api.js |
software | healthy | web/frontend/src/api.js |
theme.js |
software | healthy | web/frontend/src/theme.js |
main.jsx |
software | healthy | web/frontend/src/main.jsx |
EntityDetailDrawer.jsx |
software | healthy | web/frontend/src/components/EntityDetailDrawer.jsx |
EntityContextMenu.jsx |
software | healthy | web/frontend/src/components/EntityContextMenu.jsx |
ColHeader.jsx |
software | healthy | web/frontend/src/components/ColHeader.jsx |
EmptyState.jsx |
software | healthy | web/frontend/src/components/EmptyState.jsx |
PipelineDrawer.jsx |
software | healthy | web/frontend/src/components/PipelineDrawer.jsx |
TriageControls.jsx |
software | healthy | web/frontend/src/components/TriageControls.jsx |
CoveragePage.jsx |
software | healthy | web/frontend/src/pages/CoveragePage.jsx |
SuppressionsPage.jsx |
software | healthy | web/frontend/src/pages/SuppressionsPage.jsx |
HistoryPage.jsx |
software | healthy | web/frontend/src/pages/HistoryPage.jsx |
PriorityPage.jsx |
software | healthy | web/frontend/src/pages/PriorityPage.jsx |
SlowChainsPage.jsx |
software | healthy | web/frontend/src/pages/SlowChainsPage.jsx |
InsightsPage.jsx |
software | healthy | web/frontend/src/pages/InsightsPage.jsx |
CampaignsPage.jsx |
software | healthy | web/frontend/src/pages/CampaignsPage.jsx |
OutbreaksPage.jsx |
software | healthy | web/frontend/src/pages/OutbreaksPage.jsx |
EpisodesPage.jsx |
software | healthy | web/frontend/src/pages/EpisodesPage.jsx |
SeasonsPage.jsx |
software | healthy | web/frontend/src/pages/SeasonsPage.jsx |
AppContext.jsx |
software | healthy | web/frontend/src/context/AppContext.jsx |
history.py |
software | healthy | web/api/history.py |
__init__.py |
software | healthy | web/api/__init__.py |
coverage.py |
software | healthy | web/api/coverage.py |
scene_history.py |
software | healthy | web/api/scene_history.py |
episodes.py |
software | healthy | web/api/episodes.py |
triage.py |
software | healthy | web/api/triage.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET / |
api | healthy | web/app.py |
GET /{full_path:path} |
api | healthy | web/app.py |
GET /history |
api | healthy | web/api/history.py |
GET /history/{entity_type}/{entity_name:path} |
api | healthy | web/api/history.py |
GET /coverage |
api | healthy | web/api/coverage.py |
GET /scene-history/{entity_type}/{entity_name:path} |
api | healthy | web/api/scene_history.py |
GET /episodes |
api | healthy | web/api/episodes.py |
GET /episodes/{device_name:path} |
api | healthy | web/api/episodes.py |
GET /user-episodes |
api | healthy | web/api/episodes.py |
GET /user-episodes/{account_name:path} |
api | healthy | web/api/episodes.py |
GET /triage |
api | healthy | web/api/triage.py |
POST /triage |
api | healthy | web/api/triage.py |
GET /triage/log/{entity_type}/{entity_name:path} |
api | healthy | web/api/triage.py |
GET /patterns |
api | healthy | web/api/patterns.py |
POST /patterns |
api | healthy | web/api/patterns.py |
DELETE /patterns/{name:path} |
api | healthy | web/api/patterns.py |
POST /patterns/expire |
api | healthy | web/api/patterns.py |
GET /seasons/devices |
api | healthy | web/api/seasons.py |
GET /seasons/users |
api | healthy | web/api/seasons.py |
GET /slow-chains |
api | healthy | web/api/slow_chains.py |
GET /insights |
api | healthy | web/api/insights.py |
GET /priority-cases |
api | healthy | web/api/priority.py |
GET /recommendations |
api | healthy | web/api/recommendations.py |
GET /status |
api | healthy | web/api/pipeline.py |
POST /pipeline/reload |
api | healthy | web/api/pipeline.py |
GET /pipeline/run |
api | healthy | web/api/pipeline.py |
GET /suppressions |
api | healthy | web/api/suppressions.py |
POST /suppressions |
api | healthy | web/api/suppressions.py |
DELETE /suppressions/{entity_type}/{entity_name:path} |
api | healthy | web/api/suppressions.py |
POST /suppressions/expire |
api | healthy | web/api/suppressions.py |
GET /campaigns |
api | healthy | web/api/campaigns.py |
GET /outbreaks |
api | healthy | web/api/outbreaks.py |
| Label | Layer | Status | Path |
|---|---|---|---|
/CoveragePage |
frontend | healthy | web/frontend/src/pages/CoveragePage.jsx |
/SuppressionsPage |
frontend | healthy | web/frontend/src/pages/SuppressionsPage.jsx |
/HistoryPage |
frontend | healthy | web/frontend/src/pages/HistoryPage.jsx |
/PriorityPage |
frontend | healthy | web/frontend/src/pages/PriorityPage.jsx |
/SlowChainsPage |
frontend | healthy | web/frontend/src/pages/SlowChainsPage.jsx |
/InsightsPage |
frontend | healthy | web/frontend/src/pages/InsightsPage.jsx |
/CampaignsPage |
frontend | healthy | web/frontend/src/pages/CampaignsPage.jsx |
/OutbreaksPage |
frontend | healthy | web/frontend/src/pages/OutbreaksPage.jsx |
/EpisodesPage |
frontend | healthy | web/frontend/src/pages/EpisodesPage.jsx |
/SeasonsPage |
frontend | healthy | web/frontend/src/pages/SeasonsPage.jsx |
/ |
frontend | healthy | web/frontend/src/App.jsx |
/insights |
frontend | healthy | web/frontend/src/App.jsx |
/coverage |
frontend | healthy | web/frontend/src/App.jsx |
/priority |
frontend | healthy | web/frontend/src/App.jsx |
/seasons |
frontend | healthy | web/frontend/src/App.jsx |
/episodes |
frontend | healthy | web/frontend/src/App.jsx |
/history |
frontend | healthy | web/frontend/src/App.jsx |
/slow-chains |
frontend | healthy | web/frontend/src/App.jsx |
/outbreaks |
frontend | healthy | web/frontend/src/App.jsx |
/campaigns |
frontend | healthy | web/frontend/src/App.jsx |
/suppressions |
frontend | healthy | web/frontend/src/App.jsx |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | web/frontend/src/App.jsx |
EmptyState |
frontend | healthy | web/frontend/src/components/EmptyState.jsx |
PipelineDrawer |
frontend | healthy | web/frontend/src/components/PipelineDrawer.jsx |
CoveragePage |
frontend | healthy | web/frontend/src/pages/CoveragePage.jsx |
SuppressionsPage |
frontend | healthy | web/frontend/src/pages/SuppressionsPage.jsx |
HistoryPage |
frontend | healthy | web/frontend/src/pages/HistoryPage.jsx |
PriorityPage |
frontend | healthy | web/frontend/src/pages/PriorityPage.jsx |
SlowChainsPage |
frontend | healthy | web/frontend/src/pages/SlowChainsPage.jsx |
InsightsPage |
frontend | healthy | web/frontend/src/pages/InsightsPage.jsx |
CampaignsPage |
frontend | healthy | web/frontend/src/pages/CampaignsPage.jsx |
OutbreaksPage |
frontend | healthy | web/frontend/src/pages/OutbreaksPage.jsx |
EpisodesPage |
frontend | healthy | web/frontend/src/pages/EpisodesPage.jsx |
SeasonsPage |
frontend | healthy | web/frontend/src/pages/SeasonsPage.jsx |
| Label | Layer | Status | Path |
|---|---|---|---|
falcon_cql |
software | healthy | falcon_cql |
web |
software | healthy | web |
frontend |
software | healthy | web/frontend |
src |
software | healthy | web/frontend/src |
components |
software | healthy | web/frontend/src/components |
pages |
software | healthy | web/frontend/src/pages |
context |
software | healthy | web/frontend/src/context |
api |
software | healthy | web/api |
kql |
software | healthy | kql |
| Label | Layer | Status | Path |
|---|---|---|---|
AppState |
software | healthy | web/state.py:32 |
TriageRequest |
software | healthy | web/api/triage.py:24 |
ConditionIn |
software | healthy | web/api/patterns.py:69 |
PatternIn |
software | healthy | web/api/patterns.py:89 |
SuppressRequest |
software | healthy | web/api/suppressions.py:52 |
| Label | Layer | Status | Path |
|---|---|---|---|
scene_history |
data | healthy | consolidate.py |
hunt_history |
data | healthy | consolidate.py |
detection_history |
data | healthy | consolidate.py |
triage_log |
data | healthy | triage.py |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | consolidate.py |
redis |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | CLAUDE.md |
vps::aws |
hardware | healthy | CLAUDE.md |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-c47b_0i4 |
software | healthy | /tmp/repobility-clone-c47b_0i4 |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | web/app.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | web/app.py |
This page is publicly accessible at:
https://repobility.com/scan/1da9a39d-a4c2-4564-914e-f3979c9f66fc/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/1da9a39d-a4c2-4564-914e-f3979c9f66fc/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.