@floless/app 0.6.2 → 0.6.3

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.
@@ -51148,7 +51148,7 @@ function nodeExe() {
51148
51148
  }
51149
51149
  if (!isSea3) return _nodeExe = process.execPath;
51150
51150
  try {
51151
- const out = (0, import_node_child_process.execFileSync)(process.platform === "win32" ? "where" : "which", ["node"], { encoding: "utf8" });
51151
+ const out = (0, import_node_child_process.execFileSync)(process.platform === "win32" ? "where" : "which", ["node"], { encoding: "utf8", windowsHide: true, timeout: 5e3 });
51152
51152
  _nodeExe = out.split(/\r?\n/).map((s) => s.trim()).find(Boolean) ?? "node";
51153
51153
  } catch {
51154
51154
  _nodeExe = "node";
@@ -51171,7 +51171,7 @@ function resolveInvoker() {
51171
51171
  return { head: [nodeExe(), (0, import_node_path3.join)(envDir, "scripts/bin/aware.js")], shell: false, pkgDir: envDir };
51172
51172
  }
51173
51173
  try {
51174
- const root = (0, import_node_child_process.execFileSync)("npm", ["root", "-g"], { encoding: "utf8", shell: process.platform === "win32" }).trim();
51174
+ const root = (0, import_node_child_process.execFileSync)("npm", ["root", "-g"], { encoding: "utf8", shell: process.platform === "win32", windowsHide: true, timeout: 1e4 }).trim();
51175
51175
  const pkgDir = (0, import_node_path3.join)(root, "@aware-aeco", "cli");
51176
51176
  const bin = (0, import_node_path3.join)(pkgDir, "scripts/bin/aware.js");
51177
51177
  if ((0, import_node_fs4.existsSync)(bin)) return { head: [nodeExe(), bin], shell: false, pkgDir };
@@ -51345,7 +51345,7 @@ var runChain = Promise.resolve();
51345
51345
  function killTree(child) {
51346
51346
  if (process.platform === "win32" && child.pid) {
51347
51347
  try {
51348
- (0, import_node_child_process.execFileSync)("taskkill", ["/pid", String(child.pid), "/T", "/F"], { stdio: "ignore" });
51348
+ (0, import_node_child_process.execFileSync)("taskkill", ["/pid", String(child.pid), "/T", "/F"], { stdio: "ignore", windowsHide: true, timeout: 5e3 });
51349
51349
  return;
51350
51350
  } catch {
51351
51351
  }
@@ -52161,8 +52161,12 @@ function browserCommand(url, platform = process.platform) {
52161
52161
  if (platform === "win32") {
52162
52162
  return {
52163
52163
  cmd: "cmd",
52164
+ // NO `detached`: Node #21825 makes it defeat `windowsHide` for cmd.exe (a CUI child),
52165
+ // flashing a console window on sign-in. windowsHide alone hides it; `start` still hands
52166
+ // the URL to the browser via ShellExecute, which outlives this process. windowsVerbatimArguments
52167
+ // keeps `&` literal inside the quoted url (the desktop-session footgun documented above).
52164
52168
  args: ["/c", "start", '""', `"${url}"`],
52165
- opts: { windowsHide: true, detached: true, windowsVerbatimArguments: true }
52169
+ opts: { windowsHide: true, windowsVerbatimArguments: true }
52166
52170
  };
52167
52171
  }
52168
52172
  return { cmd: platform === "darwin" ? "open" : "xdg-open", args: [url], opts: { detached: true } };
@@ -52254,7 +52258,7 @@ function appVersion() {
52254
52258
  return resolveVersion({
52255
52259
  isSea: isSea2(),
52256
52260
  sqVersionXml: readSqVersionXml(),
52257
- define: true ? "0.6.2" : void 0,
52261
+ define: true ? "0.6.3" : void 0,
52258
52262
  pkgVersion: readPkgVersion()
52259
52263
  });
52260
52264
  }
@@ -52264,7 +52268,7 @@ function resolveChannel(s) {
52264
52268
  return "dev";
52265
52269
  }
52266
52270
  function appChannel() {
52267
- return resolveChannel({ isSea: isSea2(), define: true ? "0.6.2" : void 0 });
52271
+ return resolveChannel({ isSea: isSea2(), define: true ? "0.6.3" : void 0 });
52268
52272
  }
52269
52273
 
52270
52274
  // bake.ts
@@ -53830,7 +53834,7 @@ function startServerDetached() {
53830
53834
  child.unref();
53831
53835
  }
53832
53836
  function openBrowser2(url) {
53833
- if (isWin2) (0, import_node_child_process5.spawn)("cmd", ["/c", "start", "", url], { windowsHide: true, detached: true }).unref();
53837
+ if (isWin2) (0, import_node_child_process5.spawn)("cmd", ["/c", "start", "", url], { windowsHide: true }).unref();
53834
53838
  else (0, import_node_child_process5.spawn)(process.platform === "darwin" ? "open" : "xdg-open", [url], { detached: true }).unref();
53835
53839
  }
53836
53840
  function stopServer() {
@@ -56137,7 +56141,7 @@ async function startServer() {
56137
56141
  const isWin3 = process.platform === "win32";
56138
56142
  const has = (cmd) => {
56139
56143
  try {
56140
- (0, import_node_child_process6.execFileSync)(isWin3 ? "where" : "which", [cmd], { stdio: "ignore" });
56144
+ (0, import_node_child_process6.execFileSync)(isWin3 ? "where" : "which", [cmd], { stdio: "ignore", windowsHide: true, timeout: 5e3 });
56141
56145
  return true;
56142
56146
  } catch {
56143
56147
  return false;
package/launch.mjs CHANGED
@@ -123,7 +123,11 @@ function startServerDetached() {
123
123
  }
124
124
 
125
125
  function openBrowser(url) {
126
- if (isWin) spawn('cmd', ['/c', 'start', '', url], { windowsHide: true, detached: true }).unref();
126
+ // NO `detached` on Windows: Node #21825 makes `detached` defeat `windowsHide` for a CUI
127
+ // child (cmd.exe), flashing a console window. Without it, windowsHide hides cmd; `start`
128
+ // hands the URL to the browser via ShellExecute (independent of cmd's tree), so the browser
129
+ // still survives this launcher exiting. unref() keeps it from holding the event loop.
130
+ if (isWin) spawn('cmd', ['/c', 'start', '', url], { windowsHide: true }).unref();
127
131
  else spawn(process.platform === 'darwin' ? 'open' : 'xdg-open', [url], { detached: true }).unref();
128
132
  }
129
133
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@floless/app",
3
- "version": "0.6.2",
3
+ "version": "0.6.3",
4
4
  "type": "module",
5
5
  "description": "Thin localhost host for floless.app — serves web/ and shells the aware CLI. No engine, no LLM.",
6
6
  "bin": {