[#329] Graphviz via async plugin pipeline - #342
Open
gregoreesmaa wants to merge 4 commits into
Open
gregoreesmaa wants to merge 4 commits into
gregoreesmaa wants to merge 4 commits into
Conversation
gregoreesmaa
commented
Sep 12, 2026
gregoreesmaa
force-pushed
the
issue/330-d2
branch
from
September 12, 2026 10:35
411c6f2 to
ca6b2df
Compare
gregoreesmaa
force-pushed
the
issue/329-graphviz
branch
from
September 12, 2026 10:36
b5edd4c to
100264a
Compare
gregoreesmaa
commented
Sep 12, 2026
gregoreesmaa
commented
Sep 12, 2026
gregoreesmaa
added a commit
that referenced
this pull request
Sep 12, 2026
22-node rankdir=TB tall fixture with ellipse rank-grid seed (476x3008, three scrolled frames) and 15-node rankdir=LR wide fixture with branch lane + collection rail seed (2000x600, clamped fold), folded into case 4j; generator script stays byte-identical across the plugin branches.
gregoreesmaa
added a commit
that referenced
this pull request
Sep 12, 2026
22-node rankdir=TB tall fixture with ellipse rank-grid seed (476x3008, three scrolled frames) and 15-node rankdir=LR wide fixture with branch lane + collection rail seed (2000x600, clamped fold), folded into case 4j; generator script stays byte-identical across the plugin branches.
gregoreesmaa
force-pushed
the
issue/329-graphviz
branch
from
September 12, 2026 13:39
aced96a to
aceb1c2
Compare
gregoreesmaa
added a commit
that referenced
this pull request
Sep 12, 2026
22-node rankdir=TB tall fixture with ellipse rank-grid seed (476x3008, three scrolled frames) and 15-node rankdir=LR wide fixture with branch lane + collection rail seed (2000x600, clamped fold), folded into case 4j; generator script stays byte-identical across the plugin branches.
gregoreesmaa
force-pushed
the
issue/329-graphviz
branch
from
September 12, 2026 14:59
aceb1c2 to
efd2433
Compare
22-node rankdir=TB tall fixture with ellipse rank-grid seed (476x3008, three scrolled frames) and 15-node rankdir=LR wide fixture with branch lane + collection rail seed (2000x600, clamped fold), folded into case 4j; generator script stays byte-identical across the plugin branches.
Owner: the Pillow-mimicked seeds faked Graphviz support. All three seeds are now genuine dot 16.0.0 output for the exact fixture fence sources (dot -Tpng, the same flags the shipped helper uses), verified reproducible: scripts/gen-plugin-seeds.py shells out to the real dot binary (fails loudly without it) and regenerates pixel-identical assets for all three. The dot fixtures compiled cleanly as written; only the pixels change. Tall scroll walk retuned to initial + 800 + 1600 (the real 705x2065 render fits; a 2400 third frame showed only trailing sliver plus empty viewport, so it goes). Suite 436/436 green. No src/ changes: ship binary untouched by this PR.
…er; base file stale)
gregoreesmaa
force-pushed
the
issue/329-graphviz
branch
from
September 12, 2026 15:21
efd2433 to
0a9a79b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Based on main (unstacked 2026-09-12; was stacked on #341); closes #329.
Graphviz renderer row on the async plugin pipeline (spec docs/plugins-async-spec.md §3 tool table:
dot -Tpng SRC -o OUT):src/core/plugin_cache.zig:Renderer.graphviz(appended; earlier ordinals unchanged),dot→graphviz+graphviz→graphvizmappings, cache-path arm, unit test (both tokens +/read/plugins/graphviz/<hex>.pngshape).scripts/read-plugin-render.sh:graphviz→dotprobe + render stanza.test_cases/plugin_graphviz.md(```dot fence) + suite case 4j (skeleton: code-card state, no seeding).docs/spec.mdBlocks line gains Graphviz.Gates:
zig build test -Doptimize=ReleaseFast --summary all427/427 pass; screenshot suite adds only screenshots/plugin_graphviz.png;size_gate.shPASS (binary=196232, byte-identical to parent — zero growth);check_test_cases.shPASS.Renderer binary requirement: no
dotCLI in this env — coverage is skeleton + probe-false determinism, proven live:probe graphviz→ exit 1,render graphviz SRC OUT→ exit 1 (→ naive code fallback per spec §5). Live PNG render needs Graphviz installed.Unstack + review response (2026-09-12, commit 100264a)
main(was stacked on [#330] D2 via async plugin pipeline #341); this PR now contains only the Graphviz renderer work.plugin_graphviz.pngnow shows the rendered diagram — suite case 4j pre-seeds synthetictest_cases/assets/graphviz-seed.png(regenerable viascripts/gen-plugin-seeds.py) at the fence's content-addressed cache path and captures with--settle-imagesthrough the shipped stat-exists path (mermaid-4e precedent). Seed pixels are synthetic.plugin_graphviz.pngnew),size_gate.sh196232B,check_test_cases.sh+ship_separation.shPASS.