Skip to content

fix(macos): 打开项目时可选本地或远程,远程开发窗口随窗口缩放 (#1487) - #1499

Merged
xiaoyumuxi merged 8 commits into
previewfrom
fix/1487-open-project-remote-chooser
Oct 25, 2026
Merged

xiaoyumuxi merged 8 commits into
previewfrom
fix/1487-open-project-remote-chooser

Conversation

@xiaoyumuxi

@xiaoyumuxi xiaoyumuxi commented Oct 25, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #1487

改动

  • Open 统一选择面板:已保存 SSH 连接时,「打开」(欢迎页、菜单 Open Project…、项目切换器)弹出独立面板:左侧是「本地文件夹」和各 SSH 连接,右侧在面板内浏览目录(本地不再弹系统访达面板;SSH 主机自动连接并浏览远程目录),点「打开」在当前窗口打开所选目录。不再经过远程开发管理窗口,连接的增删改仍在原来的远程开发窗口(面板左下角有入口)。没有保存连接时行为不变。
  • 文件列表属性:列表显示名称、修改时间、大小(文件夹不显示大小);远程目录读取服务端本来就返回的 size / modifiedMs,服务端未改。
  • 窗口自适应:新面板(默认 920×600,最小 560×380)与远程开发窗口(默认 880×620,最小 640×420)按父窗口缩小;尺寸只在打开时量一次,避免面板成为 key window 后每次重绘都缩小。
  • 远程开发窗口地址行:IP 与「重新查询」一行,位置信息在下一行自动换行,不再撑出窗口把按钮和架构标签裁掉。LitheSettingsPill 新增可选的 wraps,仅此处使用。
  • 抽出 FolderListing / RemoteFolderListing 供本地与远程共用;RemoteConnectionsFeatureModel.openBrowsedFolder() 把已连接会话交给工作区。
  • 新增词条 Local Folder、Size(中英)。

已知限制

  • 在面板里进入「桌面」等受保护文件夹时,macOS 会弹出一次访问授权(系统面板没有这个提示);暂无本地侧栏快捷入口。

验证

  • swift build、verify-app-language-localization.mjs、generate-i18n.mjs --check 通过。
  • 本地启动应用,在 800×650 窗口中确认:本地与远程目录浏览、列属性、面板不再缩小、远程开发窗口地址行完整显示。

@ghfind-review ghfind-review Bot added the review: medium ghfind author score; see https://ghfind.com label Oct 25, 2026
@xiaoyumuxi
xiaoyumuxi marked this pull request as ready for review October 25, 2026 13:49
@lithe-code-review

lithe-code-review Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Lithe Review

结论: ⚠️ 有建议
范围: preview ← fix/1487-open-project-remote-chooser · head: 864c822

Findings

  1. [P2] 从实际父窗口计算尺寸,避免弹窗随编辑不断缩小
    macos/Sources/Lithe/Views/Workspace/RemoteConnectionsView.swift:39

    • 实际影响:sheet 显示后会成为 key window,此时 NSApp.keyWindow 指向远程开发弹窗自身。每次重算 sheetSize 都会再从自身宽高减去 40 点,使窗口不断缩小,直至 640×420,而非保持与父窗口匹配的尺寸。
    • 触发条件:远程开发弹窗获得焦点后,修改连接字段或切换高级设置。
    • 复现步骤:在较大的项目窗口打开远程开发,逐字修改连接名称,或多次展开、收起高级设置。字段绑定调用 feature.update,更新 @Published connections,触发视图重新计算尺寸。
    • 来源:本次引入;base 使用固定 880×620,不存在从自身尺寸反复扣减的回授。
  2. [P2] 为新增打开分流同步更新平台能力矩阵
    macos/Sources/Lithe/Models/AppModel/AppModel.swift:855

    • 实际影响:本次新增用户可见的本地/远程选择流程,但完整变更清单没有任何能力矩阵更新。现有 scripts/verify-platform-feature-matrix-change.mjs 会对这种“平台实现变化但无实质能力记录变化”的提交报错,相关验证说明也遗漏了新增路径。
    • 触发条件:对指定 base/head 执行未豁免的矩阵变更门禁。
    • 复现步骤:检查本次变更清单与该脚本的 platformPaths、hasCapabilityChange 分支;本次修改命中 macos/Sources,但没有修改 shared/platform-feature-matrix/features/。
    • 来源:本次引入;打开入口行为发生变化,却未同步能力记录。

Scope Check

  • 关联需求:[Bug] 时区显示逻辑异常导致的 UI 不正常 #1487 正文要求远程界面合理适配;窗口适配代码已加入,但 Finding 1 表明仍存在尺寸回归,尚不能确认问题解决。
  • 已完成范围:欢迎页、菜单和项目切换器均进入 chooseProject();保存连接的检测、选择弹窗及三条新增共享翻译已接入。
  • 未完成范围:稳定的窗口尺寸适配、能力矩阵同步及修改后的视觉验证。
  • 能力复用:继续复用既有本地目录选择器、远程连接模型和工作流,没有新增并行 SSH 实现。
  • 两条 Finding 均由本次变更引入,属于本次职责范围。

Suggestions

  1. 使用当前 sheet 的实际展示窗口作为尺寸来源,并观察其尺寸变化;增加回归覆盖,确认编辑字段、切换连接及父窗口缩放不会导致弹窗自行缩小。
  2. 更新 workspace-open-switch.json、remote-development-workspace.json 的相关证据和验证步骤;没有运行验证的部分保持 pending,由作者补充矩阵门禁结果。
  3. 补充选择弹窗、远程开发窗口在普通和小尺寸下的截图;已有界面提供前后对比。当前上下文只有 Issue 原图链接,视觉效果尚未验证。

Summary

未发现需要阻塞合并的问题。改动沿用现有工作流,新增文案通过共享 i18n 接入;主要问题是窗口尺寸来源错误,以及遗漏能力矩阵更新。两项均为非阻塞的 P2 建议。

Verification

  • 静态对比指定 base...head 的源码和翻译源,追踪打开入口、sheet 展示、字段更新、连接存储及矩阵门禁;生成资源正文按要求未读取。
  • 作者自述 swift build --product Lithe、本地化检查及 i18n 生成一致性检查通过,本次未独立执行。
  • 已提供的 head 检查中,Ubuntu Shared i18n 成功;Swift tests 跳过;矩阵检查存在失败记录,但未提供日志,不能确认该记录的具体失败原因。
  • 本次未运行代码、测试、应用或验证脚本,也未访问网络。现有相关测试未覆盖新增选择流程及窗口尺寸行为;macOS 实机操作、sheet 切换和视觉效果仍需作者验证。

@xiaoyumuxi

Copy link
Copy Markdown
Collaborator Author

第一版,但是有一种自制访达的冲动image

@xiaoyumuxi

Copy link
Copy Markdown
Collaborator Author

最简单版本的设计:image

@xiaoyumuxi

Copy link
Copy Markdown
Collaborator Author

回应 Lithe Review(head 864c822):

  1. [P2] 弹窗反复缩小:已修。尺寸现在在打开时用 @State 只量一次,不再在弹窗成为 key window 后重新测量;在真机上连续点击/编辑后尺寸不变。
  2. [P2] 能力矩阵:已同步更新 workspace-open-switch.json 与 remote-development-workspace.json(证据路径和验证步骤),验证状态仍为 pending;verify-platform-feature-matrix-change.sh 与 verify-platform-feature-matrix.sh 本地通过。
  3. 截图:新面板与远程开发窗口在 800×650 窗口中的效果已在本地真机确认,评审时可直接运行查看。

@xiaoyumuxi
xiaoyumuxi merged commit 3c384b2 into preview Oct 25, 2026
12 of 15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

review: medium ghfind author score; see https://ghfind.com

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant