<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Remote Runners</title><link>https://sourceforge.net/p/lastest/wiki/Remote%2520Runners/</link><description>Recent changes to Remote Runners</description><atom:link href="https://sourceforge.net/p/lastest/wiki/Remote%20Runners/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 06 May 2026 09:06:51 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/lastest/wiki/Remote%20Runners/feed" rel="self" type="application/rss+xml"/><item><title>Remote Runners modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Remote%2520Runners/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -1,12 +1,12 @@
 # Remote Runners

-Run tests on remote machines by deploying runners that connect back to your Lastest2 server via HTTP polling.
+Run tests on remote machines by deploying runners that connect back to your Lastest server via HTTP polling.

 ## Architecture

 ![Remote Runners Architecture](images/runner-logic.png)

-**How it works:** The Lastest2 server queues test commands into SQLite (`runner_commands` table). Remote runners poll `POST /api/ws/runner` every 3-5 seconds, claim pending commands, execute them with Playwright, and upload screenshots + results back over the same channel. Authentication uses Bearer tokens (SHA256 hashed in DB).
+**How it works:** The Lastest server queues test commands into SQLite (`runner_commands` table). Remote runners poll `POST /api/ws/runner` every 3-5 seconds, claim pending commands, execute them with Playwright, and upload screenshots + results back over the same channel. Authentication uses Bearer tokens (SHA256 hashed in DB).

 ---

@@ -21,21 +21,21 @@
     npm install -g @lastest/runner

     # Start as daemon

-    lastest2-runner start -t YOUR_TOKEN -s https://your-lastest2-server
+    lastest-runner start -t YOUR_TOKEN -s https://your-lastest-server

     # Or run in foreground

-    lastest2-runner run -t YOUR_TOKEN -s https://your-lastest2-server
+    lastest-runner run -t YOUR_TOKEN -s https://your-lastest-server

 ---

 ## Runner CLI

     :::bash

-    lastest2-runner start -t &amp;lt;token&amp;gt; -s &amp;lt;server-url&amp;gt;  # Start as background daemon
-    lastest2-runner stop                               # Stop the daemon
-    lastest2-runner status                             # Show runner status
-    lastest2-runner log [-f] [-n &amp;lt;lines&amp;gt;]              # View logs (-f to follow)
-    lastest2-runner run -t &amp;lt;token&amp;gt; -s &amp;lt;server-url&amp;gt;     # Run in foreground
+    lastest-runner start -t &amp;lt;token&amp;gt; -s &amp;lt;server-url&amp;gt;  # Start as background daemon
+    lastest-runner stop                               # Stop the daemon
+    lastest-runner status                             # Show runner status
+    lastest-runner log [-f] [-n &amp;lt;lines&amp;gt;]              # View logs (-f to follow)
+    lastest-runner run -t &amp;lt;token&amp;gt; -s &amp;lt;server-url&amp;gt;     # Run in foreground

 ---

@@ -62,7 +62,7 @@

 ## Configuration

-Runner config is stored in `~/.lastest2/`:
+Runner config is stored in `~/.lastest/`:

 - `runner.pid` -- daemon process ID
 - `runner.log` -- runner log file
 - `runner.config.json` -- saved configuration
@@ -71,7 +71,7 @@

 ## Managing Runners

-In the Lastest2 UI (Settings &amp;gt; Runners, admin only):
+In the Lastest UI (Settings &amp;gt; Runners, admin only):

 - Register new runners
 - View connected runners and their status
 - See system info (OS, CPU, memory)
&amp;lt;/server-url&amp;gt;&amp;lt;/token&amp;gt;&amp;lt;/lines&amp;gt;&amp;lt;/server-url&amp;gt;&amp;lt;/token&amp;gt;&amp;lt;/server-url&amp;gt;&amp;lt;/token&amp;gt;&amp;lt;/lines&amp;gt;&amp;lt;/server-url&amp;gt;&amp;lt;/token&amp;gt;&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.net18db9d0a7d0ff3e2b96ec85db138944a25d91167</guid></item><item><title>Remote Runners modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Remote%2520Runners/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,6 +1,12 @@
 # Remote Runners

-Run tests on remote machines by deploying runners that connect back to your Lastest2 server via WebSocket.
+Run tests on remote machines by deploying runners that connect back to your Lastest2 server via HTTP polling.
+
+## Architecture
+
+![Remote Runners Architecture](images/runner-logic.png)
+
+**How it works:** The Lastest2 server queues test commands into SQLite (`runner_commands` table). Remote runners poll `POST /api/ws/runner` every 3-5 seconds, claim pending commands, execute them with Playwright, and upload screenshots + results back over the same channel. Authentication uses Bearer tokens (SHA256 hashed in DB).

 ---

&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.net7dc557c82d9ddcf24ef3debd0618489adb1e276b</guid></item><item><title>Remote Runners modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Remote%2520Runners/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-remote-runners"&gt;Remote Runners&lt;/h1&gt;
&lt;p&gt;Run tests on remote machines by deploying runners that connect back to your Lastest2 server via WebSocket.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-setup"&gt;Setup&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Register a runner&lt;/strong&gt; in Settings &amp;gt; Runners&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copy the token&lt;/strong&gt; (shown only once)&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Install and run&lt;/strong&gt; on your target machine:&lt;/p&gt;
&lt;p&gt;:::bash&lt;/p&gt;
&lt;h1 id="h-install-from-npm"&gt;Install from npm&lt;/h1&gt;
&lt;p&gt;npm install -g @lastest/runner&lt;/p&gt;
&lt;h1 id="h-start-as-daemon"&gt;Start as daemon&lt;/h1&gt;
&lt;p&gt;lastest2-runner start -t YOUR_TOKEN -s &lt;a href="https://your-lastest2-server" rel="nofollow"&gt;https://your-lastest2-server&lt;/a&gt;&lt;/p&gt;
&lt;h1 id="h-or-run-in-foreground"&gt;Or run in foreground&lt;/h1&gt;
&lt;p&gt;lastest2-runner run -t YOUR_TOKEN -s &lt;a href="https://your-lastest2-server" rel="nofollow"&gt;https://your-lastest2-server&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;h2 id="h-runner-cli"&gt;Runner CLI&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;lastest2-runner&lt;span class="w"&gt; &lt;/span&gt;start&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;token&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;server-url&amp;gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# Start as background daemon&lt;/span&gt;
lastest2-runner&lt;span class="w"&gt; &lt;/span&gt;stop&lt;span class="w"&gt;                               &lt;/span&gt;&lt;span class="c1"&gt;# Stop the daemon&lt;/span&gt;
lastest2-runner&lt;span class="w"&gt; &lt;/span&gt;status&lt;span class="w"&gt;                             &lt;/span&gt;&lt;span class="c1"&gt;# Show runner status&lt;/span&gt;
lastest2-runner&lt;span class="w"&gt; &lt;/span&gt;log&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;-f&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;-n&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;lines&amp;gt;&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="w"&gt;              &lt;/span&gt;&lt;span class="c1"&gt;# View logs (-f to follow)&lt;/span&gt;
lastest2-runner&lt;span class="w"&gt; &lt;/span&gt;run&lt;span class="w"&gt; &lt;/span&gt;-t&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;token&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;-s&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;server-url&amp;gt;&lt;span class="w"&gt;     &lt;/span&gt;&lt;span class="c1"&gt;# Run in foreground&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;hr/&gt;
&lt;h2 id="h-capabilities"&gt;Capabilities&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Capability&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;&lt;strong&gt;Run&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Execute tests remotely&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Record&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Record new tests on remote machines&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Parallel&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Configurable max parallel tests per runner&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;System Info&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Automatic OS, architecture, memory, and CPU reporting&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-runner-v2-features"&gt;Runner v2 Features&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Concurrent multi-task support&lt;/strong&gt; -- run multiple tests simultaneously&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SHA256 code integrity verification&lt;/strong&gt; -- ensures test code hasn't been tampered with&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remote recording&lt;/strong&gt; -- record tests on remote machines&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Heartbeat polling with command queuing&lt;/strong&gt; -- reliable connection management&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Per-test abort support&lt;/strong&gt; -- cancel individual tests without affecting others&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-configuration"&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Runner config is stored in &lt;code&gt;~/.lastest2/&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;runner.pid&lt;/code&gt; -- daemon process ID&lt;/li&gt;
&lt;li&gt;&lt;code&gt;runner.log&lt;/code&gt; -- runner log file&lt;/li&gt;
&lt;li&gt;&lt;code&gt;runner.config.json&lt;/code&gt; -- saved configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-managing-runners"&gt;Managing Runners&lt;/h2&gt;
&lt;p&gt;In the Lastest2 UI (Settings &amp;gt; Runners, admin only):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Register new runners&lt;/li&gt;
&lt;li&gt;View connected runners and their status&lt;/li&gt;
&lt;li&gt;See system info (OS, CPU, memory)&lt;/li&gt;
&lt;li&gt;Configure parallel execution limits&lt;/li&gt;
&lt;li&gt;Remove runners&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.netdf853110815b7fc7af8a4312686d485b42f9a74c</guid></item></channel></rss>