https://github.com/saumyaMMF/chat_bot
· scanned 2026-06-16 00:03 UTC (2 months, 3 weeks ago)
39 raw signals (4 security + 35 graph)
Last scanned 2 months, 3 weeks ago · v1 · 35 actionable findings from 2 signal sources. 4 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 566 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 |
|---|---|---|---|
test_contains_one_select |
software | healthy | tests/test_prompt_builder.py:15 |
test_lists_forbidden_keywords |
software | healthy | tests/test_prompt_builder.py:19 |
test_lists_forbidden_functions |
software | healthy | tests/test_prompt_builder.py:24 |
test_blocks_system_catalogs |
software | healthy | tests/test_prompt_builder.py:29 |
test_no_tenant_or_state_filter |
software | healthy | tests/test_prompt_builder.py:33 |
test_reply_format |
software | healthy | tests/test_prompt_builder.py:37 |
test_embeds_restriction_rules |
software | healthy | tests/test_prompt_builder.py:45 |
test_embeds_schema_context |
software | healthy | tests/test_prompt_builder.py:48 |
test_at_least_one |
software | healthy | tests/test_prompt_builder.py:57 |
test_includes_refusal |
software | healthy | tests/test_prompt_builder.py:60 |
test_includes_sql |
software | healthy | tests/test_prompt_builder.py:63 |
stub_retrieval |
software | healthy | tests/test_prompt_builder.py:70 |
fake |
software | healthy | tests/test_prompt_builder.py:105 |
stub_retrieval_fails |
software | healthy | tests/test_prompt_builder.py:104 |
test_first_is_system |
software | healthy | tests/test_prompt_builder.py:111 |
test_system_contains_restriction_rules |
software | healthy | tests/test_prompt_builder.py:116 |
test_system_contains_retrieved_chunks |
software | healthy | tests/test_prompt_builder.py:120 |
test_system_surfaces_chunk_restrictions |
software | healthy | tests/test_prompt_builder.py:127 |
test_last_is_user_question |
software | healthy | tests/test_prompt_builder.py:133 |
test_alternating_user_assistant |
software | healthy | tests/test_prompt_builder.py:138 |
test_falls_back_to_static_schema |
software | healthy | tests/test_prompt_builder.py:148 |
test_includes_error_and_sql |
software | healthy | tests/test_prompt_builder.py:160 |
test_pg_table_routes_pg |
software | healthy | tests/test_engine_router.py:10 |
test_mysql_table_routes_mysql |
software | healthy | tests/test_engine_router.py:15 |
test_cross_engine_join_rejected |
software | healthy | tests/test_engine_router.py:20 |
test_unknown_table_rejected |
software | healthy | tests/test_engine_router.py:27 |
test_system_catalog_rejected |
software | healthy | tests/test_engine_router.py:33 |
test_pg_system_catalog_rejected |
software | healthy | tests/test_engine_router.py:38 |
test_cte_alias_not_treated_as_table |
software | healthy | tests/test_engine_router.py:43 |
test_unparseable_rejected |
software | healthy | tests/test_engine_router.py:49 |
test_multiple_mysql_tables |
software | healthy | tests/test_engine_router.py:54 |
test_loads_items |
software | healthy | tests/test_schema_store.py:13 |
test_has_table_rows |
software | healthy | tests/test_schema_store.py:17 |
test_has_column_rows |
software | healthy | tests/test_schema_store.py:21 |
test_required_fields |
software | healthy | tests/test_schema_store.py:25 |
test_market_table_present |
software | healthy | tests/test_schema_store.py:29 |
test_table_embed_text_shape |
software | healthy | tests/test_schema_store.py:37 |
test_column_embed_text_shape |
software | healthy | tests/test_schema_store.py:44 |
test_includes_restrictions_when_present |
software | healthy | tests/test_schema_store.py:52 |
test_empty |
software | healthy | tests/test_schema_store.py:108 |
test_tables_before_columns |
software | healthy | tests/test_schema_store.py:64 |
test_renders_restrict_when_present |
software | healthy | tests/test_schema_store.py:77 |
test_omits_restrict_when_blank |
software | healthy | tests/test_schema_store.py:87 |
test_column_renders_data_type |
software | healthy | tests/test_schema_store.py:96 |
test_dedupes_and_preserves_order |
software | healthy | tests/test_schema_store.py:111 |
test_skips_empty |
software | healthy | tests/test_schema_store.py:125 |
test_format |
software | healthy | tests/test_schema_store.py:138 |
test_known_mappings |
software | healthy | tests/test_normalize_question.py:36 |
test_preserves_punctuation_and_spaces |
software | healthy | tests/test_normalize_question.py:39 |
test_leaves_unknown_tokens_untouched |
software | healthy | tests/test_normalize_question.py:42 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
ISSUES.md |
software | healthy | ISSUES.md |
BOOTSTRAP.md |
software | healthy | BOOTSTRAP.md |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
test_prompt_builder.py |
software | healthy | tests/test_prompt_builder.py |
__init__.py |
software | healthy | tests/__init__.py |
test_engine_router.py |
software | healthy | tests/test_engine_router.py |
test_schema_store.py |
software | healthy | tests/test_schema_store.py |
test_normalize_question.py |
software | healthy | tests/test_normalize_question.py |
test_config.py |
software | healthy | tests/test_config.py |
test_sql_guard_mysql.py |
software | healthy | tests/test_sql_guard_mysql.py |
test_chat_service.py |
software | healthy | tests/test_chat_service.py |
test_sql_guard.py |
software | healthy | tests/test_sql_guard.py |
ingest_fast_path.py |
software | healthy | scripts/ingest_fast_path.py |
dump_prompt.py |
software | healthy | scripts/dump_prompt.py |
embed_examples.py |
software | healthy | scripts/embed_examples.py |
ingest_profiles.py |
software | healthy | scripts/ingest_profiles.py |
profile_schema.py |
software | healthy | scripts/profile_schema.py |
__init__.py |
software | healthy | scripts/__init__.py |
debug_retrieval.py |
software | healthy | scripts/debug_retrieval.py |
ingest_schema.py |
software | healthy | scripts/ingest_schema.py |
apply_clarify_constraint.py |
software | healthy | scripts/apply_clarify_constraint.py |
debug_mysql.py |
software | healthy | scripts/debug_mysql.py |
build_schema_definitions.py |
software | healthy | scripts/build_schema_definitions.py |
prune_schema_embeddings.py |
software | healthy | scripts/prune_schema_embeddings.py |
validate_examples.py |
software | healthy | scripts/validate_examples.py |
probe_routing.py |
software | healthy | scripts/probe_routing.py |
_seed_mysql_schema.py |
software | healthy | scripts/_seed_mysql_schema.py |
__init__.py |
software | healthy | app/__init__.py |
config.py |
software | healthy | app/config.py |
cli.py |
software | healthy | app/cli.py |
main.py |
software | healthy | app/main.py |
pronoun_anchor.py |
software | healthy | app/chatbot/pronoun_anchor.py |
chat_service.py |
software | healthy | app/chatbot/chat_service.py |
router.py |
software | healthy | app/chatbot/router.py |
__init__.py |
software | healthy | app/chatbot/__init__.py |
answer_formatter.py |
software | healthy | app/chatbot/answer_formatter.py |
sql_guard_mysql.py |
software | healthy | app/chatbot/sql_guard_mysql.py |
column_check.py |
software | healthy | app/chatbot/column_check.py |
turn_logger.py |
software | healthy | app/chatbot/turn_logger.py |
schema_store.py |
software | healthy | app/chatbot/schema_store.py |
example_store.py |
software | healthy | app/chatbot/example_store.py |
readonly_db.py |
software | healthy | app/chatbot/readonly_db.py |
sql_guard.py |
software | healthy | app/chatbot/sql_guard.py |
llm_client.py |
software | healthy | app/chatbot/llm_client.py |
engine_router.py |
software | healthy | app/chatbot/engine_router.py |
normalize_question.py |
software | healthy | app/chatbot/normalize_question.py |
readonly_db_mysql.py |
software | healthy | app/chatbot/readonly_db_mysql.py |
embed_client.py |
software | healthy | app/chatbot/embed_client.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestRestrictionRules |
software | healthy | tests/test_prompt_builder.py:14 |
TestSystemPrompt |
software | healthy | tests/test_prompt_builder.py:44 |
TestExamplesLoaded |
software | healthy | tests/test_prompt_builder.py:56 |
TestBuildMessagesDynamic |
software | healthy | tests/test_prompt_builder.py:110 |
TestBuildMessagesFallback |
software | healthy | tests/test_prompt_builder.py:147 |
TestBuildRetryMessage |
software | healthy | tests/test_prompt_builder.py:159 |
TestLoadDefinitions |
software | healthy | tests/test_schema_store.py:12 |
TestEmbedText |
software | healthy | tests/test_schema_store.py:36 |
TestFormatChunksForPrompt |
software | healthy | tests/test_schema_store.py:60 |
TestCollectRestrictions |
software | healthy | tests/test_schema_store.py:107 |
TestPgvectorLiteral |
software | healthy | tests/test_schema_store.py:137 |
TestNormalize |
software | healthy | tests/test_normalize_question.py:10 |
TestExtractSql |
software | healthy | tests/test_chat_service.py:13 |
TestCanonicalize |
software | healthy | tests/test_chat_service.py:83 |
TestGreetings |
software | healthy | tests/test_chat_service.py:99 |
TestIdentity |
software | healthy | tests/test_chat_service.py:130 |
TestDropBlankDimensionRows |
software | healthy | tests/test_chat_service.py:152 |
TestValidateAccepts |
software | healthy | tests/test_sql_guard.py:23 |
TestValidateRejects |
software | healthy | tests/test_sql_guard.py:58 |
TestAssertReadOnly |
software | healthy | tests/test_sql_guard.py:136 |
TestEnforceLimit |
software | healthy | tests/test_sql_guard.py:168 |
Settings |
software | healthy | app/config.py:6 |
_ShortName |
software | healthy | app/main.py:97 |
HistoryTurn |
software | healthy | app/main.py:245 |
ChatRequest |
software | healthy | app/main.py:268 |
ClarifyOptionOut |
software | healthy | app/main.py:326 |
ChatResponse |
software | healthy | app/main.py:331 |
AnchorResult |
software | healthy | app/chatbot/pronoun_anchor.py:84 |
DisambiguatedEntity |
software | healthy | app/chatbot/chat_service.py:583 |
PrevTurn |
software | healthy | app/chatbot/chat_service.py:643 |
ChatInput |
software | healthy | app/chatbot/chat_service.py:657 |
ClarifyOption |
software | healthy | app/chatbot/chat_service.py:671 |
ChatResult |
software | healthy | app/chatbot/chat_service.py:677 |
ExtractedReply |
software | healthy | app/chatbot/chat_service.py:691 |
ColumnPin |
software | healthy | app/chatbot/router.py:61 |
RouteSignal |
software | healthy | app/chatbot/router.py:69 |
GuardResult |
software | healthy | app/chatbot/sql_guard_mysql.py:102 |
ColumnCheckResult |
software | healthy | app/chatbot/column_check.py:58 |
TurnRecord |
software | healthy | app/chatbot/turn_logger.py:33 |
SchemaItem |
software | healthy | app/chatbot/schema_store.py:47 |
SchemaChunk |
software | healthy | app/chatbot/schema_store.py:70 |
_SchemaSnapshot |
software | healthy | app/chatbot/schema_store.py:160 |
ExampleHit |
software | healthy | app/chatbot/example_store.py:53 |
ExampleRetrievalError |
software | healthy | app/chatbot/example_store.py:62 |
_ExampleSnapshot |
software | healthy | app/chatbot/example_store.py:69 |
RunContext |
software | healthy | app/chatbot/readonly_db.py:76 |
RunResult |
software | healthy | app/chatbot/readonly_db.py:83 |
GuardResult |
software | healthy | app/chatbot/sql_guard.py:79 |
ChatMessage |
software | healthy | app/chatbot/llm_client.py:28 |
LLMError |
software | healthy | app/chatbot/llm_client.py:36 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
scripts |
software | healthy | scripts |
app |
software | healthy | app |
chatbot |
software | healthy | app/chatbot |
schema_profiler |
software | healthy | app/schema_profiler |
sql |
software | healthy | sql |
eval |
software | healthy | eval |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | README.md |
mysql |
data | healthy | tests/test_engine_router.py |
postgresql |
data | healthy | scripts/profile_schema.py |
redis |
data | healthy | app/main.py |
| Label | Layer | Status | Path |
|---|---|---|---|
category_map |
data | healthy | sql/004_category_map_and_view.sql |
chatbot_example_embeddings |
data | healthy | sql/005_pgvector_examples.sql |
chatbot_schema_embeddings |
data | healthy | sql/006_schema_embeddings.sql |
chatbot_fast_path_embeddings |
data | healthy | sql/007_fast_path_embeddings.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /health |
api | healthy | app/main.py |
POST /warmup |
api | healthy | app/main.py |
POST /chat |
api | healthy | app/main.py |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-uzr_phmp |
software | healthy | /tmp/repobility-clone-uzr_phmp |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | app/main.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | app/chatbot/readonly_db.py |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::digitalocean |
hardware | healthy | app/main.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::README.md |
security | healthy | README.md |
This page is publicly accessible at:
https://repobility.com/scan/543442b7-f45c-4339-b7c8-b2d27f61be6d/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/543442b7-f45c-4339-b7c8-b2d27f61be6d/
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.