Conversation
nahiyankhan
approved these changes
Sep 18, 2026
nahiyankhan
self-requested a review
September 18, 2026 20:05
nahiyankhan
reviewed
Sep 18, 2026
| await writeBareTestPackage(dir); | ||
| await mkdir(join(dir, "brand"), { recursive: true }); | ||
| const svg = '<svg viewBox="0 0 10 10"><path d="M0 0h10v10H0z"/></svg>'; | ||
| await writeFile(join(dir, "brand", "square-logo.svg"), svg); |
Collaborator
There was a problem hiding this comment.
remove square or cash app specific tests
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.
Why
Ghost currently treats SVG files as inlineable text during
pull. That sends the complete SVG source and path data into the generation context, where an agent can truncate, transcribe, or reconstruct the artwork instead of reusing the approved file. This is especially visible with logo assets: Square and Cash App both supply complete SVG marks, but the transport contract makes their path data look like source to reproduce.Raster images already travel as inspect pointers. SVGs should follow the same visual-asset path so every harness receives the exact reusable file rather than a textual approximation opportunity.
What
@design-intelligence/ghostHow
Material transport now checks the inferred content kind before text inlining. Recognized image MIME types return
image inspect-pointer; other binary assets retainbinary inspect-pointer, and eligible text materials continue to inline as untrusted reference data.The pull formatter handles both pointer reasons, using the inferred material kind to distinguish viewable images from other available assets. The installed skill guidance and material references describe the same delivery contract.
Risk
Low to moderate. This intentionally changes SVG pull behavior from inline source to an inspect pointer. Consumers that relied on SVG source appearing directly in a pull packet will need to inspect the supplied path instead. Text materials and non-image binary assets keep their existing behavior.
Testing
pnpm build— passedpnpm test— 332 passed, 1 skippedpnpm check— passedcheck,format,sadscan,test) — passedcheck-push-org,ci) — passedfoundation.logoassets — 4/4 SVGs delivered as inspect pointers with no path payloadsfoundation.identityassets — 7/7 SVGs delivered as inspect pointers with no path payloadsGenerated with Codex