Repository navigation
fix(link): preserve literal SSH include names on Bun 1.4.4 - #7629
Conversation
Quote literal parentheses and braces before passing OpenSSH Include patterns to Bun.Glob, preserving escapes and complete bracket classes. Add filesystem regressions for Bun 1.4.4 syntax and malformed bracket handling. Co-authored-by: luvs01 <27862058+luvs01@users.noreply.github.com>
|
✅ Deterministic PR hygiene checks passed. |
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes.
|
| Layer / File(s) | Summary |
|---|---|
Normalize and verify Include patterns src/link/ssh-config.ts, tests/clients/link-ssh-config.test.ts, docs-site/src/content/docs/guides/remote-link.md, structure/remote-link.md |
defaultGlob normalizes native path separators and makes parentheses and braces literal before passing patterns to Bun’s glob parser. Tests cover parentheses, braces, character classes, ordinary wildcards, and POSIX escaped parentheses. Documentation describes top-level Include discovery and pattern handling. |
Bun role version and validation
| Layer / File(s) | Summary |
|---|---|
Update Bun role defaults and guidance package.json, structure/runtime.md, CONTRIBUTING.md, docs-site/src/content/docs/contributing.md, Dockerfile, .github/actions/setup-project-bun/action.yml, .github/workflows/ci.yml, tests/ci-workflows/* |
The test-runner version changes from 1.4.3 to 1.4.4. Guidance and comments describe independent runtime and test-runner validation and the requirement for a successful full cross-platform lane=all run on the candidate head. |
Verify test-runner selection tests/test-layout-tooling.test.ts |
Tests cover matching and differing caller versions, an incorrect override, version probing, and launching isolate tests with the pinned executable. |
Early TLS response test
| Layer / File(s) | Summary |
|---|---|
Exercise early TLS responses tests/claude-integration/claude-picker-upload.test.ts |
The fixture can send an early response over TLS and records whether the buffered request was complete and the response was flushed. The buffered upload test asserts that the response arrived before request completion and flushed. |
Priority:
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Bug fix
Merge Risk: 
Minimal · up to 00b6c
-
No actionable issue is established for this change. Complete the documented candidate-head cross-platform validation before promotion.
Pre-merge checks: 
4 · 
1
-
Failed checks: 1 warning Passed checks: 4 passedFull details: Docstring Coverage
-
Explanation
Docstring coverage is 33.33% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 3 functions across 6 files. (7 skipped: 7 unsupported.)
Resolution
Write docstrings for the functions missing them to satisfy the coverage threshold.
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands.
|
Independent source review (gpt-6.1-sol, dispatched by the triage manager, 2026-10-24) at head VERDICT: MUST-FIX Reviewed head:
No additional source defects found across all four changed files. Regression fixtures exercise real discovery with positive and negative assertions. Existing layout registration is intact; Branch is 4 commits behind dev NOT RUN: tests, typecheck, builds, validation gates, or workflow dispatches, per read-only scope. This is a read-only source review; merging still requires the gates named above (exact-head CI, |
…7629-dev-26598-7627-20261025
…7629-dev-26598-7627-20261025
|
The current Ubuntu test failure is in the unchanged port-reclaim fixture, rather than the SSH Include change. The fixture can select the test process's own PID and also uses a real 200 ms clock despite mocking its OS operations. I submitted the isolated test-only correction in #7706, on the Bun 1.4.4 test-runner baseline. The identical source unit passed eight focused cases plus a self-PID control on official Bun 1.4.4 for Windows; the candidate also passed typecheck. The CI process PID was not captured, so this does not establish which fixture hazard caused the recorded failure. I have not retried the failed run or marked this PR's CI as resolved. |
|
Maintainer dev integration record (release 2.93 dev-merge loop), per the MAINTAINERS.md maintainer-integration exception for dev. This is maintainer integration, not an approving review.
|
Summary
Preserve OpenSSH Include filename matching when Bun interprets parentheses or braces as glob extensions. For example,
Include conf.d/*(1).confmust discoverbackup(1).confrather than select1.conf.Quote opening parentheses and braces outside complete bracket classes while preserving escapes, bracket syntax, and unmatched suffixes. Path resolution, sorting, recursion limits, and conditional-Include handling remain unchanged. This is a literal-punctuation compatibility fix, not complete OpenSSH glob equivalence or SSH path isolation.
This PR is stacked on #7706, which fixes the port-fixture assertion that failed in this PR's earlier CI. That is a validation prerequisite, not a production dependency of SSH matching. After the parent lands, retarget this PR to dev.
Verification
Candidate
fa01399bec1ebcad7b0031db076ad3e71384f520normally merges the prior head with parentc530d3a7bcc8502bdd10f6a74e3ff93b739bad49, which includes dev323a5e11. The parent-relative change is exactly four SSH source/test/documentation files (+83/-5), preserving their prior blobs. Current security dependencies and runtime/test-runner Bun 1.4.4 are retained.00b6c0bc. Its 20 passed / 1 existing Windows skip / 26 assertions are reused source-unit evidence, not a new test run.Checklist
Summary by CodeRabbit
Includedirectives; includes insideHostorMatchblocks are not used.