Operational Remediation Reports
Once Value Remediation Report
Apply at most one idempotent write and turn the accepted and skipped counts into a commit, skip, or retry remediation action.
idempotent write
Only the first write is accepted and later writes are counted as skipped, so the remediation action is reproducible without a live one-shot value guard.
Once Value Remediation Report
once_value.ts
Replay: real traced execution (multi-file project)
const writes: number = 1;
let accepted: number = 0;
let skipped: number = 0;
for (let i = 0; i < writes; i++) {
if (accepted === 0) {
accepted += 1;
} else {
skipped += 1;
}
}
let action: string = "retry";
if (accepted >= 1) {
action = "commit";
}
if (skipped >= 1) {
action = "skip";
}
console.log(`writes=${writes} accepted=${accepted} skipped=${skipped} ${action}`);
const writes: number = 0;
let accepted: number = 0;
let skipped: number = 0;
for (let i = 0; i < writes; i++) {
if (accepted === 0) {
accepted += 1;
} else {
skipped += 1;
}
}
let action: string = "retry";
if (accepted >= 1) {
action = "commit";
}
if (skipped >= 1) {
action = "skip";
}
console.log(`writes=${writes} accepted=${accepted} skipped=${skipped} ${action}`);
const writes: number = 2;
let accepted: number = 0;
let skipped: number = 0;
for (let i = 0; i < writes; i++) {
if (accepted === 0) {
accepted += 1;
} else {
skipped += 1;
}
}
let action: string = "retry";
if (accepted >= 1) {
action = "commit";
}
if (skipped >= 1) {
action = "skip";
}
console.log(`writes=${writes} accepted=${accepted} skipped=${skipped} ${action}`);
writes ← 1, accepted ← 0, skipped ← 0
1const writes→ 1: number = 1; //@writes=2, 02let accepted→ 0: number = 0;3let skipped→ 0: number = 0;4for (let i = 0; i < writes; i++) {for (let i = 0; i < writes; i++)
2let accepted: number = 0;3let skipped: number = 0;4for (let i0 = 0; i < writes1; i++) {5 if (accepted === 0) {if (accepted === 0)
3let skipped: number = 0;4for (let i = 0; i < writes; i++) {5 if (accepted0 === 0) {6 accepted += 1;7 } else {action ← retry
9 }10}1112let action→ retry: string = "retry";13if (accepted >= 1) {if (accepted >= 1)
12let action: string = "retry";13if (accepted1 >= 1) {14 action = "commit";15}console.log(`writes=${writes} accepted=${accepted} skipped=${skipped} …
17 action = "skip";18}1920console.log(`writes=${writes1} accepted=${accepted1} skipped=${skipped0} ${actioncommit}`);outputwrites=1 accepted=1 skipped=0 commit
writes ← 0, accepted ← 0, skipped ← 0, action ← retry
1const writes→ 0: number = 0;2let accepted→ 0: number = 0;3let skipped→ 0: number = 0;4for (let i = 0; i < writes; i++) {5 if (accepted === 0) {6 accepted += 1;7 } else {8 skipped += 1;9 }10}1112let action→ retry: string = "retry";13if (accepted >= 1) {14 action = "commit";15}16if (skipped >= 1) {17 action = "skip";18}1920console.log(`writes=${writes0} accepted=${accepted0} skipped=${skipped0} ${actionretry}`);outputwrites=0 accepted=0 skipped=0 retry
writes ← 2, accepted ← 0, skipped ← 0
1const writes→ 2: number = 2;2let accepted→ 0: number = 0;3let skipped→ 0: number = 0;4for (let i = 0; i < writes; i++) {for (let i = 0; i < writes; i++)
pass 1 of 22let accepted: number = 0;3let skipped: number = 0;4for (let i0 = 0; i < writes2; i++) {5 if (accepted === 0) {if (accepted === 0)
3let skipped: number = 0;4for (let i = 0; i < writes; i++) {5 if (accepted0 === 0) {6 accepted += 1;7 } else {for (let i = 0; i < writes; i++)
pass 2 of 22let accepted: number = 0;3let skipped: number = 0;4for (let i1 = 0; i < writes2; i++) {5 if (accepted === 0) {action ← retry
9 }10}1112let action→ retry: string = "retry";13if (accepted >= 1) {if (accepted >= 1)
12let action: string = "retry";13if (accepted1 >= 1) {14 action = "commit";15}if (skipped >= 1)
14 action = "commit";15}16if (skipped1 >= 1) {17 action = "skip";18}console.log(`writes=${writes} accepted=${accepted} skipped=${skipped} …
17 action = "skip";18}1920console.log(`writes=${writes2} accepted=${accepted1} skipped=${skipped1} ${actionskip}`);outputwrites=2 accepted=1 skipped=1 skip