feat: v2.5.4 — Query Explorer folded into Sessions, Windows picker and paths
- Sessions page tabs: Sessions · Events · Agents. QueryExplorer.tsx became AgentsTable.tsx (agents only — sessions and events already had tabs); /query redirects to /sessions?view=agents and leaves the sidebar. GET /api/query is unchanged and still answers all three entities. - Windows picker opens in front: -EncodedCommand script spends the hidden first ShowWindow that windowsHide gives the process, then brings the TopMost owner forward via AttachThreadInput (v2.5.3's owner was itself hidden). - Session page Resume/Fork/Open pane: owningLane and sessionWorktreeName match Windows folders (either separator), with a test.
This commit is contained in:
@@ -44,12 +44,17 @@ describe("native-dialog", () => {
|
||||
assert.ok(!args.slice(0, -2).join(" ").includes("shell script"));
|
||||
});
|
||||
|
||||
it("gives the Windows dialog a TopMost owner, so it does not open behind the browser", () => {
|
||||
it("gives the Windows dialog a foreground TopMost owner, so it does not open behind the browser", () => {
|
||||
for (const kind of ["dir", "file"]) {
|
||||
const [[cmd, args]] = nd.dialogCommands(kind, "C:\\x", "win32");
|
||||
assert.equal(cmd, "powershell.exe");
|
||||
const script = args.at(-1);
|
||||
assert.match(script, /\$o\.TopMost = \$true;.*\$o\.Show\(\);.*\$d\.ShowDialog\(\$o\)/);
|
||||
assert.equal(args.at(-2), "-EncodedCommand");
|
||||
const script = Buffer.from(args.at(-1), "base64").toString("utf16le");
|
||||
assert.match(
|
||||
script,
|
||||
/\$o\.TopMost = \$true;[\s\S]*ShowWindow\(\$o\.Handle, 1\)[\s\S]*\$o\.Show\(\)[\s\S]*Front\(\$o\.Handle\)[\s\S]*\$d\.ShowDialog\(\$o\)/
|
||||
);
|
||||
assert.match(script, /AttachThreadInput/);
|
||||
assert.ok(!script.includes("C:\\x"), "the folder travels in env, never the script");
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user