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.