Skip to content

Releases: fenggeg/java-boot

JavaBoot Launcher v0.22.1

Choose a tag to compare

@github-actions github-actions released this 11 Sep 02:04

修复

  • 运行中停止/重启按钮失效:v0.22.0 将 actionsDisabled 误设为 busy || isBusyStatus(status),而 isBusyStatus 把 running 也算作占用中,导致服务运行时停止/重启按钮虽显示却处于 disabled。现改为仅 starting / recompiling / pulling / stopping 或本地 IPC busy 时禁用

JavaBoot Launcher v0.22.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 10:02

新增

  • DESIGN.md 设计规范:Vercel/Stripe 式工程极简视觉规范(色板、字体、圆角、动效、组件语言),作为后续 UI 改动的单一事实来源
  • 服务启停状态辅助:canStart / canStop / canRestart / isBusy 覆盖 pulling / stopping,避免停止中误显示启动

变更

  • 工程极简视觉改版:中性灰阶 + 单一品牌蓝 #0070f3,radius 收至 4/6/8;TopBar/侧栏/弹层/按钮去毛玻璃,改实色 + 1px 边线;日志/空态/端口标签/服务卡收紧;Monaco 主题与 STATUS_META 色板对齐
  • is_running 语义收紧:Stopped/Error 恒为 false;placeholder 不单独视为运行中;按存活 PID + 过程态判断,降低僵尸 handle 误判自动重启
  • 批量启动空入参:直接返回,避免空列表 panic
  • 自动重启文案:明确仅对运行中服务热重启,不会拉起已停止服务

JavaBoot Launcher v0.21.0

Choose a tag to compare

@github-actions github-actions released this 10 Sep 07:27

新增

  • IDE 分屏布局:日志与文件浏览器不再互斥切换,右侧文件 Dock 与日志并存;分隔条可拖宽,双击收起/展开日志;拖至极窄时自动收起日志、文件区撑满
  • 编辑器 Dock 开合:日志 Tab 右侧新增编辑器切换按钮(优先当前服务所属项目);Dock 顶栏提供「收起」;去掉 FilePanel「返回日志」按钮,关闭 Dock 自动展开日志

变更

  • Store 按域切片:src/store.ts 拆为 services / logs / daemon / ui 四域 + index 聚合,对外仍导出同一 useStore,组件零改动
  • 样式模块化:styles.css(~2600 行)拆为 src/styles/ 九区(tokens / topbar / sidebar / service-card / log / antd / file-panel / dark / view-git);antd Design Token 抽出 theme-tokens.ts,与 CSS 变量对齐(含 hairline 边框)

JavaBoot Launcher v0.20.2

Choose a tag to compare

@github-actions github-actions released this 08 Sep 08:22

修复

  • Diff→主编辑器滚动同步单向失灵:DiffView 的 diff 内部同步(original↔modified)与外部同步(main↔diff)共用单个 syncing 布尔回环守卫,导致用户滚动 diff 页面时 attach(original→modified) 先设置 syncing=true,随后 modifiedEditor.onDidScrollChange 上注册的 diffToMain 监听器看到标志为 true 直接 return,diff→主编辑器方向永远无法同步。现将单一守卫拆分为 internalSyncing(diff 内部)与 externalSyncing(main↔diff),两层互不干扰,滚动同步在所有方向正常工作

JavaBoot Launcher v0.20.1

Choose a tag to compare

@github-actions github-actions released this 07 Sep 09:54

修复

  • 点击文件浏览器按钮弹出终端窗口:git_cli.rs 的 is_git_installed() 调用 Command::new("git") 时缺少 creation_flags_no_window()(CREATE_NO_WINDOW),Windows GUI 应用启动 git 进程时会弹出一个一闪而过的控制台窗口;打开文件浏览器会触发 git 可用性探测,因此每次点击都会闪现终端。现补齐该标志,与 base() 等其他 git 调用保持一致
  • Diff 对比面板与主编辑器无法同步滚动:DiffView 与左侧主编辑器是两个独立组件,此前仅 Diff 内部 original↔modified 双向同步,主编辑器滚动不会带动 Diff、反之亦然;现新增 mainEditor prop,在 handleDiffMount 中建立主编辑器 ↔ Diff modified 侧的双向滚动同步(两者内容相同、行号一一对应,按行号换算 scrollTop),带回环守卫与位置守卫

优化

  • Diff 对比面板 modified 侧不再显示行号:主编辑器已显示行号,Diff 并排模式再各显示一列会形成重复两列行号;现隐藏 Diff modified 侧行号,只保留 original(HEAD)侧行号,避免视觉冗余

JavaBoot Launcher v0.20.0

Choose a tag to compare

@github-actions github-actions released this 07 Sep 00:55

新增

  • gutter 颜色条点击预览变更:点击编辑器左侧变更标记(绿/黄/红颜色条)即可内联展开 view zone 预览对应变更内容——绿色(added)展示新增行、黄色(modified)展示 HEAD 原始代码、红色(deleted)展示被删除代码;此前仅纯删除标记可点击

修复

  • Diff 对比面板左右两侧无法同步滚动(v0.19.5 遗留):@monaco-editor/react 在 original/modified prop 变化时调用 setValue()/executeEdits() 触发 diff 重新计算,此期间 getLineChanges() 返回空数组,mapLine 直接返回原行号但两侧行号含义不同(HEAD 行号 vs 当前行号)导致对端跳到错误位置;现增加 onDidUpdateDiff 就绪守卫,diff 未就绪或无 changes 时跳过映射同步
  • file_at_head 吞掉所有 git 错误:cat-file 的所有失败一律降级为 Ok(None),掩盖仓库损坏等真实故障并误导前端显示「尚未提交」;现区分「文件不在 HEAD」(stderr 含 does not exist/Not a valid object → Ok(None))与 git 故障(→ Err)
  • Diff 按钮在文件无改动时仍可点击:unmodified 状态下点击进入只显示「无差异」空面板,浪费一次 git 调用;现 disabled 禁用

优化

  • FileDiff.status 类型收紧:从裸 string 改为联合类型(added | modified | deleted | renamed | unmodified | binary),编译期约束状态值,避免拼接未定义 CSS class
  • DiffView handleDiffMount 闭包:移除 useCallback([]) 空依赖,消除组件复用场景下 disposable 清理的闭包陈旧风险

JavaBoot Launcher v0.19.5

Choose a tag to compare

@github-actions github-actions released this 04 Sep 17:44

修复

  • Diff 对比面板左右两侧无法同步滚动:v0.19.2 的手动同步是纯像素级(直接复制 scrollTop),在两侧行数不同时位置必然错位,还会覆盖 Monaco 原生(正确的行映射)同步;现改为按 diff 行号映射的双向同步——source 顶部可见行经 getLineChanges() 的 ILineChange 映射到对端行号,再用 getTopForLineNumber 换算 scrollTop,带回环守卫 + 位置守卫

JavaBoot Launcher v0.19.4

Choose a tag to compare

@github-actions github-actions released this 04 Sep 11:02

Changes

  • 优化 (66c9582)
  • 🎉 release(master): 发布 v0.19.3:修复 GitHub Release 发布失败 + 编译/打包警告清零 + 发布 workflow 提速 - 版本号同步 5 处:package.json / package-lock.json(顶层+packages 两处)/ tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:v0.19.2 发布失败 —— tauri-action 与 softprops/action-gh-release 争抢同一 tag 的 Release(找不到再创建 → 403),移除冗余 softprops 步骤,由 tauri-action 统一创建并上传 - 修复:编译/打包警告清零(Rust linker_messages、Vite chunk 超限、main.tsx react-refresh) - 优化:发布 workflow 提速(rust-cache 编译缓存 / concurrency / CARGO_INCREMENTAL=0 / 浅克隆 depth 20),未改项目 LTO/codegen-units 发布配置 (2c3ee1a)
  • 优化 ci check (4a9bd4e)
  • 🎉 release(master): 发布 v0.19.2:修复启动白屏久 / Blame 未知作者 / Diff 无法同步滚动 / 遗留 .javaboot 目录 - 版本号同步 5 处:package.json / package-lock.json(顶层+packages 两处)/ tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:启动白屏久 —— git watcher refresh_all 改 spawn_blocking 后台执行;文件面板(含 monaco 3MB+)改 React.lazy 懒加载,monaco 不再进启动首帧 - 修复:Blame 悬浮未知作者 —— porcelain 元数据按 sha 缓存复用(同一 commit 被未提交行隔断后再次出现时 git 不重复输出 author),新增回归测试 - 修复:Diff 左右无法同步滚动 —— DiffEditor onMount 增加双向手动滚动同步(带位置守卫防回环) - 修复:启动时后台清理用户项目遗留的 .javaboot 目录(v0.18.5 起已迁移数据目录,属历史残留) (707ecde)
  • 🎨 chore: 修正 CHANGELOG Markdown 格式 (67d1ebe)
  • 🎉 release(master): 发布 v0.19.1:修复子目录仓库(monorepo/submodule)Git 集成路径错位 - 版本号同步 5 处:package.json / package-lock.json(顶层+packages 两处)/ tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:项目根为 git 仓库子目录时,pathspec 以 cwd 为基准、status 输出以仓库根为基准,前端此前把真实仓库根当命令基准传参导致 gutter/文件树状态/Diff 全部错位;现 git 命令 cwd 统一为真实仓库根、status_all 返回路径转回项目根相对、前端统一以 project.root_path 为基准,新增真实 git 集成测试覆盖 - 文档:README 新增 Git 集成章节、项目结构与技术栈更新 (9cd9c2b)
  • 🎉 release(master): 发布 v0.19.0:新增 Git 集成(gutter 变更标记 / Diff 对比面板 / 文件树状态 / blame / 删除代码查看) - 版本号同步 5 处:package.json / package-lock.json(顶层+packages 两处)/ tauri.conf.json / Cargo.toml(含 Cargo.lock) - 新增:Git 集成 —— 基于 git CLI 的完整只读集成,全部 git 调用在 Rust 后端完成(git_cli 执行层 + git_watcher 防死循环监听 + 5 个 command) - 新增:gutter 变更标记(绿新增/黄修改/红删除,minimap+overview ruler)、Diff 对比面板(HEAD↔当前,并排独立)、文件树状态圆点、blame 悬浮、删除标记 view zone - 优化:Monaco groovy/gradle 语言映射修正、补齐 json/css/html/ts 语言 worker、编辑器 viewState 内存清理 (db7fe59)
  • 🎨 chore: 修正 version-release 技能 Markdown 格式 (bd91997)
  • 🎉 release(master): 发布 v0.18.6:修复 daemon 托管服务启动后一直停在启动中 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:spawn_service 注册 service_id↔run_id 映射前,daemon 先发的 proc.status running/metrics/日志事件被 normalize_event 丢弃,导致 UI 停在启动中且漏开头日志,重启才恢复;现注册后立即经 reconcile_after_spawn 向 daemon 补对账,校正错过的 Running 状态(幂等) (a2b6aa2)
  • 🎉 release(master): 发布 v0.18.5:运行期文件迁出用户项目 + 设置页清除运行数据 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 变更:daemon 日志镜像与 spec 快照改写入软件数据目录 run/,不再写进 <working_dir>/.javaboot 污染项目 - 新增:设置页「运行数据」展示占用大小并支持一键清除;运行中服务被占用文件提示停止后清除 - 优化:daemon 周期清理 run/ 过期运行数据,防无限膨胀 (7920f4b)
  • 🎉 release(master): 发布 v0.18.4:修复误报「日志输出管道已断开」 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:日志管道断开提示延后到 rebind/adopt 之后,仅对仍为本地托管的服务提示,daemon 托管服务日志可续传不再误报 (2db9b31)
  • 🎉 release(master): 发布 v0.18.3:修复 daemon 托管服务已启动却一直显示启动中 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:daemon 就绪判定与 launcher 本地 check_started 对齐(新增 Tomcat/Jetty/Netty/Undertow started on port 及宽匹配 Started...in...second),修复 biz 等未打印标准 Started 行的托管服务一直卡「启动中」 (7561b91)
  • 🎉 release(master): 发布 v0.18.2:修复 daemon 托管服务 CPU 虚高 + 超长命令服务统一托管 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:daemon monitor 改为复用全局 System 并在采样前刷新全局 CPU 基线,修复托管服务 CPU 虚高 100%(0.18.0 未修复) - 修复:超长命令行(JDK8 CLASSPATH 模式)服务也纳入 daemon 托管,解决同时启动两个服务只有一个被托管 - 修复:launcher refresh_resource_usage 跳过 daemon 托管服务,避免重复采样覆盖 daemon 权威指标 (394579b)
  • 🎉 release(master): 发布 v0.18.1:日志本地时区 + daemon 定位优先规范安装位置 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:launcher 日志时间戳改用 chrono::Local 输出本地时区(替换默认 format_timestamp_secs 的 UTC) - 修复:locate_daemon_exe 优先 resources/ 规范安装位置,避免被安装根目录遗留的旧版 daemon.exe 劫持导致 L2 纳管静默失效 (260f451)
  • 🎉 release(master): 发布 v0.18.0:daemon 托管统一 + 本地进程纳管 + CPU 展示修复 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 新增:daemon 就绪门控(ensure_daemon_ready),服务启动统一走 daemon 托管,避免同批服务托管归属不一致 - 新增:daemon recovery.rescan + launcher adopt_local_processes,重启后本地托管存活进程按 pid 纳管进 daemon,消除双源状态 - 修复:refresh_resource_usage 采集前补齐 refresh_cpu_usage 全局基准,修复本地托管进程 CPU 虚高 100% (228190b)
  • 🎉 release(master): 发布 v0.17.6:修复 daemon 安装位置找不到导致无法拉起 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:bundle.resources 改为映射对象,daemon 规范安装到 resources\,避免落进 target\release\ 而 locate_daemon_exe 找不到 - 修复:locate_daemon_exe 补充 target\release\ 候选路径,兼容旧布局安装遗留 (73f2287)
  • 🎉 release(master): 发布 v0.17.5:修复重启后本地托管服务丢失与升级时旧 daemon 占用 - 版本号同步 4 处:package.json / package-lock.json / tauri.conf.json / Cargo.toml(含 Cargo.lock) - 修复:重启恢复由「daemon 在线与否二选一」改为并行恢复(restore_running_services + rebind),本地直接 spawn 的存活服务不再被忽略 - 修复:install_update 升级前新增 ipc::stop_daemon 结束旧 daemon,避免其锁定 javaboot-daemon.exe 导致 NSIS 无法覆盖 (ab17653)
  • 🐛 fix(ci): 修复 Release Notes 读取与生成 —— CHANGELOG 标题转义兼容 + 修正 fallback 数组 join (fd6f6bd)
  • 🎉 release(master): 发布 v0.17.4:daemon 启动失败自动回收进程 (4bcc677)
  • 🎉 release(master): 发布 v0.17.3:daemon 停止超时回退本地强杀 (241e25b)

JavaBoot Launcher v0.19.3

Choose a tag to compare

@github-actions github-actions released this 04 Sep 10:05

修复

  • GitHub Release 发布失败(v0.19.2 即因此失败):发布 workflow 中 tauri-action(默认创建并上传 Release)与 softprops/action-gh-release(对同一 tag 再次上传)争抢同一 Release——softprops 找不到 Release 后尝试再创建,返回 Resource not accessible by integration 403;现移除冗余的 softprops 步骤,由 tauri-action 统一创建 Release 并上传 NSIS 安装包
  • 编译 / 打包警告清零:Rust 链接器 linker_messages 信息性警告(Tauri lib 生成 cdylib 导入库,#![allow(linker_messages)]);Vite chunk 超 500KB 误报(monaco 已懒加载、antd 独立 vendor,chunkSizeWarningLimit 调至 4000);main.tsx 入口文件豁免 react-refresh 规则

变更

  • ci-check 不再云端自动触发:与发布流程本地预检重复,改为仅 workflow_dispatch 手动在 GitHub 运行

优化

  • 发布 workflow 提速:新增 Swatinem/rust-cache(Rust 编译缓存,命中后 release 编译从十几分钟降到分钟级);concurrency 防并发构建;CARGO_INCREMENTAL=0;Checkout 浅克隆 fetch-depth: 20(与 changelog 回退 git log -20 对齐)。未改动项目 [profile.release] 的 LTO/codegen-units 配置(体积与启动速度优先)

JavaBoot Launcher v0.19.1

Choose a tag to compare

@github-actions github-actions released this 04 Sep 08:22

修复

  • 子目录仓库(monorepo / submodule)Git 集成错位:当项目根是 git 仓库的子目录时,前端此前把 rev-parse --show-toplevel 解析出的真实仓库根当命令基准传参,而 filePath 是项目根相对路径——且 git 的 pathspec 以 cwd 为基准、status 输出以仓库根为基准,导致 gutter 变更标记 / 文件树状态 / Diff 对比全部错位或失效。现将 git 命令工作目录统一设为真实仓库根(内部一律用仓库根相对路径做 pathspec),status_all 返回路径转回项目根相对(与前端文件树口径一致),前端统一以 project.root_path 为命令基准;新增真实 git 集成测试(integration_subdir_project_relative_paths)覆盖该场景