https://github.com/thinkpb/theforge
· scanned 2026-06-16 00:35 UTC (2 months, 2 weeks ago)
35 raw signals (0 security + 35 graph)
Last scanned 2 months, 2 weeks ago · v1 · 27 actionable findings from 1 signal source. 8 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 472 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_registry_and_unknown_strategy |
software | healthy | tests/test_chunking.py:14 |
test_fixed_cuts_mid_sentence_by_design |
software | healthy | tests/test_chunking.py:20 |
test_sentence_never_splits_a_sentence |
software | healthy | tests/test_chunking.py:26 |
test_sentence_overlap_carries_trailing_sentences |
software | healthy | tests/test_chunking.py:35 |
test_sentence_giant_sentence_falls_back_to_fixed |
software | healthy | tests/test_chunking.py:42 |
test_paragraph_respects_paragraph_boundaries |
software | healthy | tests/test_chunking.py:48 |
test_paragraph_oversized_paragraph_falls_back_to_sentences |
software | healthy | tests/test_chunking.py:57 |
test_no_content_is_lost |
software | healthy | tests/test_chunking.py:66 |
test_ingest_accepts_strategy_and_rejects_unknown |
software | healthy | tests/test_chunking.py:73 |
_pdf_bytes |
software | healthy | tests/test_parsing.py:19 |
_docx_bytes |
software | healthy | tests/test_parsing.py:26 |
test_pdf_roundtrip |
software | healthy | tests/test_parsing.py:45 |
test_docx_includes_paragraphs_and_tables |
software | healthy | tests/test_parsing.py:49 |
test_html_strips_script_and_style |
software | healthy | tests/test_parsing.py:55 |
test_detection_falls_back_to_content_type |
software | healthy | tests/test_parsing.py:62 |
test_unsupported_type_and_corrupt_file |
software | healthy | tests/test_parsing.py:66 |
test_pdf_upload_is_parsed_scrubbed_and_ingested |
software | healthy | tests/test_parsing.py:76 |
test_upload_title_defaults_to_filename |
software | healthy | tests/test_parsing.py:90 |
test_upload_rejects_unsupported_and_empty |
software | healthy | tests/test_parsing.py:106 |
test_upload_size_cap |
software | healthy | tests/test_parsing.py:124 |
_chat_body |
software | healthy | tests/test_fallbacks.py:12 |
fallback_app |
software | healthy | tests/test_fallbacks.py:17 |
attempts |
software | healthy | tests/test_fallbacks.py:30 |
_fake |
software | healthy | tests/test_fallbacks.py:35 |
test_transient_failure_falls_through_to_next_provider |
software | healthy | tests/test_fallbacks.py:46 |
test_non_transient_failure_does_not_fall_through |
software | healthy | tests/test_fallbacks.py:67 |
test_exhausted_chain_returns_last_error |
software | healthy | tests/test_fallbacks.py:77 |
test_no_fallback_configured_behaves_as_before |
software | healthy | tests/test_fallbacks.py:95 |
_boom |
software | healthy | tests/test_fallbacks.py:96 |
set_test_env |
software | healthy | tests/conftest.py:21 |
_test_database |
software | healthy | tests/conftest.py:28 |
_ensure |
software | healthy | tests/conftest.py:31 |
db_engine |
software | healthy | tests/conftest.py:44 |
app |
software | healthy | tests/conftest.py:57 |
client |
software | healthy | tests/conftest.py:80 |
auth_headers |
software | healthy | tests/conftest.py:87 |
__init__ |
software | healthy | tests/conftest.py:92 |
model_dump |
software | healthy | tests/conftest.py:95 |
fake_completion |
software | healthy | tests/conftest.py:112 |
_fake |
software | healthy | tests/conftest.py:137 |
_onehot |
software | healthy | tests/conftest.py:127 |
fake_embeddings |
software | healthy | tests/conftest.py:134 |
make_litellm_exc |
software | healthy | tests/conftest.py:146 |
_chat_body |
software | healthy | tests/test_audit.py:16 |
_rows |
software | healthy | tests/test_audit.py:20 |
test_success_writes_audit_row |
software | healthy | tests/test_audit.py:26 |
test_upstream_error_writes_audit_row |
software | healthy | tests/test_audit.py:44 |
_boom |
software | healthy | tests/test_audit.py:45 |
test_unknown_alias_writes_rejected_row |
software | healthy | tests/test_audit.py:62 |
test_audit_log_is_append_only |
software | healthy | tests/test_audit.py:75 |
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 |
CLAUDE.md |
software | healthy | CLAUDE.md |
Dockerfile |
software | healthy | Dockerfile |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
LICENSE |
software | healthy | LICENSE |
docker-compose.yml |
software | healthy | docker-compose.yml |
test_chunking.py |
software | healthy | tests/test_chunking.py |
test_parsing.py |
software | healthy | tests/test_parsing.py |
test_fallbacks.py |
software | healthy | tests/test_fallbacks.py |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
test_audit.py |
software | healthy | tests/test_audit.py |
test_pii.py |
software | healthy | tests/test_pii.py |
test_ratelimit.py |
software | healthy | tests/test_ratelimit.py |
test_health.py |
software | healthy | tests/test_health.py |
test_injection.py |
software | healthy | tests/test_injection.py |
test_streaming.py |
software | healthy | tests/test_streaming.py |
test_costs.py |
software | healthy | tests/test_costs.py |
test_rag.py |
software | healthy | tests/test_rag.py |
test_evals.py |
software | healthy | tests/test_evals.py |
test_rag_chat.py |
software | healthy | tests/test_rag_chat.py |
test_jobs.py |
software | healthy | tests/test_jobs.py |
test_auth.py |
software | healthy | tests/test_auth.py |
test_gateway.py |
software | healthy | tests/test_gateway.py |
test_keys.py |
software | healthy | tests/test_keys.py |
test_hybrid.py |
software | healthy | tests/test_hybrid.py |
TESTING.md |
software | healthy | docs/TESTING.md |
ARCHITECTURE.md |
software | healthy | docs/ARCHITECTURE.md |
POSITIONING.md |
software | healthy | docs/POSITIONING.md |
ROADMAP.md |
software | healthy | docs/ROADMAP.md |
0001-model-alias-indirection.md |
software | healthy | docs/adr/0001-model-alias-indirection.md |
0016-hybrid-search.md |
software | healthy | docs/adr/0016-hybrid-search.md |
0005-compliance-first-design.md |
software | healthy | docs/adr/0005-compliance-first-design.md |
0006-buffered-audit-log.md |
software | healthy | docs/adr/0006-buffered-audit-log.md |
0010-provider-fallback-chains.md |
software | healthy | docs/adr/0010-provider-fallback-chains.md |
0007-pii-scrubbing-outbound.md |
software | healthy | docs/adr/0007-pii-scrubbing-outbound.md |
0013-rag-injection.md |
software | healthy | docs/adr/0013-rag-injection.md |
0015-chunking-strategies.md |
software | healthy | docs/adr/0015-chunking-strategies.md |
0004-openai-compatible-surface.md |
software | healthy | docs/adr/0004-openai-compatible-surface.md |
0017-async-ingestion-jobs.md |
software | healthy | docs/adr/0017-async-ingestion-jobs.md |
0011-streaming-sse.md |
software | healthy | docs/adr/0011-streaming-sse.md |
0014-rag-eval-pipeline.md |
software | healthy | docs/adr/0014-rag-eval-pipeline.md |
0012-pii-safe-rag-foundation.md |
software | healthy | docs/adr/0012-pii-safe-rag-foundation.md |
0003-master-key-auth-first.md |
software | healthy | docs/adr/0003-master-key-auth-first.md |
0009-token-aware-rate-limiting.md |
software | healthy | docs/adr/0009-token-aware-rate-limiting.md |
0018-prompt-injection-defense.md |
software | healthy | docs/adr/0018-prompt-injection-defense.md |
0002-litellm-as-provider-adapter.md |
software | healthy | docs/adr/0002-litellm-as-provider-adapter.md |
0008-api-key-management.md |
software | healthy | docs/adr/0008-api-key-management.md |
kustomization.yaml |
software | healthy | k8s/kustomization.yaml |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
FakeResponse |
software | healthy | tests/conftest.py:91 |
FakeChunk |
software | healthy | tests/test_streaming.py:11 |
RetrievalResult |
software | healthy | evals/harness.py:63 |
ForgeEvalClient |
software | healthy | evals/harness.py:71 |
WorkerSettings |
software | healthy | src/forge/worker.py:112 |
Base |
software | healthy | src/forge/db.py:9 |
Settings |
software | healthy | src/forge/config.py:6 |
AuthContext |
software | healthy | src/forge/auth.py:24 |
RateLimitExceeded |
software | healthy | src/forge/ratelimit.py:26 |
RateLimiter |
software | healthy | src/forge/ratelimit.py:33 |
IngestionJob |
software | healthy | src/forge/jobs.py:23 |
ApiKey |
software | healthy | src/forge/keys.py:23 |
AuditLog |
software | healthy | src/forge/audit.py:31 |
AuditRecord |
software | healthy | src/forge/audit.py:82 |
AuditBufferFull |
software | healthy | src/forge/audit.py:99 |
AuditBuffer |
software | healthy | src/forge/audit.py:103 |
PIIScrubber |
software | healthy | src/forge/pii.py:35 |
ChatMessage |
software | healthy | src/forge/api/chat.py:26 |
RagOptions |
software | healthy | src/forge/api/chat.py:31 |
ChatCompletionRequest |
software | healthy | src/forge/api/chat.py:36 |
IngestRequest |
software | healthy | src/forge/api/rag.py:29 |
SearchRequest |
software | healthy | src/forge/api/rag.py:35 |
CreateKeyRequest |
software | healthy | src/forge/api/keys.py:17 |
UnsupportedDocumentType |
software | healthy | src/forge/rag/parsing.py:17 |
DocumentParseError |
software | healthy | src/forge/rag/parsing.py:23 |
CollectionSchemaMismatch |
software | healthy | src/forge/rag/store.py:19 |
VectorStore |
software | healthy | src/forge/rag/store.py:29 |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
docs |
software | healthy | docs |
adr |
software | healthy | docs/adr |
k8s |
software | healthy | k8s |
evals |
software | healthy | evals |
alembic |
software | healthy | alembic |
versions |
software | healthy | alembic/versions |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
forge |
software | healthy | src/forge |
api |
software | healthy | src/forge/api |
rag |
software | healthy | src/forge/rag |
gateway |
software | healthy | src/forge/gateway |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /health |
api | healthy | src/forge/api/health.py |
GET /v1/costs |
api | healthy | src/forge/api/costs.py |
POST /v1/chat/completions |
api | healthy | src/forge/api/chat.py |
GET /v1/models |
api | healthy | src/forge/api/chat.py |
POST /v1/documents |
api | healthy | src/forge/api/rag.py |
POST /v1/documents/upload |
api | healthy | src/forge/api/rag.py |
POST /v1/documents/async |
api | healthy | src/forge/api/rag.py |
GET /v1/documents/jobs/{job_id} |
api | healthy | src/forge/api/rag.py |
POST /v1/search |
api | healthy | src/forge/api/rag.py |
POST /v1/keys |
api | healthy | src/forge/api/keys.py |
GET /v1/keys |
api | healthy | src/forge/api/keys.py |
DELETE /v1/keys/{key_id} |
api | healthy | src/forge/api/keys.py |
GET /v1/audit |
api | healthy | src/forge/api/audit.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
postgres |
hardware | healthy | docker-compose.yml |
redis |
hardware | healthy | docker-compose.yml |
ollama |
hardware | healthy | docker-compose.yml |
qdrant |
hardware | healthy | docker-compose.yml |
k8s::Kustomization::k8s/kustomization.yaml |
hardware | healthy | k8s/kustomization.yaml |
k8s::Namespace::k8s/namespace.yaml |
hardware | healthy | k8s/namespace.yaml |
k8s::ConfigMap::k8s/configmap.yaml |
hardware | healthy | k8s/configmap.yaml |
k8s::Secret::k8s/secret.example.yaml |
hardware | healthy | k8s/secret.example.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
Base |
data | healthy | src/forge/db.py |
IngestionJob |
data | healthy | src/forge/jobs.py |
ingestion_jobs |
data | healthy | src/forge/jobs.py |
ApiKey |
data | healthy | src/forge/keys.py |
api_keys |
data | healthy | src/forge/keys.py |
AuditLog |
data | healthy | src/forge/audit.py |
audit_log |
data | healthy | src/forge/audit.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8000 |
network | healthy | Dockerfile |
port:5432 |
network | healthy | docker-compose.yml |
port:6379 |
network | healthy | docker-compose.yml |
port:11434 |
network | healthy | docker-compose.yml |
port:6333 |
network | healthy | docker-compose.yml |
port:80 |
network | healthy | k8s/service.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | README.md |
redis |
data | healthy | README.md |
postgresql |
data | healthy | README.md |
sqlite |
data | healthy | tests/test_audit.py |
| Label | Layer | Status | Path |
|---|---|---|---|
k8s::Deployment::k8s/worker-deployment.yaml |
hardware | healthy | k8s/worker-deployment.yaml |
k8s::Deployment::k8s/deployment.yaml |
hardware | healthy | k8s/deployment.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-zf98l5ku |
software | healthy | /tmp/repobility-clone-zf98l5ku |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
test |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/30407a56-14a4-4a83-82ac-ba5f6cc9eabc/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/30407a56-14a4-4a83-82ac-ba5f6cc9eabc/
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.