https://github.com/rohansinghdeo123-sys/ai-educator-backend
· scanned 2026-06-15 23:54 UTC (2 months, 3 weeks ago)
96 raw signals (0 security + 96 graph)
Last scanned 2 months, 3 weeks ago · v1 · 82 actionable findings from 1 signal source. 14 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1365 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 |
|---|---|---|---|
_env_truthy |
software | healthy | database.py:10 |
_choose_driver |
software | healthy | database.py:34 |
init_db |
software | dead | database.py:128 |
check_db_health |
software | healthy | database.py:132 |
get_db |
software | dead | database.py:142 |
validate_display_name |
software | healthy | schemas.py:30 |
validate_class_level |
software | healthy | schemas.py:40 |
_utcnow_naive |
software | healthy | models.py:9 |
accuracy |
software | healthy | models.py:148 |
level |
software | healthy | models.py:61 |
_cors_headers_for |
software | healthy | main.py:49 |
unhandled_exception_handler |
software | healthy | main.py:59 |
production_guardrails |
software | healthy | main.py:79 |
setUpClass |
software | healthy | tests/test_route_security.py:17 |
tearDownClass |
software | healthy | tests/test_route_security.py:22 |
tearDown |
software | healthy | tests/test_route_security.py:26 |
_login |
software | healthy | tests/test_route_security.py:29 |
test_health_endpoints_are_public |
software | healthy | tests/test_route_security.py:32 |
test_public_pulse_is_public_and_anonymized |
software | healthy | tests/test_route_security.py:36 |
test_protected_routes_require_auth |
software | healthy | tests/test_route_security.py:45 |
test_non_admin_gets_404_on_admin_routes |
software | healthy | tests/test_route_security.py:59 |
test_cross_user_access_forbidden |
software | healthy | tests/test_route_security.py:64 |
test_same_user_access_allowed |
software | healthy | tests/test_route_security.py:70 |
test_foreign_study_session_forbidden |
software | healthy | tests/test_route_security.py:76 |
test_client_progress_overwrite_disabled_by_default |
software | healthy | tests/test_route_security.py:85 |
__init__ |
software | healthy | tests/test_coach_architecture.py:147 |
create |
software | healthy | tests/test_coach_architecture.py:134 |
complete |
software | healthy | tests/test_coach_architecture.py:524 |
_response_plan_for |
software | healthy | tests/test_coach_architecture.py:167 |
test_response_planner_dynamic_student_answer_styles |
software | healthy | tests/test_coach_architecture.py:197 |
test_response_planner_handles_common_student_edge_cases |
software | healthy | tests/test_coach_architecture.py:259 |
test_response_planner_instruction_exposes_strict_contract |
software | healthy | tests/test_coach_architecture.py:294 |
test_scenario_bank_routes_social_closure_to_conversation_re… |
software | healthy | tests/test_coach_architecture.py:307 |
test_scenario_bank_preserves_real_follow_up_after_thanks |
software | healthy | tests/test_coach_architecture.py:358 |
test_scenario_bank_protects_conversation_route_from_llm_ove… |
software | healthy | tests/test_coach_architecture.py:371 |
bad_classifier |
software | healthy | tests/test_coach_architecture.py:375 |
test_intent_scenario_bank_retrieves_learning_and_social_cou… |
software | healthy | tests/test_coach_architecture.py:384 |
test_stream_social_closure_bypasses_tutor_after_learning_tu… |
software | healthy | tests/test_coach_architecture.py:393 |
test_stream_disconnect_persists_user_turn |
software | healthy | tests/test_coach_architecture.py:456 |
test_llm_judge_parses_scores_and_respects_sample_gate |
software | healthy | tests/test_coach_architecture.py:496 |
test_session_summary_includes_replay_contract |
software | healthy | tests/test_coach_architecture.py:533 |
test_session_id_ownership_matches_frontend_patterns |
software | healthy | tests/test_coach_architecture.py:571 |
test_legacy_study_session_guard_blocks_cross_user_sessions |
software | healthy | tests/test_coach_architecture.py:579 |
test_legacy_study_requests_validate_student_payload_size |
software | healthy | tests/test_coach_architecture.py:594 |
test_stream_wrapper_returns_controlled_error_event_on_unhan… |
software | healthy | tests/test_coach_architecture.py:600 |
test_persisted_coach_interactions_serialize_as_conversation |
software | healthy | tests/test_coach_architecture.py:611 |
test_offline_routing_suite |
software | healthy | tests/test_coach_architecture.py:656 |
test_growth_loop_scores_stable_and_repair_turns |
software | healthy | tests/test_coach_architecture.py:661 |
test_conversational_thanks_does_not_reopen_lesson |
software | healthy | tests/test_coach_architecture.py:686 |
test_required_grounding_only_when_requested |
software | healthy | tests/test_coach_architecture.py:692 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Base |
software | healthy | database.py:122 |
UserProfileUpdate |
software | healthy | schemas.py:23 |
UserProfileResponse |
software | healthy | schemas.py:49 |
ProgressBase |
software | healthy | schemas.py:64 |
ProgressUpdate |
software | healthy | schemas.py:73 |
ProgressResponse |
software | healthy | schemas.py:77 |
TestHistoryCreate |
software | healthy | schemas.py:90 |
TestHistoryResponse |
software | healthy | schemas.py:109 |
SessionReplayResponse |
software | healthy | schemas.py:131 |
TopicPerformanceResponse |
software | healthy | schemas.py:143 |
AnalyticsInsight |
software | healthy | schemas.py:159 |
AdvancedAnalyticsResponse |
software | healthy | schemas.py:167 |
AgentRequest |
software | healthy | schemas.py:180 |
AgentResponse |
software | healthy | schemas.py:188 |
AgentChatMemoryBase |
software | healthy | schemas.py:194 |
CoachBootstrapRequest |
software | healthy | schemas.py:207 |
CoachProfileResponse |
software | healthy | schemas.py:215 |
CoachMemoryResponse |
software | healthy | schemas.py:242 |
CoachAttachmentRequest |
software | healthy | schemas.py:259 |
CoachChatRequest |
software | healthy | schemas.py:266 |
CoachChatResponse |
software | healthy | schemas.py:292 |
CoachDailySignalResponse |
software | healthy | schemas.py:303 |
CoachDashboardResponse |
software | healthy | schemas.py:320 |
AutonomousStudyRequest |
software | healthy | schemas.py:327 |
AutonomousStudyResponse |
software | healthy | schemas.py:339 |
LeaderboardEntry |
software | healthy | schemas.py:380 |
HealthResponse |
software | healthy | schemas.py:393 |
AgentChatMemory |
software | healthy | models.py:16 |
UserProgress |
software | healthy | models.py:31 |
UserProfile |
software | healthy | models.py:68 |
TestHistory |
software | healthy | models.py:85 |
SessionDetail |
software | healthy | models.py:119 |
TopicPerformance |
software | healthy | models.py:133 |
AICoachProfile |
software | healthy | models.py:157 |
AICoachMemory |
software | healthy | models.py:218 |
AICoachInteraction |
software | healthy | models.py:247 |
AICoachDailySignal |
software | healthy | models.py:273 |
ObservabilityEvent |
software | healthy | models.py:302 |
ModelToolTrace |
software | healthy | models.py:325 |
DailyQuotaUsage |
software | healthy | models.py:351 |
ContentChapter |
software | healthy | models.py:368 |
ContentPage |
software | healthy | models.py:423 |
ContentConcept |
software | healthy | models.py:439 |
ContentChunk |
software | healthy | models.py:471 |
ContentIngestionJob |
software | healthy | models.py:491 |
AdminAuditLog |
software | healthy | models.py:509 |
AgentRuntimeRun |
software | healthy | models.py:529 |
AgentRuntimeStep |
software | healthy | models.py:559 |
AgentRuntimeMessage |
software | healthy | models.py:578 |
AgentRuntimeToolCall |
software | healthy | models.py:596 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
database.py |
software | healthy | database.py |
schemas.py |
software | healthy | schemas.py |
README.md |
software | healthy | README.md |
Dockerfile |
software | healthy | Dockerfile |
Procfile |
software | healthy | Procfile |
models.py |
software | healthy | models.py |
.env.example |
software | healthy | .env.example |
main.py |
software | healthy | main.py |
requirements.txt |
software | healthy | requirements.txt |
test_route_security.py |
software | healthy | tests/test_route_security.py |
test_coach_architecture.py |
software | healthy | tests/test_coach_architecture.py |
test_content_pipeline.py |
software | healthy | tests/test_content_pipeline.py |
test_prompt_registry.py |
software | healthy | tests/test_prompt_registry.py |
test_legacy_pipeline.py |
software | healthy | tests/test_legacy_pipeline.py |
test_rate_limit.py |
software | healthy | tests/test_rate_limit.py |
test_pagination.py |
software | healthy | tests/test_pagination.py |
test_profile_onboarding.py |
software | healthy | tests/test_profile_onboarding.py |
test_telemetry.py |
software | healthy | tests/test_telemetry.py |
test_error_handling.py |
software | healthy | tests/test_error_handling.py |
test_job_queue.py |
software | healthy | tests/test_job_queue.py |
test_caching.py |
software | healthy | tests/test_caching.py |
test_hybrid_retrieval.py |
software | healthy | tests/test_hybrid_retrieval.py |
serializers.py |
software | healthy | app/serializers.py |
rate_limit.py |
software | healthy | app/rate_limit.py |
__init__.py |
software | healthy | app/__init__.py |
config.py |
software | healthy | app/config.py |
telemetry.py |
software | healthy | app/telemetry.py |
request_models.py |
software | healthy | app/request_models.py |
lifespan.py |
software | healthy | app/lifespan.py |
security.py |
software | healthy | app/security.py |
section_doubt.py |
software | healthy | Logic/section_doubt.py |
__init__.py |
software | healthy | Logic/__init__.py |
knowledge_graph.py |
software | healthy | Logic/knowledge_graph.py |
agent_event_bus.py |
software | healthy | Logic/agent_event_bus.py |
observability_store.py |
software | healthy | Logic/observability_store.py |
agentic_orchestrator.py |
software | healthy | Logic/agentic_orchestrator.py |
content_pipeline.py |
software | healthy | Logic/content_pipeline.py |
autonomous_study_loop.py |
software | healthy | Logic/autonomous_study_loop.py |
agent_router.py |
software | healthy | Logic/agent_router.py |
embeddings.py |
software | healthy | Logic/embeddings.py |
analytics_engine.py |
software | healthy | Logic/analytics_engine.py |
__init__.py |
software | healthy | Logic/agent_runtime/__init__.py |
store.py |
software | healthy | Logic/agent_runtime/store.py |
state.py |
software | healthy | Logic/agent_runtime/state.py |
contracts.py |
software | healthy | Logic/agent_runtime/contracts.py |
quality_scorer.py |
software | healthy | Logic/coach/quality_scorer.py |
llm_router.py |
software | healthy | Logic/coach/llm_router.py |
costing.py |
software | healthy | Logic/coach/costing.py |
specialist_tools.py |
software | healthy | Logic/coach/specialist_tools.py |
__init__.py |
software | healthy | Logic/coach/__init__.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 /health/live |
api | healthy | routers/health.py |
GET /health/ready |
api | healthy | routers/health.py |
GET /health |
api | healthy | routers/health.py |
POST /coach/bootstrap |
api | healthy | routers/coach.py |
GET /coach/conversations/{user_id} |
api | healthy | routers/coach.py |
GET /coach/conversations/{user_id}/{conversation_id} |
api | healthy | routers/coach.py |
PATCH /coach/conversations/{user_id}/{conversation_id} |
api | healthy | routers/coach.py |
DELETE /coach/conversations/{user_id}/{conversation_id} |
api | healthy | routers/coach.py |
GET /coach/{user_id} |
api | healthy | routers/coach.py |
POST /coach/chat |
api | healthy | routers/coach.py |
POST /coach/chat/stream |
api | healthy | routers/coach.py |
POST /coach/daily-learning/{user_id} |
api | healthy | routers/coach.py |
POST /coach/autonomous-study/{user_id} |
api | healthy | routers/coach.py |
GET /admin/me |
api | healthy | routers/admin.py |
GET /admin/console |
api | healthy | routers/admin.py |
GET /admin/audit |
api | healthy | routers/admin.py |
POST /admin/audit |
api | healthy | routers/admin.py |
GET /admin/content/folder-contract |
api | healthy | routers/admin.py |
POST /admin/content/ingest-folder |
api | healthy | routers/admin.py |
GET /admin/content/chapters |
api | healthy | routers/admin.py |
GET /admin/content/report/{chapter_id} |
api | healthy | routers/admin.py |
POST /admin/content/import-concepts/{chapter_id} |
api | healthy | routers/admin.py |
POST /admin/content/generate-json/{chapter_id} |
api | healthy | routers/admin.py |
POST /admin/content/embed |
api | healthy | routers/admin.py |
GET /admin/content/jobs |
api | healthy | routers/admin.py |
GET /admin/content/jobs/{job_id} |
api | healthy | routers/admin.py |
POST /admin/content/approve/{chapter_id} |
api | healthy | routers/admin.py |
POST /admin/content/publish/{chapter_id} |
api | healthy | routers/admin.py |
GET /admin/overview |
api | healthy | routers/admin.py |
GET /admin/agents |
api | healthy | routers/admin.py |
GET /admin/agent-registry |
api | healthy | routers/admin.py |
GET /admin/agents/{agent_id} |
api | healthy | routers/admin.py |
GET /admin/traces |
api | healthy | routers/admin.py |
GET /admin/data-registry |
api | healthy | routers/admin.py |
GET /admin/prompts |
api | healthy | routers/admin.py |
GET /admin/model-registry |
api | healthy | routers/admin.py |
GET /admin/students |
api | healthy | routers/admin.py |
GET /admin/system-health |
api | healthy | routers/admin.py |
GET /admin/audit-logs |
api | healthy | routers/admin.py |
POST /admin/action |
api | healthy | routers/admin.py |
GET /admin/events |
api | healthy | routers/admin.py |
GET /admin/poll |
api | healthy | routers/admin.py |
GET /admin/stats |
api | healthy | routers/admin.py |
POST /admin/command |
api | healthy | routers/admin.py |
POST /admin/message |
api | healthy | routers/admin.py |
GET /me |
api | healthy | routers/profile.py |
PATCH /me |
api | healthy | routers/profile.py |
POST /agent |
api | healthy | routers/agent.py |
POST /reset-chat |
api | healthy | routers/agent.py |
POST /update-progress |
api | healthy | routers/progress.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
Base |
data | healthy | database.py |
AgentChatMemory |
data | healthy | models.py |
UserProgress |
data | healthy | models.py |
UserProfile |
data | healthy | models.py |
TestHistory |
data | healthy | models.py |
SessionDetail |
data | healthy | models.py |
TopicPerformance |
data | healthy | models.py |
AICoachProfile |
data | healthy | models.py |
AICoachMemory |
data | healthy | models.py |
AICoachInteraction |
data | healthy | models.py |
AICoachDailySignal |
data | healthy | models.py |
ObservabilityEvent |
data | healthy | models.py |
ModelToolTrace |
data | healthy | models.py |
DailyQuotaUsage |
data | healthy | models.py |
ContentChapter |
data | healthy | models.py |
ContentPage |
data | healthy | models.py |
ContentConcept |
data | healthy | models.py |
ContentChunk |
data | healthy | models.py |
ContentIngestionJob |
data | healthy | models.py |
AdminAuditLog |
data | healthy | models.py |
AgentRuntimeRun |
data | healthy | models.py |
AgentRuntimeStep |
data | healthy | models.py |
AgentRuntimeMessage |
data | healthy | models.py |
AgentRuntimeToolCall |
data | healthy | models.py |
AgentRuntimeHandoff |
data | healthy | models.py |
agent_chat_memory |
data | healthy | models.py |
user_progress |
data | healthy | models.py |
user_profiles |
data | healthy | models.py |
test_history |
data | healthy | models.py |
session_details |
data | healthy | models.py |
topic_performance |
data | healthy | models.py |
ai_coach_profiles |
data | healthy | models.py |
ai_coach_memories |
data | healthy | models.py |
ai_coach_interactions |
data | healthy | models.py |
ai_coach_daily_signals |
data | healthy | models.py |
observability_events |
data | healthy | models.py |
model_tool_traces |
data | healthy | models.py |
daily_quota_usage |
data | healthy | models.py |
content_chapters |
data | healthy | models.py |
content_pages |
data | healthy | models.py |
content_concepts |
data | healthy | models.py |
content_chunks |
data | healthy | models.py |
content_ingestion_jobs |
data | healthy | models.py |
admin_audit_logs |
data | healthy | models.py |
agent_runtime_runs |
data | healthy | models.py |
agent_runtime_steps |
data | healthy | models.py |
agent_runtime_messages |
data | healthy | models.py |
agent_runtime_tool_calls |
data | healthy | models.py |
agent_runtime_handoffs |
data | healthy | models.py |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
app |
software | healthy | app |
Logic |
software | healthy | Logic |
agent_runtime |
software | healthy | Logic/agent_runtime |
coach |
software | healthy | Logic/coach |
agents |
software | healthy | Logic/agents |
tools |
software | healthy | Logic/tools |
services |
software | healthy | services |
prompts |
software | healthy | prompts |
templates |
software | healthy | prompts/templates |
migrations |
software | healthy | migrations |
versions |
software | healthy | migrations/versions |
routers |
software | healthy | routers |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
env.py |
data | healthy | migrations/env.py |
20260612_0008_add_published_source_hash.py |
data | healthy | migrations/versions/20260612_0008_add_published_source_hash… |
20260607_0006_add_admin_audit_logs.py |
data | healthy | migrations/versions/20260607_0006_add_admin_audit_logs.py |
20260607_0004_add_daily_quota_usage.py |
data | healthy | migrations/versions/20260607_0004_add_daily_quota_usage.py |
20260614_0009_add_user_profiles.py |
data | healthy | migrations/versions/20260614_0009_add_user_profiles.py |
20260607_0005_add_content_pipeline_tables.py |
data | healthy | migrations/versions/20260607_0005_add_content_pipeline_tabl… |
20260603_0001_add_session_telemetry_columns.py |
data | healthy | migrations/versions/20260603_0001_add_session_telemetry_col… |
20260606_0003_add_agent_runtime_tables.py |
data | healthy | migrations/versions/20260606_0003_add_agent_runtime_tables.… |
20260603_0002_add_durable_observability.py |
data | healthy | migrations/versions/20260603_0002_add_durable_observability… |
20260608_0007_normalize_admin_audit_logs.py |
data | healthy | migrations/versions/20260608_0007_normalize_admin_audit_log… |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | database.py |
sqlite |
data | healthy | database.py |
redis |
data | healthy | app/rate_limit.py |
postgres |
data | healthy | Logic/embeddings.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | Dockerfile |
203.0.113.9 |
network | healthy | tests/test_rate_limit.py |
6.6.6.6 |
network | healthy | tests/test_rate_limit.py |
198.51.100.7 |
network | healthy | tests/test_rate_limit.py |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/ci.yml |
security-audit |
cicd | healthy | .github/workflows/ci.yml |
docker-build |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-5xxrf8ns |
software | healthy | /tmp/repobility-clone-5xxrf8ns |
| Label | Layer | Status | Path |
|---|---|---|---|
celery |
data | healthy | services/job_queue.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/4ae90d3b-22c1-4972-b944-119ae984e5a2/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/4ae90d3b-22c1-4972-b944-119ae984e5a2/
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.