Implement centralized transactional fix for command batch failures (#229)

* Agent Host changes for agents/fix-command-batch-history-restore

* Implement centralized transactional fix for command batch failures - #1

* The batch rollback tests compile, are formatted and expect the tab that was in front

The new module used a private helper of plugins_tests and an unused import; the plugin test
asserted tab 0 was in front, but it opens a second file first, which is the one in front
when the plugin starts and the one the rollback puts back.

---------

Co-authored-by: bflatastic <bombayapirat@gmail.com>
This commit is contained in:
Giuseppe Cautiero
2026-10-14 09:30:16 +07:00
committed by GitHub
co-authored by bflatastic
parent f7e726714a
commit ac65168417
5 changed files with 146 additions and 18 deletions
+2 -2
View File
@@ -12,7 +12,7 @@ use figcraft_doc::NodeId;
/// What a test plugin does when a call is refused: fail the run (status 1), or carry on and report
/// the refusal as its output.
#[derive(Clone, Copy, PartialEq)]
enum OnRefusal {
pub(crate) enum OnRefusal {
Fail,
Report,
}
@@ -26,7 +26,7 @@ pub(crate) fn lit(s: &str) -> String {
/// A module that reads the selection, makes `calls` in order and outputs the selection it read
/// (or the first refusal). `tail` runs after the calls (an endless loop, a trap…).
fn script(calls: &[(&str, Value)], on_refusal: OnRefusal, tail: &str) -> Vec<u8> {
pub(crate) fn script(calls: &[(&str, Value)], on_refusal: OnRefusal, tail: &str) -> Vec<u8> {
let mut data = String::new();
let mut body = String::from("(local.set $sel (call $reply_read (i32.const 60000) (call $selection)))\n");
let mut at = 0usize;