@sleep2agi/agent-network-dashboard 0.4.6-preview.113 → 0.4.6-preview.115
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/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +31 -31
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +11 -11
- package/.next/server/app/_not-found.segments/_full.segment.rsc +11 -11
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +13 -13
- package/.next/server/app/admin.segments/_full.segment.rsc +13 -13
- package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
- package/.next/server/app/admin.segments/_index.segment.rsc +6 -6
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +13 -13
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +13 -13
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +6 -6
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +13 -13
- package/.next/server/app/login.segments/_full.segment.rsc +13 -13
- package/.next/server/app/login.segments/_head.segment.rsc +4 -4
- package/.next/server/app/login.segments/_index.segment.rsc +6 -6
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/login.segments/login.segment.rsc +3 -3
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +13 -13
- package/.next/server/app/logs.segments/_full.segment.rsc +13 -13
- package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/logs.segments/_index.segment.rsc +6 -6
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +13 -13
- package/.next/server/app/messages.segments/_full.segment.rsc +13 -13
- package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
- package/.next/server/app/messages.segments/_index.segment.rsc +6 -6
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +13 -13
- package/.next/server/app/node.segments/_full.segment.rsc +13 -13
- package/.next/server/app/node.segments/_head.segment.rsc +4 -4
- package/.next/server/app/node.segments/_index.segment.rsc +6 -6
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/node.segments/node.segment.rsc +3 -3
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +13 -13
- package/.next/server/app/nodes.segments/_full.segment.rsc +13 -13
- package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/_index.segment.rsc +6 -6
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +13 -13
- package/.next/server/app/server-logs.segments/_full.segment.rsc +13 -13
- package/.next/server/app/server-logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/_index.segment.rsc +6 -6
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +3 -3
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +13 -13
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +13 -13
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +6 -6
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +13 -13
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +13 -13
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +6 -6
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +13 -13
- package/.next/server/app/settings.segments/_full.segment.rsc +13 -13
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +6 -6
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +13 -13
- package/.next/server/app/tasks.segments/_full.segment.rsc +13 -13
- package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/_index.segment.rsc +6 -6
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0mvyi-4._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_components_0mvyi-4._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{0g6p4eq70q6i3.js → 0-2.ylqehnecy.js} +1 -1
- package/.next/static/chunks/{0rq7zc3c6~k5q.js → 0dsv70iaklsvh.js} +3 -3
- package/.next/static/chunks/{0h24lkna3-_3v.js → 0ff.kr519v8o8.js} +1 -1
- package/.next/static/chunks/{121d8yvfl8l_..js → 0yx4t7m.b5ckw.js} +2 -2
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/CommandPalette.tsx +27 -0
- package/app/components/TopoGraph.tsx +26 -1
- package/package.json +1 -1
- package/scripts/topo-cmdk-vendor-pin-test.mjs +103 -0
- package/scripts/topo-group-label-tint-test.mjs +99 -0
- /package/.next/static/{j0uI-MQ8MXUGBpownTJQf → hRq3dUUsWm8pBggHei8ua}/_buildManifest.js +0 -0
- /package/.next/static/{j0uI-MQ8MXUGBpownTJQf → hRq3dUUsWm8pBggHei8ua}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{j0uI-MQ8MXUGBpownTJQf → hRq3dUUsWm8pBggHei8ua}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/* Round 108 verification: Cmd+K palette can pin a vendor filter via
|
|
2
|
+
* three new static actions ("Pin topology filter: Anthropic" /
|
|
3
|
+
* OpenAI / 书生). TopoGraph's R69 listener handles kind='vendor' to
|
|
4
|
+
* setPinnedVendor. The R88 stale-purge cleans up if the vendor isn't
|
|
5
|
+
* in the fleet.
|
|
6
|
+
*
|
|
7
|
+
* Drives via direct CustomEvent dispatch (same deterministic path
|
|
8
|
+
* R82/R90 tests use — fuzzy-match-free). Verifies pin sticks, vendor
|
|
9
|
+
* pill renders, storage persists, and Esc / clear-all release.
|
|
10
|
+
*/
|
|
11
|
+
import { chromium } from 'playwright';
|
|
12
|
+
import { readFileSync } from 'node:fs';
|
|
13
|
+
|
|
14
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
15
|
+
const browser = await chromium.launch({ headless: true });
|
|
16
|
+
const ctx = await browser.newContext({ viewport: { width: 1400, height: 1200 } });
|
|
17
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
18
|
+
await ctx.addInitScript(() => {
|
|
19
|
+
try {
|
|
20
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
21
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
22
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
23
|
+
sessionStorage.removeItem('anet-topo-pinned-status');
|
|
24
|
+
sessionStorage.removeItem('anet-topo-pinned-group');
|
|
25
|
+
sessionStorage.removeItem('anet-topo-pinned-vendor');
|
|
26
|
+
} catch {}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
30
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
31
|
+
const r = await route.fetch();
|
|
32
|
+
const b = await r.json();
|
|
33
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
34
|
+
const mk = (alias, model) => ({
|
|
35
|
+
alias, status: 'idle', model, runtime: 'cli-claude-code',
|
|
36
|
+
network_id: nid, project_dir: null,
|
|
37
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
38
|
+
});
|
|
39
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
40
|
+
mk('alpha', 'claude-opus-4'), // A (Anthropic)
|
|
41
|
+
mk('beta', 'gpt-5'), // O (OpenAI)
|
|
42
|
+
mk('gamma', 'claude-opus-4'), // A
|
|
43
|
+
] } });
|
|
44
|
+
});
|
|
45
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
46
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
47
|
+
const page = await ctx.newPage();
|
|
48
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
49
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 3, { timeout: 30000 });
|
|
50
|
+
await page.waitForTimeout(400);
|
|
51
|
+
|
|
52
|
+
const pillCount = () => page.locator('[data-active-filter="vendor"]').count();
|
|
53
|
+
const storage = () => page.evaluate(() => sessionStorage.getItem('anet-topo-pinned-vendor'));
|
|
54
|
+
const opacities = () => page.evaluate(() => {
|
|
55
|
+
const o = {};
|
|
56
|
+
for (const a of ['alpha', 'beta', 'gamma']) {
|
|
57
|
+
const g = document.querySelector(`g[data-node="${a}"]`);
|
|
58
|
+
o[a] = g ? +(g.style.opacity || '1') : null;
|
|
59
|
+
}
|
|
60
|
+
return o;
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// Initial state — no pin.
|
|
64
|
+
const beforePill = await pillCount();
|
|
65
|
+
const beforeStorage = await storage();
|
|
66
|
+
|
|
67
|
+
// Pin A via R108 palette action's CustomEvent.
|
|
68
|
+
await page.evaluate(() => {
|
|
69
|
+
sessionStorage.setItem('anet-topo-pinned-vendor', 'A');
|
|
70
|
+
window.dispatchEvent(new CustomEvent('anet:topo-pin', { detail: { kind: 'vendor', value: 'A' } }));
|
|
71
|
+
});
|
|
72
|
+
await page.waitForTimeout(300);
|
|
73
|
+
const afterPinA_ops = await opacities();
|
|
74
|
+
const afterPinA_pill = await pillCount();
|
|
75
|
+
const afterPinA_storage = await storage();
|
|
76
|
+
|
|
77
|
+
// Esc → clear pin.
|
|
78
|
+
await page.keyboard.press('Escape');
|
|
79
|
+
await page.waitForTimeout(300);
|
|
80
|
+
const afterEsc_pill = await pillCount();
|
|
81
|
+
const afterEsc_storage = await storage();
|
|
82
|
+
|
|
83
|
+
await browser.close();
|
|
84
|
+
|
|
85
|
+
const bright = (v) => v != null && v >= 0.55;
|
|
86
|
+
const dim = (v) => v != null && v < 0.4;
|
|
87
|
+
const results = {
|
|
88
|
+
before_noPill: beforePill === 0,
|
|
89
|
+
before_noStorage: beforeStorage === null,
|
|
90
|
+
pinA_pillShown: afterPinA_pill === 1,
|
|
91
|
+
pinA_storageWritten: afterPinA_storage === 'A',
|
|
92
|
+
pinA_keepsClaudes: bright(afterPinA_ops.alpha) && bright(afterPinA_ops.gamma),
|
|
93
|
+
pinA_dimsGPT: dim(afterPinA_ops.beta),
|
|
94
|
+
esc_clearsPill: afterEsc_pill === 0,
|
|
95
|
+
esc_clearsStorage: afterEsc_storage === null,
|
|
96
|
+
};
|
|
97
|
+
const ok = Object.values(results).every(Boolean);
|
|
98
|
+
console.log(`${ok ? '✅' : '❌'} cmdk vendor pin:`, JSON.stringify(results),
|
|
99
|
+
`\n afterPinA_ops=`, afterPinA_ops,
|
|
100
|
+
`\n afterPinA_pill=`, afterPinA_pill,
|
|
101
|
+
`\n afterPinA_storage=`, afterPinA_storage,
|
|
102
|
+
`\n afterEsc_pill=`, afterEsc_pill);
|
|
103
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/* Round 107 verification: group-label hit `<rect>` picks up a tint
|
|
2
|
+
* on hover and pin — extends the R104 (recent-signal) / R105
|
|
3
|
+
* (legend) list-item-tint pattern to the SVG group labels. The tint
|
|
4
|
+
* is pal.legendAccent (cyan) since groups don't carry an inherent
|
|
5
|
+
* swatch; same colour family R68 already uses for hovered/pinned
|
|
6
|
+
* group-box strokes.
|
|
7
|
+
*
|
|
8
|
+
* Verifies idle / hover / pinned via the new data-group-label-tinted
|
|
9
|
+
* attribute + fill/opacity. Pin opacity stronger than hover.
|
|
10
|
+
*/
|
|
11
|
+
import { chromium } from 'playwright';
|
|
12
|
+
import { readFileSync } from 'node:fs';
|
|
13
|
+
|
|
14
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
15
|
+
const browser = await chromium.launch({ headless: true });
|
|
16
|
+
|
|
17
|
+
const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
|
|
18
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
19
|
+
await ctx.addInitScript(() => {
|
|
20
|
+
try {
|
|
21
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
22
|
+
localStorage.setItem('anet-topo-layout', 'grid');
|
|
23
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
24
|
+
sessionStorage.removeItem('anet-topo-pinned-group');
|
|
25
|
+
} catch {}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
29
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
30
|
+
const r = await route.fetch();
|
|
31
|
+
const b = await r.json();
|
|
32
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
33
|
+
const mk = (alias) => ({
|
|
34
|
+
alias, status: 'idle', model: 'claude-opus-4', runtime: 'cli-claude-code',
|
|
35
|
+
network_id: nid, project_dir: null,
|
|
36
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
37
|
+
});
|
|
38
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
39
|
+
mk('alpha1'), mk('alpha2'), mk('alpha3'),
|
|
40
|
+
mk('beta1'), mk('beta2'),
|
|
41
|
+
] } });
|
|
42
|
+
});
|
|
43
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
44
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
45
|
+
const page = await ctx.newPage();
|
|
46
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
47
|
+
await page.waitForFunction(() => document.querySelectorAll('[data-group-label-hit]').length >= 2, { timeout: 30000 });
|
|
48
|
+
await page.waitForTimeout(400);
|
|
49
|
+
|
|
50
|
+
const readLabel = (key) => page.evaluate((k) => {
|
|
51
|
+
const g = document.querySelector(`[data-group-label-hit="${k}"]`);
|
|
52
|
+
if (!g) return null;
|
|
53
|
+
const rect = g.querySelector('rect');
|
|
54
|
+
return {
|
|
55
|
+
tinted: rect?.getAttribute('data-group-label-tinted') || '',
|
|
56
|
+
fill: rect?.getAttribute('fill') || '',
|
|
57
|
+
opacity: rect?.getAttribute('opacity') || '',
|
|
58
|
+
};
|
|
59
|
+
}, key);
|
|
60
|
+
|
|
61
|
+
const beforeAlpha = await readLabel('alpha');
|
|
62
|
+
const beforeBeta = await readLabel('beta');
|
|
63
|
+
|
|
64
|
+
// Hover alpha label.
|
|
65
|
+
await page.locator('[data-group-label-hit="alpha"]').hover();
|
|
66
|
+
await page.waitForTimeout(250);
|
|
67
|
+
const onHoverAlpha = await readLabel('alpha');
|
|
68
|
+
const onHoverBeta = await readLabel('beta');
|
|
69
|
+
|
|
70
|
+
// Move pointer far away.
|
|
71
|
+
await page.mouse.move(10, 10);
|
|
72
|
+
await page.waitForTimeout(250);
|
|
73
|
+
|
|
74
|
+
// Pin beta.
|
|
75
|
+
await page.locator('[data-group-label-hit="beta"]').click();
|
|
76
|
+
await page.mouse.move(10, 10);
|
|
77
|
+
await page.waitForTimeout(250);
|
|
78
|
+
const pinBeta = await readLabel('beta');
|
|
79
|
+
const pinAlphaUnchanged = await readLabel('alpha');
|
|
80
|
+
|
|
81
|
+
await browser.close();
|
|
82
|
+
|
|
83
|
+
const opacity = (s) => parseFloat(s) || 0;
|
|
84
|
+
const results = {
|
|
85
|
+
before_alphaTransparent: beforeAlpha?.tinted === 'none' && beforeAlpha?.fill === 'transparent',
|
|
86
|
+
before_betaTransparent: beforeBeta?.tinted === 'none' && beforeBeta?.fill === 'transparent',
|
|
87
|
+
hover_alphaTinted: onHoverAlpha?.tinted === 'hover' && onHoverAlpha?.fill !== 'transparent',
|
|
88
|
+
hover_alphaOpacityLow: opacity(onHoverAlpha?.opacity || '') > 0 && opacity(onHoverAlpha?.opacity || '') < 0.2,
|
|
89
|
+
hover_betaUnchanged: onHoverBeta?.tinted === 'none',
|
|
90
|
+
pin_betaPinned: pinBeta?.tinted === 'pinned' && pinBeta?.fill !== 'transparent',
|
|
91
|
+
pin_strongerThanHover: opacity(pinBeta?.opacity || '') > opacity(onHoverAlpha?.opacity || ''),
|
|
92
|
+
pin_alphaClean: pinAlphaUnchanged?.tinted === 'none',
|
|
93
|
+
};
|
|
94
|
+
const ok = Object.values(results).every(Boolean);
|
|
95
|
+
console.log(`${ok ? '✅' : '❌'} group-label tint:`, JSON.stringify(results),
|
|
96
|
+
`\n beforeAlpha=`, beforeAlpha,
|
|
97
|
+
`\n onHoverAlpha=`, onHoverAlpha,
|
|
98
|
+
`\n pinBeta=`, pinBeta);
|
|
99
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{j0uI-MQ8MXUGBpownTJQf → hRq3dUUsWm8pBggHei8ua}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|