safari-pilot 0.1.36 → 0.1.38
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/bin/Safari Pilot.app/Contents/CodeResources +0 -0
- package/bin/Safari Pilot.app/Contents/Info.plist +2 -2
- package/bin/Safari Pilot.app/Contents/MacOS/Safari Pilot +0 -0
- package/bin/Safari Pilot.app/Contents/PlugIns/Safari Pilot Extension.appex/Contents/Info.plist +2 -2
- package/bin/Safari Pilot.app/Contents/PlugIns/Safari Pilot Extension.appex/Contents/MacOS/Safari Pilot Extension +0 -0
- package/bin/Safari Pilot.app/Contents/PlugIns/Safari Pilot Extension.appex/Contents/Resources/background.js +41 -0
- package/bin/Safari Pilot.app/Contents/PlugIns/Safari Pilot Extension.appex/Contents/Resources/manifest.json +1 -1
- package/bin/Safari Pilot.app/Contents/PlugIns/Safari Pilot Extension.appex/Contents/_CodeSignature/CodeResources +4 -4
- package/bin/Safari Pilot.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist +0 -0
- package/bin/Safari Pilot.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib +0 -0
- package/bin/Safari Pilot.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib +0 -0
- package/bin/Safari Pilot.app/Contents/_CodeSignature/CodeResources +7 -7
- package/bin/Safari Pilot.zip +0 -0
- package/bin/SafariPilotd +0 -0
- package/dist/locator.js +25 -0
- package/dist/locator.js.map +1 -1
- package/dist/server.d.ts +9 -0
- package/dist/server.js +77 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/_frame-routing-helper.js +27 -1
- package/dist/tools/_frame-routing-helper.js.map +1 -1
- package/dist/tools/extraction.d.ts +43 -0
- package/dist/tools/extraction.js +187 -11
- package/dist/tools/extraction.js.map +1 -1
- package/dist/tools/navigation.js +22 -2
- package/dist/tools/navigation.js.map +1 -1
- package/dist/tools/structured-extraction.js +3 -1
- package/dist/tools/structured-extraction.js.map +1 -1
- package/extension/background.js +41 -0
- package/extension/manifest.json +1 -1
- package/package.json +1 -1
|
Binary file
|
|
@@ -23,13 +23,13 @@
|
|
|
23
23
|
<key>CFBundlePackageType</key>
|
|
24
24
|
<string>APPL</string>
|
|
25
25
|
<key>CFBundleShortVersionString</key>
|
|
26
|
-
<string>0.1.
|
|
26
|
+
<string>0.1.38</string>
|
|
27
27
|
<key>CFBundleSupportedPlatforms</key>
|
|
28
28
|
<array>
|
|
29
29
|
<string>MacOSX</string>
|
|
30
30
|
</array>
|
|
31
31
|
<key>CFBundleVersion</key>
|
|
32
|
-
<string>
|
|
32
|
+
<string>202605201016</string>
|
|
33
33
|
<key>DTCompiler</key>
|
|
34
34
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
35
35
|
<key>DTPlatformBuild</key>
|
|
Binary file
|
package/bin/Safari Pilot.app/Contents/PlugIns/Safari Pilot Extension.appex/Contents/Info.plist
CHANGED
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
<key>CFBundlePackageType</key>
|
|
20
20
|
<string>XPC!</string>
|
|
21
21
|
<key>CFBundleShortVersionString</key>
|
|
22
|
-
<string>0.1.
|
|
22
|
+
<string>0.1.38</string>
|
|
23
23
|
<key>CFBundleSupportedPlatforms</key>
|
|
24
24
|
<array>
|
|
25
25
|
<string>MacOSX</string>
|
|
26
26
|
</array>
|
|
27
27
|
<key>CFBundleVersion</key>
|
|
28
|
-
<string>
|
|
28
|
+
<string>202605201016</string>
|
|
29
29
|
<key>DTCompiler</key>
|
|
30
30
|
<string>com.apple.compilers.llvm.clang.1_0</string>
|
|
31
31
|
<key>DTPlatformBuild</key>
|
|
Binary file
|
|
@@ -1480,6 +1480,44 @@ async function wakeSequence(reason) {
|
|
|
1480
1480
|
catch (e) { emitTrace('__wake__', 'wake_cleanup_error', { errName: e?.name, errMessage: e?.message }); }
|
|
1481
1481
|
}
|
|
1482
1482
|
|
|
1483
|
+
// T08 (v0.1.38) — ad/tracking block rules. Ad-heavy pages (recipe sites,
|
|
1484
|
+
// news) load programmatic-ad + analytics JS that wedges Safari's WebContent
|
|
1485
|
+
// main thread, timing out every extension tool (Allrecipes--0/1/4, Amazon--3,
|
|
1486
|
+
// ESPN--1 catastrophically regressed: 300-979s/18-46 turns). Blocking these
|
|
1487
|
+
// domains at the network layer (declarativeNetRequest) BEFORE the page loads
|
|
1488
|
+
// prevents the wedge — the robust fix the bounded wedge-retry only partially
|
|
1489
|
+
// mitigates. Fixed rule IDs 9001+ avoid collision with the caller-supplied
|
|
1490
|
+
// auth DNR rules (handleDnrAddRule). Idempotent: clears then re-adds.
|
|
1491
|
+
const AD_BLOCK_RULE_BASE_ID = 9001;
|
|
1492
|
+
const AD_BLOCK_DOMAINS = [
|
|
1493
|
+
'doubleclick.net', 'googlesyndication.com', 'google-analytics.com',
|
|
1494
|
+
'googletagmanager.com', 'googletagservices.com', 'adservice.google.com',
|
|
1495
|
+
'amazon-adsystem.com', 'adsystem.com', 'adnxs.com', 'scorecardresearch.com',
|
|
1496
|
+
'moatads.com', 'adsrvr.org', 'pubmatic.com', 'rubiconproject.com',
|
|
1497
|
+
'criteo.com', 'criteo.net', 'taboola.com', 'outbrain.com',
|
|
1498
|
+
'casalemedia.com', '3lift.com', 'indexww.com', 'openx.net',
|
|
1499
|
+
'quantserve.com', 'bidswitch.net', 'sharethrough.com', 'teads.tv',
|
|
1500
|
+
];
|
|
1501
|
+
async function registerAdBlockRules() {
|
|
1502
|
+
try {
|
|
1503
|
+
if (!browser.declarativeNetRequest || typeof browser.declarativeNetRequest.updateDynamicRules !== 'function') return;
|
|
1504
|
+
const ids = AD_BLOCK_DOMAINS.map((_, i) => AD_BLOCK_RULE_BASE_ID + i);
|
|
1505
|
+
const rules = AD_BLOCK_DOMAINS.map((domain, i) => ({
|
|
1506
|
+
id: AD_BLOCK_RULE_BASE_ID + i,
|
|
1507
|
+
priority: 1,
|
|
1508
|
+
action: { type: 'block' },
|
|
1509
|
+
condition: {
|
|
1510
|
+
urlFilter: `||${domain}`,
|
|
1511
|
+
resourceTypes: ['script', 'xmlhttprequest', 'sub_frame', 'image', 'ping', 'media'],
|
|
1512
|
+
},
|
|
1513
|
+
}));
|
|
1514
|
+
await browser.declarativeNetRequest.updateDynamicRules({ removeRuleIds: ids, addRules: rules });
|
|
1515
|
+
emitTrace('__init__', 'adblock_rules_registered', { count: rules.length });
|
|
1516
|
+
} catch (e) {
|
|
1517
|
+
emitTrace('__init__', 'adblock_rules_error', { errName: e?.name, errMessage: e?.message });
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1483
1521
|
async function initialize(reason) {
|
|
1484
1522
|
if (isWakeRunning) {
|
|
1485
1523
|
// T60 diagnostic: when alarm fires while a prior setup is still in
|
|
@@ -1499,6 +1537,9 @@ async function initialize(reason) {
|
|
|
1499
1537
|
if (!alarms.some(a => a.name === KEEPALIVE_ALARM_NAME)) {
|
|
1500
1538
|
browser.alarms.create(KEEPALIVE_ALARM_NAME, { periodInMinutes: KEEPALIVE_PERIOD_MIN });
|
|
1501
1539
|
}
|
|
1540
|
+
// T08 — register ad/tracking block rules (idempotent) so ad-heavy pages
|
|
1541
|
+
// don't wedge the WebContent main thread. Best-effort; doesn't block init.
|
|
1542
|
+
await registerAdBlockRules();
|
|
1502
1543
|
await wakeSequence(reason);
|
|
1503
1544
|
while (wakePending) {
|
|
1504
1545
|
wakePending = false;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<dict>
|
|
7
7
|
<key>Resources/background.js</key>
|
|
8
8
|
<data>
|
|
9
|
-
|
|
9
|
+
gnF+SNDNMWapjH51MsZFEvaBT28=
|
|
10
10
|
</data>
|
|
11
11
|
<key>Resources/build.config.js</key>
|
|
12
12
|
<data>
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
</data>
|
|
63
63
|
<key>Resources/manifest.json</key>
|
|
64
64
|
<data>
|
|
65
|
-
|
|
65
|
+
u9y7HmaLMNA6YAfmGIoos870eBc=
|
|
66
66
|
</data>
|
|
67
67
|
<key>Resources/native/SafariWebExtensionHandler.swift</key>
|
|
68
68
|
<data>
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
<dict>
|
|
76
76
|
<key>hash2</key>
|
|
77
77
|
<data>
|
|
78
|
-
|
|
78
|
+
G1vWWteYfAtOJVIQ/DDp9e6nVKh+JqYIYK6TgriPZss=
|
|
79
79
|
</data>
|
|
80
80
|
</dict>
|
|
81
81
|
<key>Resources/build.config.js</key>
|
|
@@ -173,7 +173,7 @@
|
|
|
173
173
|
<dict>
|
|
174
174
|
<key>hash2</key>
|
|
175
175
|
<data>
|
|
176
|
-
|
|
176
|
+
cV5bA8kjHjx3kPGdgMNYvRSttvSlsJjyfRXbPI7F6+0=
|
|
177
177
|
</data>
|
|
178
178
|
</dict>
|
|
179
179
|
<key>Resources/native/SafariWebExtensionHandler.swift</key>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -18,15 +18,15 @@
|
|
|
18
18
|
</data>
|
|
19
19
|
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
|
|
20
20
|
<data>
|
|
21
|
-
|
|
21
|
+
MVI6H6eCJJX7BLAzjsHGrABugRs=
|
|
22
22
|
</data>
|
|
23
23
|
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
|
|
24
24
|
<data>
|
|
25
|
-
|
|
25
|
+
/q8pPQG1iaOXkvKIAEoGPntl6OA=
|
|
26
26
|
</data>
|
|
27
27
|
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
|
|
28
28
|
<data>
|
|
29
|
-
|
|
29
|
+
d6W8H9Oo1RBZrv5mCZPub0f9Q4c=
|
|
30
30
|
</data>
|
|
31
31
|
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
|
|
32
32
|
<data>
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
<dict>
|
|
52
52
|
<key>cdhash</key>
|
|
53
53
|
<data>
|
|
54
|
-
|
|
54
|
+
lbTZHhoy3Tp59cVqrrPdVbA3Fao=
|
|
55
55
|
</data>
|
|
56
56
|
<key>requirement</key>
|
|
57
57
|
<string>anchor apple generic and identifier "com.safari-pilot.app.Extension" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = V37WLKRXUJ)</string>
|
|
@@ -81,21 +81,21 @@
|
|
|
81
81
|
<dict>
|
|
82
82
|
<key>hash2</key>
|
|
83
83
|
<data>
|
|
84
|
-
|
|
84
|
+
yNBlMo6MZ9BwnV0oZZK3OxUj2zEJzq69P6Q3WkM7IRM=
|
|
85
85
|
</data>
|
|
86
86
|
</dict>
|
|
87
87
|
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
|
|
88
88
|
<dict>
|
|
89
89
|
<key>hash2</key>
|
|
90
90
|
<data>
|
|
91
|
-
|
|
91
|
+
CuabY4PDrgfa7+xBtTVr+3ILb/xZDtShtH740030LHY=
|
|
92
92
|
</data>
|
|
93
93
|
</dict>
|
|
94
94
|
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
|
|
95
95
|
<dict>
|
|
96
96
|
<key>hash2</key>
|
|
97
97
|
<data>
|
|
98
|
-
|
|
98
|
+
EioYuv3NK2CE7h8GGwvADUPMpIHl/pGqWXEO9atB/LE=
|
|
99
99
|
</data>
|
|
100
100
|
</dict>
|
|
101
101
|
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
|
package/bin/Safari Pilot.zip
CHANGED
|
Binary file
|
package/bin/SafariPilotd
CHANGED
|
Binary file
|
package/dist/locator.js
CHANGED
|
@@ -99,6 +99,31 @@ export function extractLocatorFromParams(params) {
|
|
|
99
99
|
}
|
|
100
100
|
if (typeof params.exact === 'boolean')
|
|
101
101
|
desc.exact = params.exact;
|
|
102
|
+
// v0.1.37 T02 — role+text alias to role+name. When the agent writes
|
|
103
|
+
// `safari_click({role:"link", text:"X"})` the natural intent is "click
|
|
104
|
+
// the LINK whose visible name is X" (Playwright's `getByRole('link',
|
|
105
|
+
// {name:'X'})`). Without this alias, generateLocatorJs's priority table
|
|
106
|
+
// picks role-only, ignoring text — every element with role=link matches
|
|
107
|
+
// and strict-mode rejects (empirical evidence: bare2-sp Allrecipes--1
|
|
108
|
+
// events #43-44, 221 elements matched). Gated on:
|
|
109
|
+
// - role present
|
|
110
|
+
// - name absent (explicit name always wins)
|
|
111
|
+
// - text is a non-empty string (empty would match all empty-name elements)
|
|
112
|
+
if (desc.role !== undefined &&
|
|
113
|
+
desc.name === undefined &&
|
|
114
|
+
typeof desc.text === 'string' &&
|
|
115
|
+
desc.text.length > 0) {
|
|
116
|
+
desc.name = desc.text;
|
|
117
|
+
delete desc.text;
|
|
118
|
+
}
|
|
119
|
+
else if (desc.role !== undefined &&
|
|
120
|
+
desc.name !== undefined &&
|
|
121
|
+
typeof desc.text === 'string') {
|
|
122
|
+
// Explicit name + text: drop text so the descriptor unambiguously
|
|
123
|
+
// expresses role+name. Without dropping, downstream priority table
|
|
124
|
+
// picks role (text is lower) but the leftover text obscures intent.
|
|
125
|
+
delete desc.text;
|
|
126
|
+
}
|
|
102
127
|
// T77: chain — array of ChainOp entries. Filter malformed entries (must be
|
|
103
128
|
// an object with a string `op` discriminator). Don't set `chain` if no
|
|
104
129
|
// valid entries survive.
|
package/dist/locator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"locator.js","sourceRoot":"","sources":["../src/locator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"locator.js","sourceRoot":"","sources":["../src/locator.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
|
@@ -184,6 +184,15 @@ export declare class SafariPilotServer {
|
|
|
184
184
|
getAllToolDefinitions(): ToolDefinition[];
|
|
185
185
|
start(): Promise<void>;
|
|
186
186
|
shutdown(): Promise<void>;
|
|
187
|
+
private countSessionTitledWindows;
|
|
188
|
+
/**
|
|
189
|
+
* T04 — best-effort sweep for session-titled windows that survived
|
|
190
|
+
* closeSessionWindow. Triggered only when no other live MCP sessions
|
|
191
|
+
* exist (per countSessionTitledWindows pre-check). Closes leaked
|
|
192
|
+
* windows that the windowId-based close missed (windowId race, stale
|
|
193
|
+
* id, AppleScript silent no-op, etc.).
|
|
194
|
+
*/
|
|
195
|
+
private sweepRemainingSessionWindows;
|
|
187
196
|
private closeSessionWindow;
|
|
188
197
|
}
|
|
189
198
|
export declare function createServer(): Promise<SafariPilotServer>;
|
package/dist/server.js
CHANGED
|
@@ -1656,11 +1656,74 @@ end tell'`, { timeout: 5_000, encoding: 'utf-8' });
|
|
|
1656
1656
|
// see stray `example.com` windows accumulate across MCP server lifecycles.
|
|
1657
1657
|
// Uses direct execSync with a short timeout so an unresponsive Safari can't
|
|
1658
1658
|
// deadlock the shutdown path.
|
|
1659
|
+
//
|
|
1660
|
+
// T04 (2026-05-20) — count session-titled windows BEFORE closing ours so we
|
|
1661
|
+
// know whether any other live MCP sessions own a session window. If we're
|
|
1662
|
+
// the only one, sweep any session-titled windows that remain AFTER our
|
|
1663
|
+
// windowId-based close — that catches non-deterministic windowId-race
|
|
1664
|
+
// leaks (closeSessionWindow returning "not_found" while our actual window
|
|
1665
|
+
// persists). Skipping the sweep when other sessions exist preserves their
|
|
1666
|
+
// windows.
|
|
1667
|
+
const sessionTitledBefore = await this.countSessionTitledWindows();
|
|
1659
1668
|
await this.closeSessionWindow();
|
|
1669
|
+
// Other sessions ≈ titled-windows - ourselves. If we owned one and
|
|
1670
|
+
// closeSessionWindow attempted to close it, count - 1; if we didn't own
|
|
1671
|
+
// one (rare boot path), count - 0. Use count - 1 as the conservative
|
|
1672
|
+
// estimate; sweep only when 0 estimated others.
|
|
1673
|
+
const otherSessionsLive = Math.max(0, sessionTitledBefore - 1);
|
|
1674
|
+
if (otherSessionsLive === 0) {
|
|
1675
|
+
await this.sweepRemainingSessionWindows();
|
|
1676
|
+
}
|
|
1677
|
+
else {
|
|
1678
|
+
trace('shutdown', 'server', 'sweep_skipped', {
|
|
1679
|
+
reason: 'other_live_sessions',
|
|
1680
|
+
sessionTitledBefore,
|
|
1681
|
+
otherSessionsLive,
|
|
1682
|
+
});
|
|
1683
|
+
}
|
|
1660
1684
|
for (const engine of this.engines.values()) {
|
|
1661
1685
|
await engine.shutdown();
|
|
1662
1686
|
}
|
|
1663
1687
|
}
|
|
1688
|
+
async countSessionTitledWindows() {
|
|
1689
|
+
try {
|
|
1690
|
+
const { execSync } = await import('node:child_process');
|
|
1691
|
+
const out = execSync(`osascript -e 'tell application "Safari" to return (count of (every window whose name is "Safari Pilot — Active Session"))'`, { timeout: 2000, encoding: 'utf-8' }).trim();
|
|
1692
|
+
const n = parseInt(out, 10);
|
|
1693
|
+
return Number.isFinite(n) ? n : 0;
|
|
1694
|
+
}
|
|
1695
|
+
catch {
|
|
1696
|
+
return 0;
|
|
1697
|
+
}
|
|
1698
|
+
}
|
|
1699
|
+
/**
|
|
1700
|
+
* T04 — best-effort sweep for session-titled windows that survived
|
|
1701
|
+
* closeSessionWindow. Triggered only when no other live MCP sessions
|
|
1702
|
+
* exist (per countSessionTitledWindows pre-check). Closes leaked
|
|
1703
|
+
* windows that the windowId-based close missed (windowId race, stale
|
|
1704
|
+
* id, AppleScript silent no-op, etc.).
|
|
1705
|
+
*/
|
|
1706
|
+
async sweepRemainingSessionWindows() {
|
|
1707
|
+
try {
|
|
1708
|
+
const { execSync } = await import('node:child_process');
|
|
1709
|
+
const out = execSync(`osascript -e 'tell application "Safari"
|
|
1710
|
+
set targetWindows to (every window whose name is "Safari Pilot — Active Session")
|
|
1711
|
+
set closedCount to 0
|
|
1712
|
+
repeat with w in targetWindows
|
|
1713
|
+
try
|
|
1714
|
+
close w
|
|
1715
|
+
set closedCount to closedCount + 1
|
|
1716
|
+
end try
|
|
1717
|
+
end repeat
|
|
1718
|
+
return closedCount
|
|
1719
|
+
end tell'`, { timeout: 3000, encoding: 'utf-8' }).trim();
|
|
1720
|
+
const n = parseInt(out, 10);
|
|
1721
|
+
trace('shutdown', 'server', 'sweep_done', { closed: Number.isFinite(n) ? n : 0 });
|
|
1722
|
+
}
|
|
1723
|
+
catch (err) {
|
|
1724
|
+
trace('shutdown', 'server', 'sweep_failed', { error: String(err) }, 'error');
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1664
1727
|
async closeSessionWindow() {
|
|
1665
1728
|
const wid = this._sessionWindowId;
|
|
1666
1729
|
if (wid === undefined)
|
|
@@ -1669,8 +1732,20 @@ end tell'`, { timeout: 5_000, encoding: 'utf-8' });
|
|
|
1669
1732
|
trace('shutdown', 'server', 'session_window_close_start', { windowId: wid });
|
|
1670
1733
|
try {
|
|
1671
1734
|
const { execSync } = await import('node:child_process');
|
|
1672
|
-
|
|
1673
|
-
|
|
1735
|
+
// T03 — return whether the close actually fired vs. window already gone.
|
|
1736
|
+
// Pre-fix logged "session_window_closed" in both cases, masking real
|
|
1737
|
+
// leak conditions (stale wid, AppleScript silent failure, etc.).
|
|
1738
|
+
const out = execSync(`osascript -e 'tell application "Safari"
|
|
1739
|
+
if (exists window id ${wid}) then
|
|
1740
|
+
close window id ${wid}
|
|
1741
|
+
return "closed"
|
|
1742
|
+
else
|
|
1743
|
+
return "not_found"
|
|
1744
|
+
end if
|
|
1745
|
+
end tell'`, { timeout: 3000, encoding: 'utf-8' }).trim();
|
|
1746
|
+
trace('shutdown', 'server', 'session_window_close_result', {
|
|
1747
|
+
windowId: wid, result: out,
|
|
1748
|
+
}, out === 'closed' ? 'event' : 'error');
|
|
1674
1749
|
}
|
|
1675
1750
|
catch (err) {
|
|
1676
1751
|
trace('shutdown', 'server', 'session_window_close_failed', {
|