https://github.com/chpark1358/chemical_search
· scanned 2026-06-17 01:47 UTC (1 month, 1 week ago)
28 raw signals (0 security + 28 graph)
Last scanned 1 month, 1 week ago · v2 · last Δ -12.4 (diff) · 27 actionable findings from 1 signal source. 1 repeated signal grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 869 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 |
|---|---|---|---|
http_diag |
software | healthy | tests/test_chemical_search_wikidata.py:68 |
__init__ |
software | healthy | tests/test_chemical_search_wikidata.py:197 |
get_json |
software | healthy | tests/test_chemical_search_wikidata.py:80 |
test_detects_hangul |
software | healthy | tests/test_chemical_search_wikidata.py:97 |
test_no_hangul_for_ascii_and_structures |
software | healthy | tests/test_chemical_search_wikidata.py:101 |
test_query_prefers_exact_label_over_altlabel |
software | healthy | tests/test_chemical_search_wikidata.py:110 |
test_query_escapes_quotes_and_backslashes |
software | healthy | tests/test_chemical_search_wikidata.py:129 |
test_resolves_cid_and_inchikey |
software | healthy | tests/test_chemical_search_wikidata.py:136 |
test_sends_required_user_agent_and_accept_headers |
software | healthy | tests/test_chemical_search_wikidata.py:147 |
test_cid_only_binding_returns_cid_without_inchikey |
software | healthy | tests/test_chemical_search_wikidata.py:159 |
test_non_korean_input_skips_wikidata |
software | healthy | tests/test_chemical_search_wikidata.py:169 |
test_empty_bindings_returns_none |
software | healthy | tests/test_chemical_search_wikidata.py:178 |
test_request_failure_falls_through_to_none |
software | healthy | tests/test_chemical_search_wikidata.py:185 |
resolve_candidates |
software | healthy | tests/test_chemical_search_wikidata.py:210 |
resolve_by_cid |
software | healthy | tests/test_chemical_search_wikidata.py:218 |
candidate |
software | healthy | tests/test_chemical_search_wikidata.py:226 |
make_pipeline |
software | healthy | tests/test_chemical_search_wikidata.py:237 |
test_inchikey_path_is_preferred_and_adds_warning |
software | healthy | tests/test_chemical_search_wikidata.py:250 |
test_cid_path_used_when_no_inchikey |
software | healthy | tests/test_chemical_search_wikidata.py:267 |
test_wikidata_miss_falls_through_to_pubchem_name_lookup |
software | healthy | tests/test_chemical_search_wikidata.py:282 |
test_non_korean_input_never_calls_wikidata |
software | healthy | tests/test_chemical_search_wikidata.py:297 |
http_diag |
software | healthy | tests/test_chemical_search_kipris.py:99 |
__init__ |
software | healthy | tests/test_chemical_search_kipris.py:553 |
get_text |
software | healthy | tests/test_chemical_search_kipris.py:111 |
get_cached_text |
software | healthy | tests/test_chemical_search_kipris.py:141 |
set_cached_text |
software | healthy | tests/test_chemical_search_kipris.py:146 |
with_key |
software | healthy | tests/test_chemical_search_kipris.py:159 |
without_key |
software | healthy | tests/test_chemical_search_kipris.py:163 |
test_disabled_when_key_unset |
software | healthy | tests/test_chemical_search_kipris.py:168 |
test_blank_key_counts_as_unset |
software | healthy | tests/test_chemical_search_kipris.py:173 |
test_enabled_when_key_set |
software | healthy | tests/test_chemical_search_kipris.py:178 |
test_provider_without_key_is_empty_no_error |
software | healthy | tests/test_chemical_search_kipris.py:183 |
test_parses_items_and_total_count |
software | healthy | tests/test_chemical_search_kipris.py:199 |
test_request_sends_fixed_num_of_rows_independent_of_limit |
software | healthy | tests/test_chemical_search_kipris.py:220 |
test_results_sliced_to_requested_limit_client_side |
software | healthy | tests/test_chemical_search_kipris.py:242 |
test_missing_fields_fall_back |
software | healthy | tests/test_chemical_search_kipris.py:259 |
test_empty_items_is_empty_status |
software | healthy | tests/test_chemical_search_kipris.py:281 |
test_error_result_code_is_error_and_message_sanitized |
software | healthy | tests/test_chemical_search_kipris.py:292 |
test_malformed_xml_is_error |
software | healthy | tests/test_chemical_search_kipris.py:305 |
test_url_falls_back_to_kipris_search_when_no_number |
software | healthy | tests/test_chemical_search_kipris.py:316 |
test_registration_number_builds_google_patents_url |
software | healthy | tests/test_chemical_search_kipris.py:335 |
test_application_number_only_does_not_build_google_url |
software | healthy | tests/test_chemical_search_kipris.py:359 |
test_no_title_uses_placeholder |
software | healthy | tests/test_chemical_search_kipris.py:384 |
test_rate_limit_maps_to_rate_limited |
software | healthy | tests/test_chemical_search_kipris.py:401 |
test_timeout_maps_to_timeout |
software | healthy | tests/test_chemical_search_kipris.py:413 |
test_get_text_called_with_zero_ttl_no_raw_caching |
software | healthy | tests/test_chemical_search_kipris.py:425 |
test_success_response_is_cached |
software | healthy | tests/test_chemical_search_kipris.py:436 |
test_empty_success_response_is_cached |
software | healthy | tests/test_chemical_search_kipris.py:450 |
test_error_result_code_response_is_not_cached |
software | healthy | tests/test_chemical_search_kipris.py:463 |
test_malformed_xml_response_is_not_cached |
software | healthy | tests/test_chemical_search_kipris.py:475 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.env.example |
software | healthy | .env.example |
AGENTS.md |
software | healthy | AGENTS.md |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
playwright.config.ts |
software | healthy | playwright.config.ts |
package-lock.json |
software | healthy | package-lock.json |
README.md |
software | healthy | README.md |
DEPLOYMENT.md |
software | healthy | DEPLOYMENT.md |
postcss.config.mjs |
software | healthy | postcss.config.mjs |
package.json |
software | healthy | package.json |
render.yaml |
software | healthy | render.yaml |
next.config.ts |
software | healthy | next.config.ts |
next-env.d.ts |
software | healthy | next-env.d.ts |
Dockerfile |
software | healthy | Dockerfile |
tsconfig.json |
software | healthy | tsconfig.json |
test_chemical_search_wikidata.py |
software | healthy | tests/test_chemical_search_wikidata.py |
test_chemical_search_kipris.py |
software | healthy | tests/test_chemical_search_kipris.py |
test_chemical_search_api.py |
software | healthy | tests/test_chemical_search_api.py |
test_chemical_search_korean_aliases.py |
software | healthy | tests/test_chemical_search_korean_aliases.py |
test_chemical_search_pipeline.py |
software | healthy | tests/test_chemical_search_pipeline.py |
test_chemical_search_env.py |
software | healthy | tests/test_chemical_search_env.py |
test_chemical_search_results.py |
software | healthy | tests/test_chemical_search_results.py |
test_chemical_search_quality.py |
software | healthy | tests/test_chemical_search_quality.py |
test_chemical_search_providers.py |
software | healthy | tests/test_chemical_search_providers.py |
test_chemical_search_http_client.py |
software | healthy | tests/test_chemical_search_http_client.py |
supabase-mock.mjs |
software | healthy | tests/smoke/supabase-mock.mjs |
auth.ts |
software | healthy | tests/smoke/auth.ts |
paper-search.spec.ts |
software | healthy | tests/smoke/paper-search.spec.ts |
phase0_api_spike.json |
software | healthy | output/chemical-search/phase0_api_spike.json |
phase0_api_spike.md |
software | healthy | output/chemical-search/phase0_api_spike.md |
korean_aliases.py |
software | healthy | scripts/chemical_search/korean_aliases.py |
pipeline.py |
software | healthy | scripts/chemical_search/pipeline.py |
__init__.py |
software | healthy | scripts/chemical_search/__init__.py |
phase0_api_spike.py |
software | healthy | scripts/chemical_search/phase0_api_spike.py |
README.md |
software | healthy | scripts/chemical_search/README.md |
http_client.py |
software | healthy | scripts/chemical_search/http_client.py |
models.py |
software | healthy | scripts/chemical_search/models.py |
providers.py |
software | healthy | scripts/chemical_search/providers.py |
env.py |
software | healthy | scripts/chemical_search/env.py |
wikidata.py |
software | healthy | scripts/chemical_search/wikidata.py |
cache.py |
software | healthy | scripts/chemical_search/cache.py |
poc_cli.py |
software | healthy | scripts/chemical_search/poc_cli.py |
api.py |
software | healthy | scripts/chemical_search/api.py |
quality-cases.json |
software | healthy | scripts/chemical_search/quality-cases.json |
evaluate_quality.py |
software | healthy | scripts/chemical_search/evaluate_quality.py |
normalize.py |
software | healthy | scripts/chemical_search/normalize.py |
results.py |
software | healthy | scripts/chemical_search/results.py |
rendering.py |
software | healthy | scripts/chemical_search/rendering.py |
deploy-backend.yml |
software | healthy | .github/workflows/deploy-backend.yml |
keepalive.yml |
software | healthy | .github/workflows/keepalive.yml |
middleware.ts |
software | healthy | src/middleware.ts |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
FakeHttp |
software | healthy | tests/test_chemical_search_wikidata.py:72 |
HangulDetectionTests |
software | healthy | tests/test_chemical_search_wikidata.py:96 |
BuildQueryTests |
software | healthy | tests/test_chemical_search_wikidata.py:109 |
ResolveKoreanNameTests |
software | healthy | tests/test_chemical_search_wikidata.py:135 |
FakePubChem |
software | healthy | tests/test_chemical_search_wikidata.py:194 |
KoreanResolutionIntegrationTests |
software | healthy | tests/test_chemical_search_wikidata.py:249 |
FakeTextHttp |
software | healthy | tests/test_chemical_search_kipris.py:103 |
FakeCachingTextHttp |
software | healthy | tests/test_chemical_search_kipris.py:127 |
KiprisGatingTests |
software | healthy | tests/test_chemical_search_kipris.py:167 |
KiprisParsingTests |
software | healthy | tests/test_chemical_search_kipris.py:198 |
KiprisCachingTests |
software | healthy | tests/test_chemical_search_kipris.py:424 |
FakePaperProvider |
software | healthy | tests/test_chemical_search_kipris.py:522 |
FakeSureChembl |
software | healthy | tests/test_chemical_search_kipris.py:532 |
FakeGooglePatents |
software | healthy | tests/test_chemical_search_kipris.py:541 |
FakeKipris |
software | healthy | tests/test_chemical_search_kipris.py:550 |
KiprisPipelineTests |
software | healthy | tests/test_chemical_search_kipris.py:595 |
SureChemblWithHits |
software | healthy | tests/test_chemical_search_kipris.py:645 |
FakePipeline |
software | healthy | tests/test_chemical_search_api.py:76 |
SearchFlowTests |
software | healthy | tests/test_chemical_search_api.py:148 |
ValidationTests |
software | healthy | tests/test_chemical_search_api.py:409 |
NotFoundConflictTests |
software | healthy | tests/test_chemical_search_api.py:474 |
ExportTests |
software | healthy | tests/test_chemical_search_api.py:527 |
ErrorSanitizationTests |
software | healthy | tests/test_chemical_search_api.py:597 |
RecordStoreTests |
software | healthy | tests/test_chemical_search_api.py:626 |
NormalizeEndpointTests |
software | healthy | tests/test_chemical_search_api.py:686 |
LookupKoreanAliasTests |
software | healthy | tests/test_chemical_search_korean_aliases.py:34 |
FakeHttp |
software | healthy | tests/test_chemical_search_korean_aliases.py:71 |
FakePubChem |
software | healthy | tests/test_chemical_search_korean_aliases.py:85 |
KoreanAliasPipelineTests |
software | healthy | tests/test_chemical_search_korean_aliases.py:136 |
ExplodingPubChem |
software | healthy | tests/test_chemical_search_pipeline.py:86 |
FakePaperProvider |
software | healthy | tests/test_chemical_search_pipeline.py:93 |
FakeSureChemblProvider |
software | healthy | tests/test_chemical_search_pipeline.py:124 |
FakeGooglePatentsProvider |
software | healthy | tests/test_chemical_search_pipeline.py:173 |
NormalizeTests |
software | healthy | tests/test_chemical_search_pipeline.py:220 |
PipelineStatusTests |
software | healthy | tests/test_chemical_search_pipeline.py:233 |
PipelineBehaviorTests |
software | healthy | tests/test_chemical_search_pipeline.py:311 |
DefaultSourcesGatingTests |
software | healthy | tests/test_chemical_search_pipeline.py:632 |
ParseLineTests |
software | healthy | tests/test_chemical_search_env.py:12 |
LoadDotenvTests |
software | healthy | tests/test_chemical_search_env.py:33 |
MergeTests |
software | healthy | tests/test_chemical_search_results.py:41 |
DedupPatentsTests |
software | healthy | tests/test_chemical_search_results.py:274 |
QualityFixtureTests |
software | healthy | tests/test_chemical_search_quality.py:13 |
FakeHttp |
software | healthy | tests/test_chemical_search_providers.py:314 |
SemanticScholarTests |
software | healthy | tests/test_chemical_search_providers.py:361 |
OpenAlexTests |
software | healthy | tests/test_chemical_search_providers.py:427 |
CrossrefTests |
software | healthy | tests/test_chemical_search_providers.py:595 |
PubChemTests |
software | healthy | tests/test_chemical_search_providers.py:641 |
SureChemblTests |
software | healthy | tests/test_chemical_search_providers.py:755 |
GooglePatentsTests |
software | healthy | tests/test_chemical_search_providers.py:964 |
FakeResponse |
software | healthy | tests/test_chemical_search_http_client.py:16 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
RootLayout |
frontend | healthy | src/app/layout.tsx |
AuthForm |
frontend | healthy | src/app/login/AuthForm.tsx |
RecentSearches |
frontend | healthy | src/components/papers/RecentSearches.tsx |
PaperList |
frontend | healthy | src/components/papers/PaperList.tsx |
StatusBanner |
frontend | healthy | src/components/papers/StatusBanner.tsx |
SkeletonList |
frontend | healthy | src/components/papers/SkeletonList.tsx |
PatentList |
frontend | healthy | src/components/papers/PatentList.tsx |
SearchBar |
frontend | healthy | src/components/papers/SearchBar.tsx |
StarButton |
frontend | healthy | src/components/papers/StarButton.tsx |
CandidatePicker |
frontend | healthy | src/components/papers/CandidatePicker.tsx |
EmptyState |
frontend | healthy | src/components/papers/EmptyState.tsx |
PatentRow |
frontend | healthy | src/components/papers/PatentRow.tsx |
SelectCheckbox |
frontend | healthy | src/components/papers/SelectCheckbox.tsx |
SavedView |
frontend | healthy | src/components/papers/SavedView.tsx |
ResultTabs |
frontend | healthy | src/components/papers/ResultTabs.tsx |
ProviderChips |
frontend | healthy | src/components/papers/ProviderChips.tsx |
PaperRow |
frontend | healthy | src/components/papers/PaperRow.tsx |
PatentToolbar |
frontend | healthy | src/components/papers/PatentToolbar.tsx |
Toolbar |
frontend | healthy | src/components/papers/Toolbar.tsx |
ExportMenu |
frontend | healthy | src/components/papers/ExportMenu.tsx |
SavedExportMenu |
frontend | healthy | src/components/papers/SavedExportMenu.tsx |
PaperSearchApp |
frontend | healthy | src/components/papers/PaperSearchApp.tsx |
CompoundCard |
frontend | healthy | src/components/papers/CompoundCard.tsx |
SavedRow |
frontend | healthy | src/components/papers/SavedRow.tsx |
SavedNav |
frontend | healthy | src/components/papers/SavedNav.tsx |
CopyButton |
frontend | healthy | src/components/papers/CopyButton.tsx |
AccountMenu |
frontend | healthy | src/components/auth/AccountMenu.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
smoke |
software | healthy | tests/smoke |
output |
software | healthy | output |
chemical-search |
software | healthy | output/chemical-search |
scripts |
software | healthy | scripts |
chemical_search |
software | healthy | scripts/chemical_search |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
app |
software | healthy | src/app |
login |
software | healthy | src/app/login |
auth |
software | healthy | src/app/auth |
confirm |
software | healthy | src/app/auth/confirm |
chemical-api |
software | healthy | src/app/chemical-api |
[...path] |
software | healthy | src/app/chemical-api/[...path] |
components |
software | healthy | src/components |
papers |
software | healthy | src/components/papers |
auth |
software | healthy | src/components/auth |
lib |
software | healthy | src/lib |
supabase |
software | healthy | src/lib/supabase |
docs |
software | healthy | docs |
chemical-search-progress |
software | healthy | docs/chemical-search-progress |
session-reports |
software | healthy | docs/chemical-search-progress/session-reports |
supabase |
software | healthy | supabase |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /health |
api | healthy | scripts/chemical_search/api.py |
POST /api/chem/normalize |
api | healthy | scripts/chemical_search/api.py |
POST /api/searches |
api | healthy | scripts/chemical_search/api.py |
GET /api/searches/{search_id} |
api | healthy | scripts/chemical_search/api.py |
POST /api/searches/{search_id}/select |
api | healthy | scripts/chemical_search/api.py |
GET /api/searches/{search_id}/export |
api | healthy | scripts/chemical_search/api.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
port:443 |
network | healthy | output/chemical-search/phase0_api_spike.json |
port:7860 |
network | healthy | .github/workflows/deploy-backend.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | src/app/page.tsx |
/login |
frontend | healthy | src/app/login/page.tsx |
/ |
frontend | healthy | tests/smoke/auth.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/lib/searchHistory.ts |
security | healthy | src/lib/searchHistory.ts |
auth::src/lib/savedItems.ts |
security | healthy | src/lib/savedItems.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::deploy-backend |
cicd | healthy | .github/workflows/deploy-backend.yml |
gha::keepalive |
cicd | healthy | .github/workflows/keepalive.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
sync |
cicd | healthy | .github/workflows/deploy-backend.yml |
ping |
cicd | healthy | .github/workflows/keepalive.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
HF_WRITE_TOKEN |
cicd | healthy | — |
HF_TOKEN |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
chpark1358__chemical_search |
software | healthy | /data/fable5_failed_archive/chpark1358__chemical_search |
| Label | Layer | Status | Path |
|---|---|---|---|
public |
data | healthy | supabase/schema.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
This page is publicly accessible at:
https://repobility.com/scan/8db2c1ee-347a-4324-954c-10db6091d07d/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/8db2c1ee-347a-4324-954c-10db6091d07d/
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.