https://github.com/tobert/cpal
· scanned 2026-06-16 00:38 UTC (2 months, 2 weeks ago)
24 raw signals (0 security + 24 graph)
Last scanned 2 months, 2 weeks ago · v1 · 24 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 539 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_agentic_exploration |
software | healthy | tests/test_agentic.py:26 |
test_file_reading |
software | healthy | tests/test_agentic.py:43 |
test_extended_thinking |
software | healthy | tests/test_agentic.py:60 |
test_connectivity |
software | healthy | tests/test_connectivity.py:26 |
reset_cpal_module_state |
software | healthy | tests/conftest.py:19 |
_git |
software | healthy | tests/test_git_tools.py:25 |
git_repo |
software | healthy | tests/test_git_tools.py:37 |
empty_repo |
software | healthy | tests/test_git_tools.py:50 |
test_git_status |
software | healthy | tests/test_git_tools.py:64 |
test_git_log |
software | healthy | tests/test_git_tools.py:70 |
test_git_diff |
software | healthy | tests/test_git_tools.py:80 |
test_git_diff_no_ref |
software | healthy | tests/test_git_tools.py:86 |
test_git_show |
software | healthy | tests/test_git_tools.py:95 |
test_git_show_with_path |
software | healthy | tests/test_git_tools.py:101 |
test_invalid_subcommand |
software | healthy | tests/test_git_tools.py:118 |
test_ref_leading_dash |
software | healthy | tests/test_git_tools.py:124 |
test_ref_shell_injection |
software | healthy | tests/test_git_tools.py:130 |
test_ref_newline_null |
software | healthy | tests/test_git_tools.py:136 |
test_ref_valid_examples |
software | healthy | tests/test_git_tools.py:142 |
test_path_traversal |
software | healthy | tests/test_git_tools.py:148 |
test_path_leading_dash |
software | healthy | tests/test_git_tools.py:153 |
test_not_a_git_repo |
software | healthy | tests/test_git_tools.py:163 |
test_empty_repo |
software | healthy | tests/test_git_tools.py:169 |
test_execute_git_dispatch |
software | healthy | tests/test_git_tools.py:179 |
test_execute_tool_git |
software | healthy | tests/test_git_tools.py:185 |
test_git_tool_schema_valid |
software | healthy | tests/test_git_tools.py:191 |
test_git_in_claude_tools |
software | healthy | tests/test_git_tools.py:199 |
test_validate_git_path_function_exists |
software | healthy | tests/test_git_tools.py:211 |
test_validate_git_path_old_name_gone |
software | healthy | tests/test_git_tools.py:223 |
test_validate_git_path_rejects_traversal |
software | healthy | tests/test_git_tools.py:234 |
test_validate_git_path_accepts_valid |
software | healthy | tests/test_git_tools.py:242 |
test_validate_git_path_rejects_leading_dash |
software | healthy | tests/test_git_tools.py:250 |
ancestor_repo_layout |
software | healthy | tests/test_git_tools.py:264 |
test_ancestor_repo_path_escape_rejected |
software | healthy | tests/test_git_tools.py:299 |
test_ancestor_repo_sibling_path_not_revealed |
software | healthy | tests/test_git_tools.py:329 |
test_ancestor_repo_inside_path_allowed |
software | healthy | tests/test_git_tools.py:370 |
test_ancestor_repo_status_works |
software | healthy | tests/test_git_tools.py:380 |
test_execute_git_uses_project_root_from_server |
software | healthy | tests/test_git_tools.py:390 |
test_empty_ref_rejected |
software | healthy | tests/test_git_tools.py:432 |
test_ref_too_long_rejected |
software | healthy | tests/test_git_tools.py:435 |
test_leading_dash_rejected |
software | healthy | tests/test_git_tools.py:438 |
test_blocklist_exec_rejected |
software | healthy | tests/test_git_tools.py:443 |
test_blocklist_upload_pack_rejected |
software | healthy | tests/test_git_tools.py:446 |
test_blocklist_receive_pack_rejected |
software | healthy | tests/test_git_tools.py:449 |
test_blocklist_dotdot_rejected |
software | healthy | tests/test_git_tools.py:452 |
test_blocklist_dollar_paren_rejected |
software | healthy | tests/test_git_tools.py:456 |
test_blocklist_backtick_rejected |
software | healthy | tests/test_git_tools.py:459 |
test_blocklist_dollar_brace_rejected |
software | healthy | tests/test_git_tools.py:462 |
test_blocklist_pipe_rejected |
software | healthy | tests/test_git_tools.py:465 |
test_blocklist_semicolon_rejected |
software | healthy | tests/test_git_tools.py:468 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
TestValidateRefBlocklist |
software | healthy | tests/test_git_tools.py:429 |
FakeResult |
software | healthy | tests/test_git_tools.py:605 |
Block |
software | healthy | tests/test_f1_f2_f10.py:36 |
FakeResponse |
software | healthy | tests/test_f1_f2_f10.py:47 |
FakeAsyncAnthropic |
software | healthy | tests/test_f1_f2_f10.py:80 |
FakeMessages |
software | healthy | tests/test_f1_f2_f10.py:102 |
FakeBeta |
software | healthy | tests/test_f1_f2_f10.py:110 |
FakeBetaMessages |
software | healthy | tests/test_f1_f2_f10.py:115 |
TestF10EndTurnEmptyText |
software | healthy | tests/test_f1_f2_f10.py:128 |
TestF2OrphanedToolUse |
software | healthy | tests/test_f1_f2_f10.py:179 |
TestF2PauseTurn |
software | healthy | tests/test_f1_f2_f10.py:343 |
TestF1TurnBoundaryPruning |
software | healthy | tests/test_f1_f2_f10.py:459 |
TestAgenticLoopToolUseRoundTrip |
software | healthy | tests/test_f1_f2_f10.py:584 |
TestF5LockRace |
software | healthy | tests/test_f5_f6_f7_f8.py:38 |
TestF6CleanupSkipsHeldSessions |
software | healthy | tests/test_f5_f6_f7_f8.py:257 |
TestF7AsyncioLockAcrossLoops |
software | healthy | tests/test_f5_f6_f7_f8.py:366 |
TestF8ExecuteToolNonBlocking |
software | healthy | tests/test_f5_f6_f7_f8.py:437 |
FakeToolUseBlock |
software | healthy | tests/test_f5_f6_f7_f8.py:536 |
FakeTextBlock |
software | healthy | tests/test_f5_f6_f7_f8.py:542 |
FakeResponse |
software | healthy | tests/test_f5_f6_f7_f8.py:546 |
TestBuildThinkingKwargs |
software | healthy | tests/test_agentic_loop.py:38 |
TestExtractTextAndThinking |
software | healthy | tests/test_agentic_loop.py:98 |
Block |
software | healthy | tests/test_agentic_loop.py:500 |
TestF3ThinkingHistoryFilter |
software | healthy | tests/test_agentic_loop.py:161 |
TestF4ModelMigrationStripsThinking |
software | healthy | tests/test_agentic_loop.py:253 |
TestF15CountTokensThinkingParam |
software | healthy | tests/test_agentic_loop.py:398 |
FakeCountResult |
software | healthy | tests/test_agentic_loop.py:463 |
FakeMessagesTokens |
software | healthy | tests/test_agentic_loop.py:466 |
FakeMessages |
software | healthy | tests/test_agentic_loop.py:553 |
FakeClient |
software | healthy | tests/test_agentic_loop.py:560 |
FakeResponse |
software | healthy | tests/test_agentic_loop.py:511 |
TestF3ThinkingToggleE2E |
software | healthy | tests/test_agentic_loop.py:519 |
FakeBeta |
software | healthy | tests/test_agentic_loop.py:557 |
TestIncrementalCommit |
software | healthy | tests/test_f32.py:119 |
TestCancellationSafety |
software | healthy | tests/test_f32.py:239 |
TestCommitIdempotence |
software | healthy | tests/test_f32.py:499 |
TestThinkingPreservationWithIncrementalCommits |
software | healthy | tests/test_f32.py:596 |
TestPerCallMaxToolCalls |
software | healthy | tests/test_f32.py:675 |
TestRunAgenticLoopCommitFn |
software | healthy | tests/test_f32.py:893 |
TestExecuteTool |
software | healthy | tests/test_tools.py:38 |
TestMimeTypeDetection |
software | healthy | tests/test_tools.py:124 |
TestTextFileDetection |
software | healthy | tests/test_tools.py:143 |
TestBuildContentBlocks |
software | healthy | tests/test_tools.py:159 |
TestPathValidation |
software | healthy | tests/test_tools.py:182 |
TestBinaryFileHandling |
software | healthy | tests/test_tools.py:239 |
TestSessionCleanup |
software | healthy | tests/test_tools.py:255 |
TestSearchWithLineNumbers |
software | healthy | tests/test_tools.py:293 |
TestModelDiscovery |
software | healthy | tests/test_tools.py:317 |
TestCleanupPreservesHeldLocks |
software | healthy | tests/test_tools.py:374 |
TestPathTraversalInConsult |
software | healthy | tests/test_tools.py:417 |
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 |
pyproject.toml |
software | healthy | pyproject.toml |
fable-review.md |
software | healthy | fable-review.md |
LICENSE |
software | healthy | LICENSE |
test_agentic.py |
software | healthy | tests/test_agentic.py |
test_connectivity.py |
software | healthy | tests/test_connectivity.py |
conftest.py |
software | healthy | tests/conftest.py |
test_git_tools.py |
software | healthy | tests/test_git_tools.py |
test_f1_f2_f10.py |
software | healthy | tests/test_f1_f2_f10.py |
test_f5_f6_f7_f8.py |
software | healthy | tests/test_f5_f6_f7_f8.py |
test_agentic_loop.py |
software | healthy | tests/test_agentic_loop.py |
test_f32.py |
software | healthy | tests/test_f32.py |
test_tools.py |
software | healthy | tests/test_tools.py |
gen_logo.py |
software | healthy | contrib/gen_logo.py |
git-timeline-video.py |
software | healthy | contrib/git-timeline-video.py |
__init__.py |
software | healthy | src/cpal/__init__.py |
git_tools.py |
software | healthy | src/cpal/git_tools.py |
server.py |
software | healthy | src/cpal/server.py |
CLAUDE.md |
quality | healthy | CLAUDE.md |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
contrib |
software | healthy | contrib |
src |
software | healthy | src |
cpal |
software | healthy | src/cpal |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-h033akl7 |
software | healthy | /tmp/repobility-clone-h033akl7 |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::tests/test_git_tools.py |
security | healthy | tests/test_git_tools.py |
This page is publicly accessible at:
https://repobility.com/scan/c0e381ea-a6d7-4f1c-9eee-763130bb8ab7/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/c0e381ea-a6d7-4f1c-9eee-763130bb8ab7/
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.