Repository navigation
Conversation
beta-release.sh 原来默认 REMOTE=cnb,tag 只推到 CNB 不会触发 release-trigger.yml,beta 构建根本不会开始。改为默认 origin,并新增 MIRROR_REMOTE=cnb 在成功后镜像推一份 dev 与 tag(失败只警告): tag 唯一性预检也同时检查两个远端。
2026-11-01 生产 settings.json 被重置的根因已复现:`cargo test -p db_view`
的用例在 app paths 未初始化时调用 `AppSettings::update_and_save`,目录经
`app_dirs::config_dir()` 回落成 `~/.config/navop`,整份写入把设置写成默认值。
- settings 保存加硬闸:app paths 未初始化时拒绝落盘;从无法读取/解析的
settings.json 起步时本次运行也不再写盘(坏文件已隔离为 .corrupt-*)。
- 隔离判定从「构建 profile」扩展为「可执行文件来源」:`target/{debug,release}`、
`targets`、`~/.cargo/bin` 一律走 `~/.navop-dev`,release 自测不再读写生产目录
与生产 keychain。
- `settings.json.bak` 保留三代(.bak/.bak.1/.bak.2),临时文件名带进程号,
避免单代备份被启动期连续 save 顶掉、以及双实例并发写穿。
- db_view hover 用例把 app paths 指到临时目录;notes 默认根跟随 AppPaths;
开发构建跳过全局 skills 安装;开发构建的 worktree 落 `~/.navop-dev/worktrees`。
侧栏拖动的宽度换算依赖 workspace_bounds,而它此前由 WorkspaceResizeEventHandler::prepaint 用元素自身 bounds 写入。该元素是 h_flex 里 0×0 的弹性子项,落在工作区右缘、垂直居中,于是: - 左侧:`鼠标 x - 工作区右缘` 恒为负,每次拖动都被夹到最小宽度 (280),表现为「移到左边后拖不动」。 - 底部:`工作区中线 - 鼠标 y` 同样为负,也被夹到最小宽度。 - 右侧:元素右缘恰好等于工作区右缘,才碰巧正常。 改为在工作区根 h_flex 上用 on_prepaint 捕获真实 bounds(与 db_view 的 写法一致),事件处理元素只保留鼠标监听。内嵌 dock(TerminalView 嵌入 资源工作台)的 view_bounds 同样从 window.bounds() 改为 dock 根元素的 on_prepaint,避免视图不在窗口原点时换算偏移。 新增两条契约测试分别锁定工作区与内嵌 dock 的 bounds 来源。 验证:cargo test -p terminal_view --lib 572 passed。
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.
背景
2026-11-01 生产
~/.config/navop/settings.json被重置成默认值。今天在本机复现并定位:cargo test -p db_view --lib sql_editor_installs_mouse_hover_provider_only_when_enabled里调用AppSettings::update_and_save,测试进程的 AppPaths 未初始化,app_dirs::config_dir()回落成~/.config/navop,整份原子写把生产配置覆盖成AppSettings::default()(残留指纹sql_editor_hover_enabled=true,默认 false)。随后安装版启动加载这份默认值并连存两次,把唯一一代.bak顶掉,好配置永久丢失。改动
AppSettings::save在 app paths 未初始化时拒绝落盘;从读不出/解析不了的 settings.json 起步时本次运行也不再写盘。target/{debug,release}、targets、~/.cargo/bin一律走~/.navop-dev(含 release 自测与本地打包 .app),不再读写生产目录与生产 keychain。.bak/.bak.1/.bak.2三代轮转,临时文件名带 pid,避免并发写穿。~/.navop-dev/worktrees。验证
cargo check -p one-core -p notes -p workspace_explorer -p db_view -p navop_app --tests无新增告警。cargo test -p one-core --lib app_paths::(含新的来源判定用例)与settings::tests全绿。$TMPDIR/navop-db-view-tests-<pid>,生产settings.jsonmd5 与 mtime 不变。说明
不含 CHANGELOG 与版本 bump。