https://github.com/arrow2nd/ruru-ai
· scanned 2026-06-17 01:35 UTC (1 month, 2 weeks ago)
54 raw signals (0 security + 54 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ -9.8 (diff) · 39 actionable findings from 1 signal source. 15 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1933 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 |
|---|---|---|---|
conn |
software | healthy | tests/test_db_v4.py:26 |
test_006_applied_and_seeds |
software | healthy | tests/test_db_v4.py:37 |
test_entity_crud_and_find_by_norm |
software | healthy | tests/test_db_v4.py:68 |
test_entity_chase_merged |
software | healthy | tests/test_db_v4.py:86 |
test_backfill_norms_idempotent |
software | healthy | tests/test_db_v4.py:96 |
test_backfill_norms_skips_when_no_entity_table |
software | healthy | tests/test_db_v4.py:123 |
test_knowledge_edge_literal_and_entity |
software | healthy | tests/test_db_v4.py:137 |
test_knowledge_edge_check_exclusive |
software | healthy | tests/test_db_v4.py:156 |
test_knowledge_edge_partial_unique_and_supersede |
software | healthy | tests/test_db_v4.py:181 |
test_knowledge_edge_strengthen |
software | healthy | tests/test_db_v4.py:203 |
test_knowledge_edge_impression_default |
software | healthy | tests/test_db_v4.py:212 |
test_knowledge_edge_object_type_app_validation |
software | healthy | tests/test_db_v4.py:219 |
test_knowledge_edge_object_type_db_trigger |
software | healthy | tests/test_db_v4.py:231 |
test_knowledge_edge_list_touching |
software | healthy | tests/test_db_v4.py:257 |
test_entity_delete_cascades |
software | healthy | tests/test_db_v4.py:306 |
test_episode_delete_cascades_episode_entity |
software | healthy | tests/test_db_v4.py:341 |
test_short_term_lifecycle |
software | healthy | tests/test_db_v4.py:371 |
test_episode_crud_and_fts_trigger |
software | healthy | tests/test_db_v4.py:405 |
test_episode_recall_and_archive |
software | healthy | tests/test_db_v4.py:440 |
test_episode_list_by_entities |
software | healthy | tests/test_db_v4.py:452 |
test_relation_proposal_count_upsert |
software | healthy | tests/test_db_v4.py:506 |
test_relation_def_insert_auto |
software | healthy | tests/test_db_v4.py:516 |
test_entity_profile_upsert |
software | healthy | tests/test_db_v4.py:537 |
test_save_persists_kind_field |
software | healthy | tests/test_l3_system_task.py:18 |
test_update_does_not_change_kind |
software | healthy | tests/test_l3_system_task.py:42 |
test_delete_all_preserves_system_by_default |
software | healthy | tests/test_l3_system_task.py:59 |
test_search_by_description_excludes_system_by_default |
software | healthy | tests/test_l3_system_task.py:88 |
test_add_system_task_requires_system_prefix |
software | healthy | tests/test_l3_system_task.py:115 |
test_add_system_task_persists_and_idempotent |
software | healthy | tests/test_l3_system_task.py:125 |
test_cancel_task_forbids_system |
software | healthy | tests/test_l3_system_task.py:147 |
test_cancel_task_allow_system_can_remove |
software | healthy | tests/test_l3_system_task.py:157 |
test_list_tasks_hides_system_by_default |
software | healthy | tests/test_l3_system_task.py:164 |
test_update_task_forbids_system |
software | healthy | tests/test_l3_system_task.py:184 |
test_delete_all_tasks_preserves_system |
software | healthy | tests/test_l3_system_task.py:191 |
test_add_task_does_not_take_kind_argument |
software | healthy | tests/test_l3_system_task.py:210 |
test_add_task_rejects_past_fire_at |
software | healthy | tests/test_l3_system_task.py:221 |
test_update_task_rejects_past_fire_at |
software | healthy | tests/test_l3_system_task.py:232 |
test_delete_expired_removes_past_once_tasks |
software | healthy | tests/test_l3_system_task.py:252 |
test_delete_expired_keeps_future_and_recurring |
software | healthy | tests/test_l3_system_task.py:268 |
test_rebuild_schedules_cleans_expired |
software | healthy | tests/test_l3_system_task.py:293 |
conn |
software | healthy | tests/test_l2_entity_resolver.py:26 |
_unit_vec |
software | healthy | tests/test_l2_entity_resolver.py:37 |
_patch_embed |
software | healthy | tests/test_l2_entity_resolver.py:49 |
fake_embed |
software | healthy | tests/test_l2_entity_resolver.py:52 |
test_norm_exact_match_kana_fullwidth_case |
software | healthy | tests/test_l2_entity_resolver.py:63 |
test_chase_merged |
software | healthy | tests/test_l2_entity_resolver.py:81 |
test_embedding_accept |
software | healthy | tests/test_l2_entity_resolver.py:94 |
test_embedding_candidate_band_fuzz_accept |
software | healthy | tests/test_l2_entity_resolver.py:106 |
test_embedding_candidate_band_fuzz_reject_creates_new |
software | healthy | tests/test_l2_entity_resolver.py:118 |
test_embedding_below_candidate_creates_new |
software | healthy | tests/test_l2_entity_resolver.py:131 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_FakeScheduler |
software | healthy | tests/test_l3.py:307 |
_RecordingOutput |
software | healthy | tests/test_l3.py:452 |
_TC |
software | healthy | tests/test_l3.py:595 |
_FakeExplorationEngine |
software | healthy | tests/test_l8_exploration_runner.py:24 |
_FakeEngine |
software | healthy | tests/test_l8_exploration_runner.py:43 |
_LLM |
software | healthy | tests/test_l8_exploration_runner.py:234 |
_Out |
software | healthy | tests/test_l8_exploration_runner.py:251 |
_StubResult |
software | healthy | tests/test_l8_exploration_runner.py:360 |
_ScriptedSTT |
software | healthy | tests/test_l6_websocket_e2e.py:33 |
_ScriptedTTS |
software | healthy | tests/test_l6_websocket_e2e.py:41 |
_EchoEngine |
software | healthy | tests/test_l6_websocket_e2e.py:53 |
_ScriptedLLM |
software | healthy | tests/test_l8_exploration_engine.py:26 |
_FakeOpusEncoder |
software | healthy | tests/test_l6_websocket_output.py:23 |
_RecordingWS |
software | healthy | tests/test_l6_websocket_output.py:34 |
_FakeTTS |
software | healthy | tests/test_l6_websocket_output.py:47 |
_RecordingSleep |
software | healthy | tests/test_l6_websocket_output.py:63 |
_FakeWS |
software | healthy | tests/test_l6_stt.py:220 |
_FakeOutput |
software | healthy | tests/test_l6_websocket_tools.py:38 |
_RateLimited |
software | healthy | tests/test_l4.py:130 |
_FakeStream |
software | healthy | tests/test_l4.py:166 |
_StubTTS |
software | healthy | tests/test_l6_tts.py:28 |
_FakeStreamingSession |
software | healthy | tests/test_l6_websocket_session.py:25 |
_FakeStreamingSTT |
software | healthy | tests/test_l6_websocket_session.py:45 |
_FakeDecoder |
software | healthy | tests/test_l6_websocket_session.py:67 |
_FakeWS |
software | healthy | tests/test_l6_websocket_session.py:77 |
_FakeOutput |
software | healthy | tests/test_l6_websocket_session.py:93 |
_FakeSTT |
software | healthy | tests/test_l6_websocket_session.py:101 |
_RecordingEngine |
software | healthy | tests/test_l6_websocket_session.py:120 |
_RecordingProactive |
software | healthy | tests/test_l6_websocket_session.py:131 |
_SlowProactive |
software | healthy | tests/test_l6_websocket_session.py:457 |
_Rec |
software | healthy | tests/test_l6_websocket_session.py:513 |
_NoEngine |
software | healthy | tests/test_l6_ota.py:75 |
_NoSTT |
software | healthy | tests/test_l6_ota.py:78 |
_NoTTS |
software | healthy | tests/test_l6_ota.py:82 |
_Channel |
software | healthy | tests/test_l5_discord.py:745 |
_FakeClient |
software | healthy | tests/test_l5_discord.py:331 |
_FakeTextChannel |
software | healthy | tests/test_l5_discord.py:402 |
_VoiceChannel |
software | healthy | tests/test_l5_discord.py:486 |
_Ch |
software | healthy | tests/test_l5_discord.py:836 |
_ErrorChannel |
software | healthy | tests/test_l5_discord.py:954 |
_StubLLM |
software | healthy | tests/test_l5_main.py:328 |
_Key |
software | healthy | tests/test_l6_cf_access.py:80 |
_Item |
software | healthy | tests/test_llm_parsing.py:11 |
TestParsePydanticList |
software | healthy | tests/test_llm_parsing.py:19 |
TestParsePydanticModel |
software | healthy | tests/test_llm_parsing.py:60 |
_ScriptedLLM |
software | healthy | tests/test_l5_engine.py:36 |
_CapturingOutput |
software | healthy | tests/test_l5_engine.py:88 |
_SlowLLM |
software | healthy | tests/test_l5_engine.py:276 |
_ProbeLLM |
software | healthy | tests/test_l5_engine.py:1041 |
_FailingOutput |
software | healthy | tests/test_l5_engine.py:432 |
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 |
README.md |
software | healthy | README.md |
pyproject.toml |
software | healthy | pyproject.toml |
docker-compose.yml |
software | healthy | docker-compose.yml |
LICENSE.md |
software | healthy | LICENSE.md |
docker-compose.image.yml |
software | healthy | docker-compose.image.yml |
Dockerfile |
software | healthy | Dockerfile |
test_db_v4.py |
software | healthy | tests/test_db_v4.py |
test_l3_system_task.py |
software | healthy | tests/test_l3_system_task.py |
test_l2_entity_resolver.py |
software | healthy | tests/test_l2_entity_resolver.py |
test_l3.py |
software | healthy | tests/test_l3.py |
conftest.py |
software | healthy | tests/conftest.py |
test_l8_exploration_runner.py |
software | healthy | tests/test_l8_exploration_runner.py |
test_l6_websocket_e2e.py |
software | healthy | tests/test_l6_websocket_e2e.py |
test_l3_output_registry.py |
software | healthy | tests/test_l3_output_registry.py |
test_l8_exploration_engine.py |
software | healthy | tests/test_l8_exploration_engine.py |
test_l6_websocket_output.py |
software | healthy | tests/test_l6_websocket_output.py |
test_l7_face_spec.py |
software | healthy | tests/test_l7_face_spec.py |
test_l6_stt.py |
software | healthy | tests/test_l6_stt.py |
test_l3_dream_v4.py |
software | healthy | tests/test_l3_dream_v4.py |
test_l2_recall.py |
software | healthy | tests/test_l2_recall.py |
__init__.py |
software | healthy | tests/__init__.py |
test_l6_websocket_protocol.py |
software | healthy | tests/test_l6_websocket_protocol.py |
test_confidence.py |
software | healthy | tests/test_confidence.py |
test_l6_websocket_tools.py |
software | healthy | tests/test_l6_websocket_tools.py |
test_l4.py |
software | healthy | tests/test_l4.py |
test_l6_tts.py |
software | healthy | tests/test_l6_tts.py |
test_l6_websocket_auth.py |
software | healthy | tests/test_l6_websocket_auth.py |
test_l6_websocket_session.py |
software | healthy | tests/test_l6_websocket_session.py |
test_l6_ota.py |
software | healthy | tests/test_l6_ota.py |
test_db_migration_v4.py |
software | healthy | tests/test_db_migration_v4.py |
test_l5_discord.py |
software | healthy | tests/test_l5_discord.py |
test_l5_main.py |
software | healthy | tests/test_l5_main.py |
test_l6_websocket_sentence_splitter.py |
software | healthy | tests/test_l6_websocket_sentence_splitter.py |
test_l5_face_tag.py |
software | healthy | tests/test_l5_face_tag.py |
test_l3_tool_call_log.py |
software | healthy | tests/test_l3_tool_call_log.py |
test_config_memory_validator.py |
software | healthy | tests/test_config_memory_validator.py |
test_l3_weather.py |
software | healthy | tests/test_l3_weather.py |
test_l6_cf_access.py |
software | healthy | tests/test_l6_cf_access.py |
test_db.py |
software | healthy | tests/test_db.py |
test_llm_client.py |
software | healthy | tests/test_llm_client.py |
test_llm_parsing.py |
software | healthy | tests/test_llm_parsing.py |
test_l2.py |
software | healthy | tests/test_l2.py |
test_l5_engine.py |
software | healthy | tests/test_l5_engine.py |
test_l6_websocket_opus.py |
software | healthy | tests/test_l6_websocket_opus.py |
test_l3_start_conversation.py |
software | healthy | tests/test_l3_start_conversation.py |
deploy-image-tar.sh |
software | healthy | scripts/deploy-image-tar.sh |
test_piper.py |
software | healthy | scripts/test_piper.py |
__init__.py |
software | healthy | src/ruru/__init__.py |
__main__.py |
software | healthy | src/ruru/__main__.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
predicate |
data | healthy | migrations/001_initial.sql |
resource |
data | healthy | migrations/001_initial.sql |
conversation |
data | healthy | migrations/001_initial.sql |
conversation_participant |
data | healthy | migrations/001_initial.sql |
triple |
data | healthy | migrations/001_initial.sql |
message |
data | healthy | migrations/001_initial.sql |
note |
data | healthy | migrations/001_initial.sql |
note_triple |
data | healthy | migrations/001_initial.sql |
same_as |
data | healthy | migrations/001_initial.sql |
tool_call_log |
data | healthy | migrations/002_tool_memory_and_system_tasks.sql |
tool_memory |
data | healthy | migrations/002_tool_memory_and_system_tasks.sql |
working_memory |
data | healthy | migrations/003_layered_memory.sql |
memory_note |
data | healthy | migrations/003_layered_memory.sql |
memory_note_entity |
data | healthy | migrations/003_layered_memory.sql |
entity_summary |
data | healthy | migrations/003_layered_memory.sql |
entity |
data | healthy | migrations/006_v4_memory_core.sql |
entity_alias |
data | healthy | migrations/006_v4_memory_core.sql |
relation_def |
data | healthy | migrations/006_v4_memory_core.sql |
relation_proposal |
data | healthy | migrations/006_v4_memory_core.sql |
knowledge_edge |
data | healthy | migrations/006_v4_memory_core.sql |
short_term |
data | healthy | migrations/006_v4_memory_core.sql |
episode |
data | healthy | migrations/006_v4_memory_core.sql |
episode_entity |
data | healthy | migrations/006_v4_memory_core.sql |
entity_profile |
data | healthy | migrations/006_v4_memory_core.sql |
_message_backup |
data | healthy | migrations/007_v4_drop_legacy.sql |
_cp_backup |
data | healthy | migrations/007_v4_drop_legacy.sql |
_conversation_backup |
data | healthy | migrations/007_v4_drop_legacy.sql |
_mne_backup |
data | healthy | migrations/004_memory_note_dream_source.sql |
memory_note_new |
data | healthy | migrations/004_memory_note_dream_source.sql |
schema_migrations |
data | healthy | src/ruru/core/db/migrations.py |
task_metadata |
data | healthy | src/ruru/core/scheduler/store.py |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
scripts |
software | healthy | scripts |
src |
software | healthy | src |
ruru |
software | healthy | src/ruru |
adapters |
software | healthy | src/ruru/adapters |
websocket |
software | healthy | src/ruru/adapters/websocket |
discord |
software | healthy | src/ruru/adapters/discord |
core |
software | healthy | src/ruru/core |
memory |
software | healthy | src/ruru/core/memory |
llm |
software | healthy | src/ruru/core/llm |
observability |
software | healthy | src/ruru/core/observability |
tools |
software | healthy | src/ruru/core/tools |
builtin |
software | healthy | src/ruru/core/tools/builtin |
models |
software | healthy | src/ruru/core/models |
stt |
software | healthy | src/ruru/core/stt |
db |
software | healthy | src/ruru/core/db |
pipelines |
software | healthy | src/ruru/core/pipelines |
tts |
software | healthy | src/ruru/core/tts |
exploration |
software | healthy | src/ruru/core/exploration |
scheduler |
software | healthy | src/ruru/core/scheduler |
prompts |
software | healthy | src/ruru/prompts |
docs |
software | healthy | docs |
.claude |
software | healthy | .claude |
hooks |
software | healthy | .claude/hooks |
skills |
software | healthy | .claude/skills |
ruru-adapter-new |
software | healthy | .claude/skills/ruru-adapter-new |
ruru-core |
software | healthy | .claude/skills/ruru-core |
ruru-adapter-edit |
software | healthy | .claude/skills/ruru-adapter-edit |
migrations |
software | healthy | migrations |
| Label | Layer | Status | Path |
|---|---|---|---|
test_db_migration_v4.py |
data | healthy | tests/test_db_migration_v4.py |
migrations.py |
data | healthy | src/ruru/core/db/migrations.py |
001_initial.sql |
data | healthy | migrations/001_initial.sql |
002_tool_memory_and_system_tasks.sql |
data | healthy | migrations/002_tool_memory_and_system_tasks.sql |
003_layered_memory.sql |
data | healthy | migrations/003_layered_memory.sql |
006_v4_memory_core.sql |
data | healthy | migrations/006_v4_memory_core.sql |
007_v4_drop_legacy.sql |
data | healthy | migrations/007_v4_drop_legacy.sql |
004_memory_note_dream_source.sql |
data | healthy | migrations/004_memory_note_dream_source.sql |
005_note_archived.sql |
data | healthy | migrations/005_note_archived.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/ruru/adapters/websocket/server.py |
security | healthy | src/ruru/adapters/websocket/server.py |
auth::.claude/skills/ruru-adapter-edit/SKILL.md |
security | healthy | .claude/skills/ruru-adapter-edit/SKILL.md |
auth::tests/test_l6_cf_access.py |
security | healthy | tests/test_l6_cf_access.py |
auth::src/ruru/adapters/websocket/auth.py |
security | healthy | src/ruru/adapters/websocket/auth.py |
auth::pyproject.toml |
security | healthy | pyproject.toml |
auth::src/ruru/adapters/websocket/config.py |
security | healthy | src/ruru/adapters/websocket/config.py |
auth::src/ruru/adapters/websocket/cf_access.py |
security | healthy | src/ruru/adapters/websocket/cf_access.py |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | docker-compose.yml |
192.168.1.10 |
network | healthy | tests/test_l6_ota.py |
131.0.0.0 |
network | healthy | src/ruru/core/tools/builtin/fetch_url.py |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
ruru |
hardware | healthy | docker-compose.yml |
yachiyo |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
arrow2nd__ruru-ai |
software | healthy | /data/fable5_failed_archive/arrow2nd__ruru-ai |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /healthz |
api | healthy | src/ruru/adapters/websocket/server.py |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | pyproject.toml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::azure |
hardware | healthy | src/ruru/core/exploration/engine.py |
This page is publicly accessible at:
https://repobility.com/scan/132696e5-910a-4d68-955b-d179e245d636/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/132696e5-910a-4d68-955b-d179e245d636/
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.