Skip to content

fix(pl-128): Events save the page already made; prices decided by the site - #109

Merged
jayanthvee merged 1 commit into
mainfrom
pl-128
Oct 29, 2026
Merged

jayanthvee merged 1 commit into
mainfrom
pl-128

Conversation

@jayanthvee

Copy link
Copy Markdown
Owner

Fixes the two failures from the owner's 2026-10-28 Sales + Events demo (runs f5541185 and 3ee94ed1).

Events: Ava Patel added, but the row failed

  • What happened: the attendee form was filled, and the save's own check answered "not saved yet". Then Odoo saved the attendee by itself; it saves a form when its tab is hidden, probably during the first-row approval. When the run pressed Save, the button was gone, so the row ended submitting -> failed. Ava is correctly on the list (Odoo attendee 5).
  • Fix: if the save can't be pressed, the run checks the save's own condition again. It does this only when that check definitely answered "absent" just before the step, which meets the PL-107 item 11 rule: false before, true now. If the check passes, the row goes submitting -> reconciling -> verified through verify_commit, so its committed_keys row is written. Otherwise the row fails exactly as before.

Sales: Oak Standing Desk showed 100 but was skipped

  • What happened: all three rows were skipped as "already committed in an earlier run". A 13:40 task had set Oak to 7999, and the owner's own teaching at 14:20 then set it to 100. The ledger trusted the old key over the site.
  • Fix: an update recipe (its idempotency key is not its record key, which is the schema's own marker) is no longer pre-skipped from committed_keys. It sets the value and reads it back. A key committed again for an update is expected, not a duplicate_detected incident. Creates keep both rules unchanged.
  • Rule change: this changes PL-113 item 5's "the same change twice runs once" for updates. The test and LEDGER_SPEC.md (the pre-batch skip row and I8) now say so.

Not in this PR

Checks

  • New tests/runner/test_pl128_demo_fixes.py. The two demo cases failed on main and pass here. The three guard cases (no proof before, check fails, a create still skipped) pass on both.
  • tests/runner: 330 passed.
  • ruff check . is clean.

… update is decided by the site, not skipped from the ledger
@jayanthvee
jayanthvee merged commit 67ec4b5 into main Oct 29, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant