Workflow and Source Panels
Client and Worker Contracts
Replay one Perl execution where a client request loads a worker response file.
source panels
When an example has more than one source file, replay keeps each file in its own panel while preserving one ordered trace stream. The Variables panel follows the actual `require` load into the worker file and the returned response back to the client.
boundary
The client owns the selected command and visible output. The worker owns the response rule for that command.
Project Entry
request_client.pl
Replay: real traced execution (multi-file project)
use strict;
use warnings;
my $command = "status";
my $label = $command;
if ($command eq "refresh") {
$label = "cache";
} elsif ($command eq "archive") {
$label = "records";
}
require "./request_worker.pl";
my $response = handle_request($command);
my $ticket = 40 + length($command);
print "label=$label\n";
print "ticket=$ticket\n";
print "$response\n";
use strict;
use warnings;
my $command = "refresh";
my $label = $command;
if ($command eq "refresh") {
$label = "cache";
} elsif ($command eq "archive") {
$label = "records";
}
require "./request_worker.pl";
my $response = handle_request($command);
my $ticket = 40 + length($command);
print "label=$label\n";
print "ticket=$ticket\n";
print "$response\n";
use strict;
use warnings;
my $command = "archive";
my $label = $command;
if ($command eq "refresh") {
$label = "cache";
} elsif ($command eq "archive") {
$label = "records";
}
require "./request_worker.pl";
my $response = handle_request($command);
my $ticket = 40 + length($command);
print "label=$label\n";
print "ticket=$ticket\n";
print "$response\n";
$command ← status, $label ← status
4my $command→ status = "status"; #@command="refresh", "archive"5my $label→ status = $commandstatus;67if ($command eq "refresh") {8 $label = "cache";9} elsif ($command eq "archive") {10 $label = "records";11}1213require "./request_worker.pl";1415my $response = handle_request($commandstatus);16my $ticket = 40 + length($command);1718print "label=$label\n";19print "ticket=$ticket\n";20print "$response\n";$command ← status, $access ← ok, $response ← service ready, $ticket ← 46
4my $command = "status"; #@command="refresh", "archive"5my $label = $command;67if ($command eq "refresh") {8 $label = "cache";9} elsif ($command eq "archive") {10 $label = "records";11}1213require "./request_worker.pl";1415my $response→ ok:service ready = handle_request($commandstatus);16my $ticket→ 46 = 40 + length($commandstatus);values this stepok$accessprint "label=$label ";
18print "label=$labelstatus\n";19print "ticket=$ticket46\n";20print "$responseok:service ready\n";outputlabel=status ticket=46 ok:service ready