scenri 0.3.4 → 0.4.0

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 CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.4.0](https://github.com/tonygorb/Scenri/compare/v0.3.5...v0.4.0) (2026-08-23)
4
+
5
+
6
+ ### Features
7
+
8
+ * expand a shot into a new shape instead of replacing it ([3570fde](https://github.com/tonygorb/Scenri/commit/3570fde2f9b700e485e3ef0c567caabcbd597bda))
9
+ * expand a shot into a new shape, and make the edit path first class ([9af4bad](https://github.com/tonygorb/Scenri/commit/9af4bad4283ee41b79f366a030b61ce4d81184e9))
10
+ * keep the rest of the photograph when one thing was asked to change ([4cbbaf7](https://github.com/tonygorb/Scenri/commit/4cbbaf7e7448766dc090c3d6bbca578ffa586c10))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * apply EXIF orientation when an upload is stored ([752c4e2](https://github.com/tonygorb/Scenri/commit/752c4e20696334db15b341c26fa1f3b66378ab52))
16
+ * give a shot card one bottom row and one keeper mark ([f21b1b6](https://github.com/tonygorb/Scenri/commit/f21b1b6ab933417d41399965239cdc819894aa5d))
17
+ * hold the shot's real shape while it renders, and reveal it when it decodes ([e814fb6](https://github.com/tonygorb/Scenri/commit/e814fb6bd0947003e5b338c08c67e4f891d0ed69))
18
+ * keep presenter capture clothing out of the campaign frame ([c6e8c5e](https://github.com/tonygorb/Scenri/commit/c6e8c5ea3295c0cf32bde30e13f612a854a624cf))
19
+ * keep the archive button out of a phone tile's fact row ([6de9560](https://github.com/tonygorb/Scenri/commit/6de95604b7780d64753977446e4892ac1da20092))
20
+ * keep the variants that succeeded when one of them fails ([a72ae69](https://github.com/tonygorb/Scenri/commit/a72ae69b777c4d2e20fd88a6c24fc3aefd696e59))
21
+ * make a refinement keep the shot it is refining ([ae9f752](https://github.com/tonygorb/Scenri/commit/ae9f7526550e141d0557225f1de9fb861643cd5e))
22
+ * stop stretching the takes rail under the shot stage ([669e54c](https://github.com/tonygorb/Scenri/commit/669e54c167a74eff173231d84561a6ac2175a141))
23
+ * stop the resolution setting promising pixels an engine only requests ([beba2c1](https://github.com/tonygorb/Scenri/commit/beba2c156673ae1681e2b7bc502bceb1cf57404a))
24
+
25
+ ## [0.3.5](https://github.com/tonygorb/Scenri/compare/v0.3.4...v0.3.5) (2026-08-20)
26
+
27
+
28
+ ### Bug Fixes
29
+
30
+ * keep untrusted text out of the Windows shell lines ([f564c35](https://github.com/tonygorb/Scenri/commit/f564c358dc018f2e7e52e00eae004122690dc2be))
31
+ * make the Codex engine and updates work on Windows ([f94f420](https://github.com/tonygorb/Scenri/commit/f94f42069049b65920dfc95491a074cfd3617b8f))
32
+ * make the Codex engine and updates work on Windows ([f21cb9d](https://github.com/tonygorb/Scenri/commit/f21cb9d513f291bfc64585f9f3a3f67ea5738bde))
33
+
34
+
35
+ ### Performance Improvements
36
+
37
+ * cut the e2e wall clock roughly in half ([2cacbce](https://github.com/tonygorb/Scenri/commit/2cacbced34b6c58541c0b7942cd107aaa234f477))
38
+
3
39
  ## [0.3.4](https://github.com/tonygorb/Scenri/compare/v0.3.3...v0.3.4) (2026-08-20)
4
40
 
5
41
 
@@ -1,6 +1,6 @@
1
1
  import { stagingDir, versionsDir, isValidVersionDir, pruneStaged, entryOf } from './chunk-4MAFHYAD.js';
2
2
  import { spawnSync, spawn } from 'child_process';
3
- import { rmSync, mkdirSync, readFileSync, renameSync } from 'fs';
3
+ import { existsSync, rmSync, mkdirSync, readFileSync, renameSync } from 'fs';
4
4
  import { join, dirname } from 'path';
5
5
 
6
6
  // src/update/check.ts
@@ -97,6 +97,7 @@ function createUpdateChecker(deps) {
97
97
  }
98
98
  function findNpm(opts = {}) {
99
99
  const env = opts.env ?? process.env;
100
+ const platform = opts.platform ?? process.platform;
100
101
  const canRun = opts.canRun ?? ((argv) => {
101
102
  try {
102
103
  return spawnSync(argv[0], [...argv.slice(1), "--version"], { stdio: "ignore", timeout: 1e4 }).status === 0;
@@ -104,9 +105,26 @@ function findNpm(opts = {}) {
104
105
  return false;
105
106
  }
106
107
  });
107
- if (canRun(["npm"])) return ["npm"];
108
- const ep = env.npm_execpath;
108
+ if (platform !== "win32" && canRun(["npm"])) return ["npm"];
109
+ const ep = env.npm_execpath?.replace(/npx-cli\.js$/, "npm-cli.js");
109
110
  if (ep && /npm-cli\.js$/.test(ep) && canRun([process.execPath, ep])) return [process.execPath, ep];
111
+ if (platform === "win32") {
112
+ const cli = windowsNpmCli();
113
+ if (cli && canRun([process.execPath, cli])) return [process.execPath, cli];
114
+ }
115
+ return null;
116
+ }
117
+ function windowsNpmCli() {
118
+ try {
119
+ const out = spawnSync("where", ["npm"], { encoding: "utf8", timeout: 1e4 });
120
+ if (out.status !== 0 || !out.stdout) return null;
121
+ for (const line of out.stdout.split(/\r?\n/)) {
122
+ if (!/npm(\.cmd)?$/i.test(line.trim())) continue;
123
+ const cli = join(dirname(line.trim()), "node_modules", "npm", "bin", "npm-cli.js");
124
+ if (existsSync(cli)) return cli;
125
+ }
126
+ } catch {
127
+ }
110
128
  return null;
111
129
  }
112
130
  function run(argv) {
@@ -202,5 +220,5 @@ async function stageVersion(deps) {
202
220
  }
203
221
 
204
222
  export { classify, createUpdateChecker, fetchDistTagLatest, findNpm, stageVersion };
205
- //# sourceMappingURL=chunk-GA7P7K2M.js.map
206
- //# sourceMappingURL=chunk-GA7P7K2M.js.map
223
+ //# sourceMappingURL=chunk-3W2RHBZC.js.map
224
+ //# sourceMappingURL=chunk-3W2RHBZC.js.map
@@ -1,4 +1,4 @@
1
- import { stageVersion, fetchDistTagLatest, findNpm } from './chunk-GA7P7K2M.js';
1
+ import { stageVersion, fetchDistTagLatest, findNpm } from './chunk-3W2RHBZC.js';
2
2
  import { readMeta } from './chunk-Y3ZPBPLP.js';
3
3
  import { defaultHome, newestStaged, compareSemver } from './chunk-4MAFHYAD.js';
4
4
 
@@ -43,7 +43,8 @@ async function runUpdateCommand(opts) {
43
43
  }
44
44
  if (!findNpm()) {
45
45
  console.error(" npm is not reachable from here, so nothing can be downloaded.");
46
- console.error(" Install Node.js with npm, or run: npx scenri@latest");
46
+ console.error(" Run the newest version directly with: npx scenri@latest");
47
+ console.error(" (or install Node.js with npm and try again)");
47
48
  return 1;
48
49
  }
49
50
  console.log(` downloading ${meta.name} ${latest}\u2026`);
@@ -62,5 +63,5 @@ async function runUpdateCommand(opts) {
62
63
  }
63
64
 
64
65
  export { runUpdateCommand };
65
- //# sourceMappingURL=cli-GQLRYYGU.js.map
66
- //# sourceMappingURL=cli-GQLRYYGU.js.map
66
+ //# sourceMappingURL=cli-HF5KPURA.js.map
67
+ //# sourceMappingURL=cli-HF5KPURA.js.map
package/dist/index.js CHANGED
@@ -64,7 +64,7 @@ try {
64
64
  await (await import('./serve.js')).serve();
65
65
  break;
66
66
  case "update": {
67
- const { runUpdateCommand } = await import('./cli-GQLRYYGU.js');
67
+ const { runUpdateCommand } = await import('./cli-HF5KPURA.js');
68
68
  process.exit(await runUpdateCommand(command));
69
69
  break;
70
70
  }