NAME
Langertha::Raider::CLI::Sessions - Internal session subcommands of the raider CLI: list, show, resume, fork, rm
VERSION
version 0.503
SYNOPSIS
# Internal to Langertha-Raider -- no API promise.
my $sessions = Langertha::Raider::CLI::Sessions->new(app => $app, output => $out);
$sessions->list; # raider session list
$sessions->show($id); # raider session show ID
$sessions->show($id, $machine); # raider session show ID --json
my @notes = $sessions->restore($session); # --session ID, --continue
my $new = $sessions->fork_session($id); # raider session fork ID
$sessions->remove($id); # raider session rm ID
DESCRIPTION
Internal module. Its interface may change without notice.
What raider does with the session journals of a project (Langertha::Raider::SessionStore, ADR 0015) beyond writing them: listing them, showing one, replaying one into a raider to resume it, forking one and removing one -- the changes through the Langertha::Raider::Application, this class presents them.
app
The Langertha::Raider::Application of the project. Required.
output
The Langertha::Raider::CLI::Output to print to. Required.
store
The "session_store" in Langertha::Raider::Application of "app".
summary
my $s = $sessions->summary($id);
One session in short: id, path, created (ISO 8601, UTC, from the id), runs (how many), status (of the last run, empty without one), prompt (the first user input, or undef) and damaged (how many lines could not be read).
list
$sessions->list; # human
$sessions->list($machine); # { version => 1, sessions => [ summary, ... ] }
The sessions of the project, newest first, one "summary" each.
show
$sessions->show($id); # human
$sessions->show($id, $machine); # the journal as one document
Prints one session: every event in order, then the "notes" of its journal. With a machine, one document: version, id, path, events (as in the file), damaged (line numbers), runs (run and status each) and unknown (the calls without result: run, call, name).
notes
my @notes = $sessions->notes($journal);
What the crash rules of ADR 0015 found in a journal, one line each: the lines that could not be read, the runs without run.finished (they count as interrupted) and the tool calls without result (unknown, never run again).
restore
my @notes = $sessions->restore($session);
Replays the journal the Langertha::Raider::Session was opened with into the raider of "app" ("replay_session" in Langertha::Raider::Application). Returns a line saying what was resumed, then the "notes".
fork_session
$sessions->fork_session($id); # human
$sessions->fork_session($id, $machine); # { version, id, path, forked_from, messages }
raider session fork ID: a new session of the same project that takes over the working history of the original ("fork_session" in Langertha::Raider::Application). From there it has a journal of its own; the original is never changed, and the workspace stays the same. Returns the new id.
remove
$sessions->remove($id); # human
$sessions->remove($id, $machine); # { version, id, path, removed }
raider session rm ID: deletes the session's journal and lock file through "remove_session" in Langertha::Raider::Application, which croaks session ID is in use while another raider has it open.
SEE ALSO
SUPPORT
Issues
Please report bugs and feature requests on GitHub at https://github.com/Getty/langertha-raider/issues.
IRC
Join #langertha on irc.perl.org or message Getty directly.
CONTRIBUTING
Contributions are welcome! Please fork the repository and submit a pull request.
AUTHOR
Torsten Raudssus <torsten@raudssus.de> https://raudssus.de/
COPYRIGHT AND LICENSE
This software is copyright (c) 2026 by Torsten Raudssus.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.