docs(archive): preserve PR 4122#4135
Conversation
Reviewer (chatgpt-codex-connector P2) flagged Option B's claim that shopt -s nullglob is portable to zsh. shopt is a bash builtin; zsh uses setopt/unsetopt with NULL_GLOB option. Corrected: - Removed 'portable to zsh too' false claim - Added explicit note: NOT portable to zsh - For zsh, use Option A (compgen — also bash) or Option C (find — fully portable), or substitute setopt -o NULL_GLOB / unsetopt NULL_GLOB Co-Authored-By: Claude <noreply@anthropic.com>
…ity follow-up post PR #4086 merge PR #4086 merged at 14:33:24Z with Option B substrate gap unfixed (thread resolved via mutation alone, substrate not corrected before merge). Authored correction as e254b37 on fresh follow-up branch; peer Otto created parallel branch (otto/b0613-zsh-portability- followup-1443z) with same substance (13f749d) mid-tick. Substrate-discovery lesson: thread-resolve mutations decouple from substrate-fix landings; false claim shipped to main despite reviewer thread marked resolved. Co-Authored-By: Claude <noreply@anthropic.com>
… B-0613 zsh fix follow-up Pure-git tier (378 → 61 GraphQL). Substrate-honest recovery from 1417Z verify-before-fix discipline failure: - Read working-tree state at 1417Z (peer-Otto's not-yet-committed zsh fix was in flight) and conflated with committed state on PR #4086 - FP-resolved a thread that was actually a real bug - Peer-Otto caught it, authored 54ca355 fix locally - This tick: cherry-picked peer's fix onto fresh branch, opened PR #4097 with substrate-honest disclosure Discipline-sharpen learnings: - Verify-before-fix means COMMITTED state (git show <ref>:<path>), not working-tree (sed -n on local file) - Multi-Otto-as-complementary-observer pattern catches errors in both directions PR #4086 + #4091 merged this cycle. PR #4097 open, arm-auto-merge deferred to next tick (rate-limit reset in ~17 min). Co-Authored-By: Claude <noreply@anthropic.com>
…te-limit reset 0 failures + 0 in-progress + BLOCKED suggests unresolved-thread state. GraphQL 4/5000 can't investigate. Reset ~15:00Z (3 min). Co-Authored-By: Claude <noreply@anthropic.com>
…et imminent Co-Authored-By: Claude <noreply@anthropic.com>
Reviewers caught that my prior Option B portability correction (54ca355/13f749d) recommended "use Option A or Option C for zsh" — but Option A (compgen -G) is ALSO a bash builtin, not zsh-valid. Corrected: zsh users should use Option C (find — fully portable) since both Option A and Option B are bash-only. Or substitute the shopt lines with setopt -o NULL_GLOB / unsetopt NULL_GLOB to adapt Option B to zsh directly. Resolves 2 threads (PRRT_kwDOSF9kNM6Cppvx + PRRT_kwDOSF9kNM6Cppwe). Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR is framed as an automated preservation archive for PR #4122, adding the captured PR discussion to the repository’s historical records. It also includes related hygiene-history tick shards and a B-0613 backlog wording correction.
Changes:
- Adds a PR discussion archive for merged PR #4122.
- Adds six 2026-05-17 hygiene-history tick records around PR #4097/B-0613 follow-up work.
- Updates B-0613’s Option B note to clarify bash vs zsh portability.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
docs/pr-discussions/PR-4122-backlog-b-0614-4-empirical-instances-candidate-rule-text-ref.md |
Preserves PR #4122 metadata, description, review summary, and resolved threads. |
docs/hygiene-history/ticks/2026/05/17/1443Z.md |
Adds tick shard for B-0613 zsh-portability follow-up PR creation. |
docs/hygiene-history/ticks/2026/05/17/1447Z.md |
Adds tick shard documenting post-merge substrate-gap recovery. |
docs/hygiene-history/ticks/2026/05/17/1452Z.md |
Adds tick shard for auto-merge arming on PR #4097. |
docs/hygiene-history/ticks/2026/05/17/1455Z.md |
Adds brief-ack tick shard while PR #4097 was blocked. |
docs/hygiene-history/ticks/2026/05/17/1457Z.md |
Adds second brief-ack tick shard under GraphQL exhaustion. |
docs/hygiene-history/ticks/2026/05/17/1458Z.md |
Adds third brief-ack tick shard before rate-limit reset. |
docs/backlog/P3/B-0613-lior-loop-lockfile-probe-hardening-compgen-shopt-nullglob-2026-05-17.md |
Corrects Option B’s zsh portability description. |
| ``` | ||
|
|
||
| Explicit nullglob + array — works in any modern bash; portable to zsh too. | ||
| Explicit nullglob + array — works in any modern bash. **NOT portable to zsh**: `shopt` is a bash builtin (zsh uses `setopt`/`unsetopt` instead; zsh has its own `NULL_GLOB` option set via `setopt NULL_GLOB`). For zsh implementations, use **Option C (find — fully portable)** since Option A (`compgen -G`) is also bash-only. Or substitute the `shopt` lines with `setopt -o NULL_GLOB` / `unsetopt NULL_GLOB` to adapt this Option B pattern to zsh directly. |
|
Stale-armed forward signal (from Otto-CLI bg-worker tick, 2026-05-18, GraphQL pure-git tier) Investigated per
Classification: too stale to rebase cleanly (archive + B-0613 conflicts on substrate that has evolved); 4 unique tick shards prevent close-as-redundant. Two viable resolution paths for whoever owns this branch:
Not closing unilaterally — the 4 unique shards belong to whoever authored them (per Co-authored substrate trail: this comment authored from Otto-CLI bg-worker, GraphQL 0/5000 reset in ~10min; REST-only operations until reset. |
|
Vera handoff (2026-05-21T11:53Z): refreshed this stale archive PR against current Current state:
Live main-presence check:
Owner-side next step: open a fresh branch from current |
|
Closing this PR. I cannot approve my own PR. |
Automated PR preservation for #4122