nanoMuse 1.0.9 · Tiller
🐉 nanoMuse 1.0.9 “Tiller”: a fix release the same day as Crew. The desktop starts again when you are signed in, the relay's console loads on a large record, and the runtime takes a budget for a task and recalls from the whole memory store.
1.0.8 went out this morning, and its desktop did not start for anyone who was signed in. The plugin pointed the nanoMuse Cloud provider row at the loopback door it opens for the relay and waited for that settings write while the plugins were still starting; the write waits for the plugins, so the Host never announced its address and the window sat on Starting… for good, with nanoMuse is still starting every ten minutes (#701, fixed in #703). A fresh install was never affected, which is why the release check passed; everyone who had used 1.0.7 or signed in was. The same day the hosted relay's console stopped loading: the Usage page's table of the turns people ran on keys of their own read a week of them from the record itself, where a turn's provider and cached count sit behind its request and answer, and on 40 GB one call took minutes while holding the read connection's lock, so every page waited behind it (#708). Both are fixed here, together with three runtime changes that landed in between: a task can be given a budget and recall reads the whole memory store, both by @hobostay (#697, #696, for #685), and a contact's card folds its long lines, by @Yicheng-Mark (#702). Nothing changed on the phones; they move to 1.0.9 so every device reads the same version.
Highlights
- The desktop starts again when you are signed in. The loopback door now asks for the port it had last, so the provider row is usually right as it is; when it is not, the row is rewritten once the Host is up, without being waited for. If your 1.0.8 sits on Starting…, quit it and install 1.0.9 over it: your settings, your chats and your sign-in stay where they were, and nothing else is needed (#703, #701).
- The relay's console loads on a large record. The relay keeps the figures of a turn run on a key of the person's own in one small row (
own_figures: account, time, provider, model, the three token counts), written with the turn and removed with it; the Usage page's table reads those rows in milliseconds instead of walking the record. The own turns kept before this version are filled in by a paced backfill after the restart, 200 a page, and the usage answer saysown_keys_pendingwhile it runs (#708). - A task can be given a budget: tokens, money, time, and the size of one request. Off unless set.
[agent.budget]inconfig.tomltakesmax_total_tokens,max_cost_usd(with your own per-million rates) andmax_seconds; a task that reaches one stops with a sentence that says which, and the turn's usage goes to the audit log as atask_budgetentry, only when a limit is set or reached.agent.max_context_tokenscaps the approximate size of one request: tool results are shortened to a labelled head and tail and old exchanges dropped as whole groups; the saved conversation keeps the original text. By @hobostay (#697, #685); docs/runtime-budgets.md (github.com) has the details. - Recall searches the whole memory store. Keyword search and recall by meaning read every memory, not only the newest 1,000 the listing shows, and a near-duplicate is found anywhere in the store, through the same search index, so a store with years of memories answers as fast as a new one. By @hobostay (#696).
- A contact's card folds its long lines at 75 octets.
render_vcardwrote a long Chinese note as one oversized line, past what RFC 6350 allows, so a strict importer could reject or truncate it; the card now folds with the UTF-8-safe cut the calendar's lines already use, and parses back without loss. By @Yicheng-Mark (#702). - TestFlight. Build 31 (1.0.8) was uploaded this morning and handed to the external group nanoMuse Beta for Apple's beta review; 1.0.9 goes up as build 32 to the same group and review. On the phone the two are the same app.
Upgrade Notes
- Android installs over 1.0.8 and keeps your data.
nanoMuse-1.0.9-arm64.apk(Android 8.0+, arm64; versionCode 52) is signed with the same key as every version before it. Verify withsha256sum -c nanoMuse-1.0.9-arm64.apk.sha256. Nothing changed on the phone in this version; installing it there can wait. - iPhone and iPad come through TestFlight. Build 32 (1.0.9) is handed to the external group when it is uploaded and reaches the public link once its review has passed, the internal testers before that; until then the link installs the newest build that passed.
- The desktop installers are built by CI from the tag
v1.0.9. Install over 1.0.8; your settings stay. The Mac packages are not notarized: the first time, open the app from System Settings → Privacy & Security → Open Anyway (or right-click → Open). The Windows package is not signed: click More info and Run anyway once. On Linux prefer the.deb; the AppImage needs FUSE (--appimage-extract-and-runwithout). They arrive a little after the APK, andSHA256SUMS-desktop.txtlists every checksum. A 1.0.8 on Windows that never finished starting cannot offer the update from its corner menu, so download the installer. - The relay is 0.31.1; a 1.0.8 client works against it unchanged. For operators: the first start after the upgrade creates
own_figuresand a backfill fills it for the own turns already kept, in the background, 200 turns a page with a pause after each page; about fifteen minutes for a hundred thousand own turns on the hosted relay. Until it is through, the Usage page's own-key table is short of the older turns and the answer carriesown_keys_pending: true. No new setting. cloud/README.md (github.com) has the details. - The runtime's settings are the same unless you add a budget.
[agent.budget],[gui.budget]andagent.max_context_tokensare new and off until set; nothing else inconfig.tomlchanges. - Where to get it.
| Browser | demo.nanomuse.dev, a nanoMuse on a simulated phone, after a sign-in; a demo, the apps below are the real thing |
| Android 8.0+, arm64 | nanoMuse-1.0.9-arm64.apk |
| iPhone, iPad | TestFlight, a beta that goes through Apple's review; build 32 (1.0.9) once its review has passed |
| Windows 10+ | nanoMuse-Desktop-1.0.9-win-x64.exe (the desktop app, on DeepSeek Harness; not signed) |
| macOS 12+ | nanoMuse-Desktop-1.0.9-mac-arm64.dmg / -mac-x64.dmg (or the .zip: unzip, drag to Applications; not notarized) |
| Linux x64 | nanoMuse-Desktop-1.0.9-linux-x64.deb (preferred) / .AppImage (needs FUSE; --appimage-extract-and-run without) / .tar.gz (unpack anywhere, run ./nanomuse-desktop) |
| DeepSeek Harness Desktop you already run | dsh-nanomuse-1.0.9.tgz, dsh plugin --profile desktop add … (how) |
| Docker | ghcr.io/nano-muse/nanomuse:1.0.9 (also :latest), the runtime with the web console on port 8787 |
| Your own relay | bash scripts/self-host.sh, docs/self-hosting.md (github.com) |
In our measurements GitHub's own downloads are quick from China as well; if they fail where you are, the same files are on nanomuse.cn/dl/v1.0.9/ within fifteen minutes.
Community
nanoMuse is open source, free and non-profit. Sign in with a phone number or an e-mail and you get a starting allowance; the developer pays for it. The account page shows what is left and how to add more. When it is gone, use your own key or a plan you already pay for (how). With an account, nanoMuse Cloud keeps the record of your conversations with its models and the turns your own key answered, and what was decided around each turn as codes and never as words; your devices and the person running the relay can read it, nobody else; one tap under Data controls deletes it, and nothing is sold (privacy policy); delete the account whenever you want. The same relay runs on a server of yours: docs/self-hosting.md (github.com).
Thanks to @yklykl530 for reporting the desktop that would not start, with the log that named the cause (#701), to @hobostay for the task budgets and the whole-store recall (#697, #696), to @Yicheng-Mark for the card's folding (#702) and to @poppis-xin for watching the TestFlight build (#700). The roadmap says where help is wanted, and docs/parity.md (github.com) says what each client has. Open an issue · send a pull request · Discussions · Discord · star the repo; if it is useful to you, a star helps others find it.
Based on OpenMinis 1.13 (GPL-3.0), modified since 2026-09-24. The complete corresponding source of this build is tag v1.0.9 plus the android/deps/proot submodule (nano-muse/proot); the desktop installers and the Docker image are built by CI from the same tag. The whole repository is GPL-3.0-or-later. nanoMuse Desktop carries DeepSeek Harness unmodified, with its licence files inside; harness in the name is the word, not DeepSeek's. The chat apps follow nanobot's design (MIT); the desktop's operator is ported from UI-TARS-desktop (Apache-2.0; THIRD_PARTY_NOTICES.md). nanoMuse is not affiliated with Meta; Muse is a trademark of Meta Platforms, Inc. The desktop follows what Muse's app looks like and does, written down from using it; none of Meta's assets, code or content is in it.
What's Changed
- fix(contacts): a long note folds at 75 octets instead of one oversized line by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/702
- fix(desktop): the 1.0.8 desktop starts again when signed in (#701) by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/703
- fix(relay): read the own-key usage table from a small figures table by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/708
- feat(runtime): share task budgets and log context truncation by @hobostay in https://github.com/nano-muse/nanoMuse/pull/697
- fix(memory): retrieve facts beyond the listing limit by @hobostay in https://github.com/nano-muse/nanoMuse/pull/696
- build(release): 1.0.9 Tiller by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/711
New Contributors
- No first-time contributors in this release; yours could be the next one: good first issues.
Contributors
@hobostay · @lgy0404 · @Yicheng-Mark
Full Changelog: https://github.com/nano-muse/nanoMuse/compare/v1.0.8...v1.0.9
简体中文
🐉 **nanoMuse `1.0.9`「Tiller」**:和 Crew 同一天的修复版。登录过的桌面端又能启动了,中继的控制台在大记录上也能打开,运行时可以给一个任务定预算、在整个记忆库里找回忆。 1.0.8 今天早上发出去,它的桌面端对所有登录过的人都起不来。插件把「nanoMuse Cloud」那行服务商指向它为中继开的回环门,并在插件还在启动的时候等这次设置写入;而写入要等插件启动完,于是 Host 一直没有宣布地址,窗口永远停在「正在启动…」,每十分钟来一句「nanoMuse 还在启动」([#701](https://github.com/nano-muse/nanoMuse/issues/701),在 [#703](https://github.com/nano-muse/nanoMuse/pull/703) 修掉)。全新安装从来没有这个问题,所以发版检查放过了它;用过 1.0.7 或登录过的人都碰上了。同一天托管中继的控制台也打不开了:「用量」页里用户用自己 key 跑的轮次那张表直接从记录里读一周的数据,而一轮的服务商和缓存数都排在它的请求和回答后面,40 GB 的记录上一次查询要几分钟,还占着只读连接的锁,所有页面都排在它后面([#708](https://github.com/nano-muse/nanoMuse/pull/708))。这两件都在这个版本里修了,另外带上中间合进来的三个运行时改动:一个任务可以定预算,回忆在整个记忆库里找,都是 @hobostay [做的([#697](https://github.com/nano-muse/nanoMuse/pull/697)、[#696](https://github.com/做的([#697](https://github.com/nano-muse/nanoMuse/pull/697)、[/issues/696)](https://github.com/nano-muse/nanoMuse/pull/696),对应 [#685](https://github.com/nano-muse/nanoMuse/issues/685)),联系人名片的长行会折行,@Yicheng-Mark 做的([#702](https://github.com/nano-muse/nanoMuse/pull/702))。手机上什么都没变;它们跟着升到 1.0.9,让每台设备读到同一个版本号。 ### 亮点 - **登录过的桌面端又能启动了。** 回环门现在先要上次用过的端口,所以服务商那一行多半本来就是对的;不对的时候,等 Host 起来之后再改写这一行,不再等它。如果你的 1.0.8 停在「正在启动…」,退出它,把 1.0.9 [装在上面:设置、对话和登录都原地不动,别的什么都不用做([#703](https://github.com/nano-muse/nanoMuse/pull/703)、[#701](https://github.com/装在上面:设置、对话和登录都原地不动,别的什么都不用做([#703](https://github.com/nano-muse/nanoMuse/pull/703)、[/issues/701)](https://github.com/nano-muse/nanoMuse/issues/701))。 - **中继的控制台在大记录上也能打开。** 中继把用自己 key 跑的一轮的数字单独存成一小行(`own_figures`:账号、时间、服务商、模型、三个 token 数),随这一轮写入、随它删除;「用量」页那张表读这些行只要几毫秒,不再翻记录。这个版本之前留下的自有 key 轮次由重启后的一个回填在后台补上,每页 200 条,补完之前用量接口带 <[inline_block>1([#708](https://github.com/inline_block>1([/issues/708)](https://github.com/nano-muse/nanoMuse/pull/708))。 - **一个任务可以定预算:token、钱、时间,以及单次请求的大小。** 不设就不开。`config.toml` 的 `[agent.budget]` 接受 `max_total_tokens`、`max_cost_usd`(配你自己的每百万 token 单价)和 `max_seconds`;碰到其中一条的任务会停下并说明是哪一条,这一轮的用量作为 `task_budget` 条目写进审计日志,只在设了或碰到上限时写。`agent.max_context_tokens` 限制单次请求的大致大小:工具结果缩成带标记的头尾,旧的往来按整组丢弃;保存的对话保留原文。@hobostay [做的([#697](https://github.com/nano-muse/nanoMuse/pull/697)、[#685](https://github.com/做的([#697](https://github.com/nano-muse/nanoMuse/pull/697)、[/issues/685)](https://github.com/nano-muse/nanoMuse/issues/685));细节见 [docs/runtime-budgets.md](https://github.com/nano-muse/nanoMuse/blob/main/docs/zh/runtime-budgets.md)。 - **回忆在整个记忆库里找。** 关键词搜索和按意思回忆读每一条记忆,而不只是列表显示的最新 1,000 条,近似重复也在整个库里找,走同一个搜索索引,所以存了几年记忆的库和新库一样快。@hobostay 做的([#696](https://github.com/nano-muse/nanoMuse/pull/696))。 - **联系人名片的长行按 75 字节折行。** `render_vcard` 把一条长的中文备注写成一整行,超过 RFC 6350 允许的长度,严格的导入方可能拒绝或截断;现在名片用日历已经在用的、不切开字符的 UTF-8 折法折行,折过的名片读回来不丢东西。@Yicheng-Mark 做的([#702](https://github.com/nano-muse/nanoMuse/pull/702))。 - **TestFlight。** 第 31 个构建(1.0.8)今天早上上传并交给了外部测试组「nanoMuse Beta」送 Apple 测试版审核;1.0.9 以第 32 个构建上传,进同一个组、同一道审核。在手机上这两个是同一个 App。 ### 升级说明 - **Android 覆盖安装 1.0.8,数据保留。** `nanoMuse-1.0.9-arm64.apk`(Android 8.0+,arm64;versionCode 52)和之前每个版本用同一把签名。校验:`sha256sum -c nanoMuse-1.0.9-arm64.apk.sha256`。这个版本手机上没有变化,手机上装不装不急。 - **iPhone 和 iPad 通过 TestFlight。** 第 32 个构建(1.0.9)上传后交给外部测试组,审核通过就给到公开链接,内部测试员在那之前就能用;在那之前链接装到的是最近一个通过审核的构建。 - **桌面安装包由 CI 从 tag `v1.0.9` 构建。** 直接装在 1.0.8 上面,设置保留。Mac 的包没有经过公证:第一次在「系统设置 → 隐私与安全性」里点「仍要打开」(或右键 → 「打开」)。Windows 的包没有签名:点一次「更多信息」和「仍要运行」。Linux 上优先用 `.deb`;AppImage 需要 FUSE(没有就加 `--appimage-extract-and-run`)。它们比 APK 晚一点到,`SHA256SUMS-desktop.txt` 列出了所有校验值。Windows 上没启动完的 1.0.8 没法从角落菜单给出更新,请下载安装包。 - **中继是 0.31.1,1.0.8 的客户端对着它照常工作。** 给运维的人:升级后第一次启动会建 `own_figures` 表,一个回填在后台给已经留下的自有 key 轮次补行,每页 200 条、每页之后停一下;托管中继上十万条大约十五分钟。补完之前「用量」页的自有 key 表少了旧的轮次,接口带 `own_keys_pending: true`。没有新设置。细节见 [cloud/README.md](https://github.com/nano-muse/nanoMuse/blob/main/cloud/README.md)。 - **运行时的设置不变,除非你加预算。** `[agent.budget]`、`[gui.budget]` 和 `agent.max_context_tokens` 是新的,不设就不开;`config.toml` 里别的都不变。 - **去哪下载。** | | | |---|---| | 浏览器 | [demo.nanomuse.dev](https://demo.nanomuse.dev/),模拟手机里的一个 nanoMuse,登录后体验;这是演示,下面的应用才是正式版 | | Android 8.0+,arm64 | `nanoMuse-1.0.9-arm64.apk` | | iPhone、iPad | [TestFlight](https://testflight.apple.com/join/ZHexbDqc),走 Apple 审核的测试版;第 32 个构建(1.0.9)审核通过后即可安装 | | Windows 10+ | `nanoMuse-Desktop-1.0.9-win-x64.exe`(桌面 App,基于 DeepSeek Harness;未签名) | | macOS 12+ | `nanoMuse-Desktop-1.0.9-mac-arm64.dmg` / `-mac-x64.dmg`(或 `.zip`:解压后拖进「应用程序」;未公证) | | Linux x64 | `nanoMuse-Desktop-1.0.9-linux-x64.deb`(优先)/ `.AppImage`(需要 FUSE;没有就加 `--appimage-extract-and-run`)/ `.tar.gz`(解压到任意位置,运行 `./nanomuse-desktop`)| | 已在用 DeepSeek Harness Desktop | `dsh-nanomuse-1.0.9.tgz`,`dsh plugin --profile desktop add …`([怎么装](https://github.com/nano-muse/nanoMuse/blob/main/harness/README.md)) | | Docker | `ghcr.io/nano-muse/nanomuse:1.0.9`(也是 `:latest`),运行时加 8787 端口上的网页控制台 | | 自己的中继 | `bash scripts/self-host.sh`,[docs/self-hosting.md](https://github.com/nano-muse/nanoMuse/blob/main/docs/zh/self-hosting.md) | 实测从国内直接下 GitHub 也不慢;万一下不动,同样的文件十五分钟内会出现在 [nanomuse.cn/dl/v1.0.9/](https://nanomuse.cn/dl/v1.0.9/)。 ### 社区 nanoMuse 开源、免费、非营利。手机号或邮箱登录后有一份起始额度,钱是开发者出的;剩多少、怎么加,账号页里有数。用完可以换成自己的 key,或者用你已经在付费的套餐登录([教程](https://github.com/nano-muse/nanoMuse/blob/main/docs/zh/own-key.md))。登录后,nanoMuse Cloud 保存你和它的模型的对话记录和你自己的 key 回答的轮次,以及每一轮前后以代码而不是文字记下的判定;你的设备和运营中继的人能读到,别人不能;「数据控制」里一下就能删掉,数据不卖([隐私政策](https://nanomuse.cn/privacy/));账号想删就删。同一个中继也能跑在你自己的服务器上:[docs/self-hosting.md](https://github.com/nano-muse/nanoMuse/blob/main/docs/zh/self-hosting.md)。 谢谢 @yklykl530 报告起不来的桌面端,日志直接指出了原因([#701](https://github.com/nano-muse/nanoMuse/issues/701)),谢谢 @hobostay [做的任务预算和全库回忆([#697](https://github.com/nano-muse/nanoMuse/pull/697)、[#696](https://github.com/做的任务预算和全库回忆([#697](https://github.com/nano-muse/nanoMuse/pull/697)、[/issues/696)](https://github.com/nano-muse/nanoMuse/pull/696)),谢谢 @Yicheng-Mark 做的名片折行([#702](https://github.com/nano-muse/nanoMuse/pull/702)),也谢谢 @poppis-xin 盯着 TestFlight 的构建([#700](https://github.com/nano-muse/nanoMuse/issues/700))。[路线图](https://github.com/nano-muse/nanoMuse/blob/main/docs/zh/roadmap.md)写着哪里需要帮手,[docs/parity.md](https://github.com/nano-muse/nanoMuse/blob/main/docs/zh/parity.md) 写着每个客户端有什么。[提 issue](https://github.com/nano-muse/nanoMuse/issues/new/choose) · [发 PR](https://github.com/nano-muse/nanoMuse/blob/main/CONTRIBUTING.md) · [Discussions](https://github.com/nano-muse/nanoMuse/discussions) · [Discord](https://discord.gg/bkTySmm28X) · [点个 Star](https://github.com/nano-muse/nanoMuse);觉得有用,点个 Star,让更多人看到。 基于 [OpenMinis](https://github.com/OpenMinis/OpenMinis) 1.13(GPL-3.0),自 2026-09-24 起修改;本版本的完整对应源码是 tag `v1.0.9` 加子模块 `android/deps/proot`([nano-muse/proot](https://github.com/nano-muse/proot));桌面安装包和 Docker 镜像由 CI 从同一个 tag 构建。整个仓库以 GPL-3.0-or-later 发布。nanoMuse 桌面版原样携带 DeepSeek Harness 及其许可证文件;名字里的 *harness* 是普通词,不是 DeepSeek 的名字。聊天入口照 [nanobot](https://github.com/HKUDS/nanobot) 的设计(MIT);桌面端的操作器移植自 [UI-TARS-desktop](https://github.com/bytedance/UI-TARS-desktop)(Apache-2.0;`THIRD_PARTY_NOTICES.md`)。nanoMuse 与 Meta 无关,Muse 是 Meta Platforms, Inc. 的商标。桌面端照着 Muse 应用用起来的样子做,是用过之后写下来的;里面没有 Meta 的任何素材、代码或内容。Android APK refresh: 2026-10-31
The Android APK was replaced to correct context budgeting and compaction recovery in long conversations. It remains version 1.0.9 (52), signed with the same release key. Download and install it over the existing app to receive this fix; the unchanged version does not trigger an automatic update. Built from 994f0afd, merged in #723. For [#719].
Android 安装包已替换,修正了长对话的上下文预算和压缩恢复处理。版本仍为 1.0.9(52),使用同一发布签名。请重新下载并覆盖安装;版本号未变,不会触发自动更新。源码为上方提交,修复已通过 [#723] 合入主分支。