Repository navigation
Releases: ihopefulChina/Larto
Releases · ihopefulChina/Larto
Release list
Larto v0.2.1
修复模拟器上方弹层无法点击的交互阻断,并改进地址栏历史的日常体验。
修复
- 模拟器上方弹层(历史记录、机型/缩放/账号菜单、各类确认框)无法点击与悬停:根因是模拟器列的窗口拖拽区把弹层上的按下事件吞成了拖动窗口(GPU 合成下
no-drag挖洞不生效,按下后既无点击也无悬停、窗口会跟着移动)。移除模拟器列与手机状态栏/导航栏的拖拽区;窗口拖动保留在顶部工具栏。 - H5 应用跳登录页:authorize 的会话校验发生在 accounts 域而注入未覆盖,导致 302 到登录页;补齐 accounts 主机与
/authen/v1路径的注入覆盖。 - 会话 Cookie 采纳不完整:登录窗口现在捕获 passport 全套 Cookie(设备绑定、csrf、locale 上下文)并在账号变化时采纳进模拟器分区(对齐 Chrome 行为),减少新设备「请重新授权」。
变更
- 地址栏历史:下拉支持按输入过滤与键盘选择(↑↓/Enter);点箭头打开后键盘立即可用;失焦联动收起;点击输入框可重新展开。
- 清空历史增加确认对话框,不再一键直接清空。
- 导航失败给出提示:目标无法打开(如 dev server 已关闭)时 toast 告知,不再静默无反应。
已知限制
- 与 0.2.0 相同:macOS 包仅 ad-hoc 签名且未公证,Windows 与 Linux 未签名;应用内「检查更新」会前往下载页。
Larto v0.2.0
这是第一个功能版本:对齐官方开发者工具的行为细节,并给设置页与模拟器带来一次布局重构。
新增
- JSAPI Mock 规则引擎:设置里用 JSON 编辑
apiName + paramRules(正则) + response规则,命中的 JSAPI 由本地直接返回、不再走真实桥;规则在页面加载与修改时自动同步到模拟器。 - 持续事件流:
device.geolocation.start现在持续推送位置(每 5 秒),导航或关闭模拟器时自动停止。 - 页面登录身份:模拟器页面里自己的 passport 登录会话可实时用于该页面的接口请求(可在设置中开关)。
- hash 换租户协议:页面导航到
#mode=account时,页面内的登录身份会被采纳为工具账号;#mode=debug启用页面登录身份调试。 opdev://deep link:opdev://open?url=…可从外部直接在模拟器里打开页面(含冷启动场景)。native-resource://文件协议:基于一次性 token 的本地文件回传通道,为文件类 JSAPI 预留。- 远程调试端口:设置里可开启
--remote-debugging-port=17332(仅回环监听,重启生效),供chrome://inspect等外部工具连接。 - passport 请求头注入:模拟器页面发往 passport 的请求会自动携带账号会话 Cookie 与
X-Device-Info: platform=websdk。
变更
- 设置页拆分为四个标签页:通用、网络、调试、应用;切换标签不丢编辑草稿。
- 机型与缩放控件移到模拟器上方的独立工具条,顶部命令栏释放空间、地址栏更聚焦。
- 导航栏标题跟随页面:页面修改
document.title时导航栏标题同步更新。 - 补充
setNavigationInfo/navigateBack/navigateClose/getIp/loadLocation内部 API 名;会话过期时向页面推送setSessionExpired事件。 - 内置 mock 固定值对齐官方硬编码(机型、Wi-Fi、位置、联系人等)。
- 所有缺 SameSite 的 Set-Cookie 自动补
SameSite=None; Secure,第三方 SSO 跳转不再丢 Cookie。
已知限制
- 真实飞书登录、
tt.config/requestAuthCode/requestAccess与 PC 预览推送:代码已实现,尚未用真实账号验收。 - macOS 包仅做 ad-hoc 签名且未公证,Windows 与 Linux 包未签名。浏览器下载后若仍被拦截或 Dock 一直跳,执行
xattr -dr com.apple.quarantine /Applications/Larto.app后再打开。应用内更新仍需要 Developer ID 签名,因此当前安装包的「检查更新」会前往下载页。
Larto v0.1.8
分栏竖线静止时完全透明。顶栏「H5 网页调试」铭牌隐藏但保留宽度。空白的顶栏和手机周围的暗色区域可以拖动窗口。
变更
- 模拟器与 DevTools 之间的原生 sash 标记改为透明,10px 命中条仍在;壳层 1px 分隔线静止时也不再绘制。悬停、拖动和键盘焦点仍是 3px 蓝色。
- 顶栏模式铭牌用
visibility: hidden藏起,占位宽度保留,地址栏不左移。 - 铭牌空位、控件间隙、模拟器画布、状态栏和导航标题可以拖动窗口。地址栏、按钮、网页、返回/关闭/更多、PC 尺寸条和分栏缝保持可操作。调试器面板不作为拖拽区。
已知限制
- 真实飞书登录、
tt.config/requestAuthCode/requestAccess与 PC 预览推送:代码已实现,尚未用真实账号验收。 - macOS 包仅做 ad-hoc 签名且未公证,Windows 与 Linux 包未签名。浏览器下载后若仍被拦截或 Dock 一直跳,执行
xattr -dr com.apple.quarantine /Applications/Larto.app后再打开。应用内更新仍需要 Developer ID 签名,因此当前安装包的「检查更新」会前往下载页。
Larto v0.1.7
机型菜单不再被分栏竖线穿过。没有 Developer ID 签名的 macOS 包在检查更新时直接去下载页,不再先下载一个无法安装的更新。
修复
- 下拉菜单或模态盖住左右栏之间的缝时,卸下盖在壳层上的原生分栏竖线。菜单保持打开期间,列宽或窗口尺寸变化会重新判断。
- 已打包的 macOS 应用只有 Developer ID 签名才走应用内安装。ad-hoc 包检查更新时说明需手动替换,启动时的静默检查不弹窗。
- 官网对 Linux arm64 的提示不再写死某个旧版本号。
已知限制
- 真实飞书登录、
tt.config/requestAuthCode/requestAccess与 PC 预览推送:代码已实现,尚未用真实账号验收。 - macOS 包仅做 ad-hoc 签名且未公证,Windows 与 Linux 包未签名。浏览器下载后若仍被拦截或 Dock 一直跳,执行
xattr -dr com.apple.quarantine /Applications/Larto.app后再打开。应用内更新仍需要 Developer ID 签名,因此当前安装包的「检查更新」会前往下载页。
Larto v0.1.6
修复调试器分栏拖拽:拖动时不再在机身上留下竖线,松手后也不再跟着光标改列宽。
修复
- 拖分栏时原生 sash 灰线不再停在按下位置压到机身;只藏标记,不卸掉接松开的 sash。
- 松手、失焦或壳层 mouseup 都会结束拖拽,不再依赖 overlay
did-finish-load。未按住时 ticker 不再跟光标改左栏宽度。 contentView.children为空时不再把主进程打崩。
已知限制
- 真实飞书登录、
tt.config/requestAuthCode/requestAccess与 PC 预览推送:代码已实现,尚未用真实账号验收。 - macOS 包仅做 ad-hoc 签名且未公证,Windows 与 Linux 包未签名。浏览器下载后若仍被拦截或 Dock 一直跳,执行
xattr -dr com.apple.quarantine /Applications/Larto.app后再打开。
Larto v0.1.5
修复 0.1.4 安装后 Dock 在跳、窗口不出现或界面假死。
修复
- 主窗口不再等系统代理和 MCP listen 完成后才创建。二次打开会
show()已有窗口,避免焦点落到从未绘制的进程上。 - 分栏 sash 不再每 500ms
addChildView和 DevTools 抢层级;相同布局与相同 PC 视口不再重复走 CDP。 - macOS 上
larto-mcp启动应用前会尽量清掉com.apple.quarantine,减轻浏览器下载后第一次打开卡在 Gatekeeper 的情况。
已知限制
- 真实飞书登录、
tt.config/requestAuthCode/requestAccess与 PC 预览推送:代码已实现,尚未用真实账号验收。 - macOS 包仅做 ad-hoc 签名且未公证,Windows 与 Linux 包未签名。浏览器下载后若仍被拦截或 Dock 一直跳,执行
xattr -dr com.apple.quarantine /Applications/Larto.app后再打开。
Larto v0.1.4
工作台与调试链路收口。官方左右栏可拖、PC 可缩放,并修掉登录 / JSAPI / 切机在并发时的几处竞态。
新增
- 调试器打开时,模拟器列与 DevTools 列之间为官方同款 10px sash。左列默认设备宽 + 32(PC 为 500),右列最小 300;拖动写入
settings.simulatorColumnWidth,切机型或双击分隔条回到自动宽度。 - PC(含 Windows)工具栏提供 50%–150% 缩放,只改窗口外观,不改页面 CSS 视口。
- 工作台改为单行命令栏:地址、机型、缩放与 PC 尺寸在顶栏,模拟器与 DevTools 齐顶。
修复
- 扫码登录进行中时,页面 401 触发的
refresh()不再抬高 generation 丢掉登录结果。 requestAccess授权弹窗在导航、超时或被新请求顶替时关闭,JSAPI 回包不会写回旧文档。- JSAPI 鉴权把 HTTP 401 与过期 session 映射为未登录,并刷新账号状态。
- 切机 CDP 走 latest-wins 队列;PC
ResizeObserver不能把已切走的机型写回去。 - Passport 能解析 Chromium 拼在一行里的
Set-Cookie;租户列表 code 4 不再整号登出。 - 连续写入设置时,旧的
settings:set回包不会盖掉更新的快照。 - 分栏宽度的运行时上限与
settings.jsonschema 对齐,超宽屏拖拽可以落盘。 - MCP
get_state的deviceId报告正在切换的目标机型。
变更
- 壳层 token、动效与机身投影(Dynamic Island / Home Indicator);PC 宽高收到画布底部 HUD。
已知限制
- 真实飞书登录、
tt.config/requestAuthCode/requestAccess与 PC 预览推送:代码已实现,尚未用真实账号验收。 - macOS 包仅做 ad-hoc 签名且未公证,Windows 与 Linux 包未签名。
Larto v0.1.3
修复
- 修复已配置 MCP 的客户端在后台连接、重连或发现工具时反复打开 Larto 的问题。stdio 桥启动以及
initialize、ping、tools/list均在本地处理,不再启动桌面应用;只有实际tools/call才按需启动并等待模拟器就绪,--no-launch始终禁止启动应用。 - stdio 桥内置工具目录,由自动化测试与桌面应用的工具契约比对,使工具发现不依赖应用运行。
升级说明
- 本次修复位于
larto-mcpnpm 桥中。升级桌面应用时也必须将桥更新至 0.1.3 或更新版本;固定旧 npm 版本或直接运行旧本地脚本的客户端配置需同步更新。 - 真实飞书登录与 JSAPI 鉴权仍待真实账号 UAT;macOS 包仅做 ad-hoc 签名且未公证,Windows 与 Linux 包未签名。
Larto v0.1.2
产品更名为 Larto 后的首次公开发布。GitHub Release 资产、桌面安装包与 MCP npm 包均使用新名称。
变更
- 产品更名为 Larto。应用显示名、窗口标题、GitHub 仓库、官网、Bundle ID(
app.ihopeful.Larto)、Linux 可执行文件(larto)、MCP 服务名(larto)与 npm 包(larto-mcp)全部切换。 - 首次启动时,若新的 userData 目录还没有设置或会话,会从旧产品目录复制已有资料。
- GitHub Release 资产文件名改为
Larto-${version}-…;stdio 桥改为公开包larto-mcp。
已知限制
- 真实飞书登录、
tt.config/requestAuthCode/requestAccess鉴权、PC 预览推送:代码已实现,尚未用真实账号验收。 - 本版本为 ad-hoc 签名、未公证。首次打开需在「系统设置 → 隐私与安全性」选择「仍要打开」;若提示「已损坏」,执行
xattr -dr com.apple.quarantine /Applications/Larto.app后重试。macOS 上 electron-updater 的静默安装需要 Developer ID 签名,因此应用内更新会跳转下载页。 - Windows 与 Linux 包尚未签名。
FeishuDevTools v0.1.1
跨平台发布版本。将网页调试工作台扩展到 macOS 双架构、Windows x64 与 Linux x64,并把下载、校验、MCP 发布和安全披露纳入同一条可追溯的发版链路。
新增
- macOS Apple Silicon(arm64)与 Intel(x64)各提供 DMG / ZIP。
- Windows x64 提供 NSIS 安装版、便携版与 ZIP。
- Linux x64 提供 AppImage、DEB、RPM 与 tar.gz。
- Release 汇总生成
SHA256SUMS.txt,所有资产文件名明确标注平台与架构。 - Release 在 macOS Apple Silicon / Intel、Windows 与 Linux 原生 runner 上启动打包后的应用并验证非空截图,再允许聚合发布;产物同时生成 GitHub artifact attestation。
feishu-devtools-mcp@0.1.1作为公开 npm stdio 桥发布;支持 Cursor、Claude Code、Claude Desktop 与 Codex 一键注册,并能跨平台拉起已安装的应用。- 跨平台 CI / Release 矩阵在对应原生 runner 上验证、构建并汇总发布资产。
修复
- 修复飞书 passport
{code, data}信封、多租户列表与credential_id解析错误造成的扫码后仍显示登录失败。 - 修复应用未 ready 时读取
safeStorage导致已有会话被误判为退出的问题;过期头像保持原色并用状态描边提示。 - 修复 MCP 健康检查先于模拟器 attach 时,首个
navigate请求可能被吞掉的问题。 - 修复移动设备触摸模拟干扰 DevTools「选择元素」,以及原生 DevTools 盖住账号菜单、地址历史和弹窗的问题。
- 修复深色模式下模拟器外壳仍为白色、iPhone Home Indicator 产生独立有色安全区、地址栏与定位 placeholder 对比过强等视觉问题。
- PC 模拟器支持直接拖动 viewport,并可在随窗口伸缩与固定尺寸之间切换。
- 检查更新在离线启动时保持安静,跳过版本与手动检查行为分离;更新说明以白名单清洗后显示。
- Linux 没有受保护的 Secret Service / KWallet 后端时不再持久化登录 Cookie,并在设置中明确提示会话只保留到退出应用。
- AppImage 不再携带
--no-sandbox;如果启动环境仍注入该参数,应用会在载入网页前拒绝启动。网页的剪贴板读取、媒体、定位、通知、全屏与 pointer lock 改为按来源明确授权;JSAPI 的剪贴板读写也必须经主进程按当前 guest 来源确认,未知权限默认拒绝。Passport 登录分区不需要 Web 权限并全部拒绝。 - 本地开发服务器的自签名证书例外现在先确认主机名是实际私网 IP;形似
127.example.com或10.example.com的公网域名不再被误判为私网并放行无效证书。 - 特权 shell 只允许导航到精确的打包入口或开发服务器同源页面;主进程 IPC 同时校验主窗口、主 frame 与 shell URL,不再把任意
file:页面视为可信调用方。 - MCP 端口切换改为串行生命周期,连续修改设置不会并发监听或显示旧状态;客户端安装器以原子替换写配置,覆盖前保留
.bak,并兼容符号链接与带 UTF-8 BOM 的 Windows JSON。 - 设置只有在原子写盘成功后才更新内存与通知界面;网络、账号与 JSAPI 异常日志改为安全摘要,不再写入原始响应。
变更
- 默认外观改为深色、默认设备改为 iPhone 17 Pro;默认窗口按设备完整高度计算。
- 应用 Bundle ID 统一为
app.ihopeful.FeishuDevTools。 - 工具栏、设置、检查更新、设备与缩放控制重新整理为更接近开发者工具的信息密度与层级。
- README 与官网重写为跨平台发布文档;新增自动平台识别、手动下载矩阵、安全边界、签名状态、SHA-256 校验与 UAT 状态说明。
- 官网的六张明暗主题产品图改为由匿名本地诊断页与临时 profile 可重复生成,避免账号、租户或内部地址进入公开截图。
已知限制
- 真实飞书扫码登录、多租户切换、
tt.config、requestAuthCode、requestAccess与 PC 推送已实现,但仍需真实账号 / 租户 UAT。 - macOS DMG / ZIP 内的
.app当前仅做 ad-hoc 签名且未公证,下载容器没有 Developer ID 签名;Windows 与 Linux 构建未签名。首次启动可能出现系统安全提示,正式代码签名仍待配置。 - Linux 登录会话的
safeStorage保护强度取决于桌面环境提供的密钥环;建议启用兼容 Secret Service 的安全存储。 - macOS x64、Windows x64 与 Linux x64 的原生安装、更新和桌面集成仍需在对应系统持续 UAT。