https://github.com/vivekanjana76/steward
· scanned 2026-06-16 00:51 UTC (2 months, 1 week ago)
45 raw signals (0 security + 45 graph)
Last scanned 2 months, 1 week ago · v1 · 40 actionable findings from 1 signal source. 5 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 736 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 |
|---|---|---|---|
_text_response |
software | healthy | tests/test_model_client.py:26 |
_tool_response |
software | healthy | tests/test_model_client.py:35 |
__init__ |
software | healthy | tests/test_model_client.py:57 |
create |
software | healthy | tests/test_model_client.py:51 |
_client |
software | healthy | tests/test_model_client.py:61 |
test_role_resolution_matches_spec |
software | healthy | tests/test_model_client.py:66 |
test_complete_uses_role_model_and_normalizes_response |
software | healthy | tests/test_model_client.py:72 |
test_complete_omits_system_when_unset_and_passes_it_when_set |
software | healthy | tests/test_model_client.py:86 |
test_complete_raises_without_text_block |
software | healthy | tests/test_model_client.py:104 |
test_structured_forces_tool_use_and_validates_payload |
software | healthy | tests/test_model_client.py:112 |
test_structured_raises_on_schema_mismatch |
software | healthy | tests/test_model_client.py:134 |
test_request_requires_at_least_one_message |
software | healthy | tests/test_model_client.py:149 |
test_build_model_client_requires_api_key |
software | healthy | tests/test_model_client.py:156 |
test_build_model_client_constructs_with_key |
software | healthy | tests/test_model_client.py:162 |
_issue_payload |
software | healthy | tests/test_triage_ingest.py:29 |
test_sanitize_strips_invisible_and_control_chars |
software | healthy | tests/test_triage_ingest.py:47 |
test_sanitize_normalizes_crlf_and_trims |
software | healthy | tests/test_triage_ingest.py:52 |
test_sanitize_handles_none_and_empty |
software | healthy | tests/test_triage_ingest.py:56 |
test_sanitize_keeps_newlines_and_tabs |
software | healthy | tests/test_triage_ingest.py:61 |
test_detect_instruction_override |
software | healthy | tests/test_triage_ingest.py:68 |
test_detect_role_injection_and_exfiltration |
software | healthy | tests/test_triage_ingest.py:72 |
test_detect_returns_sorted_unique_and_empty_on_clean_text |
software | healthy | tests/test_triage_ingest.py:78 |
test_normalize_maps_core_fields |
software | healthy | tests/test_triage_ingest.py:87 |
test_normalize_accepts_labels_as_strings |
software | healthy | tests/test_triage_ingest.py:100 |
test_normalize_tolerates_ghost_author_and_missing_body |
software | healthy | tests/test_triage_ingest.py:105 |
test_normalize_sanitizes_title_and_body |
software | healthy | tests/test_triage_ingest.py:111 |
test_normalize_normalizes_comments_and_aggregates_injection |
software | healthy | tests/test_triage_ingest.py:117 |
test_normalize_detects_injection_in_body |
software | healthy | tests/test_triage_ingest.py:143 |
test_normalized_issue_is_frozen |
software | healthy | tests/test_triage_ingest.py:151 |
test_normalize_raises_on_missing_required_field |
software | healthy | tests/test_triage_ingest.py:157 |
test_normalize_raises_on_unparseable_timestamp |
software | healthy | tests/test_triage_ingest.py:164 |
test_normalize_rejects_unknown_state |
software | healthy | tests/test_triage_ingest.py:169 |
__init__ |
software | healthy | tests/test_sandbox_docker.py:62 |
wait |
software | healthy | tests/test_sandbox_docker.py:36 |
logs |
software | healthy | tests/test_sandbox_docker.py:41 |
kill |
software | healthy | tests/test_sandbox_docker.py:44 |
remove |
software | healthy | tests/test_sandbox_docker.py:47 |
run |
software | healthy | tests/test_sandbox_docker.py:56 |
_spec |
software | healthy | tests/test_sandbox_docker.py:66 |
test_backend_enforces_isolation |
software | healthy | tests/test_sandbox_docker.py:72 |
test_backend_reports_failure |
software | healthy | tests/test_sandbox_docker.py:97 |
test_backend_handles_timeout |
software | healthy | tests/test_sandbox_docker.py:106 |
test_network_opt_in_is_passed_through |
software | healthy | tests/test_sandbox_docker.py:116 |
_docker_available |
software | healthy | tests/test_sandbox_docker.py:125 |
test_integration_runs_real_tests |
software | healthy | tests/test_sandbox_docker.py:139 |
test_integration_network_is_disabled |
software | healthy | tests/test_sandbox_docker.py:166 |
__init__ |
software | healthy | tests/test_triage_apply.py:40 |
post_comment |
software | healthy | tests/test_triage_apply.py:44 |
add_labels |
software | healthy | tests/test_triage_apply.py:47 |
_issue |
software | healthy | tests/test_triage_apply.py:51 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_StubMessages |
software | healthy | tests/test_model_client.py:44 |
_StubAnthropic |
software | healthy | tests/test_model_client.py:56 |
Verdict |
software | healthy | tests/test_model_client.py:137 |
FakeContainer |
software | healthy | tests/test_sandbox_docker.py:25 |
FakeContainers |
software | healthy | tests/test_sandbox_docker.py:51 |
FakeClient |
software | healthy | tests/test_sandbox_docker.py:61 |
StubWriter |
software | healthy | tests/test_triage_apply.py:37 |
TestRendering |
software | healthy | tests/test_triage_apply.py:97 |
TestProposal |
software | healthy | tests/test_triage_apply.py:134 |
TestApply |
software | healthy | tests/test_triage_apply.py:151 |
AdvanceableClock |
software | healthy | tests/test_policy_approvals.py:32 |
TestRequest |
software | healthy | tests/test_policy_approvals.py:69 |
TestApprove |
software | healthy | tests/test_policy_approvals.py:101 |
TestReject |
software | healthy | tests/test_policy_approvals.py:132 |
TestTimeout |
software | healthy | tests/test_policy_approvals.py:152 |
TestQueueBehavior |
software | healthy | tests/test_policy_approvals.py:184 |
_StubMessages |
software | healthy | tests/test_fix_generate.py:45 |
_StubAnthropic |
software | healthy | tests/test_fix_generate.py:55 |
TestAppendOnly |
software | healthy | tests/test_policy_audit.py:48 |
TestHashChain |
software | healthy | tests/test_policy_audit.py:93 |
TestJsonlBackend |
software | healthy | tests/test_policy_audit.py:136 |
FakeBackend |
software | healthy | tests/test_sandbox_runner.py:23 |
TestPartition |
software | healthy | tests/test_policy_engine.py:62 |
TestRepoScope |
software | healthy | tests/test_policy_engine.py:77 |
TestNoOverride |
software | healthy | tests/test_policy_engine.py:92 |
TestAuthorize |
software | healthy | tests/test_policy_engine.py:106 |
TestModels |
software | healthy | tests/test_policy_engine.py:143 |
FixDetectingBackend |
software | healthy | tests/test_fix_prooftest.py:57 |
AlwaysPassBackend |
software | healthy | tests/test_fix_prooftest.py:72 |
FakeClassifier |
software | healthy | tests/test_graph.py:57 |
FakeReproducer |
software | healthy | tests/test_graph.py:67 |
CountingHypothesizer |
software | healthy | tests/test_graph.py:76 |
FakePatcher |
software | healthy | tests/test_graph.py:85 |
ScriptedTester |
software | healthy | tests/test_graph.py:90 |
RecordingPROpener |
software | healthy | tests/test_graph.py:103 |
TestBlacklistIsImpossible |
software | healthy | tests/test_policy_safety.py:70 |
TestGreylistAlwaysNeedsApproval |
software | healthy | tests/test_policy_safety.py:101 |
TestDryRunDefault |
software | healthy | tests/test_policy_safety.py:144 |
TestLiveOptInParsing |
software | healthy | tests/test_policy_safety.py:190 |
_StubMessages |
software | healthy | tests/test_triage_classify.py:36 |
_StubAnthropic |
software | healthy | tests/test_triage_classify.py:46 |
_RecordingSink |
software | healthy | tests/test_tracing.py:28 |
_StubTrace |
software | healthy | tests/test_tracing.py:175 |
_StubLangfuse |
software | healthy | tests/test_tracing.py:183 |
_Boom |
software | healthy | tests/test_tracing.py:217 |
_StubEmbedder |
software | healthy | tests/test_triage_dedup.py:53 |
_StubVoyageResult |
software | healthy | tests/test_triage_dedup.py:232 |
_StubVoyageClient |
software | healthy | tests/test_triage_dedup.py:237 |
Settings |
software | healthy | src/steward/config.py:17 |
DedupError |
software | healthy | src/steward/triage/dedup.py:60 |
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 |
.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_model_client.py |
software | healthy | tests/test_model_client.py |
test_triage_ingest.py |
software | healthy | tests/test_triage_ingest.py |
test_sandbox_docker.py |
software | healthy | tests/test_sandbox_docker.py |
test_triage_apply.py |
software | healthy | tests/test_triage_apply.py |
test_smoke.py |
software | healthy | tests/test_smoke.py |
test_policy_approvals.py |
software | healthy | tests/test_policy_approvals.py |
test_fix_generate.py |
software | healthy | tests/test_fix_generate.py |
test_policy_audit.py |
software | healthy | tests/test_policy_audit.py |
test_sandbox_runner.py |
software | healthy | tests/test_sandbox_runner.py |
test_api.py |
software | healthy | tests/test_api.py |
test_policy_engine.py |
software | healthy | tests/test_policy_engine.py |
test_fix_prooftest.py |
software | healthy | tests/test_fix_prooftest.py |
test_graph.py |
software | healthy | tests/test_graph.py |
test_policy_safety.py |
software | healthy | tests/test_policy_safety.py |
test_fix_patch.py |
software | healthy | tests/test_fix_patch.py |
test_triage_classify.py |
software | healthy | tests/test_triage_classify.py |
test_tracing.py |
software | healthy | tests/test_tracing.py |
test_triage_dedup.py |
software | healthy | tests/test_triage_dedup.py |
dev-tooling.md |
software | healthy | docs/dev-tooling.md |
README.md |
software | healthy | docs/adr/README.md |
0001-stack-choice.md |
software | healthy | docs/adr/0001-stack-choice.md |
0002-dedup-embeddings.md |
software | healthy | docs/adr/0002-dedup-embeddings.md |
postcss.config.mjs |
software | healthy | dashboard/postcss.config.mjs |
README.md |
software | healthy | dashboard/README.md |
package.json |
software | healthy | dashboard/package.json |
package-lock.json |
software | healthy | dashboard/package-lock.json |
.env.example |
software | healthy | dashboard/.env.example |
.eslintrc.json |
software | healthy | dashboard/.eslintrc.json |
tsconfig.json |
software | healthy | dashboard/tsconfig.json |
next.config.mjs |
software | healthy | dashboard/next.config.mjs |
ActivityStream.tsx |
software | healthy | dashboard/src/components/ActivityStream.tsx |
Clock.tsx |
software | healthy | dashboard/src/components/Clock.tsx |
TopBar.tsx |
software | healthy | dashboard/src/components/TopBar.tsx |
BrandMark.tsx |
software | healthy | dashboard/src/components/BrandMark.tsx |
StatRail.tsx |
software | healthy | dashboard/src/components/StatRail.tsx |
Scorecard.tsx |
software | healthy | dashboard/src/components/Scorecard.tsx |
ApprovalQueue.tsx |
software | healthy | dashboard/src/components/ApprovalQueue.tsx |
Panel.tsx |
software | healthy | dashboard/src/components/Panel.tsx |
VerdictBadge.tsx |
software | healthy | dashboard/src/components/VerdictBadge.tsx |
globals.css |
software | healthy | dashboard/src/app/globals.css |
page.tsx |
software | healthy | dashboard/src/app/page.tsx |
layout.tsx |
software | healthy | dashboard/src/app/layout.tsx |
format.ts |
software | healthy | dashboard/src/lib/format.ts |
steward.ts |
software | healthy | dashboard/src/lib/steward.ts |
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 |
docs |
software | healthy | docs |
adr |
software | healthy | docs/adr |
dashboard |
software | healthy | dashboard |
src |
software | healthy | dashboard/src |
components |
software | healthy | dashboard/src/components |
app |
software | healthy | dashboard/src/app |
lib |
software | healthy | dashboard/src/lib |
.claude |
software | healthy | .claude |
skills |
software | healthy | .claude/skills |
steward-pr-loop |
software | healthy | .claude/skills/steward-pr-loop |
evals |
software | healthy | evals |
triage |
software | healthy | evals/triage |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
steward |
software | healthy | src/steward |
triage |
software | healthy | src/steward/triage |
policy |
software | healthy | src/steward/policy |
api |
software | healthy | src/steward/api |
observability |
software | healthy | src/steward/observability |
sandbox |
software | healthy | src/steward/sandbox |
fix |
software | healthy | src/steward/fix |
graph |
software | healthy | src/steward/graph |
llm |
software | healthy | src/steward/llm |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /api/health |
api | healthy | src/steward/api/app.py |
GET /api/actions |
api | healthy | src/steward/api/app.py |
GET /api/approvals |
api | healthy | src/steward/api/app.py |
POST /api/approvals/{approval_id}/approve |
api | healthy | src/steward/api/app.py |
POST /api/approvals/{approval_id}/reject |
api | healthy | src/steward/api/app.py |
GET /api/scorecard |
api | healthy | src/steward/api/app.py |
| Label | Layer | Status | Path |
|---|---|---|---|
quality |
cicd | healthy | .github/workflows/ci.yml |
dashboard |
cicd | healthy | .github/workflows/ci.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-c6saxnir |
software | healthy | /tmp/repobility-clone-c6saxnir |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | src/steward/api/app.py |
| Label | Layer | Status | Path |
|---|---|---|---|
placeholder |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | dashboard/src/app/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
RootLayout |
frontend | healthy | dashboard/src/app/layout.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::ci |
cicd | healthy | .github/workflows/ci.yml |
This page is publicly accessible at:
https://repobility.com/scan/739ea09f-5a6c-4996-b3d5-010e6084561a/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/739ea09f-5a6c-4996-b3d5-010e6084561a/
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.