AtlatestRepositoryfolio
1
;;; f3b-recover-driver.sgl -- run one transaction so the coordinator's2
;;; automatic recovery executes, and print every recovery action so the gate3
;;; can assert a self-heal was REPORTED. Used by gate-f3b.sh arm 4.4
(import (sigil core) (sigil io) (sigil fs) (sigil path)5
(folio doc revision) (folio doc bounded) (folio doc service)6
(folio doc coordinator) (folio doc transaction) (folio doc structural))7
(define root (or (getenv "F3B_ROOT") (begin (println "DRIVER ERROR no root") (exit 3))))8
(define lib-dir (or (getenv "F3B_LIB") "build/dev/lib"))9
(define src-dir (or (getenv "F3B_SRC") "src"))10
(define coord (make-coordinator root11
(make-service (default-worker-argv lib-dir src-dir)12
default-limits)))13
(define r (folio-insert-node! coord (path-join root "dest.sgd") "incoming" 'update14
(revision-of-file (path-join root "dest.sgd"))15
timestamp: "2026-08-25" id: "u-recdrv"16
body-text: "Recovery driver entry."))17
(cond18
((txn-result? r)19
(for-each (lambda (a) (println "~a" a)) (txn-result-recovery-actions r))20
(println "DRIVER_OK"))21
((txn-refusal? r)22
(for-each (lambda (a) (println "~a" a)) (txn-refusal-recovery-actions r))23
(println "DRIVER_REFUSED ~a: ~a" (txn-refusal-reason r) (txn-refusal-message r))24
(exit 1)))