Skip to content

Add editable embedded and linked smart objects - #150

Merged
IAmJSD merged 8 commits into
mainfrom
pr/linked-smart-objects
Sep 20, 2026
Merged

IAmJSD merged 8 commits into
mainfrom
pr/linked-smart-objects

Conversation

@IAmJSD

@IAmJSD IAmJSD commented Sep 19, 2026 •

Copy link
Copy Markdown
Member

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-i18n and 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-objects passed 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-i18n and make check-i18n-wasm pass, 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.

@IAmJSD
IAmJSD force-pushed the pr/linked-smart-objects branch from 847a5d1 to 65ce4d8 Compare September 19, 2026 20:57
@IAmJSD
IAmJSD added this pull request to stack #155 September 20, 2026 08:29
@IAmJSD
IAmJSD force-pushed the pr/linked-smart-objects branch from 65ce4d8 to 03298dd Compare September 20, 2026 09:13
@IAmJSD
IAmJSD force-pushed the pr/linked-smart-objects branch from 03298dd to 8dcc73c Compare September 20, 2026 09:14
Base automatically changed from pr/brush-workflows to main September 20, 2026 09:15
@IAmJSD
IAmJSD force-pushed the pr/linked-smart-objects branch from 8dcc73c to 2451188 Compare September 20, 2026 09:15
@IAmJSD
IAmJSD merged commit e52fecb into main Sep 20, 2026
0 of 5 checks passed
@IAmJSD
IAmJSD deleted the pr/linked-smart-objects branch September 20, 2026 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant