Skip to content

feat(B-0620): decompose Slice 3 from PR 4023#4103

Closed
AceHack wants to merge 9 commits into
mainfrom
maji/decompose-4023-slice3
Closed

feat(B-0620): decompose Slice 3 from PR 4023#4103
AceHack wants to merge 9 commits into
mainfrom
maji/decompose-4023-slice3

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented May 17, 2026

Peeled off networking vendor adapter from the B-0620 blob PR #4023.

AceHack and others added 9 commits May 17, 2026 10:46
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>
…QUASH armed

PR #4097 (Option B zsh portability fix follow-up to PR #4086) was
OPEN but not auto-armed. Armed it this tick (counter-reset via
concrete artifact). When checks green, fires.

Co-Authored-By: Claude <noreply@anthropic.com>
…reen checks

Bounded named-dep: PR #4097 (Option B fix) auto-armed and BLOCKED on
CI checks. No substantive substrate action needed this tick.
Brief-ack #1 of wait window.

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>
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new B-0620 decomposition slice for a networking vendor adapter and records several hygiene-history tick shards from 2026-05-17; it also updates the B-0613 backlog row’s Option B zsh-portability note.

Changes:

  • Add new backlog row B-0620.3 describing “Slice 3: Networking vendor adapter”.
  • Update B-0613 backlog row to clarify Option B (shopt nullglob) is not zsh-portable.
  • Add multiple docs/hygiene-history/ticks/2026/05/17/*Z.md tick shard records related to PR #4097.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
docs/hygiene-history/ticks/2026/05/17/1458Z.md New tick shard documenting brief-ack #3 status for PR #4097.
docs/hygiene-history/ticks/2026/05/17/1457Z.md New tick shard documenting brief-ack #2 and blocked mergeState investigation plan.
docs/hygiene-history/ticks/2026/05/17/1455Z.md New tick shard documenting brief-ack #1 while PR #4097 checks run.
docs/hygiene-history/ticks/2026/05/17/1452Z.md New tick shard documenting auto-merge arming for PR #4097.
docs/hygiene-history/ticks/2026/05/17/1447Z.md New tick shard documenting discovery and follow-up work for zsh-portability correction.
docs/hygiene-history/ticks/2026/05/17/1443Z.md New tick shard documenting FP-resolve recovery and PR #4097 creation context.
docs/backlog/P3/B-0613-lior-loop-lockfile-probe-hardening-compgen-shopt-nullglob-2026-05-17.md Update to Option B narrative to explicitly call out non-portability to zsh.
docs/backlog/P2/B-0620-slice-3-networking-vendor-adapter.md New backlog slice row describing networking vendor adapter scope and acceptance criteria.

Comment on lines +2 to +6
id: B-0620.3
status: open
priority: P2
created: 2026-05-17
type: feature
Comment on lines +7 to +8
composes_with:
- B-0620.1 # vendor-adapter interface
Comment on lines 73 to 77
```

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.

### Option C — Inline `find` (fully portable)
@AceHack
Copy link
Copy Markdown
Member Author

AceHack commented May 22, 2026

Closing this PR. I cannot approve my own PR.

@AceHack AceHack closed this May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants