From 960d29b0612cfeb5d47b732983fcb08e52a1de74 Mon Sep 17 00:00:00 2001 From: kisfenyo Date: Tue, 1 Sep 2026 12:48:50 +0200 Subject: [PATCH] REPORT: the CI outcome - four red runs, two real causes, all now green Adds section 11. The sharpest result of the whole sweep is in it: my own decoy-coverage gate identified a repository by its DIRECTORY NAME and went blind the first time CI ran it, because the act-runner checks out into a folder called hostexecutor. The gate written that morning to catch name-for-fact was matching a name, in the first ten lines of its own main loop (R-428). The other cause was my push ordering - two repos citing R-421 pushed before felhom.eu carried the row - which instructions_gate convicted exactly as designed. --- REPORT.md | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/REPORT.md b/REPORT.md index d454fd3..ecbd29f 100644 --- a/REPORT.md +++ b/REPORT.md @@ -134,7 +134,37 @@ Closed **R-419**. Filed **R-421** (the class), **R-422**, **R-423**, **R-424**, (the exemption list), **R-427** (the mirrored gap). Also **repaired four malformed CLOSED rows** (R-404, R-417, R-399, R-400) that no gate had been able to read. -## 11. Observations, and my own mistakes by name +## 11. CI — four red runs after the first push, all mine, all now green + +**The first push of every repo except the catalog went RED**, while all four runners were green +locally. The workflow's own alarm text calls that *"a finding about the gates themselves"*, and it +was right twice. + +| repo | final job | sha | result | +|---|---|---|---| +| felhom.eu | run 300 | `2d88776` | **success** | +| felhom-controller | job 493 | `2298388` | **success** | +| felhom-agent | job 492 | `4586f0f` | **success** | +| app-catalog-felhom.eu | job 486 | `29edad9` | **success** (green first time) | + +**Cause 1 — R-428, and it is the sweep's sharpest result.** `decoy_coverage_gate.py` identified a +repository by `os.path.basename(root)`. Gitea's act-runner checks the repo out into a directory named +`hostexecutor`, so the gate reported *"unknown repo 'hostexecutor'"* and went INCONCLUSIVE. **The +gate written that morning to catch instruments matching a NAME instead of a FACT was matching a name, +in the first ten lines of its own main loop.** It now identifies a repo by which registered runner +FILE exists under the root. Verified under a renamed directory: 14 gates found where the name-based +version found none. + +**Cause 2 — my push ordering.** `felhom-agent` and `felhom-controller` cite R-421, and I pushed them +**before** `felhom.eu` carried that row, so `instructions_gate` correctly convicted *"cites R-421, +which appears in neither register"*. The register lives in `felhom.eu`; **a repo citing a new row must +be pushed after it.** Not a gate defect — the gate did exactly its job, on me. + +**Cause 3 — a missing input.** CI fetches two sibling clones; the meta-gate walks four runners. The +catalog fetch was added rather than letting the gate skip, which is the reasoning already written into +the two fetch steps beside it. + +## 12. Observations, and my own mistakes by name 1. **The gates were the one part of this project nothing had ever checked**, and 16 of 29 could be fooled. **FILED: R-421** — the class row, with the four shapes. @@ -165,11 +195,18 @@ Closed **R-419**. Filed **R-421** (the class), **R-422**, **R-423**, **R-424**, 8. **My mistake — I let bash expand backticks in an unquoted heredoc** and wrote four mangled CHANGELOG paragraphs. Caught by reading the file back, repaired in place. **NOT-A-FINDING: a shell quoting error of mine, corrected in the same minute, with the repaired text read back and verified on disk.** -9. **`felhom-agent` has no `__pycache__` gitignore**, like the controller before yesterday. Left +9. **My own meta-gate identified a repository by its DIRECTORY NAME** and went blind on its first CI + run. **FILED: R-428** — kept as the class's best example: it was written that morning, for exactly + this, by a session with the four shapes on screen. +10. **My mistake — I pushed two repos citing R-421 before the register carried the row**, so CI + convicted them. The register lives in `felhom.eu`. **NOT-A-FINDING: an ordering error of mine that + the instructions gate caught precisely as designed; the rule now stated in the commit is that a + repo citing a new row is pushed after felhom.eu.** +11. **`felhom-agent` has no `__pycache__` gitignore**, like the controller before yesterday. Left alone. **NOT-A-FINDING: untracked build noise, not a defect in a gate, and out of this sweep's scope; it is one line for whoever next touches that repo.** -10. **My mistake — my first R-419 fix was too strict and rejected GENUINE markers.** It anchored a +12. **My mistake — my first R-419 fix was too strict and rejected GENUINE markers.** It anchored a marker to a line start or a bare `. `, which misses the commonest real shape: a bolded sentence followed by a bolded marker (`...them.** **FILED: R-427**`). **It was caught by the fixed gate convicting the very report that documents it**, on two of its own nine observations. Emphasis is