Scan timing: clone 2.74s · analysis 5.97s · 2.4 MB · GitHub preflight 594ms
https://github.com/kalynnka/octomate.git
· scanned 2026-06-25 17:45 UTC (1 month ago)
· 10 languages
249 raw signals (105 security + 144 graph) 18th percentile · Python · medium (20-100K LoC)
Last scanned 1 month ago · v1 · 176 actionable findings from 2 signal sources. 73 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
75.0 | 0.15 | 11.25 |
security_score |
24.3 | 0.25 | 6.08 |
testing_score |
100.0 | 0.20 | 20.00 |
documentation_score |
58.0 | 0.15 | 8.70 |
practices_score |
52.0 | 0.15 | 7.80 |
code_quality |
60.9 | 0.10 | 6.09 |
| Overall | 1.00 | 59.9 |
All 1634 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 |
|---|---|---|---|
create_app |
software | dead | main.py:30 |
in_memory_engine |
software | healthy | tests/conftest.py:14 |
test_default_yaml_placeholders_fail_without_override |
software | healthy | tests/test_config.py:34 |
test_channels_default_to_none |
software | healthy | tests/test_config.py:42 |
test_channel_config_parses_supported_channels |
software | healthy | tests/test_config.py:52 |
test_channel_config_parses_agent_model_routes |
software | healthy | tests/test_config.py:83 |
test_claude_code_config_uses_model_route_mapping |
software | healthy | tests/test_config.py:113 |
test_claude_code_config_requires_model_mapping |
software | healthy | tests/test_config.py:127 |
test_claude_code_config_defaults_to_fixed_model_set |
software | healthy | tests/test_config.py:139 |
test_claude_code_config_validates_model_names |
software | healthy | tests/test_config.py:151 |
test_claude_code_config_accepts_documented_model_aliases |
software | healthy | tests/test_config.py:156 |
test_channel_agent_routes_must_reference_configured_agent |
software | healthy | tests/test_config.py:174 |
test_channel_agent_route_validation_reports_all_errors |
software | healthy | tests/test_config.py:193 |
test_disabled_channel_agent_routes_are_validated |
software | healthy | tests/test_config.py:253 |
test_channel_claude_route_requires_claude_agent_config |
software | healthy | tests/test_config.py:272 |
test_channel_claude_routes_must_reference_configured_model |
software | healthy | tests/test_config.py:294 |
test_channel_inkling_routes_must_reference_configured_model |
software | healthy | tests/test_config.py:336 |
test_mcp_defaults_to_no_servers |
software | healthy | tests/test_config.py:353 |
test_mcp_config_parses_servers |
software | healthy | tests/test_config.py:359 |
test_mcp_token_from_env |
software | healthy | tests/test_config.py:378 |
test_channel_stream_config_uses_partial_defaults_from_yaml |
software | healthy | tests/test_config.py:389 |
make_registry |
software | healthy | tests/test_providers.py:31 |
test_invalid_provider_is_rejected |
software | healthy | tests/test_providers.py:47 |
test_build_model_dispatches_to_provider |
software | healthy | tests/test_providers.py:62 |
test_bedrock_model_name_with_colon_is_preserved |
software | healthy | tests/test_providers.py:70 |
test_anthropic_cache_breakpoints_are_default |
software | healthy | tests/test_providers.py:76 |
test_bedrock_cache_breakpoints_are_default |
software | healthy | tests/test_providers.py:87 |
test_openai_cache_retention_is_default |
software | healthy | tests/test_providers.py:98 |
test_deepseek_has_no_cache_settings |
software | healthy | tests/test_providers.py:103 |
test_per_model_settings_merge_with_provider_defaults |
software | healthy | tests/test_providers.py:110 |
test_unknown_model_setting_is_dropped |
software | healthy | tests/test_providers.py:126 |
test_model_settings_thinking_reaches_built_model |
software | healthy | tests/test_providers.py:144 |
test_providers_are_built_once_and_cached |
software | healthy | tests/test_providers.py:153 |
test_vertex_config_defaults_to_global_location |
software | healthy | tests/test_providers.py:158 |
test_str_output_streams_native_text_events_then_final |
software | healthy | tests/agent/test_stream_normalizer.py:48 |
stream_text |
software | healthy | tests/agent/test_stream_normalizer.py:49 |
test_segment_output_streams_one_event_per_segment |
software | healthy | tests/agent/test_stream_normalizer.py:74 |
test_segment_output_streams_each_segment_exactly_once |
software | healthy | tests/agent/test_stream_normalizer.py:92 |
stream_args |
software | healthy | tests/agent/test_stream_normalizer.py:103 |
test_non_segment_structured_output_surfaces_only_at_final |
software | healthy | tests/agent/test_stream_normalizer.py:123 |
test_tool_call_events_pass_through |
software | healthy | tests/agent/test_stream_normalizer.py:134 |
ping |
software | healthy | tests/agent/test_stream_normalizer.py:153 |
test_call_time_run_params_are_forwarded |
software | healthy | tests/agent/test_stream_normalizer.py:147 |
test_thinking_events_pass_through_before_final |
software | healthy | tests/agent/test_stream_normalizer.py:167 |
stream_thinking_then_text |
software | healthy | tests/agent/test_stream_normalizer.py:168 |
wrap_run_event_stream |
software | healthy | tests/agent/test_stream_normalizer.py:199 |
test_capability_injected_events_reach_consumer |
software | healthy | tests/agent/test_stream_normalizer.py:212 |
test_terminal_agent_run_result_event_closes_stream |
software | healthy | tests/agent/test_stream_normalizer.py:226 |
_conversation |
software | healthy | tests/agent/test_todos.py:36 |
_tool_ctx |
software | healthy | tests/agent/test_todos.py:48 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
DefaultYamlOnlyConfig |
software | healthy | tests/test_config.py:23 |
PartialYamlConfig |
software | healthy | tests/test_config.py:417 |
Row |
software | healthy | tests/agent/test_stream_normalizer.py:43 |
InjectingCapability |
software | healthy | tests/agent/test_stream_normalizer.py:193 |
FakeFeelers |
software | healthy | tests/agent/test_claude_approval.py:60 |
FakeChannel |
software | healthy | tests/agent/test_claude_approval.py:72 |
RecordingDeferredActions |
software | healthy | tests/agent/test_claude_approval.py:80 |
ScriptedClaudeClient |
software | healthy | tests/agent/test_claude_approval.py:93 |
StubSuspender |
software | healthy | tests/agent/test_inkling.py:54 |
DroppingTimelineState |
software | healthy | tests/agent/test_triage_graph.py:62 |
DroppingTimelineFeeler |
software | healthy | tests/agent/test_triage_graph.py:70 |
DroppingChannel |
software | healthy | tests/agent/test_triage_graph.py:76 |
BlankEvent |
software | healthy | tests/agent/test_triage_graph.py:981 |
FailingSubThreadChannel |
software | healthy | tests/agent/test_triage_graph.py:1071 |
StubResolver |
software | healthy | tests/agent/test_react_graph.py:44 |
StubSuspender |
software | healthy | tests/agent/test_react_graph.py:54 |
DropRecorder |
software | healthy | tests/agent/test_react_graph.py:123 |
SilentAgent |
software | healthy | tests/agent/test_react_graph.py:282 |
SpyToolset |
software | healthy | tests/agent/test_mcp.py:104 |
FakeClaudeClient |
software | healthy | tests/agent/test_claude_tentacle.py:44 |
StructuredClaudeClient |
software | healthy | tests/agent/test_claude_tentacle.py:140 |
LiteralClaudeClient |
software | healthy | tests/agent/test_claude_tentacle.py:163 |
ExplodingChromo |
software | healthy | tests/channels/test_base.py:131 |
ExplodingTimeline |
software | healthy | tests/channels/test_base.py:492 |
MainTargetChannel |
software | healthy | tests/channels/test_base.py:519 |
FakeWS |
software | healthy | tests/channels/napcat/test_ink.py:128 |
FakeConnect |
software | healthy | tests/channels/napcat/test_ink.py:155 |
FakeNapcatResponse |
software | healthy | tests/channels/napcat/fakes.py:6 |
FakeNapcatHTTP |
software | healthy | tests/channels/napcat/fakes.py:17 |
FakeSlackStream |
software | healthy | tests/channels/slack/test_ink.py:31 |
FakeSlackStream |
software | healthy | tests/channels/slack/fakes.py:36 |
FakeSlackInk |
software | healthy | tests/channels/slack/fakes.py:43 |
FakeSlackBlocksInk |
software | healthy | tests/channels/slack/fakes.py:190 |
FakeSlackClient |
software | healthy | tests/channels/slack/fakes.py:274 |
FakeOctomate |
software | healthy | tests/channels/slack/test_feelers.py:131 |
FakeConversations |
software | healthy | tests/channels/slack/test_streaming.py:308 |
FakeLarkInk |
software | healthy | tests/channels/lark/fakes.py:30 |
FakeLarkCardsInk |
software | healthy | tests/channels/lark/fakes.py:123 |
RecordedRun |
software | healthy | tests/support/agents.py:58 |
FakeAgent |
software | healthy | tests/support/agents.py:69 |
ScriptedTurn |
software | healthy | tests/support/agents.py:229 |
ScriptedStream |
software | healthy | tests/support/agents.py:238 |
FakeConversation |
software | healthy | tests/support/managers.py:32 |
FakeConversationManager |
software | healthy | tests/support/managers.py:44 |
CreateBatchCall |
software | healthy | tests/support/managers.py:99 |
FakePresentedBatch |
software | healthy | tests/support/managers.py:112 |
FakeDeferredBatch |
software | healthy | tests/support/managers.py:121 |
FakeActionManager |
software | healthy | tests/support/managers.py:141 |
RawMessage |
software | healthy | tests/support/channels.py:87 |
FakeOctomate |
software | healthy | tests/support/channels.py:96 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
pgadmin-servers.json |
software | healthy | pgadmin-servers.json |
octomate.default.yaml |
software | healthy | octomate.default.yaml |
README.md |
software | healthy | README.md |
Dockerfile |
software | healthy | Dockerfile |
claude.md |
software | healthy | claude.md |
pyproject.toml |
software | healthy | pyproject.toml |
main.py |
software | healthy | main.py |
AGENTS.md |
software | healthy | AGENTS.md |
docker-compose.yml |
software | healthy | docker-compose.yml |
__init__.py |
software | healthy | tests/__init__.py |
conftest.py |
software | healthy | tests/conftest.py |
test_config.py |
software | healthy | tests/test_config.py |
test_providers.py |
software | healthy | tests/test_providers.py |
test_stream_normalizer.py |
software | healthy | tests/agent/test_stream_normalizer.py |
test_todos.py |
software | healthy | tests/agent/test_todos.py |
test_claude_approval.py |
software | healthy | tests/agent/test_claude_approval.py |
test_suspender.py |
software | healthy | tests/agent/test_suspender.py |
test_summon.py |
software | healthy | tests/agent/test_summon.py |
__init__.py |
software | healthy | tests/agent/__init__.py |
test_inkling.py |
software | healthy | tests/agent/test_inkling.py |
test_todo_manager.py |
software | healthy | tests/agent/test_todo_manager.py |
test_triage_graph.py |
software | healthy | tests/agent/test_triage_graph.py |
test_react_graph.py |
software | healthy | tests/agent/test_react_graph.py |
test_conversation_manager.py |
software | healthy | tests/agent/test_conversation_manager.py |
test_mcp.py |
software | healthy | tests/agent/test_mcp.py |
test_events.py |
software | healthy | tests/agent/test_events.py |
test_claude_tentacle.py |
software | healthy | tests/agent/test_claude_tentacle.py |
test_history.py |
software | healthy | tests/agent/test_history.py |
test_send.py |
software | healthy | tests/agent/test_send.py |
test_claude_adapter.py |
software | healthy | tests/agent/test_claude_adapter.py |
test_deferred_actions.py |
software | healthy | tests/agent/test_deferred_actions.py |
test_dispatch.py |
software | healthy | tests/agent/test_dispatch.py |
test_reply_targeting.py |
software | healthy | tests/channels/test_reply_targeting.py |
__init__.py |
software | healthy | tests/channels/__init__.py |
test_feelers.py |
software | healthy | tests/channels/test_feelers.py |
test_base.py |
software | healthy | tests/channels/test_base.py |
__init__.py |
software | healthy | tests/channels/napcat/__init__.py |
test_ink.py |
software | healthy | tests/channels/napcat/test_ink.py |
fakes.py |
software | healthy | tests/channels/napcat/fakes.py |
test_chromo.py |
software | healthy | tests/channels/napcat/test_chromo.py |
__init__.py |
software | healthy | tests/channels/web/__init__.py |
__init__.py |
software | healthy | tests/channels/web/vercel/__init__.py |
test_event_stream.py |
software | healthy | tests/channels/web/vercel/test_event_stream.py |
test_web_app.py |
software | healthy | tests/channels/web/vercel/test_web_app.py |
__init__.py |
software | healthy | tests/channels/slack/__init__.py |
test_ink.py |
software | healthy | tests/channels/slack/test_ink.py |
fakes.py |
software | healthy | tests/channels/slack/fakes.py |
test_feelers.py |
software | healthy | tests/channels/slack/test_feelers.py |
test_streaming.py |
software | healthy | tests/channels/slack/test_streaming.py |
test_chromo.py |
software | healthy | tests/channels/slack/test_chromo.py |
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 |
agent |
software | healthy | tests/agent |
channels |
software | healthy | tests/channels |
napcat |
software | healthy | tests/channels/napcat |
web |
software | healthy | tests/channels/web |
vercel |
software | healthy | tests/channels/web/vercel |
slack |
software | healthy | tests/channels/slack |
lark |
software | healthy | tests/channels/lark |
support |
software | healthy | tests/support |
trigger |
software | healthy | tests/trigger |
src |
software | healthy | tests/src |
docs |
software | healthy | docs |
plans |
software | healthy | docs/plans |
cancelled |
software | healthy | docs/plans/cancelled |
done |
software | healthy | docs/plans/done |
scripts |
software | healthy | scripts |
octomate |
software | healthy | octomate |
types |
software | healthy | octomate/types |
triage |
software | healthy | octomate/triage |
models |
software | healthy | octomate/models |
config |
software | healthy | octomate/config |
capabilities |
software | healthy | octomate/capabilities |
managers |
software | healthy | octomate/managers |
tentacles |
software | healthy | octomate/tentacles |
agent |
software | healthy | octomate/tentacles/agent |
inkling |
software | healthy | octomate/tentacles/agent/inkling |
graph |
software | healthy | octomate/tentacles/agent/inkling/graph |
claude |
software | healthy | octomate/tentacles/agent/claude |
channel |
software | healthy | octomate/tentacles/channel |
napcat |
software | healthy | octomate/tentacles/channel/napcat |
web |
software | healthy | octomate/tentacles/channel/web |
vercel |
software | healthy | octomate/tentacles/channel/web/vercel |
feelers |
software | healthy | octomate/tentacles/channel/feelers |
slack |
software | healthy | octomate/tentacles/channel/slack |
feelers |
software | healthy | octomate/tentacles/channel/slack/feelers |
lark |
software | healthy | octomate/tentacles/channel/lark |
feelers |
software | healthy | octomate/tentacles/channel/lark/feelers |
schemas |
software | healthy | octomate/schemas |
.claude |
software | healthy | .claude |
migrations |
software | healthy | migrations |
versions |
software | healthy | migrations/versions |
| Label | Layer | Status | Path |
|---|---|---|---|
AgentRun |
data | healthy | octomate/models/runs.py |
agent_runs |
data | healthy | octomate/models/runs.py |
DeferredActionBatch |
data | healthy | octomate/models/deferred.py |
DeferredAction |
data | healthy | octomate/models/deferred.py |
deferred_action_batches |
data | healthy | octomate/models/deferred.py |
deferred_actions |
data | healthy | octomate/models/deferred.py |
Todo |
data | healthy | octomate/models/todos.py |
todos |
data | healthy | octomate/models/todos.py |
Base |
data | healthy | octomate/models/base.py |
ModelMessage |
data | healthy | octomate/models/messages.py |
model_messages |
data | healthy | octomate/models/messages.py |
Conversation |
data | healthy | octomate/models/conversation.py |
conversations |
data | healthy | octomate/models/conversation.py |
| Label | Layer | Status | Path |
|---|---|---|---|
env.py |
data | healthy | migrations/env.py |
2026_06_23_2030-a1b2c3d4e5f6_align_conversation_unique_key.… |
data | healthy | migrations/versions/2026_06_23_2030-a1b2c3d4e5f6_align_conv… |
2026_05_27_0200-35a8dfbb3d1a_deferred_actions.py |
data | healthy | migrations/versions/2026_05_27_0200-35a8dfbb3d1a_deferred_a… |
2026_05_26_1500-9c72d4a33a10_agent_run_names.py |
data | healthy | migrations/versions/2026_05_26_1500-9c72d4a33a10_agent_run_… |
2026_05_10_1130-47f580284e75_initial_conversations_agent_ru… |
data | healthy | migrations/versions/2026_05_10_1130-47f580284e75_initial_co… |
2026_06_03_0000-c4f3a1b8e6d2_require_conversation_agent.py |
data | healthy | migrations/versions/2026_06_03_0000-c4f3a1b8e6d2_require_co… |
2026_06_08_1135-6fadf2912338_add_todos_table.py |
data | healthy | migrations/versions/2026_06_08_1135-6fadf2912338_add_todos_… |
2026_06_04_2202-1299695210c6_message_timestamp_with_tz.py |
data | healthy | migrations/versions/2026_06_04_2202-1299695210c6_message_ti… |
2026_06_18_0000-b2c1d0e9f8a7_add_external_id_to_conversatio… |
data | healthy | migrations/versions/2026_06_18_0000-b2c1d0e9f8a7_add_extern… |
2026_06_22_0000-e3f4a5b6c7d8_add_permission_to_conversation… |
data | healthy | migrations/versions/2026_06_22_0000-e3f4a5b6c7d8_add_permis… |
2026_06_14_2251-197cd8f30548_add_role_and_message_text_to_m… |
data | healthy | migrations/versions/2026_06_14_2251-197cd8f30548_add_role_a… |
| Label | Layer | Status | Path |
|---|---|---|---|
port:02 |
network | healthy | docker-compose.yml |
port:42 |
network | healthy | docker-compose.yml |
port:11 |
network | healthy | docker-compose.yml |
port:3001 |
network | healthy | docker-compose.yml |
port:3002 |
network | healthy | docker-compose.yml |
port:6099 |
network | healthy | docker-compose.yml |
port:19530 |
network | healthy | docker-compose.yml |
port:3000 |
network | healthy | docker-compose.yml |
port:5432 |
network | healthy | docker-compose.yml |
port:8080 |
network | healthy | docker-compose.yml |
port:80 |
network | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
octomate |
hardware | healthy | docker-compose.yml |
napcat |
hardware | healthy | docker-compose.yml |
milvus-etcd |
hardware | healthy | docker-compose.yml |
milvus-rustfs |
hardware | healthy | docker-compose.yml |
milvus |
hardware | healthy | docker-compose.yml |
attu |
hardware | healthy | docker-compose.yml |
postgres |
hardware | healthy | docker-compose.yml |
pgadmin |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
GET / |
api | healthy | octomate/tentacles/channel/web/vercel/routes.py |
GET /favicon.ico |
api | healthy | octomate/tentacles/channel/web/vercel/routes.py |
POST /api/chat |
api | healthy | octomate/tentacles/channel/web/vercel/routes.py |
GET /api/configure |
api | healthy | octomate/tentacles/channel/web/vercel/routes.py |
GET /api/health |
api | healthy | octomate/tentacles/channel/web/vercel/routes.py |
GET /{chat_id} |
api | healthy | octomate/tentacles/channel/web/vercel/routes.py |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | pgadmin-servers.json |
sqlite |
data | healthy | README.md |
postgresql |
data | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-v0dfanqd |
software | healthy | /tmp/repobility-clone-v0dfanqd |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | octomate.default.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::gcp |
hardware | healthy | octomate.default.yaml |
This page is publicly accessible at:
https://repobility.com/scan/dcff4a50-675c-47e5-a49f-0776d8a6d870/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/dcff4a50-675c-47e5-a49f-0776d8a6d870/
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.