docs(hermes): record the recomputed conflict graph and head SHAs

Refresh #12 and #18 to their live Gitea heads, record #19's replaced head
exactly, and replace the pairwise conflict set with a freshly computed one
over all 28 combinations. #18+#19 is now clean because #19 no longer
duplicates the repo-wide hygiene legacy-exception mechanism that #18 also
carries; #12+#19 is new because #12 advanced. Name the exact overlapping
files per conflicting pair and how to resolve each additively.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Hermes Agent 2026-08-17 16:27:28 +00:00
parent d208a89d9d
commit 02e559d7ac

View File

@ -197,22 +197,29 @@ remote `main` `d8f2d818b9a552ea6c2d7fe86554be829bd5ffff`:
| PR | Head SHA | Draft | Base | Role |
| --- | --- | --- | --- | --- |
| #12 | `465d386da5237f011cb408f1a3d4b7d0c6d8ffae` | no | `main` | AI usage exporter repair |
| #12 | `ed43dbaa7f094e1841aa760862e80015deb9d80c` | no | `main` | AI usage exporter repair |
| #14 | `8c6e3acdacb223f68b1716f0a74bd543e18890e6` | yes | `main` | bounded forge client and least-privilege RBAC |
| #15 | `73fefbb5d92ef07371a9a997f22d848acd2d06ed` | yes | `main` | result-decomposition reliability |
| #16 | `e8c26ecf85a0c802d378fffffb98b7df43b78242` | no | `main` | unprivileged image builder |
| #17 | `48cbe13ee50ce3fcb07cea3fe8d088cfed349e0c` | yes | `main` | three-lane placement |
| #18 | `20002527512235b29054f3636b02418168373009` | yes | `main` | distributed three-worker pool |
| #19 | `8f005458282269ba5c07941814e4237f5d4cf3ac` | yes | `main` | reviewed blocked head; this repair replaces it on the same branch |
| #18 | `689bcb6e48414854447988ba174143a307d308b9` | yes | `main` | distributed three-worker pool |
| #19 | `c808baff40a12a90f43c2e5e39b94d139f88ea29` | yes | `main` | head this repair replaces on the same branch |
| #20 | `a242dcc786576ae1a18000cb4941836ff610dff2` | yes | `main` | CLI process-group reaping |
The repaired #19 SHA cannot be embedded in its own commit without changing that
SHA. Resolve it from Gitea after push and require it as `--reviewed-head-sha`;
the PR handoff records the exact value. All eight snapshot heads merge cleanly
with the snapshot `main` individually. Pairwise `git merge-tree --write-tree`
found conflicts only for: #12+#17, #14+#15, #14+#16, #14+#17, #14+#20,
#15+#16, #15+#17, #16+#20, and #17+#20. Gitea's `mergeable=false` on a draft is
not treated as conflict evidence.
the PR handoff records the exact value. All eight heads in this table, including
the repaired #19, merge cleanly with `main` individually. Pairwise
`git merge-tree --write-tree` over all 28 combinations found conflicts for:
#12+#17, #12+#18, #12+#19, #14+#15, #14+#16, #14+#17, #14+#19, #14+#20, #15+#16,
#15+#17, #15+#19, #16+#19, #16+#20, #17+#18, and #17+#20. Gitea's
`mergeable=false` on a draft is not treated as conflict evidence.
This graph differs from the previous snapshot in exactly two ways. #12 and #18
both advanced, which adds #12+#18, #17+#18, and #12+#19. And #19 no longer
duplicates the repo-wide hygiene legacy-exception mechanism that #18 also
carries, which makes #18+#19 clean. Recompute before every integration step;
nothing here is durable.
Use this dependency order, refreshing every head and re-running merge-tree at
each step:
@ -227,16 +234,25 @@ each step:
6. #19 last as the integration/acceptance change, only after #12/#14-#18/#20 are
merged and their exact supplied heads are ancestors of refreshed `main`.
#19 overlaps `testing/quality_contract.json` with #14/#15/#16,
`testing/quality_coverage.py` and its helper tests with #14,
`test_hermes_auto_router.py` with #18, and existing Kustomize content with
#12/#17/#18. Preserve branch coverage, every tracked module, fixture isolation,
and all desired-state changes during conflict resolution.
An exact post-repair merge-tree check reports #19 clean with current `main`, #17,
#18, and #20, and conflicting with #12, #14, #15, and #16 on these files:
An exact post-repair merge-tree check against the heads in the table reports
#19 clean with current `main`, #12, #17, and #20, and conflicting with #14,
#15, #16, and #18. Recompute this graph from the Gitea API immediately before
integration; do not infer conflict status from Gitea's draft `mergeable` field.
| Pair | Overlapping files |
| --- | --- |
| #12+#19 | `testing/tests/test_hermes_auto_router.py` |
| #14+#19 | `testing/quality_contract.json`, `testing/quality_coverage.py`, `testing/tests/test_quality_coverage_helpers.py` |
| #15+#19 | `testing/tests/conftest.py` |
| #16+#19 | `testing/quality_contract.json` |
Every one of those overlaps is additive on the #19 side. Resolve the contract by
union — take every PR's managed modules, lint paths, tracked files, and branch
tracked files, and never take one PR's quality contract wholesale. #19 adds two
fixture-isolation fixtures to `conftest.py` and two lines to the auto-router test;
keep both sides. Preserve branch coverage, every tracked module, fixture
isolation, and all desired-state changes during conflict resolution.
Recompute this graph from the Gitea API immediately before integration; do not
infer conflict status from Gitea's draft `mergeable` field.
The #16/#19 integration must keep both the immutable digest and the source tag
(`newTag: git-<main-SHA>-build-<n>` plus the digest) in rendered image identity.