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

Merged
binjovi-bot merged 1 commit from feat/routine-loss into trunk 2026-09-14 12:12:19 +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: LM_BASE, LM_SALEUI (stripped), LEMONADE (stripped), LEMSCR. output_repository becomes rpg-lemonade-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 release members, 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: LM_BASE, LM_SALEUI (stripped), LEMONADE (stripped), LEMSCR. `output_repository` becomes `rpg-lemonade-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 release members, 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
Some checks failed
binjovi/ci Binjovi will not build this: its base branch must be trunk. Retarget the pull request.
200425061e
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`/`CHGMOD ... 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-uploads 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 LM_BASE, LM_SALEUI (stripped), LEMONADE
(stripped) and LEMSCR; `output_repository` is now `rpg-lemonade-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 release
members, 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.

Claude-Session: https://claude.ai/code/session_01HPdKaFBKQVs8hzfgXMrnwV
binjovi-bot deleted branch feat/routine-loss 2026-09-14 12:12:20 +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-lemonade!40
No description provided.