{% extends "app/templates/base.tmpl" %} {% block title %} Graph Console {% endblock %} {% block content %}

← Back to debug

Load graph in memory Projects the Penpot file into an in-memory Ladybug database for this admin session. Loading a new file replaces the previous one.
{% if session %}
{% endif %}
Files Teams → projects → files. Click a file to load it.
Loading…
{% if session %}
Loaded session

File: {{session.name}} ({{session.file-id}})
Loaded at revision: {{session.revn}}
Graph revision: {% if session.graph-revn %}{{session.graph-revn}}{% else %}{{session.revn}}{% endif %}
Schema: {{session.schema-version}}
Loaded at: {{session.loaded-at}}

Feed: connecting…

{% if session.projection.stats %}

Projection: documents={{session.projection.stats.documents}}, pages={{session.projection.stats.pages}}, shapes={{session.projection.stats.shapes}}

{% endif %}
File changes (live) Subscribes to the workspace WebSocket feed for visibility. The backend applies supported changes incrementally to the in-memory Ladybug graph via msgbus (:file-change).
Waiting for changes…
Cypher query
{% if error %}
Error
{{error}}
{% endif %} {% if query-result %}
Results ({{query-result.row-count}} rows{% if query-result.truncated? %}, truncated{% endif %}) {% for column in query-result.columns %} {% endfor %} {% for row in query-result.rows %} {% for cell in row %} {% endfor %} {% endfor %}
{{column}}
{{cell}}
{% endif %}
{% endif %}
{% if session %}
Graph view Renders the in-memory Ladybug graph with AntV G6 (CDN). Node color and glyph encode the node table; edges are IsChildOf (arrow points to parent). With "fold containers" on, anything with children (except the root) renders as a foldable box: double-click to collapse or expand. Redraws automatically after live changes (fold state survives redraws). Very large graphs need an explicit "Render anyway".
{% endif %}
{% if session %} {% endif %} {% endblock %}