https://github.com/AAAAAnson/mbeditor
· scanned 2026-06-17 01:11 UTC (1 month, 2 weeks ago)
85 raw signals (0 security + 85 graph)
Last scanned 1 month, 2 weeks ago · v2 · last Δ -3.1 (diff) · 81 actionable findings from 1 signal source. 4 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1665 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 |
|---|---|---|---|
lifespan |
software | healthy | backend/app/main.py:19 |
_parse_cors_origins |
software | healthy | backend/app/main.py:27 |
check_upload_size |
software | healthy | backend/app/main.py:44 |
healthz |
software | healthy | backend/app/main.py:59 |
get_effects |
software | healthy | backend/app/api/v1/effects.py:31 |
render_effect_endpoint |
software | healthy | backend/app/api/v1/effects.py:36 |
generate_svg |
software | healthy | backend/app/api/v1/agent_generate.py:23 |
validate_wechat_html |
software | healthy | backend/app/api/v1/validate.py:21 |
test_connection |
software | healthy | backend/app/api/v1/wechat_stateless.py:37 |
upload_image |
software | healthy | backend/app/api/v1/wechat_stateless.py:43 |
create_draft |
software | healthy | backend/app/api/v1/wechat_stateless.py:55 |
get_version |
software | healthy | backend/app/api/v1/router.py:27 |
check_version |
software | healthy | backend/app/api/v1/router.py:32 |
_norm |
software | healthy | backend/app/api/v1/router.py:51 |
import_html |
software | healthy | backend/app/api/v1/publish.py:63 |
preview_wechat |
software | healthy | backend/app/api/v1/publish.py:89 |
process_html_for_copy |
software | healthy | backend/app/api/v1/publish.py:94 |
preview_mbdoc |
software | healthy | backend/app/api/v1/publish.py:117 |
process_mbdoc_for_copy |
software | healthy | backend/app/api/v1/publish.py:140 |
list_documents |
software | healthy | backend/app/api/v1/mbdocs.py:34 |
get_document |
software | healthy | backend/app/api/v1/mbdocs.py:41 |
create_document |
software | healthy | backend/app/api/v1/mbdocs.py:50 |
update_document |
software | healthy | backend/app/api/v1/mbdocs.py:70 |
delete_document |
software | healthy | backend/app/api/v1/mbdocs.py:92 |
_validate_safe_id |
software | healthy | backend/app/models/mbdoc.py:21 |
_id_safe |
software | healthy | backend/app/models/mbdoc.py:153 |
_src_scheme_must_be_safe |
software | healthy | backend/app/models/mbdoc.py:83 |
must_contain_svg_tag |
software | healthy | backend/app/models/mbdoc.py:98 |
_block_ids_must_be_unique |
software | healthy | backend/app/models/mbdoc.py:157 |
__init__ |
software | healthy | backend/app/core/exceptions.py:8 |
register_exception_handlers |
software | healthy | backend/app/core/exceptions.py:14 |
app_error_handler |
software | healthy | backend/app/core/exceptions.py:16 |
global_error_handler |
software | healthy | backend/app/core/exceptions.py:23 |
success |
software | healthy | backend/app/core/response.py:4 |
fail |
software | healthy | backend/app/core/response.py:8 |
system_prompt_word_count |
software | healthy | backend/app/services/agent_svg_prompt.py:140 |
_guess_pattern_label |
software | healthy | backend/app/services/agent_svg_prompt.py:173 |
_placeholder_html |
software | healthy | backend/app/services/agent_svg_prompt.py:182 |
_stub_llm_call |
software | healthy | backend/app/services/agent_svg_prompt.py:214 |
_format_feedback |
software | healthy | backend/app/services/agent_svg_prompt.py:232 |
generate_svg_block |
software | healthy | backend/app/services/agent_svg_prompt.py:247 |
_empty_report |
software | healthy | backend/app/services/agent_svg_prompt.py:328 |
_map_llm_error |
software | healthy | backend/app/services/agent_svg_prompt.py:353 |
_generate_via_llm |
software | healthy | backend/app/services/agent_svg_prompt.py:364 |
_generate_block_id |
software | healthy | backend/app/services/article_to_mbdoc.py:35 |
_make_soup |
software | healthy | backend/app/services/article_to_mbdoc.py:48 |
_node_html |
software | healthy | backend/app/services/article_to_mbdoc.py:66 |
_int_attr |
software | healthy | backend/app/services/article_to_mbdoc.py:71 |
_emit_image |
software | healthy | backend/app/services/article_to_mbdoc.py:87 |
_emit_svg_source |
software | healthy | backend/app/services/article_to_mbdoc.py:108 |
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 |
AGENTS.md |
software | healthy | AGENTS.md |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
docker-compose.prod.yml |
software | healthy | docker-compose.prod.yml |
README.md |
software | healthy | README.md |
LICENSE |
software | healthy | LICENSE |
docker-compose.yml |
software | healthy | docker-compose.yml |
entrypoint.sh |
software | healthy | backend/entrypoint.sh |
requirements.txt |
software | healthy | backend/requirements.txt |
pyproject.toml |
software | healthy | backend/pyproject.toml |
requirements-dev.txt |
software | healthy | backend/requirements-dev.txt |
Dockerfile |
software | healthy | backend/Dockerfile |
__init__.py |
software | healthy | backend/app/__init__.py |
main.py |
software | healthy | backend/app/main.py |
__init__.py |
software | healthy | backend/app/api/__init__.py |
effects.py |
software | healthy | backend/app/api/v1/effects.py |
__init__.py |
software | healthy | backend/app/api/v1/__init__.py |
agent_generate.py |
software | healthy | backend/app/api/v1/agent_generate.py |
validate.py |
software | healthy | backend/app/api/v1/validate.py |
wechat_stateless.py |
software | healthy | backend/app/api/v1/wechat_stateless.py |
router.py |
software | healthy | backend/app/api/v1/router.py |
publish.py |
software | healthy | backend/app/api/v1/publish.py |
mbdocs.py |
software | healthy | backend/app/api/v1/mbdocs.py |
__init__.py |
software | healthy | backend/app/models/__init__.py |
mbdoc.py |
software | healthy | backend/app/models/mbdoc.py |
__init__.py |
software | healthy | backend/app/core/__init__.py |
config.py |
software | healthy | backend/app/core/config.py |
exceptions.py |
software | healthy | backend/app/core/exceptions.py |
response.py |
software | healthy | backend/app/core/response.py |
tpl_biz_minimal.json |
software | healthy | backend/app/seeds/tpl_biz_minimal.json |
tpl_tech_neon.json |
software | healthy | backend/app/seeds/tpl_tech_neon.json |
tpl_literary.json |
software | healthy | backend/app/seeds/tpl_literary.json |
tpl_magazine.json |
software | healthy | backend/app/seeds/tpl_magazine.json |
tpl_vibrant.json |
software | healthy | backend/app/seeds/tpl_vibrant.json |
agent_svg_prompt.py |
software | healthy | backend/app/services/agent_svg_prompt.py |
article_to_mbdoc.py |
software | healthy | backend/app/services/article_to_mbdoc.py |
effect_registry.py |
software | healthy | backend/app/services/effect_registry.py |
svg_validator.py |
software | healthy | backend/app/services/svg_validator.py |
wechat_service.py |
software | healthy | backend/app/services/wechat_service.py |
anthropic_client.py |
software | healthy | backend/app/services/anthropic_client.py |
raster_worker.py |
software | healthy | backend/app/services/raster_worker.py |
__init__.py |
software | healthy | backend/app/services/__init__.py |
raster_inline_svgs.py |
software | healthy | backend/app/services/raster_inline_svgs.py |
local_imgbed_service.py |
software | healthy | backend/app/services/local_imgbed_service.py |
legacy_render_pipeline.py |
software | healthy | backend/app/services/legacy_render_pipeline.py |
wechat_sanitize.py |
software | healthy | backend/app/services/wechat_sanitize.py |
mbdoc_store.py |
software | healthy | backend/app/services/mbdoc_store.py |
css_inline.py |
software | healthy | backend/app/services/css_inline.py |
svg_dsl.py |
software | healthy | backend/app/services/svg_dsl.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
RenderEffectReq |
software | healthy | backend/app/api/v1/effects.py:23 |
GenerateSvgReq |
software | healthy | backend/app/api/v1/agent_generate.py:18 |
ValidateReq |
software | healthy | backend/app/api/v1/validate.py:16 |
Credentials |
software | healthy | backend/app/api/v1/wechat_stateless.py:14 |
ArticlePayload |
software | healthy | backend/app/api/v1/wechat_stateless.py:19 |
DraftReq |
software | healthy | backend/app/api/v1/wechat_stateless.py:30 |
PreviewReq |
software | healthy | backend/app/api/v1/publish.py:18 |
ProcessForCopyReq |
software | healthy | backend/app/api/v1/publish.py:24 |
MBDocPreviewReq |
software | healthy | backend/app/api/v1/publish.py:34 |
MBDocProcessForCopyReq |
software | healthy | backend/app/api/v1/publish.py:40 |
ImportHtmlReq |
software | healthy | backend/app/api/v1/publish.py:48 |
MBDocCreateRequest |
software | healthy | backend/app/api/v1/mbdocs.py:15 |
MBDocUpdateRequest |
software | healthy | backend/app/api/v1/mbdocs.py:24 |
BlockType |
software | healthy | backend/app/models/mbdoc.py:30 |
_BlockBase |
software | healthy | backend/app/models/mbdoc.py:40 |
HeadingBlock |
software | healthy | backend/app/models/mbdoc.py:52 |
ParagraphBlock |
software | healthy | backend/app/models/mbdoc.py:58 |
MarkdownBlock |
software | healthy | backend/app/models/mbdoc.py:63 |
HtmlBlock |
software | healthy | backend/app/models/mbdoc.py:68 |
ImageBlock |
software | healthy | backend/app/models/mbdoc.py:74 |
SvgBlock |
software | healthy | backend/app/models/mbdoc.py:92 |
RasterBlock |
software | healthy | backend/app/models/mbdoc.py:104 |
MBDocMeta |
software | healthy | backend/app/models/mbdoc.py:134 |
MBDoc |
software | healthy | backend/app/models/mbdoc.py:143 |
Settings |
software | healthy | backend/app/core/config.py:10 |
AppError |
software | healthy | backend/app/core/exceptions.py:7 |
TextSlot |
software | healthy | backend/app/services/effect_registry.py:31 |
ImageSlot |
software | healthy | backend/app/services/effect_registry.py:39 |
ColorSlot |
software | healthy | backend/app/services/effect_registry.py:46 |
TimingParam |
software | healthy | backend/app/services/effect_registry.py:53 |
Effect |
software | healthy | backend/app/services/effect_registry.py:64 |
Finding |
software | healthy | backend/app/services/svg_validator.py:204 |
ValidationReport |
software | healthy | backend/app/services/svg_validator.py:211 |
LLMError |
software | healthy | backend/app/services/anthropic_client.py:55 |
LLMUnavailable |
software | healthy | backend/app/services/anthropic_client.py:59 |
LLMTimeout |
software | healthy | backend/app/services/anthropic_client.py:63 |
LLMRateLimited |
software | healthy | backend/app/services/anthropic_client.py:67 |
LLMRefusal |
software | healthy | backend/app/services/anthropic_client.py:71 |
LLMTruncated |
software | healthy | backend/app/services/anthropic_client.py:79 |
LLMSchemaMismatch |
software | healthy | backend/app/services/anthropic_client.py:83 |
LLMServerError |
software | healthy | backend/app/services/anthropic_client.py:87 |
LLMConnectionError |
software | healthy | backend/app/services/anthropic_client.py:91 |
RasterRenderError |
software | healthy | backend/app/services/raster_worker.py:21 |
UnknownBlockTypeError |
software | healthy | backend/app/services/block_registry.py:14 |
RenderContext |
software | healthy | backend/app/services/block_registry.py:36 |
BlockRegistry |
software | healthy | backend/app/services/block_registry.py:59 |
RenderProfile |
software | healthy | backend/app/services/render_profiles.py:34 |
HeadingRenderer |
software | healthy | backend/app/services/renderers/heading_paragraph.py:72 |
ParagraphRenderer |
software | healthy | backend/app/services/renderers/heading_paragraph.py:86 |
ImageRenderer |
software | healthy | backend/app/services/renderers/image_renderer.py:37 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
backend |
software | healthy | backend |
app |
software | healthy | backend/app |
api |
software | healthy | backend/app/api |
v1 |
software | healthy | backend/app/api/v1 |
models |
software | healthy | backend/app/models |
core |
software | healthy | backend/app/core |
seeds |
software | healthy | backend/app/seeds |
services |
software | healthy | backend/app/services |
renderers |
software | healthy | backend/app/services/renderers |
tests |
software | healthy | backend/tests |
regression |
software | healthy | backend/tests/regression |
fixtures |
software | healthy | backend/tests/fixtures |
import |
software | healthy | backend/tests/fixtures/import |
visual |
software | healthy | backend/tests/visual |
scripts |
software | healthy | scripts |
.github |
software | healthy | .github |
ISSUE_TEMPLATE |
software | healthy | .github/ISSUE_TEMPLATE |
workflows |
software | healthy | .github/workflows |
skill |
software | healthy | skill |
frontend |
software | healthy | frontend |
src |
software | healthy | frontend/src |
app |
software | healthy | frontend/src/app |
utils |
software | healthy | frontend/src/utils |
stores |
software | healthy | frontend/src/stores |
__tests__ |
software | healthy | frontend/src/stores/__tests__ |
hooks |
software | healthy | frontend/src/hooks |
types |
software | healthy | frontend/src/types |
components |
software | healthy | frontend/src/components |
progress |
software | healthy | frontend/src/components/progress |
shell |
software | healthy | frontend/src/components/shell |
shared |
software | healthy | frontend/src/components/shared |
validation |
software | healthy | frontend/src/components/validation |
icons |
software | healthy | frontend/src/components/icons |
ui |
software | healthy | frontend/src/components/ui |
features |
software | healthy | frontend/src/features |
editor |
software | healthy | frontend/src/features/editor |
lint |
software | healthy | frontend/src/features/editor/lint |
template-gallery |
software | healthy | frontend/src/features/editor/template-gallery |
templates |
software | healthy | frontend/src/features/editor/template-gallery/templates |
effect-registry |
software | healthy | frontend/src/features/editor/effect-registry |
seeds |
software | healthy | frontend/src/seeds |
lib |
software | healthy | frontend/src/lib |
image-hosts |
software | healthy | frontend/src/lib/image-hosts |
__tests__ |
software | healthy | frontend/src/lib/image-hosts/__tests__ |
surfaces |
software | healthy | frontend/src/surfaces |
editor |
software | healthy | frontend/src/surfaces/editor |
utils |
software | healthy | frontend/src/surfaces/editor/utils |
hooks |
software | healthy | frontend/src/surfaces/editor/hooks |
svg-panel |
software | healthy | frontend/src/surfaces/editor/svg-panel |
services |
software | healthy | frontend/src/surfaces/editor/services |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | frontend/src/app/App.tsx |
PublishProgress |
frontend | healthy | frontend/src/components/progress/PublishProgress.tsx |
CopyReadyDialog |
frontend | healthy | frontend/src/components/progress/CopyReadyDialog.tsx |
TweaksPanel |
frontend | healthy | frontend/src/components/shell/TweaksPanel.tsx |
TopBar |
frontend | healthy | frontend/src/components/shell/TopBar.tsx |
Shell |
frontend | healthy | frontend/src/components/shell/Shell.tsx |
SideRail |
frontend | healthy | frontend/src/components/shell/SideRail.tsx |
Pulse |
frontend | healthy | frontend/src/components/shared/Pulse.tsx |
Chip |
frontend | healthy | frontend/src/components/shared/Chip.tsx |
BrandLogo |
frontend | healthy | frontend/src/components/shared/BrandLogo.tsx |
MonoLabel |
frontend | healthy | frontend/src/components/shared/MonoLabel.tsx |
ValidationBlockDialog |
frontend | healthy | frontend/src/components/validation/ValidationBlockDialog.tsx |
ValidationDialog |
frontend | healthy | frontend/src/components/validation/ValidationDialog.tsx |
CompatibilityBadge |
frontend | healthy | frontend/src/components/validation/CompatibilityBadge.tsx |
Toast |
frontend | healthy | frontend/src/components/ui/Toast.tsx |
Button |
frontend | healthy | frontend/src/components/ui/Button.tsx |
Seg |
frontend | healthy | frontend/src/components/ui/Seg.tsx |
LintSidebar |
frontend | healthy | frontend/src/features/editor/lint/LintSidebar.tsx |
TemplateGallery |
frontend | healthy | frontend/src/features/editor/template-gallery/TemplateGalle… |
EffectGallery |
frontend | healthy | frontend/src/features/editor/effect-registry/EffectGallery.… |
CenterStage |
frontend | healthy | frontend/src/surfaces/editor/CenterStage.tsx |
StructurePanel |
frontend | healthy | frontend/src/surfaces/editor/StructurePanel.tsx |
AgentCopilotPanel |
frontend | healthy | frontend/src/surfaces/editor/AgentCopilot.tsx |
EditorSurface |
frontend | healthy | frontend/src/surfaces/editor/EditorSurface.tsx |
SvgEditPanel |
frontend | healthy | frontend/src/surfaces/editor/svg-panel/SvgEditPanel.tsx |
ImageHostsSection |
frontend | healthy | frontend/src/surfaces/settings/ImageHostsSection.tsx |
SettingsSurface |
frontend | healthy | frontend/src/surfaces/settings/SettingsSurface.tsx |
PromoSurface |
frontend | healthy | frontend/src/surfaces/promo/PromoSurface.tsx |
ArticleList |
frontend | healthy | frontend/src/surfaces/article-list/ArticleList.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /healthz |
api | healthy | backend/app/main.py |
GET /effects |
api | healthy | backend/app/api/v1/effects.py |
POST /effects/{effect_id}/render |
api | healthy | backend/app/api/v1/effects.py |
POST /generate-svg |
api | healthy | backend/app/api/v1/agent_generate.py |
POST /validate |
api | healthy | backend/app/api/v1/validate.py |
POST /test-connection |
api | healthy | backend/app/api/v1/wechat_stateless.py |
POST /upload-image |
api | healthy | backend/app/api/v1/wechat_stateless.py |
POST /draft |
api | healthy | backend/app/api/v1/wechat_stateless.py |
GET /version |
api | healthy | backend/app/api/v1/router.py |
GET /version/check |
api | healthy | backend/app/api/v1/router.py |
POST /import-html |
api | healthy | backend/app/api/v1/publish.py |
POST /preview |
api | healthy | backend/app/api/v1/publish.py |
POST /process-for-copy |
api | healthy | backend/app/api/v1/publish.py |
POST /mbdoc/preview |
api | healthy | backend/app/api/v1/publish.py |
POST /mbdoc/process-for-copy |
api | healthy | backend/app/api/v1/publish.py |
GET / |
api | healthy | backend/app/api/v1/mbdocs.py |
GET /{doc_id} |
api | healthy | backend/app/api/v1/mbdocs.py |
POST / |
api | healthy | backend/app/api/v1/mbdocs.py |
PUT /{doc_id} |
api | healthy | backend/app/api/v1/mbdocs.py |
DELETE /{doc_id} |
api | healthy | backend/app/api/v1/mbdocs.py |
GET /agent/effects |
api | healthy | frontend/src/features/editor/effect-registry/effectApi.ts |
POST /wechat/upload-image |
api | healthy | frontend/src/lib/image-hosts/default.ts |
POST /wechat/draft |
api | healthy | frontend/src/surfaces/editor/AgentCopilot.tsx |
POST /agent/generate-svg |
api | healthy | frontend/src/surfaces/editor/AgentCopilot.tsx |
POST /wechat/test-connection |
api | healthy | frontend/src/surfaces/settings/SettingsSurface.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
IMAGE_BACKEND |
cicd | healthy | — |
REGISTRY |
cicd | healthy | — |
IMAGE_OWNER |
cicd | healthy | — |
GITHUB_TOKEN |
cicd | healthy | — |
IMAGE_FRONTEND |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
port:7072 |
network | healthy | docker-compose.prod.yml |
port:8000 |
network | healthy | docker-compose.prod.yml |
port:7073 |
network | healthy | docker-compose.prod.yml |
port:8080 |
network | healthy | docker-compose.prod.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
image::backend/Dockerfile |
hardware | healthy | backend/Dockerfile |
image::frontend/Dockerfile |
hardware | healthy | frontend/Dockerfile |
frontend |
hardware | healthy | docker-compose.yml |
backend |
hardware | healthy | docker-compose.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
AAAAAnson__mbeditor |
software | healthy | /data/fable5_failed_archive/AAAAAnson__mbeditor |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | .env.example |
| Label | Layer | Status | Path |
|---|---|---|---|
nginx |
network | healthy | AGENTS.md |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | frontend/package-lock.json |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::deploy |
cicd | healthy | .github/workflows/deploy.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
build-and-push |
cicd | healthy | .github/workflows/deploy.yml |
This page is publicly accessible at:
https://repobility.com/scan/2bfdde0d-e2de-477c-b987-5ca14cc5b3e9/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/2bfdde0d-e2de-477c-b987-5ca14cc5b3e9/
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.