Léo
10cb8fc669
chore(tools): add a read-only ref-to-ref parity audit
...
`lab` and the public `dev` line share only the repository's first commit as a
merge base, so `git log lab..dev` lists two thousand commits that are almost
all already present on both sides under different SHAs. Nothing in that output
says which public fixes never reached `lab`, which is the only question that
matters before `lab` becomes a release.
`scripts/ref_parity_audit.py` samples the most distinctive added lines from
each commit in the range and searches the other tree for them with
`git grep -F`, then reports the file-level presence diff. The two complement
each other: a commit whose probes are all found while one of the files it added
is missing from the target is a fix whose production change was reproduced
without its test, which the line sampling alone cannot see.
Probes are stripped of indentation and searched for anywhere in the tree, so a
port that moved or was re-indented still reads as present. Verdicts are
absent / partial / present / no-probe, and the report says outright that the
commit verdicts are a heuristic while the two file lists are exact.
Read-only by construction: `git log`, `show`, `diff`, `grep`, `ls-tree` and
`merge-base` only, no remote access, and it does not import the app package.
2026-09-30 11:53:31 +02:00
..
2026-05-31 23:58:26 +09:00
2026-05-31 23:58:26 +09:00
2026-08-12 04:59:46 +01:00
2026-09-11 06:04:19 +00:00
2026-06-15 15:57:33 +09:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-06-15 20:47:51 +09:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-06-03 08:56:48 +09:00
2026-07-08 19:30:41 +00:00
2026-06-28 10:57:11 +01:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-25 11:32:46 +02:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-07-23 14:49:02 +00:00
2026-08-27 10:20:36 +02:00
2026-09-11 06:04:19 +00:00
2026-09-21 06:54:03 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-05-31 23:58:26 +09:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-05-31 23:58:26 +09:00
2026-06-15 20:47:51 +09:00
2026-06-08 09:58:52 +02:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-06-08 09:58:52 +02:00
2026-08-16 04:17:58 +02:00
2026-08-24 17:38:40 +02:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-06-03 08:56:56 +09:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-07-11 05:26:42 +01:00
2026-06-16 14:04:56 +02:00
2026-06-03 14:11:21 +09:00
2026-06-08 00:33:50 +02:00
2026-09-25 17:35:47 +02:00
2026-06-03 14:06:46 +09:00
2026-06-29 13:47:29 +01:00
2026-06-03 08:59:30 +09:00
2026-06-29 13:41:22 +01:00
2026-06-03 14:11:35 +09:00
2026-07-11 03:05:17 +01:00
2026-06-29 14:26:46 +01:00
2026-06-03 14:06:42 +09:00
2026-06-03 14:10:58 +09:00
2026-06-05 08:50:33 +01:00
2026-06-03 08:57:41 +09:00
2026-06-03 14:10:54 +09:00
2026-06-03 14:11:38 +09:00
2026-06-03 14:06:49 +09:00
2026-06-03 14:12:35 +09:00
2026-08-16 23:28:26 +01:00
2026-06-04 12:51:48 +01:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 22:02:34 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 21:49:00 +00:00
2026-09-17 21:44:46 +00:00
2026-09-30 11:53:31 +02:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-21 06:54:03 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-22 11:31:45 +01:00
2026-09-11 06:04:19 +00:00
2026-06-03 08:57:03 +09:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-17 22:46:33 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-17 10:07:40 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00
2026-09-11 06:04:19 +00:00