<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Settings Reference</title><link>https://sourceforge.net/p/lastest/wiki/Settings%2520Reference/</link><description>Recent changes to Settings Reference</description><atom:link href="https://sourceforge.net/p/lastest/wiki/Settings%20Reference/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 06 May 2026 09:06:53 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/lastest/wiki/Settings%20Reference/feed" rel="self" type="application/rss+xml"/><item><title>Settings Reference modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Settings%2520Reference/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -87,6 +87,8 @@
 | Pixel threshold | Number of pixels to trigger change |
 | Percentage threshold | Percentage of pixels to trigger change |
 | Page shift detection | Detect vertical content shifts |
+| DOM diff fallback | Run a structural DOM diff alongside pixel comparison when results are inconclusive |
+| Per-step ignore regions | Ignore regions are scoped to the screenshot they were drawn on (not the whole test) |

 See [Visual Diffing] for details.

@@ -182,6 +184,37 @@

 ---

+## Vars
+
+The repository-wide test data tab. Three kinds of variables coexist:
+
+| Source | Example |
+|--------|---------|
+| Static | Hand-typed key/value pairs |
+| AI-generated | Preset-driven (name, email, IBAN, address...) -- AI fills realistic values per run |
+| Google Sheets | A pinned column from a connected sheet |
+
+See [AI Configuration] (AI vars) and [Google Sheets Integration] (sheet-backed vars).
+
+---
+
+## API Tokens
+
+Long-lived Bearer tokens for programmatic + MCP access. See [API Tokens].
+
+---
+
+## Account
+
+Per-user controls:
+
+- **Email preferences** -- which build / review notifications arrive in your inbox
+- **Email unsubscribe** -- one-click opt-out of all transactional and digest mail
+- **Self-serve account deletion** -- GDPR-compliant delete that removes user data, anonymises authored test history, and revokes outstanding tokens
+- **GDPR opt-in** -- recorded at signup; surfaced here for audit and re-consent
+
+---
+
 ## Users (Admin Only)


 - View team members
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:53 -0000</pubDate><guid>https://sourceforge.net67e6231b595b714fa1148822e90b06ebea121156</guid></item><item><title>Settings Reference modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Settings%2520Reference/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -101,6 +101,7 @@
 | API keys | Provider-specific keys |
 | Model | Specific model to use |
 | Custom instructions | Extra context for AI prompts |
+| OpenAI support | OpenAI API key and model selection |
 | Ollama support | Local model configuration |

 See [AI Configuration] for details.
@@ -168,6 +169,19 @@

 ---

+## Schedules
+
+| Setting | Description |
+|---------|-------------|
+| Preset schedules | Daily, weekly, hourly, every 6 hours, every 15 minutes |
+| Custom cron | Any valid cron expression |
+| Branch targeting | Run against a specific branch |
+| Enable/disable | Toggle schedules on and off |
+
+See [Scheduled Runs] for details.
+
+---
+
 ## Users (Admin Only)


 - View team members
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:52 -0000</pubDate><guid>https://sourceforge.net33111945c1a6001d2fb2b4e4eed53347665ffc7c</guid></item><item><title>Settings Reference modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Settings%2520Reference/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,6 +1,6 @@
 # Settings Reference

-All configuration lives under the unified Settings page in the Lastest2 UI.
+All configuration lives under the unified Settings page in the Lastest UI.

 ---

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:51 -0000</pubDate><guid>https://sourceforge.netc8ca384ec90152c96d236fe33ce32810b8615d0d</guid></item><item><title>Settings Reference modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Settings%2520Reference/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-settings-reference"&gt;Settings Reference&lt;/h1&gt;
&lt;p&gt;All configuration lives under the unified Settings page in the Lastest2 UI.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-github"&gt;GitHub&lt;/h2&gt;
&lt;p&gt;Connect your GitHub account for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OAuth login&lt;/li&gt;
&lt;li&gt;Repository sync&lt;/li&gt;
&lt;li&gt;PR comments with build results&lt;/li&gt;
&lt;li&gt;Webhook-triggered builds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a class="alink" href="/p/lastest/wiki/GitHub%20Integration/"&gt;[GitHub Integration]&lt;/a&gt; for details.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-gitlab"&gt;GitLab&lt;/h2&gt;
&lt;p&gt;Connect your GitLab account for:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OAuth login (self-hosted instances supported)&lt;/li&gt;
&lt;li&gt;MR comments with build results&lt;/li&gt;
&lt;li&gt;Webhook-triggered builds&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;See &lt;a class="alink" href="/p/lastest/wiki/GitLab%20Integration/"&gt;[GitLab Integration]&lt;/a&gt; for details.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-google-sheets"&gt;Google Sheets&lt;/h2&gt;
&lt;p&gt;Connect to Google Drive to use spreadsheet data as test data sources.&lt;/p&gt;
&lt;p&gt;See &lt;a class="alink" href="/p/lastest/wiki/Google%20Sheets%20Integration/"&gt;[Google Sheets Integration]&lt;/a&gt; for details.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-playwright"&gt;Playwright&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Browser type&lt;/td&gt;
&lt;td&gt;Chromium, Firefox, or WebKit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Viewport&lt;/td&gt;
&lt;td&gt;Width and height of the browser window&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Headless mode&lt;/td&gt;
&lt;td&gt;Run without visible browser (includes shell mode)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Selector priority&lt;/td&gt;
&lt;td&gt;Order for selector strategies (data-testid, id, role, etc.)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recording engine&lt;/td&gt;
&lt;td&gt;Custom recorder or Playwright Inspector&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Animation freezing&lt;/td&gt;
&lt;td&gt;Disable CSS animations during capture&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Screenshot delay&lt;/td&gt;
&lt;td&gt;Wait time before capturing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max parallel tests&lt;/td&gt;
&lt;td&gt;Maximum concurrent test execution&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-stabilization"&gt;Stabilization&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Network idle&lt;/td&gt;
&lt;td&gt;Wait for network activity to settle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DOM stability&lt;/td&gt;
&lt;td&gt;Wait for DOM mutations to stop&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Timestamp freezing&lt;/td&gt;
&lt;td&gt;Replace &lt;code&gt;Date.now()&lt;/code&gt; and &lt;code&gt;new Date()&lt;/code&gt; with fixed values&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Random seeding&lt;/td&gt;
&lt;td&gt;Seed &lt;code&gt;Math.random()&lt;/code&gt; for consistent outputs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Third-party blocking&lt;/td&gt;
&lt;td&gt;Block third-party domains with configurable allowlist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Font loading&lt;/td&gt;
&lt;td&gt;Wait for webfonts to load, or disable them entirely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loading indicator hiding&lt;/td&gt;
&lt;td&gt;Auto-hide spinners and loading states&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cross-OS consistency&lt;/td&gt;
&lt;td&gt;Bundled fonts + Chromium flags for identical screenshots&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Burst capture&lt;/td&gt;
&lt;td&gt;Multi-frame instability detection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Auto-mask dynamic content&lt;/td&gt;
&lt;td&gt;Automatically mask timestamps, UUIDs, and relative times&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;See &lt;span&gt;[Stabilization Features]&lt;/span&gt; for details.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-environment"&gt;Environment&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Server startup&lt;/td&gt;
&lt;td&gt;Manual vs auto-start&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Health check URLs&lt;/td&gt;
&lt;td&gt;URLs to verify your app is running before testing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-diff-sensitivity"&gt;Diff Sensitivity&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Diff engine&lt;/td&gt;
&lt;td&gt;pixelmatch, SSIM, or Butteraugli&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Text-region-aware&lt;/td&gt;
&lt;td&gt;OCR-based two-pass comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pixel threshold&lt;/td&gt;
&lt;td&gt;Number of pixels to trigger change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Percentage threshold&lt;/td&gt;
&lt;td&gt;Percentage of pixels to trigger change&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Page shift detection&lt;/td&gt;
&lt;td&gt;Detect vertical content shifts&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;See &lt;span&gt;[Visual Diffing]&lt;/span&gt; for details.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-ai"&gt;AI&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Test generation provider&lt;/td&gt;
&lt;td&gt;Which AI provider to use for generating/fixing tests&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Diff analysis provider&lt;/td&gt;
&lt;td&gt;Separate provider for diff classification&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API keys&lt;/td&gt;
&lt;td&gt;Provider-specific keys&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model&lt;/td&gt;
&lt;td&gt;Specific model to use&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom instructions&lt;/td&gt;
&lt;td&gt;Extra context for AI prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ollama support&lt;/td&gt;
&lt;td&gt;Local model configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;See &lt;a class="alink" href="/p/lastest/wiki/AI%20Configuration/"&gt;[AI Configuration]&lt;/a&gt; for details.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-notifications"&gt;Notifications&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Channel&lt;/th&gt;
&lt;th&gt;Configuration&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Slack&lt;/td&gt;
&lt;td&gt;Webhook URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discord&lt;/td&gt;
&lt;td&gt;Webhook URL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Custom webhook&lt;/td&gt;
&lt;td&gt;URL, HTTP method, custom headers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub PR&lt;/td&gt;
&lt;td&gt;Automatic (via GitHub integration)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitLab MR&lt;/td&gt;
&lt;td&gt;Automatic (via GitLab integration)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;See &lt;a class="alink" href="/p/lastest/wiki/Custom%20Webhooks/"&gt;[Custom Webhooks]&lt;/a&gt; for webhook payload details.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-branches"&gt;Branches&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Setting&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Baseline branch&lt;/td&gt;
&lt;td&gt;Which branch holds the source-of-truth baselines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scanning branch&lt;/td&gt;
&lt;td&gt;Which branch to scan for routes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-ai-logs"&gt;AI Logs&lt;/h2&gt;
&lt;p&gt;Audit trail of all AI requests -- last 50 entries. View what was sent and received.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-testing-templates"&gt;Testing Templates&lt;/h2&gt;
&lt;p&gt;One-click preset configurations for common app types:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Template&lt;/th&gt;
&lt;th&gt;Optimized For&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SaaS/Dashboard&lt;/td&gt;
&lt;td&gt;Data-heavy UIs, tables, charts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Marketing Website&lt;/td&gt;
&lt;td&gt;Static pages, animations, responsive&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Canvas/WebGL&lt;/td&gt;
&lt;td&gt;Non-DOM rendering, visual-only comparison&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;E-commerce&lt;/td&gt;
&lt;td&gt;Product pages, carts, checkout flows&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Documentation&lt;/td&gt;
&lt;td&gt;Text-heavy, code blocks, navigation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mobile-First&lt;/td&gt;
&lt;td&gt;Small viewports, touch interactions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPA&lt;/td&gt;
&lt;td&gt;Client-side routing, dynamic content&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CMS&lt;/td&gt;
&lt;td&gt;Content editing, WYSIWYG, media&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-setup-teardown"&gt;Setup &amp;amp; Teardown&lt;/h2&gt;
&lt;h3 id="h-setup"&gt;Setup&lt;/h3&gt;
&lt;p&gt;Default repository-wide multi-step setup sequences:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Playwright (browser) scripts&lt;/li&gt;
&lt;li&gt;API (HTTP) scripts&lt;/li&gt;
&lt;li&gt;Test-as-setup scripts&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="h-teardown"&gt;Teardown&lt;/h3&gt;
&lt;p&gt;Default repository-wide teardown sequences:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Per-test overrides available (skip or add steps)&lt;/li&gt;
&lt;li&gt;Teardown errors are non-blocking&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-users-admin-only"&gt;Users (Admin Only)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;View team members&lt;/li&gt;
&lt;li&gt;Send invitations&lt;/li&gt;
&lt;li&gt;Manage roles (owner, admin, member, viewer)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-runners-admin-only"&gt;Runners (Admin Only)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Register new remote runners&lt;/li&gt;
&lt;li&gt;View connected runners&lt;/li&gt;
&lt;li&gt;Monitor runner status and system info&lt;/li&gt;
&lt;li&gt;Configure parallel limits&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:50 -0000</pubDate><guid>https://sourceforge.net92ed7fe79164ce4fd1de9b7f2bcecd33add5d93b</guid></item></channel></rss>