mirror of
https://github.com/penpot/penpot.git
synced 2026-11-12 04:50:42 +00:00
Develop moved the per-save validation of files_update.clj into `validate-file`, which `apply-changes` runs on every attempt, and moved the soft and hard checks out of `process-changes-and-validate`. A save whose changes carry commit ids now keeps its valid prefix and rejects the rest instead of raising. - `soft-validate-file-schema!` takes this branch's `cfg` and develop's `changes`, since develop checks the schema of the touched pages only. - `process-changes-and-validate` is develop's. Its new `validate-file` passes `cfg` to both soft checks, so the soft-failure counter and the revn context of their logs keep working. - The `refusal-stage` docstring now names `apply-changes` and `validate-file` as the timing sources. A failing version check left the timed change step in develop and now reports `pre-changes`. The retries of `apply-commits` run without metrics and timings, so they neither count soft failures twice nor move the stage. files_update_refusal_test.clj passes develop's new `commits` argument to `process-changes-and-validate`. Its soft schema tests touch the broken page with a no-op `:mod-obj`, because develop's schema check no longer reads pages that a save leaves alone. Its direct calls bind `pmap/*tracked*`, as develop's own tests do, because develop's `process-changes-and-validate` dereferences it to roll back the pointers of a rejected commit. AI-assisted-by: claude-opus-5-5 Signed-off-by: Álvaro Tejero Cantero <alvorithm@teje.ro>