feat(loss): add the routine mode the deploy applies after every deployment #79

Merged
binjovi-bot merged 1 commit from feat/routine-loss into trunk 2026-09-14 12:20:04 +00:00
Owner

Routine source loss after every deployment

This application is synthetic. To stand in for one developed over decades, every Binjovi deployment now ends in the decades-old condition: the routine profile members are gone from SOMEARA1 and the profile's objects are stripped of observability in SOMEARAB and SOMEARA1. The originals stay in Git; the next Build re-uploads and recompiles.

  • New mode: scripts/source-loss.sh routine --profile recovery/loss-profile.json --development SOMEARA1 --production SOMEARAB --report FILE (the ibmi-rpg runner calls it once the recipe declares loss_profile, in a follow-up plans PR).
  • Idempotent, no backup, no marker, no lease; staging refused by name; a denied command is a recorded gap; any other failure fails the deploy. Report ibmi-source-loss-report.v3.
  • Targets: NMRULE, NMPERSIST (stripped), MUNCHERS (stripped), MUNCHD. output_repository becomes rpg-munchers-tng.
  • The build re-adds a removed member (ADDPFM) before bridging source.
  • Offline coverage in tests/check-source-loss.sh: full run, idempotent second run, staging refusal, argument checks, denied strip; the fake host gained the MUNCHERS program, the production library and type-aware markers.

https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV

## Routine source loss after every deployment This application is synthetic. To stand in for one developed over decades, every Binjovi deployment now ends in the decades-old condition: the `routine` profile members are gone from SOMEARA1 and the profile's objects are stripped of observability in SOMEARAB and SOMEARA1. The originals stay in Git; the next Build re-uploads and recompiles. - New mode: `scripts/source-loss.sh routine --profile recovery/loss-profile.json --development SOMEARA1 --production SOMEARAB --report FILE` (the ibmi-rpg runner calls it once the recipe declares `loss_profile`, in a follow-up plans PR). - Idempotent, no backup, no marker, no lease; staging refused by name; a denied command is a recorded gap; any other failure fails the deploy. Report `ibmi-source-loss-report.v3`. - Targets: NMRULE, NMPERSIST (stripped), MUNCHERS (stripped), MUNCHD. `output_repository` becomes `rpg-munchers-tng`. - The build re-adds a removed member (`ADDPFM`) before bridging source. - Offline coverage in `tests/check-source-loss.sh`: full run, idempotent second run, staging refusal, argument checks, denied strip; the fake host gained the MUNCHERS program, the production library and type-aware markers. https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
feat(loss): add the routine mode the deploy applies after every deployment
All checks were successful
binjovi/ci Binjovi completed the frozen plan
bec63d85dd
The Binjovi deploy of this application now ends with the decades-old
simulation. `scripts/source-loss.sh routine --profile P --development
SOMEARA1 --production SOMEARAB --report FILE` removes the `routine`
profile members from the development library and strips observability
(`CHGPGM ... RMVOBS(*ALL)`) from the profile's objects in the production
and the development library. Staging is refused by name: the next deploy
compares it with the release. The run is idempotent (an absent member or
an already stripped program is recorded, not an error), needs no backup,
marker or writer lease (the originals are in Git and the next Build
re-adds them), records a denied command as a gap, and stops on any other
failure so the deploy fails. Report schema `ibmi-source-loss-report.v3`.

The `routine` targets are NMRULE, NMPERSIST (stripped), MUNCHERS
(stripped) and MUNCHD; `output_repository` is now `rpg-munchers-tng`, the
twin that recovers from the loss. The build re-adds a removed member with
ADDPFM before it bridges source. The fake host learns the MUNCHERS
program, the production library and type-aware observability markers;
the offline test covers a full run, the idempotent second run, the
staging refusal, the argument checks and a denied strip. The engine and
entry point are byte-identical with rpg-lemonade's.

Claude-Session: https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
binjovi-bot deleted branch feat/routine-loss 2026-09-14 12:20:04 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/rpg-munchers!79
No description provided.