https://github.com/ShoneAnstey/Whetstone
· scanned 2026-06-16 00:11 UTC (2 months, 2 weeks ago)
17 raw signals (0 security + 17 graph)
Last scanned 2 months, 2 weeks ago · v1 · 14 actionable findings from 1 signal source. 3 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 317 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 |
|---|---|---|---|
_parse_color |
software | healthy | document.py:40 |
_anchor_xy |
software | healthy | document.py:48 |
__init__ |
software | healthy | document.py:60 |
from_image |
software | healthy | document.py:72 |
image |
software | healthy | document.py:84 |
dirty |
software | healthy | document.py:88 |
mark_saved |
software | healthy | document.py:92 |
untitled |
software | healthy | document.py:96 |
edited_path |
software | healthy | document.py:100 |
apply |
software | healthy | document.py:104 |
undo |
software | healthy | document.py:110 |
redo |
software | healthy | document.py:118 |
save |
software | healthy | document.py:124 |
overwrite_original |
software | healthy | document.py:132 |
_replay |
software | healthy | document.py:148 |
_apply_op |
software | healthy | document.py:155 |
_op_crop |
software | healthy | document.py:163 |
_op_rotate |
software | healthy | document.py:167 |
_op_flip |
software | healthy | document.py:181 |
_op_resize_image |
software | healthy | document.py:187 |
_op_resize_canvas |
software | healthy | document.py:205 |
_flatten_to_white |
software | healthy | document.py:219 |
_clamped_box |
software | healthy | document.py:225 |
_op_blur_region |
software | healthy | document.py:235 |
_op_redact_region |
software | healthy | document.py:242 |
_op_paste |
software | healthy | document.py:257 |
_load_font |
software | healthy | document.py:287 |
_arrow_head |
software | healthy | document.py:296 |
_op_annotate |
software | healthy | document.py:310 |
__init__ |
software | healthy | palette.py:16 |
keyPressEvent |
software | healthy | palette.py:34 |
_refilter |
software | healthy | palette.py:40 |
_run_selected |
software | healthy | palette.py:56 |
load_schema |
software | healthy | commands.py:35 |
known_ops |
software | healthy | commands.py:40 |
__init__ |
software | healthy | commands.py:50 |
register |
software | healthy | commands.py:55 |
validate |
software | healthy | commands.py:60 |
execute |
software | healthy | commands.py:68 |
wrap |
software | healthy | commands.py:84 |
__init__ |
software | healthy | dialogs.py:146 |
command |
software | healthy | dialogs.py:207 |
_sync |
software | healthy | dialogs.py:87 |
_format_changed |
software | healthy | dialogs.py:196 |
_browse |
software | healthy | dialogs.py:202 |
resolved_model |
software | healthy | ai.py:55 |
resolved_base_url |
software | healthy | ai.py:58 |
_schema_text |
software | healthy | ai.py:65 |
system_prompt |
software | healthy | ai.py:70 |
user_prompt |
software | healthy | ai.py:89 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
requirements-dev.txt |
software | healthy | requirements-dev.txt |
document.py |
software | healthy | document.py |
palette.py |
software | healthy | palette.py |
README.md |
software | healthy | README.md |
commands.py |
software | healthy | commands.py |
dialogs.py |
software | healthy | dialogs.py |
ai.py |
software | healthy | ai.py |
export.py |
software | healthy | export.py |
pyproject.toml |
software | healthy | pyproject.toml |
ai_box.py |
software | healthy | ai_box.py |
viewer.py |
software | healthy | viewer.py |
version.py |
software | healthy | version.py |
LICENSE |
software | healthy | LICENSE |
main.py |
software | healthy | main.py |
requirements.txt |
software | healthy | requirements.txt |
test_document.py |
software | healthy | tests/test_document.py |
test_commands.py |
software | healthy | tests/test_commands.py |
test_export.py |
software | healthy | tests/test_export.py |
test_ai.py |
software | healthy | tests/test_ai.py |
commands.schema.json |
software | healthy | schema/commands.schema.json |
build_appimage.sh |
software | healthy | packaging/build_appimage.sh |
make_assets.py |
software | healthy | packaging/make_assets.py |
stamp_build.py |
software | healthy | packaging/stamp_build.py |
build.yml |
software | healthy | .github/workflows/build.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
ImageDocument |
software | healthy | document.py:57 |
CommandPalette |
software | healthy | palette.py:15 |
CommandError |
software | healthy | commands.py:31 |
CommandBus |
software | healthy | commands.py:47 |
NewImageDialog |
software | healthy | dialogs.py:32 |
ResizeImageDialog |
software | healthy | dialogs.py:64 |
ResizeCanvasDialog |
software | healthy | dialogs.py:108 |
ExportDialog |
software | healthy | dialogs.py:145 |
AIError |
software | healthy | ai.py:44 |
AIConfig |
software | healthy | ai.py:49 |
AIProvider |
software | healthy | ai.py:152 |
AISettingsDialog |
software | healthy | ai_box.py:48 |
_Worker |
software | healthy | ai_box.py:119 |
AICommandDialog |
software | healthy | ai_box.py:133 |
ImageView |
software | healthy | viewer.py:151 |
ImageTab |
software | healthy | viewer.py:346 |
MainWindow |
software | healthy | viewer.py:374 |
FakeTransport |
software | healthy | tests/test_ai.py:32 |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
schema |
software | healthy | schema |
packaging |
software | healthy | packaging |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
cicd | healthy | .github/workflows/build.yml |
windows |
cicd | healthy | .github/workflows/build.yml |
linux |
cicd | healthy | .github/workflows/build.yml |
release |
cicd | healthy | .github/workflows/build.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-22g0j76j |
software | healthy | /tmp/repobility-clone-22g0j76j |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::build |
cicd | healthy | .github/workflows/build.yml |
This page is publicly accessible at:
https://repobility.com/scan/351c38fd-d38f-40aa-8eb5-3b1306ac8a4c/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/351c38fd-d38f-40aa-8eb5-3b1306ac8a4c/
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.