Repository navigation
test: remove brittle diagnostic count assertion from dispatch resolution tests - #20
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent
"what you should be asking is why is ci red? is it because the code is bad or the test is bad? We can't leave it red and work around it" (2026-09-30). Bad tests are to be fixed, not waived.
Context: the approved lint-memory fix encountered a main-first test prerequisite in tests/fm-dispatch-resolve.test.sh. Its directory-at-list-path case failed in Linux job https://github.com/MrGTV-love/firstmate/actions/runs/36938597844/job/110624590742 because expect_withheld required exactly one nonempty stderr line and observed two. Neither underlying stderr line was logged, so the source of the second line is unknown. The owning report proposes removing the incidental total-line-count assertion while preserving the actual off/default-intake behavior and absence of sensitive output. This is that bounded prerequisite, not the lint-memory implementation or a guessed production-dispatcher fix.
What Changed
Risk Assessment
✅ Low: The change is confined to test assertions and implements the approved removal of total stderr counts while retaining withholding behavior checks and explicit sensitive-output coverage.
Testing
The targeted resolver checks passed on macOS and Linux with jq 1.7.1. Eight live withholding scenarios preserved exit 0, empty stdout, the expected off/nothing-sent reason, absence of tested sensitive values, and no observed curl or quota calls; invalid-list boundaries also passed live on Linux. An initial jq 1.6 formatting failure was resolved through disposable dependency setup. Raw CLI evidence was saved and fixtures removed. The historical unlogged second Linux stderr line was not reproduced or attributed.
Evidence: Live resolver withholding output and side-effect observations
Source: Live resolver withholding output and side-effect observations
Evidence: Targeted macOS and Linux resolver test transcripts
Source: Targeted macOS and Linux resolver test transcripts
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
✅ **Rebase** - passed
✅ No issues found.
✅ **Review** - passed
✅ No issues found.
✅ **Test** - passed
✅ No issues found.
TMPDIR=<worktree disposable tmp> bash tests/fm-dispatch-resolve.test.sh— passed on macOS.Executedbin/fm-dispatch-resolve.sh <brief> --project <name>with disposable FM_HOME directories and a synthetic API-key sentinel for eight withholding scenarios.Repeated each live scenario withbash -x bin/fm-dispatch-resolve.sh ...to observe executed commands; no curl or quota-axi invocations occurred. Normal invocations retained unfiltered stdout and stderr.Ran the targeted resolver test file in a disposable, network-disabled, read-only Linux container. The initial jq 1.6 run failed on an unrelated decimal-format assertion; the run passed after supplying workspace-local jq 1.7.1.Executed the real resolver’s directory-at-list-path and broken-symlink scenarios in the isolated Linux container; both passed.Saved CLI and targeted-test transcripts in the evidence directory, then removed disposable homes, briefs, temporary files, and the downloaded jq binary.✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.