Twinned from https://github.com/cfsh/ninefold/issues/723 by tools/beads/import_github.py's reconcile pass.
Suggestions from ninefold-reviewer's review of #720. All below the gate floor — #720 is CONVERGED and none of these hold it.
test_an_uncaught_traceback_exit_1_is_NOT_treated_as_published asserts the opposite of its nametools/tests/test_dispatch.py:1781:
```python def test_an_uncaught_traceback_exit_1_is_NOT_treated_as_published(self) -> None: self.assertFalse(self._warns(1), ...) ```
_warns(1) is False means the dispatcher stays quiet on exit 1 — i.e. it *is* treated as published. The intent is right (exit 1 is PUBLISHED_RED, and the traceback hole is closed one file over, in main()'s except Exception), and the assertion message says so. The name does not, and the name is what a future session greps.
Concretely: if someone later deletes main()'s except Exception, this test still passes, under a name claiming to cover exactly that. Rename it to what it pins — e.g. test_exit_1_stays_quiet_because_only_the_tool_may_return_it — and let NeverExitsByTraceback (test_perimeter_check.py:429) carry the traceback claim, which it actually does.
Same class, smaller: test_the_two_published_codes_stay_quiet (:1795) asserts only code 0. Code 1 is covered by the test above, so this is a naming fix, not a coverage one.
_publish_authority_check resolves repo_root(__file__) / "tools" / "pr" / "perimeter_check.py" (tools/reviewer/dispatch.py:1199). Get that path wrong and every sweep prints WARN … missing and no check ever posts — the blocked-merge case the whole PR exists to prevent.
Before 7f2bb09, test_a_failed_publish_does_not_cost_the_review drove the real method and would have caught it: a wrong path prints WARN <tool> missing …, not the WARN could not publish merge-authority check it asserts. 7f2bb09 stubbed D.run — a sub-floor suggestion from the previous pass, correctly taken, since it was the only shell-out in the suite — and the positive-path coverage went with it. test_a_MISSING_tool_says_so covers only the negative.
One line restores it:
```python self.assertTrue((D.repo_root(D.__file__) / "tools" / "pr" / "perimeter_check.py").is_file()) ```
perimeter_check.py still exits 1, so the dispatcher stays silentN3 closed the traceback hole with main()'s except Exception. Anything that raises before main() runs is still outside it: the module-level import nflib / from nflib.authority import … block (tools/pr/perimeter_check.py:70-80), and nflib.check_interpreter()'s PreflightError. That exits 1 = PUBLISHED_RED, which dispatch.py:1220's not in (0, 1) deliberately says nothing about — nothing posted, nothing logged.
Far less reachable than N3 (it needs a torn clone or a broken interpreter, and the parent dispatcher shares both), which is why this is here and not in the gate. If it is worth closing at all, the cheap shape is for the dispatcher to require evidence of a publish on stdout rather than inferring one from the exit code alone.
_needs_apptools/pr/perimeter_check.py:132 sits at 4 spaces where every sibling line in the same implicit concatenation sits at 8. Valid Python, reads as a bug.
None.
No comments.