Merge train 175: #10162, #10157 - #10163
Merged
Merged
Conversation
…0160) `export * as Self from "./self"` lowered to a NestedNamespace entry whose value was a plain load of the module's own `@__perry_ns_<prefix>` global — inside the populator that builds that very namespace, before the global is stored. The dynamic `import()` namespace therefore carried the key with an `undefined` value while the static import path still resolved. OpenCode uses this self re-export in 265 modules and reads it through dynamic imports in its command bootstrap, so every real command failed with `Cannot read properties of undefined (reading 'Service')`. Self-referencing entries are now published like LocalVar/ForeignVar live bindings: the populator marks them live and hands `js_create_namespace` a getter singleton, and the getter wrapper loads the namespace global at read time. Foreign `export * as` entries keep the direct load. Claude-Session: https://claude.ai/code/session_01GixUo7gwcatEk4kibdeCWF (cherry picked from commit 149c1a6)
macOS was the only backend where an editable TextField wrapped to multiple lines when its text was wider than the field. AppKit's textFieldWithString: returns a cell configured to wrap and grow, and create() never overrode it, so a fixed-width field grew tall instead of scrolling — misrendering single-line input like URLs, paths, and queries. Configure the cell for single-line editing in create(), matching Android's setSingleLine and the inherently single-line iOS/GTK4/Windows widgets: usesSingleLineMode, scrollable, wraps=false, and a clipping line-break mode. Multiline input keeps its own widget, TextArea. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Xtg8NkGmpuLTNT959dJp6 (cherry picked from commit bf8de14)
…0157) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Xtg8NkGmpuLTNT959dJp6 (cherry picked from commit 57469bc)
test_issue_10155_textfield_singleline imports perry/ui and needs --target macos to link perry-ui-macos. The Linux compile-smoke's bare `perry foo.ts -o out` path can't link those symbols, so add it to SKIP_TESTS alongside the other macOS UI repros (640, 763). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Xtg8NkGmpuLTNT959dJp6 (cherry picked from commit 9316513)
This was referenced Sep 13, 2026
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (11)
📝 WalkthroughWalkthroughThe pull request fixes self-referential namespace exports and configures macOS ChangesFunctional fixes
Release metadata
Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant DynamicImport
participant NamespacePopulator
participant js_create_namespace
DynamicImport->>NamespacePopulator: load self-namespace export
NamespacePopulator->>js_create_namespace: create namespace with live getter
js_create_namespace-->>DynamicImport: store namespace and resolve export
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge train 175: lands #10162 (fix for #10160, live self-namespace re-exports) at head
149c1a6589and #10157 (fix for #10155, macOS TextField single-line) at head9316513941, plus the workspace version bump to 0.5.1546.The four commits were cherry-picked onto
8a058e2053, and each matches its PR commit bygit patch-id --stable.Local validation on macOS:
cargo fmt --all -- --check,check_file_size.sh,check_test_registration.py, andcheck_changeset_fragment.shfor 10162 and 10157RUSTFLAGS=-Dwarnings cargo check -p perry-ui-macosand-p perry --binscargo test --release -p perry-codegen: 1984 passed-p perry -p perry-runtime-static -p perry-stdlib-static -p perry-ui-macos:cargo test --release -p perry --test source_graph_export_regressions: 24 passed, includingissue_10160::{self_namespace_reexport_is_defined_on_a_dynamic_import_namespace, self_namespace_reexport_is_defined_on_a_static_star_import, foreign_namespace_reexport_stays_intact_on_a_dynamic_import_namespace}perry compile test-files/test_issue_10155_textfield_singleline.tscompiles and links against the native macOS UIPR CI (runs 34738467784 for #10162 and 34739880996 for #10157): every red job fails identically on main at
8a058e2053(run 34735295430). That covers the same lint/check/warnings steps with identical errors, the samecargo-testfailing test on #10157 (green on #10162), the same four gated gap regressions with identical output, and the same single gc-stress failure. #10157'szizmorfailure is main's own finding: one highdangerous-triggersin.github/workflows/gate-failure-watch.yml, which neither PR touches, and it is reported identically on main. e2e-scoped passes on both.Summary by CodeRabbit
Bug Fixes
TextFieldcontrols wrapping onto multiple lines when text exceeds the available width. Text now remains on one line and scrolls horizontally.Tests