Repository navigation
Photograph the editor into a gallery on every build of main - #201
Merged
Merged
Conversation
Adds tests/Coder.Editor.UITests, a headless UI test project whose Gallery tests start Coder.Editor through ImGuiAppHarness, stage it and save a picture of each stage: the node graph with the inspector and the generated C#, the inspector on its own, the generated Python, C++, Rust and Go, the problems listed for an unfinished document, the layout tuning panel, and the File menu. A further test writes docs/gallery/README.md captioning every picture. The pictures go to a temporary directory unless CODER_GALLERY_OUT names one, so on a pull request they are ordinary tests that prove every stage can still be reached. The new editor-gallery workflow, called from ci.yml after the pipeline on a push to main, writes them to docs/gallery and commits them back when they change. Running the gallery twice produces byte-identical pictures. No PNGs are committed here; the workflow writes them on its first run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WWRBkw7bXdWGzuLpqnCvrB
|
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.



Requested by Matt · project thread
Before: The README described Coder.Editor in words only. Nothing showed what the node graph, the inspector or the generated-code preview look like, and no test drew the editor's whole window.
After: A new headless UI test project,
tests/Coder.Editor.UITests, takes nine pictures of the editor and writesdocs/gallery/README.mdwith a caption under each. The pictures are:The README now links to the gallery.
How:
Programdoes:Program.BuildServices(), thenCoderEditorApp, thenBuildConfig().ImGuiAppHarnessat a fixed 1600×900, with ImGuiApp's Nerd Font and the mouse parked off-screen.CODER_GALLERY_OUTnames one..UITestssuffix and thetests/directory put the project in the shared pipeline's Linux-only UI test leg. So every pull request shows that each picture can still be staged. A full gallery run takes about seven minutes on the CPU rasterizer.CoderEditorApp, itsBuildConfig()andProgram.BuildServices()are already public, and nothing reads from disk at start-up..github/workflows/editor-gallery.ymlfollows ImGuiApp'swidget-gallery.yml.ci.ymlcalls it after the pipeline, and only for a push to main. Running it after the pipeline keeps it from racing the release job's metadata push.workflow_run, because Sonar rule S7631 flagsworkflow_run.docs/galleryand checks that each PNG is staged as an LFS pointer.[bot][skip ci] Regenerate the editor galleryand pushes with a rebase-and-retry loop.No PNGs or gallery README are committed here. The workflow writes them on its first run after merge. You can also start it by hand with workflow_dispatch on main.
Verified locally:
Coder.Testpassed: 1115 of 1115.🤖 Generated with Claude Code
https://claude.ai/code/session_01WWRBkw7bXdWGzuLpqnCvrB
Generated by Claude Code