Skip to content

fix(sync): reconcile upstream CRLF store export coverage - #402

Merged
bompus merged 2 commits into
fork/consolidatedfrom
reconcile/upstream-aeb8f955
Oct 6, 2026
Merged

bompus merged 2 commits into
fork/consolidatedfrom
reconcile/upstream-aeb8f955

Conversation

@bompus

@bompus bompus commented Oct 6, 2026

Copy link
Copy Markdown
Owner

Reconciles upstream through aeb8f95581f23946d04b5ae9b3dbda918f5a7700 while preserving upstream ancestry. The fork already reads later exports from AST binding facts, which handles the CRLF store-export case fixed upstream. This keeps that implementation and ports the native extraction coverage for TS, TSX, JS and JSX with LF, CRLF and CR line endings. The deleted WASM comparison test stays deleted.

README's upstream merge point and comparison reference now name this tip; its feature tables and dated benchmark rows were checked, with no measured values changed. The docs site describes the same line-ending contract. Native source bytes are unchanged; the matching qualified native artifact was reused. No live build promotion is included.

Validation: product build and 46 focused export/golden/README checks passed. The full suite passed 606 test files with 7,764 tests passed and 39 skipped. The native source stamp, test floor and staged whitespace checks passed. Remote CI and review gates remain pending. Initial isolated checks stopped before tests on read-only copied build-cache paths; private-copy cache permissions were corrected and the build/focused checks passed.

colbymchenry and others added 2 commits October 6, 2026 04:06
colbymchenry#2364)

The kernel's is_exported_later mirrors TreeSitterExtractor.isExportedLater's
multiline regex, but JS's `m` flag treats `\r` as a line end while the regex
crate's `(?m)` sees only `\n`. On a CRLF checkout (Windows, autocrlf) a line
like `export default useStore;\r\n` matched in wasm but not in the kernel, so
`const useStore = create(...)` + `export default useStore;` lost its actions
(e.g. `function inc`) on the default kernel route for TS/TSX/JS/JSX.

Compile it in CRLF mode, `(?mR)`: `^`/`$` then treat `\r` as a line end too,
and the pattern body stays byte-identical to the TS regex. It agrees with the
JS regex on CRLF, trailing whitespace and lone `\r` line ends, where an
optional `\r?$` would still miss a lone `\r`.

This was the only `(?m)` regex in the kernel. The other tsjs regexes are
whole-string anchors, and the minified-bundle check splits lines on `\n`
exactly as the TS does.

Adds a kernel/wasm parity case (ts/tsx/js/jsx, LF and CRLF) that fails on
the unfixed kernel for all four CRLF variants and passes with the fix.

Co-authored-by: Claude Opus 5.5 <[email protected]>
@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository YAML (base), Organization UI (inherited)
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 6ad11aea-dc20-4ae7-967b-8dd1a460fe88
📥 Commits

Reviewing files that changed from the base of the PR and between 9e65d94 and a5d561b.

📒 Files selected for processing (4)
  • CHANGELOG.md
  • README.md
  • __tests__/bindings-tsjs.test.ts
  • site/src/content/docs/getting-started/introduction.md

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Bug Fixes
    • JavaScript and TypeScript store actions exported later in a file are now indexed correctly across LF, CRLF, and CR line endings.
  • Documentation
    • Updated the fork baseline and clarified how later-exported store actions are handled.

Walkthrough

The pull request adds extraction test coverage and documentation for JavaScript and TypeScript store actions exported on a later line across LF, CRLF, and CR line endings. It also updates the README's upstream comparison baseline.

Changes

Store Action Export Coverage

Layer / File(s) Summary
Extraction coverage and documentation
__tests__/bindings-tsjs.test.ts, CHANGELOG.md, README.md, site/src/content/docs/getting-started/introduction.md
Tests cover four language extensions and three line-ending styles. They check for the extracted inc function and useStore default-export metadata. The documentation and changelog describe later-exported store actions across those line endings.

Upstream Baseline Update

Layer / File(s) Summary
README baseline references
README.md
The README changes its upstream baseline references from f40db4b9 to aeb8f955.

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to a5d56

This change adds regression coverage and documentation without changing extraction behavior. No actionable merge-blocking risk was identified in the reviewed diff.

Architecture Summary

Architecture risk: 🔵 Low · up to a5d56

The change affects 4 systems.

Changed systems: CHANGELOG.md, README.md, site, __tests__

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — CHANGELOG.md (service) was modified; 1 changed file maps to changed impact.
  • observed — README.md (service) was modified; 1 changed file maps to changed impact.
  • observed — site (service) was modified; 1 changed file maps to changed impact.
  • observed — tests (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in CHANGELOG.md: Added a changelog fix note for JavaScript and TypeScript store actions exported on a later line, covering LF, CRLF, and CR line endings.
  • observed — Modified behavior in README.md: The stated upstream baseline changes from commit f40db4b9 to aeb8f955; the fork and release description is otherwise retained.
  • observed — Modified behavior in README.md: Adds a note that later-exported TypeScript and JavaScript store actions are read from AST export facts for files using LF, CRLF, or CR line endings.
  • observed — Modified behavior in README.md: The upstream commit used as the comparison baseline changes from f40db4b9 to aeb8f955.
🚥 Pre-merge checks | ✅ 6
✅ Passed checks (6 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the upstream sync and CRLF store-export coverage addressed by the pull request.
Description check ✅ Passed The description explains the upstream reconciliation, export coverage, documentation updates, and validation results. It is directly related to the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Suppressions Explained ✅ Passed The pull request changes only CHANGELOG.md, README.md, tests/bindings-tsjs.test.ts, and the introduction documentation. The complete diff adds no lint, type-check, compiler suppression directive, …
User-Visible Changes Documented ✅ Passed The diff changes only CHANGELOG.md, README.md, a test file, and the getting-started introduction page. It adds no CLI command or flag, MCP tool or argument, supported language or framework, agent targ…
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Warning

⚠️ This pull request shows signs of AI-generated slop (description_diff_mismatch). It has been flagged by CodeRabbit slop detection and should be reviewed carefully.


Comment @coderabbitai help to get the list of available commands.

@bompus

bompus commented Oct 6, 2026

Copy link
Copy Markdown
Owner Author

The description and diff agree: this is an ancestry-preserving reconciliation through upstream aeb8f95, with regression coverage and documentation. The fork already handles later exports through AST binding facts, so native production source is unchanged. The new tests cover four grammars and three line endings. This does not claim a newly introduced fork behavior fix.

@bompus
bompus merged commit 8220dd6 into fork/consolidated Oct 6, 2026
1 check passed
@bompus
bompus deleted the reconcile/upstream-aeb8f955 branch October 6, 2026 05:01
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