Skip to content

Releases

Biny 0.0.1

Choose a tag to compare

@github-actions github-actions released this 01 Nov 10:03

Biny 是本地优先、记忆优先的开发协作 Agent,提供 macOS Desktop、TUI 与 CLI,支持通过 MCP、Skills 和插件扩展。

macOS 安装

  • Apple Silicon 下载 arm64.dmg。打开 DMG 后将 Biny 拖入 Applications。
  • 此安装包未使用 Apple Developer ID 签名或公证。首次打开可能被 macOS 拦截;确认下载来源后,在“系统设置 → 隐私与安全性”中选择“仍要打开”。Apple 操作说明
  • 首次使用请配置模型服务商;桌面观察与操作需要相应的 macOS 权限。配置入口见 用户文档。
  • 安装、首次启动及界面交互待人工验收。

Full Changelog: v0.2.3-beta.2...v0.0.1

Biny 0.2.3-beta.2

Biny 0.2.3-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 30 Oct 01:44

Biny 是本地优先、记忆优先的开发协作 Agent,提供 macOS Desktop、TUI 与 CLI,支持通过 MCP、Skills 和插件扩展。

macOS Beta 安装

  • Apple Silicon 下载 arm64.dmg。打开 DMG 后将 Biny 拖入 Applications。
  • 此 Beta 未使用 Apple Developer ID 签名或公证。首次打开可能被 macOS 拦截;确认下载来源后,在“系统设置 → 隐私与安全性”中选择“仍要打开”。Apple 操作说明
  • 首次使用请配置模型服务商;桌面观察与操作需要相应的 macOS 权限。配置入口见 用户文档。
  • 此版本供测试使用;安装、首次启动及界面交互待人工验收。

Full Changelog: v0.0.1-beta.6...v0.2.3-beta.2

Biny 0.0.1-beta.6

Biny 0.0.1-beta.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 29 Oct 11:58

本次图标更新

  • 桌面端与 Biny Agent 官网统一使用白色毛绒兔子图标。
  • macOS Dock 启动期间眨眼,启动完成后恢复静态;尊重系统减少动态效果设置。
  • 更新应用内头像、favicon 与分享图,并适配多尺寸图标。

Biny 是本地优先、记忆优先的开发协作 Agent,提供 macOS Desktop、TUI 与 CLI,支持通过 MCP、Skills 和插件扩展。

macOS Beta 安装

  • Apple Silicon 下载 arm64.dmg;Intel 下载 x64.dmg。打开 DMG 后将 Biny 拖入 Applications。
  • 此 Beta 未使用 Apple Developer ID 签名或公证。首次打开可能被 macOS 拦截;确认下载来源后,在“系统设置 → 隐私与安全性”中选择“仍要打开”。Apple 操作说明
  • 首次使用请配置模型服务商;桌面观察与操作需要相应的 macOS 权限。配置入口见 用户文档。
  • 此版本供测试使用;安装、首次启动及界面交互待人工验收。

What's Changed

  • fix(crystal): preserve distinct topic identities on hash collision by @binyouo in #259
  • fix(ui): respect quote selection dismissal by @binyouo in #263
  • fix(crystal): derive ready indicator from current validation by @binyouo in #265
  • fix(desktop): guard quote additions across navigation epochs by @binyouo in #267
  • fix(desktop): cancel superseded quote append focus by @binyouo in #268
  • fix(mcp): await pending transport cleanup during shutdown by @binyouo in #274
  • fix(activity): renew canceled operation lifetime after unchanged settings by @binyouo in #275
  • fix(activity): settle trailing keypresses before recorder restart by @binyouo in #277
  • fix(mcp): support servers without tools capability by @binyouo in #280
  • fix(desktop): keep message-menu references in their navigation scope by @binyouo in #282
  • fix(desktop): keep reference dialogs with their source owner by @binyouo in #284
  • fix(mcp): preserve private resource and prompt pagination cursors by @binyouo in #285
  • fix(memory): keep continued drafts editable after save reordering by @binyouo in #286
  • fix(crystal): preserve seed drafts when earlier creation completes by @binyouo in #290
  • fix(cli): report resolved Todo session identities by @binyouo in #291
  • fix(imports): preserve sync preview target while adjustment is pending by @binyouo in #292
  • fix(desktop): release canceled attachment preparation waits by @binyouo in #296
  • fix(session): keep fork identity bound to its source read by @binyouo in #298
  • fix(crystal): commit material attachments with metadata atomically by @binyouo in #299
  • fix(activity): preserve initial click application after idle resume by @binyouo in #302
  • fix(runtime): bind resumed history to its claimed session by @binyouo in #303
  • fix: prevent queued automation fires from starving independent discovery by @binyouo in #305
  • fix(activity): recover fallback OCR after history deletion by @binyouo in #306
  • fix: drain native tools before completing cancelled turns by @binyouo in #309
  • fix(desktop): isolate preference publication from queued state writes by @binyouo in #311
  • fix(attachments): budget storage names by UTF-8 bytes by @binyouo in #312
  • fix(desktop): lock provider dialogs during pending saves by @binyouo in #330
  • fix(desktop): preserve current catalog after archive completion by @binyouo in #338
  • fix(desktop): reconcile pin and rename catalogs after metadata writes by @binyouo in #339
  • fix(desktop): refresh image bytes on explicit file refresh by @binyouo in #341
  • fix(desktop): clean up audio graph after failed replay by @binyouo in #343
  • fix(automation): preserve final year-limited cron occurrences by @binyouo in #344
  • fix(desktop): retire stale Crystal details before reopening by @binyouo in #345
  • fix(mcp): detach settled request cancellation from callers by @binyouo in #346
  • fix(mcp): preserve Unicode pairs at output byte limits by @binyouo in #347
  • fix(codemode): preserve Unicode pairs in stdout previews by @binyouo in #348
  • fix(skills): preserve Unicode pairs in description clipping by @binyouo in #349
  • fix(context): preserve Unicode within instruction byte budgets by @binyouo in #350
  • fix(todo): preserve newer plans when stale reads settle by @binyouo in #351
  • fix(heartbeat): review the current foreground session checklist by @binyouo in #352
  • fix(runtime): keep child notices with their receiving session by @binyouo in #353
  • fix(runtime): scope TaskStatus reads to the executing session by @binyouo in #354
  • fix(runtime): validate TaskCancel against the executing session by @binyouo in #355
  • fix(runtime): isolate historical task inspection mailboxes by @binyouo in #356
  • fix(runtime): align task input status with communication admission by @binyouo in #357
  • fix(desktop): bind recorded subagent output to its attempt by @binyouo in #358
  • fix(calendar): preserve local date boundaries across missing midnight by @binyouo in #359
  • fix(edit): preserve the leading BOM when prepending Hashline content by @binyouo in #360
  • fix(browser): align download tool timeout schema with runtime by @binyouo in #361
  • test(ci): strengthen Host regressions and diagnose remaining failures by @binyouo in #239
  • fix(runtime): settle observations when reconnect stops by @binyouo in #244
  • test(attachments): preserve imported bytes under path-only document hydration by @binyouo in #248
  • test(runtime): await secured Host readiness in title race fixture by @binyouo in #255
  • test(todo): harden fixture isolation and failure cleanup by @binyouo in #256
  • fix(context): refresh prepared runtime dates without duplicate reminders by @binyouo in #258
  • fix(context): persist retry preparation checkpoints on the shared prefix by @binyouo in #260
  • fix(memory): retain extraction source anchors across completed turns by @binyouo in #261
  • fix(crystal): resolve activity evidence in runtime prefill by @binyouo in #262
  • fix(memory): preserve source-time context in temporary cleanup by @binyouo in #264
  • fix(desktop): preserve newer quote selection after old-request settlement by @binyouo in #266
  • fix(chat): preserve canonical quote sources for delivered user steps by @binyouo in #269
  • fix(tools): avoid caching all-invalid ToolSearch selections as no match by @binyouo in #270
  • fix(memory): preserve extraction ownership across session handoff by @binyouo in #271
  • fix(crystal): preserve manual conflicts during prefill by @binyouo in #278
  • test(activity): align greeting assertions with extracted persona prompt by @binyouo in #279
  • fix(memory): preserve facts when extracted additions are blank by @binyouo in #281
  • fix(memory): preserve current recall when deleting updated archives by @binyouo in #283
  • fix(activity): preserve newer summaries when older narratives finish by @binyouo in #287
  • fix(activity): reject superseded report fallbacks before response and export by @binyouo in #288
  • fix(crystal): read active canonical assistant materials by @binyouo in #289
  • fix(crystal): deduplicate material references independently of object key order by @binyouo in #293
  • fix(desktop): keep confirmed session metadata across stale event refreshes by @binyouo in #294
  • fix(desktop): preserve message edit ownership across async settlement by @binyouo in #295
  • fix(diary): preserve committed summaries across concurrent refre...
Read more

Biny 0.0.1-beta.4

Biny 0.0.1-beta.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Oct 12:14

本版重点更新

  • 更新 Biny 应用图标与桌面形象,主 App、Computer Use 辅助 App 和网页图标随构建同步生成。
  • 修复共享配置写入空 imageGen 后,旧版 App 因不识别该字段而无法启动的问题;保留显式配置的图像生成设置。
  • 改善流式 Markdown、消息时间线与文件预览,修复多项桌面状态和运行时资源清理问题。
  • 人格反思通过普通工具与 Skills 执行,提供旅行、自拍和按天查看历史等能力。
  • 改善 TUI 输入、工具卡片和 Computer Use 接入,并限制历史工具输出占用的上下文。

Biny 是本地优先、记忆优先的开发协作 Agent,提供 macOS Desktop、TUI 与 CLI,支持通过 MCP、Skills 和插件扩展。

macOS Beta 安装

  • Apple Silicon 下载 arm64.dmg;Intel 下载 x64.dmg。打开 DMG 后将 Biny 拖入 Applications。
  • 此 Beta 未使用 Apple Developer ID 签名或公证。首次打开可能被 macOS 拦截;确认下载来源后,在“系统设置 → 隐私与安全性”中选择“仍要打开”。Apple 操作说明
  • 首次使用请配置模型服务商;桌面观察与操作需要相应的 macOS 权限。配置入口见 用户文档。
  • 此版本供测试使用;安装、首次启动及界面交互待人工验收。

What's Changed

  • fix(session): 保留游标边界上排序等价的不同会话 ID by @binyouo in #145
  • perf(emotion): transform only the selected message tail by @binyouo in #146
  • fix(skills): cancel HTTP error response bodies without delaying errors by @binyouo in #147
  • fix(runtime): reject stale completion after verification reuse by @binyouo in #149
  • fix(session): invalidate old pause after resumed tool execution by @binyouo in #150
  • fix(runtime): recover completions by owner after pending admission by @binyouo in #151
  • fix(runtime): retain paused queues during automatic disposal by @binyouo in #152
  • fix(session): preserve active branch in Claude exports by @binyouo in #153
  • fix(session): honor latest branch selection over stale descendant choices by @binyouo in #154
  • fix(runtime): notify secondary sessions after replay-gap recovery by @binyouo in #155
  • fix(runtime): recheck pause admission after asynchronous preparation by @binyouo in #156
  • fix(agent): enforce active goal budget after compaction requests by @binyouo in #157
  • fix(mcp): retain tool catalog invalidations during startup by @binyouo in #158
  • fix(runtime): reject cancelled background starts before spawn by @binyouo in #159
  • fix(host): keep automation controls responsive during manual runs by @binyouo in #160
  • fix(agent): decline ambiguous normalized tool name repairs by @binyouo in #162
  • fix(activity): preserve new input when stale analysis completes by @binyouo in #163
  • fix(runtime): allow clearing text from queued native media by @binyouo in #165
  • fix(agent): reject quoted archive references in raw file results by @binyouo in #161
  • fix(agent): retain completed step usage when later requests fail by @binyouo in #164
  • fix(llm): preserve auxiliary finish reasons in request metrics by @binyouo in #183
  • fix(web): preserve Unicode characters at fetch page boundaries by @binyouo in #205
  • fix(activity): preserve fences inside analysis JSON strings by @binyouo in #207
  • fix(emotion): honor cancellation before context publication by @binyouo in #169
  • fix(skills): protect managed versions from automatic extraction by @binyouo in #170
  • fix(browser): stop undispatched keys after press cancellation by @binyouo in #172
  • fix(browser): report explicit cookie synchronization failures by @binyouo in #173
  • fix(context): preserve distinct Git query evidence by @binyouo in #174
  • fix(crystals): preserve user edits during semantic scans by @binyouo in #175
  • fix(briefs): preserve suggestion changes during rewrite commit by @binyouo in #176
  • fix(temporal): preserve active user dates after answer selection by @binyouo in #177
  • fix(session): restore historical attachments on snapshot resume by @binyouo in #179
  • fix(session): align attachments after interrupted user markers by @binyouo in #180
  • fix(memory): keep newer vectors when old updates settle by @binyouo in #181
  • fix(briefs): discard results after active-source changes by @binyouo in #182
  • fix(context): invalidate workspace caches after native patches by @binyouo in #184
  • perf(glob): prune directory subtrees before the page cursor by @binyouo in #185
  • perf(mcp): binary-search bounded UTF-8 prefixes by @binyouo in #186
  • fix(memory): bound WebSocket overview projections by @binyouo in #188
  • fix(memory): close owned cold desktop stores by @binyouo in #189
  • fix(preview): close file readers when responses cancel by @binyouo in #190
  • fix(diff): preserve header-looking hunk content in previews by @binyouo in #191
  • fix(plugins): add a registry request deadline by @binyouo in #193
  • fix(host): prevent oversized Bash results from poisoning live and replay connections by @binyouo in #194
  • fix(host): observe orphaned interrupted completions after transient errors by @binyouo in #195
  • fix(activity): prevent delayed narratives from reviving invalidated reports by @binyouo in #196
  • fix(cli): observe cancellation RPC failures without bypassing completion cleanup by @binyouo in #197
  • fix(agent): keep queued cancellation from bypassing live permission requests by @binyouo in #198
  • perf(context): avoid duplicate token scan during tool-result pruning by @binyouo in #199
  • fix(session): preserve healthy parse cache when oversized history is read by @binyouo in #200
  • fix(host): close failed initial clients before they can reconnect by @binyouo in #201
  • fix(models): isolate catalog cache and validators by protocol by @binyouo in #202
  • perf(context): avoid pricing the final assembly budget twice by @binyouo in #203
  • fix(shell): drain pending output before timeout settlement by @binyouo in #204
  • perf(agent): reuse serialization within single-result projection by @binyouo in #206
  • perf(desktop): reuse workspace model choices for picker by @binyouo in #208
  • fix(observability): count terminal model errors as failed requests by @binyouo in #211
  • fix(mcp): report prompt text clipping with residual byte budget by @binyouo in #212
  • fix(context): preserve actual ranges for archived Read results by @binyouo in #215
  • fix(desktop): route preview terminal restarts through preview launch by @binyouo in #216
  • fix(acp): retain partial tool output until terminal status by @binyouo in #225
  • fix(agent): retain active-turn compaction usage on replay by @binyouo in #167
  • fix(llm): apply capability-aware auxiliary reasoning overrides by @binyouo in #192
  • fix(acp): retain final tool evidence during cancellation by @binyouo in #224
  • fix(acp): honor cancellation before adapter startup by @binyouo in #227
  • fix(ci): identify failing Code Mode timing fixtures by @binyouo in #228
  • test(desktop): align color checks with delegated window appearance by @binyouo in #221
  • perf(session): make Markdown archive ID pre-scan linear by @binyouo in #210
  • perf(web): defer unused HTML fallback text conversion by @binyouo in #214
  • perf(desktop): skip unused Git probes for session tree pages by @binyouo in #217
  • perf(browser): avoid sending file data during upload wait by @binyouo in #218
  • fix(acp): preserve failed tool status in saved history by @binyouo in #226
  • fix(runtime): enforce exhausted budgets for paused background goals by @binyouo in #229
  • fix(context): preserve warm history on pre-dispatch...
Read more

Biny 0.0.1-beta.2

Biny 0.0.1-beta.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Oct 21:37

Biny 是本地优先、记忆优先的开发协作 Agent,提供 macOS Desktop、TUI 与 CLI,支持通过 MCP、Skills 和插件扩展。

macOS Beta 安装

  • Apple Silicon 下载 arm64.dmg;Intel 下载 x64.dmg。打开 DMG 后将 Biny 拖入 Applications;ZIP 提供相同 App 的压缩包。
  • 此 Beta 未使用 Apple Developer ID 签名或公证。首次打开可能被 macOS 拦截;确认下载来源后,在“系统设置 → 隐私与安全性”中选择“仍要打开”。Apple 操作说明
  • SHA256SUMS.txt 提供全部 DMG / ZIP 的校验值,可使用 shasum -a 256 <下载文件> 核对。
  • 首次使用请配置模型服务商;桌面观察与操作需要相应的 macOS 权限。配置入口见 用户文档。
  • 此版本供测试使用;安装、首次启动及界面交互待人工验收。

What's Changed

  • 发布 v0.2.0:完善桌面交互与运行时状态 by @binyouo in #1
  • fix(runtime): TDD 修复调度与取消竞态,优化会话与流式热路径 by @binyouo in #4
  • fix(runtime): TDD 修复写入竞态,缩短历史与准入热路径 by @binyouo in #5
  • feat(agent): add opt-in read-only Code Mode by @binyouo in #6
  • fix(memory): scope unread temporal clues to requested sessions by @binyouo in #7
  • feat(agent): truthful Code Mode discovery and memory reads by @binyouo in #8
  • fix(memory): preserve recall and history cancellation lifetimes by @binyouo in #9
  • fix(code-mode): isolate execution timing and bundle reviewed runtime by @binyouo in #10
  • feat(code-mode): admit trusted task and skill metadata queries by @binyouo in #11
  • fix(code-mode): harden and admit host-owned file read queries by @binyouo in #12
  • fix: harden checkpoint, history and MCP pagination recovery by @binyouo in #13
  • fix(search): isolate cancellable regex matching by @binyouo in #15
  • fix(ui): align memory disclosure arrows and state by @binyouo in #14
  • fix(todo): serialize durable plan publication by @binyouo in #16
  • fix(runtime): preserve host handshake timeout options by @binyouo in #17
  • fix(desktop): keep scheduled timeline reads read-only by @binyouo in #18
  • fix(mcp): close transports still opening during shutdown by @binyouo in #19
  • feat(agent): bound shell model output with recoverable archives by @binyouo in #20
  • Harden runtime, provider, and desktop lifecycles by @binyouo in #21
  • 修复 proxy-addr 与 source-map-js 的安全告警 by @binyouo in #30
  • 修复旧会话导出的工具调用关联与扫描开销 by @binyouo in #22
  • 让 MCP 资源发现及时响应调用者取消 by @binyouo in #23
  • 保留 Git 仓库路径与本地分支名称的准确边界 by @binyouo in #24
  • 修复网页声明编码解码与正文段落边界 by @binyouo in #25
  • 修复 Embedding 归一化前 Float32 转换丢失有限数值 by @binyouo in #26
  • 缩小带路径 Grep 的目录遍历范围 by @binyouo in #27
  • 修复 anyOf 跳过同层工具参数约束的问题 by @binyouo in #28
  • 改善 MCP 连接测试小号标题的对比度 by @binyouo in #29
  • 修复仓库根 Skill 安装后的更新失败 by @binyouo in #31
  • 修复项目诊断命令在无关设置保存时污染全局配置 by @binyouo in #33
  • 修复本地 Embedding 关闭与删除时的资源退役竞态 by @binyouo in #34
  • 修复生成锁 nonce 失败时未释放的本地文件锁 by @binyouo in #35
  • 在文件编辑审批 diff 中保留末尾换行变化 by @binyouo in #36
  • 等待聚焦会话快照就绪后完成 Runtime Host 接管测试 by @binyouo in #37
  • 修复工具参数校验将原型成员当作 JSON 属性的问题 by @binyouo in #38
  • 修复 Runtime Host 自动重连时遗漏的通知重放 by @binyouo in #39
  • 修复皮肤作用域测试误读 CSS 注释的问题 by @binyouo in #40
  • 修复活动配置监听安装前丢失的原子保存 by @binyouo in #41
  • 修复记忆 REST 查询把零条分页替换成默认页的问题 by @binyouo in #42
  • 修复手动压缩会话重开后丢失的摘要用量 by @binyouo in #43
  • 修复重试时丢弃 HTTP 响应正文未清理的问题 by @binyouo in #44
  • 修复 Embedding 最终失败响应的正文清理 by @binyouo in #45
  • 修复活动 daemon 响应跨数据块的 UTF-8 解码 by @binyouo in #46
  • 修复同运行时切换会话后丢失的标题生成触发 by @binyouo in #47
  • 修复记忆 WebSocket 晚订阅重放旧 Sleep 生命周期的问题 by @binyouo in #48
  • 修复模型目录新正文沿用旧 HTTP 校验值的问题 by @binyouo in #49
  • 对齐固定语义状态色的两处旧测试预期 by @binyouo in #50
  • 修复附件随机名称碰撞时覆盖已有文件 by @binyouo in #51
  • 减少长历史时间线构建的重复 assistant 扫描 by @binyouo in #52
  • 修正 Host 定时记忆维护测试夹具的策略一致性 by @binyouo in #53
  • 避免设置恢复文件写入已引用的 MCP 凭据值 by @binyouo in #54
  • fix(settings): require edits before saving revealed API keys by @binyouo in #55
  • 修复删除会话时历史检索打开文件的竞态 by @binyouo in #56
  • fix(settings): ignore stale provider key reads by @binyouo in #57
  • 修复 Edit 重叠精确匹配被误判为唯一的问题 by @binyouo in #58
  • fix(attachments): tolerate overlong optional context names by @binyouo in #59
  • fix(settings): deduplicate pending API-key saves by @binyouo in #60
  • 减少安静流式输出期间的事件队列内存保留 by @binyouo in #61
  • 将撤销授权弹窗遮罩归入共享调色板 by @binyouo in #62
  • 修复新建及重算一次性定时任务的时间戳比较 by @binyouo in #63
  • 修复 TUI 退出后晚到连接和状态计时器未释放的问题 by @binyouo in #64
  • 修复 TUI 本地 Host 关闭失败后客户端未释放的问题 by @binyouo in #65
  • 修复 Desktop 浏览器能力重绑和撤销时的镜像工具注册 by @binyouo in #66
  • 修复文件预览截断 UTF-8 字符时的替换字符 by @binyouo in #32
  • 修正日期详情与时间线索的实际时间排序 by @binyouo in #67
  • perf(session): 复用日期详情查询内的日期格式器 by @binyouo in #68
  • 修复停用后迟到的 Computer Use 预览与镜像请求 by @binyouo in #69
  • 修复 Computer Use 停止后的预览订阅与来源捕获竞态 by @binyouo in #70
  • fix(desktop): 保留发送和编辑时的导入图片 by @binyouo in #72
  • fix(runtime): preserve images on retry and resume by @binyouo in #73
  • fix(runtime): 取消任务后唤醒等待中的状态查询 by @binyouo in #74
  • fix(desktop): 修复删除默认模型后的有效替换保存 by @binyouo in #75
  • fix(cli): report missing task IDs as errors by @binyouo in #76
  • fix(history): report transcript stat failures by @binyouo in #77
  • fix(memory): reject invalid correction content by @binyouo in #78
  • fix(activity): preserve pending-analysis report notices by @binyouo in #80
  • perf(session): bound concurrent catalog metadata reads by @binyouo in #81
  • fix(mcp): preserve structured tool error explanations by @binyouo in #83
  • fix(history): retain matched context in Chinese excerpts by @binyouo in #85
  • fix(memory): reject non-object update patches by @binyouo in #86
  • fix(edit): preserve BOM in normalized replacements by @binyouo in #87
  • fix(automation): reject malformed cron definitions by @binyouo in #88
  • perf(memory): 复用单次读取中的来源时区校验 by @binyouo in #93
  • perf(memory): 复用向量查询中的 Float32 转换 by @binyouo in #94
  • fix(memory): reject invalid Host archive states by @binyouo in #95
  • fix(cli): report persisted activity config values by @binyouo in #96
  • fix(cli): honor activity config JSON output by @binyouo in #97
  • fix(desktop): preserve drafts when sending suggestions by @binyouo in #98
  • fix(activity): use local calendar dates for yesterday by @binyouo in #99
  • fix(agent): retain refreshed context when retrying replies by @binyouo in #100
  • fix(desktop): preserve model selection order across navigation by @binyouo in #101
  • fix(desktop): retain theme edits when global saves fail by @binyouo in #102
  • fix(todo): reject invalid replacement input by @binyouo in #103
  • fix(appearance): reject invalid literal Lua theme colors b...
Read more