Skip to content

feat(doctor): add INSTALLATION section for Homebrew distribution health#485

Merged
Data-Wise merged 2 commits into
devfrom
feature/doctor-install-checks
Jul 2, 2026
Merged

feat(doctor): add INSTALLATION section for Homebrew distribution health#485
Data-Wise merged 2 commits into
devfrom
feature/doctor-install-checks

Conversation

@Data-Wise

Copy link
Copy Markdown
Owner

Summary

  • New doctor INSTALLATION section catches the class of bug fixed in homebrew-tap PR fix(ci): add mkdocs-exclude plugin to docs workflow #135: a Homebrew install that "succeeds" but silently fails to link (man-page name collision, stale Cellar keg after an upgrade the shell wasn't restarted for).
  • Checks: opt/Cellar symlink integrity, shell-loaded version vs. installed Cellar keg drift, and flow-cli's own man pages resolving cleanly into the shared man1 dir (scoped to formulae that actually link — avoids false positives from Homebrew's own keg-only convention, e.g. lua vs lua@5.4).
  • New tests/e2e-doctor-install.zsh (7 scenarios, mocked brew), docs updated (REFCARD-DOCTOR.md, both CHANGELOGs).

Test plan

  • zsh tests/e2e-doctor-install.zsh — 7/7 passed
  • ./tests/run-all.sh — 74 passed / 0 failed / 1 timeout (pre-existing interactive/tmux baseline) / 1 skipped (himalaya absent)
  • mkdocs build --strict — 0 warnings
  • Live E2E against this machine's real Homebrew install: caught a real false-positive (versioned keg-only formulae lua/lua@5.4, node/node@20 sharing man-page basenames) during development, which drove the design to scope the check to flow-cli's own man pages resolving correctly rather than a whole-Cellar collision scan — re-verified clean after the fix.

🤖 Generated with Claude Code

Test User added 2 commits July 2, 2026 02:02
Catches the class of bug fixed in homebrew-tap PR #135: a Homebrew
formula install that "succeeds" (brew reports installed, brew upgrade
says "already installed") but silently fails to link — man-page name
collisions on case-insensitive filesystems, and shell/Cellar version
drift after an upgrade the user forgot to restart their shell for.

New `_doctor_check_installation` checks, scoped to flow-cli's own
Homebrew install (skips silently for git-clone/plugin-manager installs):
- opt/Cellar symlink integrity (installed-but-unlinked detection)
- shell-loaded FLOW_VERSION vs. installed Cellar keg version drift
- flow-cli's own man pages actually resolving into the shared man1 dir
  (vs. losing a case-insensitive name collision to another formula,
  scoped to formulae that actually link — Homebrew's own keg-only
  convention, e.g. lua vs lua@5.4, produces same-name kegs constantly
  and is not a bug)

New tests/e2e-doctor-install.zsh (7 scenarios, all via mocked `brew`).
Adds the new section to REFCARD-DOCTOR.md's check-category list
(renumbering the categories after it) and to both CHANGELOGs.
@Data-Wise Data-Wise merged commit 352d6f6 into dev Jul 2, 2026
2 checks passed
Data-Wise pushed a commit that referenced this pull request Jul 2, 2026
231 test files (was 230), 76 registered suites (was 75), 75/75
passing (was 74/74) — reflects tests/e2e-doctor-install.zsh added
in PR #485. Also fixed a pre-existing 32→33 command-file drift.
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.

1 participant