aionflare-connect 0.2.0 → 0.2.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/lib/core.mjs CHANGED
@@ -5,7 +5,7 @@ import { createHash, randomBytes, timingSafeEqual } from 'node:crypto';
5
5
  import { lstat, mkdir, readdir, readFile, realpath, writeFile } from 'node:fs/promises';
6
6
  import { dirname, join, relative, resolve, sep } from 'node:path';
7
7
 
8
- export const version = '0.2.0';
8
+ export const version = '0.2.1';
9
9
  // The messages the Workspace and the helper exchange; raised when they change incompatibly.
10
10
  export const protocol = 1;
11
11
  export const defaultPort = 47613;
package/lib/folders.mjs CHANGED
@@ -48,13 +48,19 @@ export async function pickFolder(title) {
48
48
  '-NoProfile',
49
49
  '-STA',
50
50
  '-Command',
51
+ // Owner live check (2026-11-07): the window opened behind the browser, unseen. It now has a
52
+ // shown, always-on-top owner (invisible), brought to the front; and no property that only
53
+ // newer .NET has (Windows PowerShell 5.1 runs .NET Framework 4).
51
54
  'Add-Type -AssemblyName System.Windows.Forms;' +
52
55
  '$d = New-Object System.Windows.Forms.FolderBrowserDialog;' +
53
56
  '$d.Description = $env:AIONFLARE_DIALOG_TITLE;' +
54
- '$d.UseDescriptionForTitle = $true;' +
55
57
  '$d.ShowNewFolderButton = $true;' +
56
- '$top = New-Object System.Windows.Forms.Form -Property @{TopMost = $true};' +
57
- "if ($d.ShowDialog($top) -eq 'OK') { [Console]::Out.Write($d.SelectedPath) }",
58
+ '$top = New-Object System.Windows.Forms.Form;' +
59
+ '$top.TopMost = $true; $top.ShowInTaskbar = $false; $top.Opacity = 0;' +
60
+ "$top.StartPosition = 'CenterScreen'; $top.Size = New-Object System.Drawing.Size(1, 1);" +
61
+ '$top.Show(); $top.Activate();' +
62
+ '$r = $d.ShowDialog($top); $top.Close();' +
63
+ "if ($r -eq 'OK') { [Console]::Out.Write($d.SelectedPath) }",
58
64
  ],
59
65
  env,
60
66
  );
package/lib/server.mjs CHANGED
@@ -234,8 +234,12 @@ export function startServer({ folder: startFolder, port, dev, config, saveConfig
234
234
  // Owner (2026-11-07): a project's folder, picked in this computer's own folder dialog
235
235
  // (an existing one, or a new one named after the project); then the helper works there.
236
236
  case 'choose': {
237
+ log('Opening the folder window on this computer (it may be behind the browser)…');
237
238
  const picked = await chooseFolder(m.mode === 'create' ? 'create' : 'open', m.name);
238
- if (!picked) return reply({ cancelled: true });
239
+ if (!picked) {
240
+ log('No folder was chosen.');
241
+ return reply({ cancelled: true });
242
+ }
239
243
  config.folders = [...(config.folders ?? []).filter((f) => f !== picked), picked].slice(
240
244
  -20,
241
245
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aionflare-connect",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "A local terminal for AIONFLARE Coder: open shells on your own computer from the Workspace.",
5
5
  "type": "module",
6
6
  "bin": {