Reported symptom: harvest opens the More menu then moves on without ever hovering Download. Cause: the size flyout's text can glue onto the Download row (textContent "Download1K Original size2K Upscaled..."), so the old /^download\b/ match — which needs a word boundary right after "download" — returned null and the whole size step was skipped. Fix: findDownloadRow() matches "download" anywhere and takes the SHORTEST visible candidate (the row itself, not a wrapper that swallowed the flyout). Stage-3 hover now moves in two steps (approach from the left, then settle on centre) to fire a real mouseenter that unfurls the submenu, and re-queries. Added per-stage logging (Download row text+coords, chosen size option) so a copied log shows exactly where any future miss happens. Popup gains a Copy button (whole activity log to clipboard) and log retention is raised 100 -> 300 so a full harvest pass is capturable. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
94 lines
3.4 KiB
HTML
94 lines
3.4 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Flow Auto-Pilot</title>
|
|
<link rel="stylesheet" href="popup.css">
|
|
</head>
|
|
<body>
|
|
<div class="app-container">
|
|
<!-- Header -->
|
|
<header class="app-header">
|
|
<div class="logo-area">
|
|
<span class="logo-icon">⚡</span>
|
|
<div class="logo-text">
|
|
<h1>Flow Auto-Pilot</h1>
|
|
<span class="subtext">Labs FX Integration</span>
|
|
</div>
|
|
</div>
|
|
<div class="status-indicator" id="global-status">
|
|
<span class="dot"></span>
|
|
<span class="status-label">Idle</span>
|
|
</div>
|
|
</header>
|
|
|
|
<!-- Main Control Panel -->
|
|
<main class="control-panel">
|
|
<!-- Connection Input -->
|
|
<div class="form-group">
|
|
<label for="server-url">Local Server URL</label>
|
|
<div class="input-with-button">
|
|
<input type="url" id="server-url" value="http://localhost:8017" placeholder="http://localhost:8017">
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Action Buttons: Prompt Mode runs the queue; DL Mode grabs what's on screen -->
|
|
<div class="actions" style="display:flex;gap:8px">
|
|
<button id="toggle-btn" class="btn btn-primary start-state" style="flex:1">▶ Prompt Mode</button>
|
|
<button id="dl-btn" class="btn btn-primary start-state" style="flex:1">⬇ DL Mode</button>
|
|
</div>
|
|
|
|
<label class="form-group" style="display:flex;align-items:center;gap:8px;cursor:pointer">
|
|
<input type="checkbox" id="auto-start"> Auto-start when the Flow tab opens
|
|
</label>
|
|
|
|
<!-- Console / Activity Logs -->
|
|
<div class="console-section">
|
|
<div class="console-header">
|
|
<span>Activity Log</span>
|
|
<span><button id="copy-logs" class="btn-text">Copy</button> <button id="clear-logs" class="btn-text">Clear</button></span>
|
|
</div>
|
|
<div class="console-body" id="log-console">
|
|
<div class="log-entry system-log">[System] Extension loaded. Click Start to begin.</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Collapsible Settings -->
|
|
<details class="advanced-settings">
|
|
<summary>Advanced Selector Adjustments</summary>
|
|
<div class="settings-content">
|
|
<p class="settings-info">Customize targets if the page layout changes. Leave blank for auto-detection.</p>
|
|
|
|
<div class="form-group">
|
|
<label for="sel-prompt">Prompt Input Selector</label>
|
|
<input type="text" id="sel-prompt" placeholder="Auto-detect (textarea / editable div)">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="sel-generate">Submit Button Selector</label>
|
|
<input type="text" id="sel-generate" placeholder="Auto-detect (→ arrow / send)">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="sel-model">Results / Media Selector</label>
|
|
<input type="text" id="sel-model" placeholder="Auto-detect (media library container)">
|
|
</div>
|
|
|
|
<div class="form-group">
|
|
<label for="poll-interval">Polling Interval (ms)</label>
|
|
<input type="number" id="poll-interval" value="4000" min="1000" step="500">
|
|
</div>
|
|
</div>
|
|
</details>
|
|
</main>
|
|
|
|
<!-- Footer -->
|
|
<footer class="app-footer">
|
|
<span>Active Tab Automation</span>
|
|
<span class="version">v1.0.0</span>
|
|
</footer>
|
|
</div>
|
|
<script src="popup.js"></script>
|
|
</body>
|
|
</html>
|