@@ -330,6 +330,43 @@ same pass.
330330` status=$(...) ` dies instantly with "read-only variable: status" (exit 1).
331331Use ` run_state= ` /` st= ` in any Monitor/background snippet.
332332
333+ ## Bash Tool cwd Does Not Reliably Persist Across Calls Mid-Session
334+
335+ During the real-world test-repo sweep, ` cd test-repos/<repo> ` in one Bash call
336+ followed by ` gh issue ` /` gh pr ` commands in later calls silently resolved
337+ against whichever repo's ` origin ` remote happened to be the last ` cd ` -ed-into
338+ directory — ` gh issue view 65 ` returned a * closed react-native-navigation*
339+ issue with the same number, not diffctx #65 . This self-corrected on a later
340+ call without any explicit ` cd ` back, so the tool's "cwd persists between
341+ commands" guarantee is not reliable across a long multi-step QA session (some
342+ other cwd-resetting event fires between calls). Mitigation: pass `-R
343+ nikolay-e/diffctx` explicitly on every ` gh issue` / ` gh pr` call rather than
344+ relying on directory context, especially in any step that also touches
345+ ` test-repos/* ` clones. Verify with ` pwd && git remote -v ` before any
346+ repo-context-sensitive command if in doubt.
347+
348+ ## ` gh issue view <N> --comments ` Prints Nothing When There Are Zero Comments
349+
350+ Not a failure — ` gh issue view 92 --comments ` (an issue with ` comments: 0 ` )
351+ returned empty stdout with rc 0, easy to misread as the command having failed
352+ or hit a transient error. Drop ` --comments ` (or check ` comments: ` in the
353+ default view output) to confirm zero-vs-broken before retrying.
354+
355+ ## Dependabot Squash-Merges via ` gh pr merge ` Land on GitHub Only, Not Forgejo
356+
357+ Forgejo (` origin ` ) is source of truth and push-mirrors to GitHub, but
358+ ` gh pr merge ` operates against GitHub's API directly — the squash-merge commit
359+ only ever exists on ` github/main ` , never on ` origin/main ` . If local ` main ` also
360+ gained commits in the same session (e.g. QA-pass bug fixes), `git merge
361+ --ff-only origin/main` succeeds (local is already ahead of origin) while
362+ ` github/main ` has * diverged* (different squash commits on top of the same
363+ base) — needs a real ` git merge github/main ` (not ` --ff-only ` ), then push the
364+ merge commit to ** both** ` origin ` and ` github ` . Forgejo's branch-protection
365+ flags the resulting merge commit as a rule violation ("branch must not contain
366+ merge commits") but admin-bypasses it through — expected, not a failure to
367+ chase. Prefer resolving via rebase over merge when the local/dependabot diffs
368+ don't touch the same files, to avoid tripping that rule at all.
369+
333370---
334371
335372Generic QA patterns live in the ` /qa ` skill — do not duplicate here.
0 commit comments