https://github.com/umanggarg28/homunculus
· scanned 2026-06-16 00:45 UTC (2 months, 1 week ago)
121 raw signals (0 security + 121 graph)
Last scanned 2 months, 1 week ago · v1 · 114 actionable findings from 1 signal source. 7 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 2300 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 |
|---|---|---|---|
__init__ |
software | healthy | notifications.py:49 |
log_path |
software | healthy | notifications.py:53 |
pointer_path |
software | healthy | notifications.py:57 |
lock_path |
software | healthy | notifications.py:61 |
_flock |
software | healthy | notifications.py:65 |
queue |
software | healthy | notifications.py:88 |
recent |
software | healthy | notifications.py:95 |
drain |
software | healthy | notifications.py:130 |
build_refinement_prompt |
software | healthy | skill_refiner.py:150 |
_resolve_refinement_model |
software | healthy | skill_refiner.py:168 |
refine_skill |
software | healthy | skill_refiner.py:182 |
normalized |
software | healthy | agent_controls.py:35 |
to_dict |
software | healthy | agent_controls.py:48 |
_from_dict |
software | healthy | agent_controls.py:55 |
controls_path |
software | healthy | agent_controls.py:66 |
load_controls |
software | healthy | agent_controls.py:70 |
save_controls |
software | healthy | agent_controls.py:83 |
tool_block_reason |
software | healthy | agent_controls.py:96 |
prefer_free_models |
software | dead | agent_controls.py:107 |
_now |
software | healthy | quiz.py:36 |
__init__ |
software | healthy | quiz.py:43 |
_load |
software | healthy | quiz.py:48 |
_save |
software | healthy | quiz.py:59 |
set_area |
software | healthy | quiz.py:69 |
get_area |
software | dead | quiz.py:78 |
add_topics |
software | healthy | quiz.py:81 |
_due_topics |
software | healthy | quiz.py:104 |
_set_pending |
software | healthy | quiz.py:107 |
pick |
software | healthy | quiz.py:110 |
grade |
software | healthy | quiz.py:182 |
stats |
software | healthy | quiz.py:227 |
_store |
software | healthy | quiz.py:245 |
__init__ |
software | healthy | heartbeat.py:201 |
on_tool_call |
software | healthy | heartbeat.py:228 |
criteria_failures |
software | healthy | heartbeat.py:300 |
delivery_key |
software | healthy | heartbeat.py:306 |
combined_notify_text |
software | healthy | heartbeat.py:320 |
expected_remaining |
software | healthy | heartbeat.py:327 |
on_pre_turn |
software | healthy | heartbeat.py:337 |
_check_against |
software | healthy | heartbeat.py:378 |
_check |
software | healthy | heartbeat.py:395 |
_today_str |
software | healthy | heartbeat.py:480 |
_yesterday_iso_and_path |
software | healthy | heartbeat.py:484 |
tick |
software | healthy | heartbeat.py:492 |
_plan_tick |
software | healthy | heartbeat.py:763 |
_record_delivery_keys |
software | healthy | heartbeat.py:821 |
_settle_silent_drop |
software | healthy | heartbeat.py:841 |
_format_due_tasks |
software | healthy | heartbeat.py:967 |
_format_recent_deliveries |
software | healthy | heartbeat.py:1025 |
main |
software | healthy | heartbeat.py:1065 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
notifications.py |
software | healthy | notifications.py |
skill_refiner.py |
software | healthy | skill_refiner.py |
agent_controls.py |
software | healthy | agent_controls.py |
quiz.py |
software | healthy | quiz.py |
heartbeat.py |
software | healthy | heartbeat.py |
skills.py |
software | healthy | skills.py |
user_tz.py |
software | healthy | user_tz.py |
IDEAS.md |
software | healthy | IDEAS.md |
skill_validation.py |
software | healthy | skill_validation.py |
config.py |
software | healthy | config.py |
stores.py |
software | healthy | stores.py |
proposals.py |
software | healthy | proposals.py |
memory.py |
software | healthy | memory.py |
Dockerfile |
software | healthy | Dockerfile |
tasks.py |
software | healthy | tasks.py |
events.py |
software | healthy | events.py |
messages.py |
software | healthy | messages.py |
core.py |
software | healthy | core.py |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
transcript.py |
software | healthy | transcript.py |
stats.py |
software | healthy | stats.py |
archival.py |
software | healthy | archival.py |
PLAN.md |
software | healthy | PLAN.md |
AGENTS.md |
software | healthy | AGENTS.md |
homunculus.yaml |
software | healthy | homunculus.yaml |
docker-compose.yml |
software | healthy | docker-compose.yml |
LEARN.md |
software | healthy | LEARN.md |
test_chat_history_from_transcript.py |
software | healthy | tests/test_chat_history_from_transcript.py |
test_bootstrap_weekly_nudge.py |
software | healthy | tests/test_bootstrap_weekly_nudge.py |
test_quiz.py |
software | healthy | tests/test_quiz.py |
test_force_tool.py |
software | healthy | tests/test_force_tool.py |
test_stats.py |
software | healthy | tests/test_stats.py |
test_quick_capture.py |
software | healthy | tests/test_quick_capture.py |
test_task_guard_completion.py |
software | healthy | tests/test_task_guard_completion.py |
test_task_health_summary.py |
software | healthy | tests/test_task_health_summary.py |
test_honest_refusals_prompt.py |
software | healthy | tests/test_honest_refusals_prompt.py |
test_untrusted_content_prompt.py |
software | healthy | tests/test_untrusted_content_prompt.py |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
test_budget_guard.py |
software | healthy | tests/test_budget_guard.py |
test_record_failure_tool.py |
software | healthy | tests/test_record_failure_tool.py |
test_workspace_sandbox.py |
software | healthy | tests/test_workspace_sandbox.py |
test_memory.py |
software | healthy | tests/test_memory.py |
test_tool_choice_required.py |
software | healthy | tests/test_tool_choice_required.py |
test_modifier_reinjection_and_hot_reload.py |
software | healthy | tests/test_modifier_reinjection_and_hot_reload.py |
test_efficiency_pass.py |
software | healthy | tests/test_efficiency_pass.py |
test_skill_refiner.py |
software | healthy | tests/test_skill_refiner.py |
test_web_api.py |
software | healthy | tests/test_web_api.py |
test_remember_skill_protection.py |
software | healthy | tests/test_remember_skill_protection.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
NotificationQueue |
software | healthy | notifications.py:41 |
RefinementResult |
software | healthy | skill_refiner.py:141 |
AgentControls |
software | healthy | agent_controls.py:24 |
QuizStore |
software | healthy | quiz.py:42 |
TaskGuard |
software | healthy | heartbeat.py:162 |
Skills |
software | healthy | skills.py:54 |
ValidationResult |
software | healthy | skill_validation.py:34 |
LoopConfig |
software | healthy | config.py:65 |
TaskLifecycleConfig |
software | healthy | config.py:105 |
ProviderConfig |
software | healthy | config.py:118 |
CacheConfig |
software | healthy | config.py:130 |
HomunculusConfig |
software | healthy | config.py:210 |
WorldStateStore |
software | healthy | stores.py:59 |
NextTickStore |
software | healthy | stores.py:109 |
ReflectionStore |
software | healthy | stores.py:147 |
ProposalStore |
software | healthy | proposals.py:41 |
Memory |
software | healthy | memory.py:106 |
TaskStore |
software | healthy | tasks.py:101 |
ToolCallFunction |
software | healthy | messages.py:66 |
ToolCall |
software | healthy | messages.py:77 |
_BaseMessage |
software | healthy | messages.py:92 |
SystemMessage |
software | healthy | messages.py:105 |
UserMessage |
software | healthy | messages.py:110 |
AssistantMessage |
software | healthy | messages.py:115 |
ToolResultMessage |
software | healthy | messages.py:132 |
Agent |
software | healthy | core.py:1828 |
Transcript |
software | healthy | transcript.py:49 |
ArchivalMemory |
software | healthy | archival.py:50 |
_FakeStreamCtx |
software | healthy | tests/test_force_tool.py:93 |
_FakeStore |
software | healthy | tests/test_budget_guard.py:34 |
TestSearch |
software | healthy | tests/test_memory.py:33 |
TestLoadCoreBlock |
software | healthy | tests/test_memory.py:79 |
TestRememberForget |
software | healthy | tests/test_memory.py:118 |
FakeAgent |
software | healthy | tests/test_skill_refiner.py:339 |
CaptureAgent |
software | healthy | tests/test_skill_refiner.py:310 |
R |
software | healthy | tests/test_rss_feed.py:39 |
_FakeStore |
software | healthy | tests/test_schema_validation.py:39 |
TestFileDiscovery |
software | healthy | tests/test_agent_actions.py:106 |
TestFileWriteRead |
software | healthy | tests/test_agent_actions.py:123 |
TestFileSearch |
software | healthy | tests/test_agent_actions.py:154 |
TestCodeExecution |
software | healthy | tests/test_agent_actions.py:173 |
TestTaskManagement |
software | healthy | tests/test_agent_actions.py:203 |
TestMemory |
software | healthy | tests/test_agent_actions.py:230 |
TestMultiStep |
software | healthy | tests/test_agent_actions.py:253 |
TestRobustness |
software | healthy | tests/test_agent_actions.py:287 |
_FakeStore |
software | healthy | tests/test_delivery_ledger.py:88 |
_Empty |
software | healthy | tests/test_delivery_ledger.py:115 |
_FakeStore |
software | healthy | tests/test_output_guard.py:49 |
_SchemasProxy |
software | healthy | tools/__init__.py:105 |
ServerConfig |
software | healthy | tools/mcp_config.py:32 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
GET /api/config |
api | healthy | transports/web_api.py |
POST /api/user-tz |
api | healthy | transports/web_api.py |
GET /api/user-tz |
api | healthy | transports/web_api.py |
GET /api/model |
api | healthy | transports/web_api.py |
GET /api/status |
api | healthy | transports/web_api.py |
GET /api/memory |
api | healthy | transports/web_api.py |
GET /api/memory/{filename}/raw |
api | healthy | transports/web_api.py |
PUT /api/memory/{filename}/raw |
api | healthy | transports/web_api.py |
DELETE /api/memory/{filename} |
api | healthy | transports/web_api.py |
GET /api/chapters |
api | healthy | transports/web_api.py |
POST /api/chapters/close |
api | healthy | transports/web_api.py |
GET /api/mode |
api | healthy | transports/web_api.py |
POST /api/mode |
api | healthy | transports/web_api.py |
GET /api/agent/controls |
api | healthy | transports/web_api.py |
PUT /api/agent/controls |
api | healthy | transports/web_api.py |
GET /api/agent/replay |
api | healthy | transports/web_api.py |
GET /api/containment |
api | healthy | transports/web_api.py |
GET /api/skills |
api | healthy | transports/web_api.py |
GET /api/proposals |
api | healthy | transports/web_api.py |
GET /api/input-expected |
api | healthy | transports/web_api.py |
POST /api/proposals/{proposal_id}/approve |
api | healthy | transports/web_api.py |
POST /api/proposals/{proposal_id}/reject |
api | healthy | transports/web_api.py |
GET /api/tasks |
api | healthy | transports/web_api.py |
POST /api/tasks |
api | healthy | transports/web_api.py |
PATCH /api/tasks/{task_id} |
api | healthy | transports/web_api.py |
POST /api/tasks/{task_id}/complete |
api | healthy | transports/web_api.py |
POST /api/tasks/{task_id}/cancel |
api | healthy | transports/web_api.py |
POST /api/tasks/{task_id}/run-now |
api | healthy | transports/web_api.py |
POST /api/tasks/{task_id}/run-stream |
api | healthy | transports/web_api.py |
DELETE /api/tasks/{task_id} |
api | healthy | transports/web_api.py |
GET /api/tasks/meta |
api | healthy | transports/web_api.py |
POST /api/quick-capture |
api | healthy | transports/web_api.py |
POST /api/webhook |
api | healthy | transports/web_api.py |
GET /api/agent/upcoming |
api | healthy | transports/web_api.py |
GET /api/stats/today |
api | healthy | transports/web_api.py |
GET /api/context |
api | healthy | transports/web_api.py |
GET /api/logs |
api | healthy | transports/web_api.py |
GET /api/logs/{rel:path}/raw |
api | healthy | transports/web_api.py |
GET /api/notifications |
api | healthy | transports/web_api.py |
GET /api/chat/history |
api | healthy | transports/web_api.py |
POST /api/chat/send |
api | healthy | transports/web_api.py |
POST /api/chat/cancel |
api | healthy | transports/web_api.py |
GET /events |
api | healthy | transports/web_api.py |
GET /{full_path:path} |
api | healthy | transports/web_api.py |
PUT / |
api | healthy | web/public/sw.js |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
docs |
software | healthy | docs |
scripts |
software | healthy | scripts |
transports |
software | healthy | transports |
web |
software | healthy | web |
scripts |
software | healthy | web/scripts |
public |
software | healthy | web/public |
src |
software | healthy | web/src |
components |
software | healthy | web/src/components |
layout |
software | healthy | web/src/components/layout |
auth |
software | healthy | web/src/components/auth |
ui |
software | healthy | web/src/components/ui |
chat |
software | healthy | web/src/components/chat |
feed |
software | healthy | web/src/components/feed |
logs |
software | healthy | web/src/components/logs |
traces |
software | healthy | web/src/components/traces |
tasks |
software | healthy | web/src/components/tasks |
lab |
software | healthy | web/src/components/lab |
status |
software | healthy | web/src/components/status |
memory |
software | healthy | web/src/components/memory |
tools |
software | healthy | web/src/components/tools |
overview |
software | healthy | web/src/components/overview |
robot |
software | healthy | web/src/components/robot |
lib |
software | healthy | web/src/lib |
pages |
software | healthy | web/src/pages |
hooks |
software | healthy | web/src/hooks |
styles |
software | healthy | web/src/styles |
tools |
software | healthy | tools |
| Label | Layer | Status | Path |
|---|---|---|---|
/LogsPage |
frontend | healthy | web/src/pages/LogsPage.tsx |
/LogEntryPage |
frontend | healthy | web/src/pages/LogEntryPage.tsx |
/OverviewPage |
frontend | healthy | web/src/pages/OverviewPage.tsx |
/LandingPage |
frontend | healthy | web/src/pages/LandingPage.tsx |
/ChatPage |
frontend | healthy | web/src/pages/ChatPage.tsx |
/TasksPage |
frontend | healthy | web/src/pages/TasksPage.tsx |
/SkillsPage |
frontend | healthy | web/src/pages/SkillsPage.tsx |
/FeedPage |
frontend | healthy | web/src/pages/FeedPage.tsx |
/GalleryPage |
frontend | healthy | web/src/pages/GalleryPage.tsx |
/MemoryEntryPage |
frontend | healthy | web/src/pages/MemoryEntryPage.tsx |
/MemoryPage |
frontend | healthy | web/src/pages/MemoryPage.tsx |
/ |
frontend | healthy | web/src/App.tsx |
/overview |
frontend | healthy | web/src/App.tsx |
/chat |
frontend | healthy | web/src/App.tsx |
/traces |
frontend | healthy | web/src/App.tsx |
/tasks |
frontend | healthy | web/src/App.tsx |
/tools |
frontend | healthy | web/src/App.tsx |
/memory |
frontend | healthy | web/src/App.tsx |
/memory/:filename |
frontend | healthy | web/src/App.tsx |
/logs |
frontend | healthy | web/src/App.tsx |
/logs/* |
frontend | healthy | web/src/App.tsx |
/lab |
frontend | healthy | web/src/App.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | docker-compose.yml |
93.184.216.34 |
network | healthy | tests/test_ssrf_guard.py |
10.0.0.7 |
network | healthy | tests/test_ssrf_guard.py |
169.254.169.254 |
network | healthy | tests/test_ssrf_guard.py |
10.0.0.1 |
network | healthy | tests/test_ssrf_guard.py |
192.168.1.1 |
network | healthy | tests/test_ssrf_guard.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
homunculus |
hardware | healthy | docker-compose.yml |
heartbeat |
hardware | healthy | docker-compose.yml |
telegram |
hardware | healthy | docker-compose.yml |
web |
hardware | healthy | docker-compose.yml |
docker-proxy |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
embeddings |
data | healthy | memory.py |
archival_memory |
data | healthy | memory.py |
| Label | Layer | Status | Path |
|---|---|---|---|
port:8765 |
network | healthy | docker-compose.yml |
port:5173 |
network | healthy | web/vite.config.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-lodz2ebh |
software | healthy | /tmp/repobility-clone-lodz2ebh |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | notifications.py |
| Label | Layer | Status | Path |
|---|---|---|---|
haproxy |
network | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | web/src/App.tsx |
This page is publicly accessible at:
https://repobility.com/scan/e59f47a5-04e1-4b3a-9b75-37879371ef32/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/e59f47a5-04e1-4b3a-9b75-37879371ef32/
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.