scenri 0.20.6 → 0.21.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/dist/serve.js +49 -11
- package/package.json +1 -1
- package/studio-dist/assets/0.21.0-home-examples-J92K_hqk.webp +0 -0
- package/studio-dist/assets/{index-BDCs16Y1.css → index-CAJBx_f6.css} +1 -1
- package/studio-dist/assets/{index-B46fXqON.js → index-Ce9knTi7.js} +14 -14
- package/studio-dist/index.html +2 -2
- package/templates/demo-products/aldric-marine-40.json +13 -0
- package/templates/demo-products/barrier-balm.json +13 -0
- package/templates/demo-products/brume-08.json +13 -0
- package/templates/demo-products/calm-body-lotion.json +13 -0
- package/templates/demo-products/clairfont-rose.json +13 -0
- package/templates/demo-products/dune-candle.json +13 -0
- package/templates/demo-products/halvard-12.json +13 -0
- package/templates/demo-products/kultur-kefir.json +13 -0
- package/templates/demo-products/melo-peach-tea.json +13 -0
- package/templates/demo-products/nami-sparkling.json +13 -0
- package/templates/demo-products/nuit-cream.json +13 -0
- package/templates/demo-products/olea-hand-cream.json +13 -0
- package/templates/demo-products/ondine-serum.json +13 -0
- package/templates/demo-products/pli-bag.json +13 -0
- package/templates/demo-products/soleado-lemon.json +13 -0
- package/templates/demo-products/sora-sandal.json +13 -0
- package/templates/demo-products/velin-silk-wash.json +13 -0
- package/templates/demo-products/verdo-greens.json +13 -0
- package/templates/presenters/anaya.json +1 -1
- package/templates/presenters/odette.json +1 -1
- package/templates/presenters/zuri.json +1 -1
- package/templates/previews/demo-products/aldric-marine-40/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/barrier-balm/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/brume-08/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/calm-body-lotion/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/clairfont-rose/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/dune-candle/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/halvard-12/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/kultur-kefir/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/melo-peach-tea/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/nami-sparkling/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/nuit-cream/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/olea-hand-cream/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/ondine-serum/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/pli-bag/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/soleado-lemon/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/sora-sandal/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/velin-silk-wash/three-quarter.jpg +0 -0
- package/templates/previews/demo-products/verdo-greens/three-quarter.jpg +0 -0
- package/templates/previews/showcase/aldric-marine-40.jpg +0 -0
- package/templates/previews/showcase/barrier-balm.jpg +0 -0
- package/templates/previews/showcase/brume-08.jpg +0 -0
- package/templates/previews/showcase/calm-body-lotion.jpg +0 -0
- package/templates/previews/showcase/clairfont-rose.jpg +0 -0
- package/templates/previews/showcase/dune-candle.jpg +0 -0
- package/templates/previews/showcase/halvard-12.jpg +0 -0
- package/templates/previews/showcase/kultur-kefir.jpg +0 -0
- package/templates/previews/showcase/melo-peach-tea.jpg +0 -0
- package/templates/previews/showcase/nami-sparkling.jpg +0 -0
- package/templates/previews/showcase/nuit-cream.jpg +0 -0
- package/templates/previews/showcase/olea-hand-cream.jpg +0 -0
- package/templates/previews/showcase/ondine-serum.jpg +0 -0
- package/templates/previews/showcase/pli-bag.jpg +0 -0
- package/templates/previews/showcase/soleado-lemon.jpg +0 -0
- package/templates/previews/showcase/sora-sandal.jpg +0 -0
- package/templates/previews/showcase/velin-silk-wash.jpg +0 -0
- package/templates/previews/showcase/verdo-greens.jpg +0 -0
- package/templates/previews/wet-ribs.jpg +0 -0
- package/templates/showcase/72-dark-bite.json +1 -1
- package/templates/showcase/72-dark-palm-shade.json +1 -1
- package/templates/showcase/72-dark-snap.json +1 -1
- package/templates/showcase/acetates-harbour-light.json +1 -1
- package/templates/showcase/acetates-ice-block.json +1 -1
- package/templates/showcase/acetates-salt-flat.json +1 -1
- package/templates/showcase/acetates-silk-drape.json +1 -1
- package/templates/showcase/aldric-marine-40.json +29 -0
- package/templates/showcase/aperitivo-chrome-bar.json +1 -1
- package/templates/showcase/aperitivo-pit.json +1 -1
- package/templates/showcase/aperitivo-ruby-pour.json +1 -1
- package/templates/showcase/aperitivo-tomato-vine.json +1 -1
- package/templates/showcase/barrier-balm.json +29 -0
- package/templates/showcase/barrier-cream-caddy.json +1 -1
- package/templates/showcase/barrier-cream-cheek.json +1 -1
- package/templates/showcase/barrier-cream-ice-core.json +1 -1
- package/templates/showcase/barrier-cream-oats.json +1 -1
- package/templates/showcase/bowler-bonnet-rain.json +1 -1
- package/templates/showcase/bowler-car-exit.json +1 -1
- package/templates/showcase/bowler-cobalt-room.json +1 -1
- package/templates/showcase/bowler-red-blade.json +1 -1
- package/templates/showcase/brume-08.json +29 -0
- package/templates/showcase/c15-apricot-ledge.json +1 -1
- package/templates/showcase/c15-dew-bed.json +1 -1
- package/templates/showcase/c15-morning-drop.json +1 -1
- package/templates/showcase/c15-orange-pool.json +1 -1
- package/templates/showcase/calm-body-lotion.json +29 -0
- package/templates/showcase/capsule-block-tower.json +1 -1
- package/templates/showcase/capsule-model-village.json +1 -1
- package/templates/showcase/capsule-stoop.json +1 -1
- package/templates/showcase/casserole-long-table.json +1 -1
- package/templates/showcase/casserole-steam.json +1 -1
- package/templates/showcase/casserole-tomatoes.json +1 -1
- package/templates/showcase/chug-courtside.json +1 -1
- package/templates/showcase/chug-long-shadow.json +1 -1
- package/templates/showcase/chug-mountain-stream.json +1 -1
- package/templates/showcase/chug-waterline.json +1 -1
- package/templates/showcase/clairfont-rose.json +29 -0
- package/templates/showcase/collagen-berry-splash.json +1 -1
- package/templates/showcase/collagen-morning-shake.json +1 -1
- package/templates/showcase/collagen-paper-garden.json +1 -1
- package/templates/showcase/court-72-baseline.json +1 -1
- package/templates/showcase/court-72-checker-sit.json +1 -1
- package/templates/showcase/court-72-fisheye-steps.json +1 -1
- package/templates/showcase/court-72-salt-flat.json +1 -1
- package/templates/showcase/cricket-jumper-green.json +1 -1
- package/templates/showcase/cricket-jumper-hamper.json +1 -1
- package/templates/showcase/cricket-jumper-sheets.json +1 -1
- package/templates/showcase/dune-candle.json +29 -0
- package/templates/showcase/field-watch-boulder-gap.json +1 -1
- package/templates/showcase/field-watch-corner.json +1 -1
- package/templates/showcase/field-watch-helm.json +1 -1
- package/templates/showcase/field-watch-ice-core.json +1 -1
- package/templates/showcase/fig-leaf-frost-window.json +1 -1
- package/templates/showcase/fig-leaf-lanterns.json +1 -1
- package/templates/showcase/fig-leaf-still-life.json +1 -1
- package/templates/showcase/fig-vetiver-travertine.json +1 -1
- package/templates/showcase/green-04-ice-trough.json +1 -1
- package/templates/showcase/green-04-ingredients.json +1 -1
- package/templates/showcase/green-04-track.json +1 -1
- package/templates/showcase/gummies-bedside.json +1 -1
- package/templates/showcase/gummies-cherry-heap.json +1 -1
- package/templates/showcase/gummies-moonlit-pillow.json +1 -1
- package/templates/showcase/halvard-12.json +29 -0
- package/templates/showcase/hibiscus-dew-bed.json +1 -1
- package/templates/showcase/hibiscus-flower-nest.json +1 -1
- package/templates/showcase/hibiscus-long-lunch.json +1 -1
- package/templates/showcase/hoops-honey-drip.json +1 -1
- package/templates/showcase/hoops-painted-canvas.json +1 -1
- package/templates/showcase/hoops-pink-smoke.json +1 -1
- package/templates/showcase/hoops-sculpted-hands.json +1 -1
- package/templates/showcase/kultur-kefir.json +33 -0
- package/templates/showcase/lounge-chair-reading.json +1 -1
- package/templates/showcase/lounge-chair-snowfall.json +1 -1
- package/templates/showcase/lounge-chair-travertine.json +1 -1
- package/templates/showcase/melo-peach-tea.json +29 -0
- package/templates/showcase/nami-sparkling.json +33 -0
- package/templates/showcase/noir-cedar-char.json +1 -1
- package/templates/showcase/noir-cedar-coal.json +1 -1
- package/templates/showcase/noir-cedar-silk-drape.json +1 -1
- package/templates/showcase/noir-cedar-smoke.json +1 -1
- package/templates/showcase/nuit-cream.json +33 -0
- package/templates/showcase/olea-hand-cream.json +29 -0
- package/templates/showcase/ondine-serum.json +29 -0
- package/templates/showcase/open-buds-hands.json +1 -1
- package/templates/showcase/open-buds-surf-check.json +1 -1
- package/templates/showcase/open-buds-vinyl.json +1 -1
- package/templates/showcase/orris-collarbone.json +1 -1
- package/templates/showcase/orris-salt-pan.json +1 -1
- package/templates/showcase/orris-waterline.json +1 -1
- package/templates/showcase/orris-window-stripe.json +1 -1
- package/templates/showcase/over-ear-arch.json +1 -1
- package/templates/showcase/over-ear-balloons.json +1 -1
- package/templates/showcase/over-ear-glass-blocks.json +1 -1
- package/templates/showcase/over-ear-pool-edge.json +1 -1
- package/templates/showcase/pli-bag.json +33 -0
- package/templates/showcase/puffer-container-lean.json +1 -1
- package/templates/showcase/puffer-foil-jump.json +1 -1
- package/templates/showcase/puffer-ghost-snow.json +1 -1
- package/templates/showcase/puffer-snow-street.json +1 -1
- package/templates/showcase/ridgeline-boulder-gap.json +1 -1
- package/templates/showcase/ridgeline-chalk-sprint.json +1 -1
- package/templates/showcase/ridgeline-stream-leap.json +1 -1
- package/templates/showcase/ridgeline-tyre-top.json +1 -1
- package/templates/showcase/scarlet-beauty-dish.json +1 -1
- package/templates/showcase/scarlet-red-blade.json +1 -1
- package/templates/showcase/scarlet-summer-laugh.json +1 -1
- package/templates/showcase/scarlet-swatch.json +1 -1
- package/templates/showcase/soleado-lemon.json +29 -0
- package/templates/showcase/sora-sandal.json +33 -0
- package/templates/showcase/spf-poolside.json +1 -1
- package/templates/showcase/spf-salt-flat.json +1 -1
- package/templates/showcase/spf-shadow-hand.json +1 -1
- package/templates/showcase/spf-yellow-field.json +1 -1
- package/templates/showcase/sun-coin-collarbone.json +1 -1
- package/templates/showcase/sun-coin-hair-nest.json +1 -1
- package/templates/showcase/sun-coin-sundial.json +1 -1
- package/templates/showcase/sun-coin-white-glove.json +1 -1
- package/templates/showcase/velin-silk-wash.json +29 -0
- package/templates/showcase/verdo-greens.json +29 -0
- package/templates/showcase/wash-fig-leaves.json +1 -1
- package/templates/showcase/wash-slate-shower.json +1 -1
- package/templates/showcase/wash-steam.json +1 -1
- package/templates/showcase/yuzu-arch-lean.json +1 -1
- package/templates/showcase/yuzu-container-sill.json +1 -1
- package/templates/showcase/yuzu-flash-walk.json +1 -1
- package/templates/showcase/yuzu-ice-burst.json +1 -1
- package/templates/wet-ribs.json +15 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.1](https://github.com/tonygorb/Scenri/compare/v0.21.0...v0.21.1) (2026-10-04)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* let the new example packshots through the package check ([45a0174](https://github.com/tonygorb/Scenri/commit/45a017453fed5d5a206e27d9e585a0d0b31ace95))
|
|
9
|
+
* let the new example packshots through the package check ([6eef8f8](https://github.com/tonygorb/Scenri/commit/6eef8f8b44c06bd53db3052f4423475f2befc394))
|
|
10
|
+
|
|
11
|
+
## [0.21.0](https://github.com/tonygorb/Scenri/compare/v0.20.7...v0.21.0) (2026-10-04)
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Features
|
|
15
|
+
|
|
16
|
+
* bring the website examples and Wet Ribs into the studio ([a859481](https://github.com/tonygorb/Scenri/commit/a859481cf33f1a0f2cd724c0adca23a68ba9c5ca))
|
|
17
|
+
* bring the website examples and Wet Ribs into the studio ([013aead](https://github.com/tonygorb/Scenri/commit/013aeadc4e1aca23ee1bef816ba743dbab001ade))
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
* patch the multipart reader against two denial-of-service advisories ([adbf2d3](https://github.com/tonygorb/Scenri/commit/adbf2d30ff8d7e582f0d43d49820e3732194b1d7))
|
|
23
|
+
* patch the multipart reader against two denial-of-service advisories ([b854c58](https://github.com/tonygorb/Scenri/commit/b854c58529fdb84a1e922ffbfca70fe32bf4c071))
|
|
24
|
+
|
|
25
|
+
## [0.20.7](https://github.com/tonygorb/Scenri/compare/v0.20.6...v0.20.7) (2026-10-03)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Bug Fixes
|
|
29
|
+
|
|
30
|
+
* keep a parent's reference photo off a refinement ([6d74815](https://github.com/tonygorb/Scenri/commit/6d74815fdcdb246ef7c7038a639a20a63042ea29))
|
|
31
|
+
* keep a parent's reference photo off a refinement ([0acd180](https://github.com/tonygorb/Scenri/commit/0acd18031c72c9aeabd971fd72e140a88006accb))
|
|
32
|
+
|
|
3
33
|
## [0.20.6](https://github.com/tonygorb/Scenri/compare/v0.20.5...v0.20.6) (2026-10-02)
|
|
4
34
|
|
|
5
35
|
|
package/dist/serve.js
CHANGED
|
@@ -5468,9 +5468,6 @@ function inheritedIdentityDirective(kinds) {
|
|
|
5468
5468
|
return "The attached product references show the same product that is already in this picture. Use them to hold its identity exact while you make the change, not as a reason to re-stage the shot.";
|
|
5469
5469
|
return "The attached person reference shows the same person who is already in this picture. Use it to hold their identity exact while you make the change, not as a reason to re-stage the shot.";
|
|
5470
5470
|
}
|
|
5471
|
-
function inheritedRefDirective() {
|
|
5472
|
-
return "The carried reference is attached for composition, lighting and treatment only. Any person or product visible in it lends mood, never identity \u2014 nobody and nothing in this photograph takes a face, a body or a design from it.";
|
|
5473
|
-
}
|
|
5474
5471
|
function productFactDirectives(p) {
|
|
5475
5472
|
const out = [];
|
|
5476
5473
|
if (p.preservationNotes) out.push(String(p.preservationNotes));
|
|
@@ -16386,6 +16383,51 @@ function registerImageRoutes(app, deps) {
|
|
|
16386
16383
|
var HEADLINES_KEPT = 5;
|
|
16387
16384
|
var FIRST_PUBLIC = "0.2.0";
|
|
16388
16385
|
var RELEASES = [
|
|
16386
|
+
{
|
|
16387
|
+
version: "0.21.1",
|
|
16388
|
+
date: "2026-10-04",
|
|
16389
|
+
title: "The new examples' product photos ship with the app",
|
|
16390
|
+
sections: [
|
|
16391
|
+
{
|
|
16392
|
+
heading: "Examples",
|
|
16393
|
+
body: "Each of the eighteen new examples brings its own product photo, so a shot that uses one starts from that photo."
|
|
16394
|
+
}
|
|
16395
|
+
]
|
|
16396
|
+
},
|
|
16397
|
+
{
|
|
16398
|
+
version: "0.21.0",
|
|
16399
|
+
date: "2026-10-04",
|
|
16400
|
+
title: "New examples on Home, and Refine has its own look",
|
|
16401
|
+
sections: [
|
|
16402
|
+
{
|
|
16403
|
+
heading: "Examples",
|
|
16404
|
+
body: "Eighteen new examples sit on Home, each a real product in a real place. Wet Ribs joins the scenes: wet orange ribbed rubber under a hard sun.",
|
|
16405
|
+
image: {
|
|
16406
|
+
file: "0.21.0-home-examples.webp",
|
|
16407
|
+
alt: "Home open on All examples, the wall showing Ol\xE9a Hand Cream and Halvard 12 among the shots."
|
|
16408
|
+
}
|
|
16409
|
+
},
|
|
16410
|
+
{
|
|
16411
|
+
heading: "Refine",
|
|
16412
|
+
body: "While a shot is being refined, the button is the light pill. Closing that state on the composer clears only the refinement, and the shot stays."
|
|
16413
|
+
},
|
|
16414
|
+
{
|
|
16415
|
+
heading: "Security",
|
|
16416
|
+
body: "The reader that takes uploaded files on the local server is on its patched release, for two denial-of-service advisories. Nothing about how Scenri works changes."
|
|
16417
|
+
}
|
|
16418
|
+
]
|
|
16419
|
+
},
|
|
16420
|
+
{
|
|
16421
|
+
version: "0.20.7",
|
|
16422
|
+
date: "2026-10-03",
|
|
16423
|
+
title: "A refinement keeps the shot, not the reference",
|
|
16424
|
+
sections: [
|
|
16425
|
+
{
|
|
16426
|
+
heading: "Refine",
|
|
16427
|
+
body: "A shot made with a reference picture keeps its own person, product and brand when you refine it. The reference shaped the first picture, and it is not sent again."
|
|
16428
|
+
}
|
|
16429
|
+
]
|
|
16430
|
+
},
|
|
16389
16431
|
{
|
|
16390
16432
|
version: "0.20.6",
|
|
16391
16433
|
date: "2026-10-02",
|
|
@@ -18828,7 +18870,6 @@ function buildServer(opts) {
|
|
|
18828
18870
|
);
|
|
18829
18871
|
const inheritedDirectives = [];
|
|
18830
18872
|
let inheritedMark = false;
|
|
18831
|
-
let inheritedRef = false;
|
|
18832
18873
|
const inheritedProduct = inheritedTokens.some((t) => t.t === "product");
|
|
18833
18874
|
const inheritedPerson = inheritedTokens.some((t) => t.t === "character");
|
|
18834
18875
|
for (const tok of inheritedTokens) {
|
|
@@ -18849,9 +18890,6 @@ function buildServer(opts) {
|
|
|
18849
18890
|
} else if (tok.t === "mark" && !inheritedMark) {
|
|
18850
18891
|
inheritedMark = true;
|
|
18851
18892
|
inheritedDirectives.push(markEditDirective());
|
|
18852
|
-
} else if (tok.t === "ref" && !inheritedRef) {
|
|
18853
|
-
inheritedRef = true;
|
|
18854
|
-
inheritedDirectives.push(inheritedRefDirective());
|
|
18855
18893
|
}
|
|
18856
18894
|
}
|
|
18857
18895
|
if (inheritedPerson) inheritedDirectives.push(personSkinDirective());
|
|
@@ -18871,9 +18909,9 @@ function buildServer(opts) {
|
|
|
18871
18909
|
editScope: verdict.scope,
|
|
18872
18910
|
editRemoval: verdict.removal ?? false,
|
|
18873
18911
|
// Kinds, not a count: the identity claim speaks only about the kinds
|
|
18874
|
-
// that actually ride. A mark-only
|
|
18875
|
-
//
|
|
18876
|
-
//
|
|
18912
|
+
// that actually ride. A mark-only inheritance emits no generic claim.
|
|
18913
|
+
// markEditDirective speaks for the mark. A carried reference photograph
|
|
18914
|
+
// is recorded and not attached, so it emits nothing either.
|
|
18877
18915
|
inheritedIdentity: inheritedProduct || inheritedPerson ? { product: inheritedProduct, person: inheritedPerson } : false,
|
|
18878
18916
|
inheritedDirectives,
|
|
18879
18917
|
// Only the explicit op drops the dimension promise: an implicit legacy
|
|
@@ -18896,7 +18934,7 @@ function buildServer(opts) {
|
|
|
18896
18934
|
productAngles.set(String(a.id ?? a.hash), n);
|
|
18897
18935
|
return n <= 2;
|
|
18898
18936
|
}
|
|
18899
|
-
return a.essential || a.role === "brand"
|
|
18937
|
+
return a.essential || a.role === "brand";
|
|
18900
18938
|
}).map((a) => ({ ...a, inherited: true }));
|
|
18901
18939
|
}
|
|
18902
18940
|
const cap2 = Math.max(0, engineCaps.maxReferenceImages - 1);
|
package/package.json
CHANGED
|
Binary file
|