Add editable embedded and linked smart objects - #150
Merged
Merged
Conversation
IAmJSD
force-pushed
the
pr/linked-smart-objects
branch
from
September 19, 2026 20:57
847a5d1 to
65ce4d8
Compare
IAmJSD
added this pull request to stack #155
September 20, 2026 08:29
IAmJSD
force-pushed
the
pr/linked-smart-objects
branch
from
September 20, 2026 09:13
65ce4d8 to
03298dd
Compare
IAmJSD
force-pushed
the
pr/linked-smart-objects
branch
from
September 20, 2026 09:14
03298dd to
8dcc73c
Compare
IAmJSD
force-pushed
the
pr/linked-smart-objects
branch
from
September 20, 2026 09:15
8dcc73c to
2451188
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.
Add Place Embedded/Linked, Edit Contents, Replace Contents, Relink and Update Linked Instances. Embedded sources open as layered documents; saving updates matching instances in the parent while preserving each instance's placement, filters, mask and blending. Linked files retain an embedded fallback and reject conflicting external changes on save. Source operations retire pending transform snapshots; source saves also commit active text edits.
Versioned source metadata and sparse native caches preserve layered sources, identities and links through PSD saves, undo, recovery and shared checkpoints. Browser builds support embedded workflows; native filesystem links use explicit updates within the current document. This preserves Schist source metadata rather than authoring Photoshop's proprietary linked-object graph. See
docs/smart-objects.md.All 32 new interface strings use
schist-i18nand are localized across all 150 shipped locale catalogs. The translations replace English fallbacks in 146 catalogs, regenerate Norwegian and Serbo-Croatian aliases from Bokmål and Croatian, and align German save-action references with the existing menus.Validation:
make test-smart-objectspassed 22 model, persistence and editor tests covering bounded metadata, native/transparent pixels, float/HDR precision, legacy source formats, PSD/shared round trips, replacement/undo and transform-session boundaries.Translation validation:
make check-i18nandmake check-i18n-wasmpass, including catalog keys/placeholders, compressed catalogs, font coverage, generated aliases, and browser loader tests. A focused audit also checks all 32 smart-object keys in every locale, menu references, encoding, and remaining English fallback sentences. Lower-resource language phrasing has not had native-speaker review.