| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| nanoMuse-Desktop-1.0.8-win-x64.exe.blockmap | 2026-10-29 | 292.5 kB | |
| nanoMuse-Desktop-1.0.8-win-x64.exe | 2026-10-29 | 281.8 MB | |
| nanoMuse-Desktop-1.0.8-mac-x64.zip | 2026-10-29 | 350.1 MB | |
| nanoMuse-Desktop-1.0.8-mac-x64.dmg | 2026-10-29 | 473.7 MB | |
| latest.yml | 2026-10-29 | 365 Bytes | |
| nanoMuse-Desktop-1.0.8-linux-x64.AppImage | 2026-10-29 | 323.5 MB | |
| nanoMuse-Desktop-1.0.8-linux-x64.deb | 2026-10-29 | 251.8 MB | |
| nanoMuse-Desktop-1.0.8-linux-x64.tar.gz | 2026-10-29 | 302.5 MB | |
| nanoMuse-Desktop-1.0.8-mac-arm64.dmg | 2026-10-29 | 499.6 MB | |
| nanoMuse-Desktop-1.0.8-mac-arm64.zip | 2026-10-29 | 334.1 MB | |
| SHA256SUMS-desktop.txt | 2026-10-29 | 1.0 kB | |
| dsh-nanomuse-1.0.8.tgz | 2026-10-29 | 2.8 MB | |
| SHA256SUMS-harness.txt | 2026-10-29 | 89 Bytes | |
| nanoMuse-1.0.8-arm64.apk | 2026-10-29 | 39.5 MB | |
| nanoMuse-1.0.8-arm64.apk.sha256 | 2026-10-29 | 91 Bytes | |
| nanoMuse 1.0.8 _ Crew source code.tar.gz | 2026-10-29 | 54.2 MB | |
| nanoMuse 1.0.8 _ Crew source code.zip | 2026-10-29 | 56.6 MB | |
| README.md | 2026-10-29 | 93.3 kB | |
| Totals: 18 Items | 3.0 GB | 0 | |
nanoMuse 1.0.8 · Crew
🐉 nanoMuse 1.0.8 “Crew”: four days after Logbook, your devices keep each other posted. A scheduled task on the computer that needs a yes asks on your phone; every device reads the step another is on and says when it is waiting for you; the wait before a first token is spoken of, with your place in the queue; a thumb on a reply or the reason for a Stop goes to the account's record as one word, and the operator reads the record question by question. The phone no longer crashes when you stop talking, the iPhone no longer stops your music, the desktop's Library takes documents of your own, and the runtime behaves on Windows.
1.0.7 went out on 2026-10-25. Since then seventy-two pull requests were merged, and this version is the fifth look at the whole project, with one change at its centre: the devices keep each other posted. Until now a task that ran on one device was a closed box to the others: the phone saw Mac is working… until the reply came, a scheduled task on the computer that hit a step needing a yes waited for someone at the keyboard, and a person at the back of the relay's queue saw the typing dots and nothing else. Now a scheduled run on nanoMuse Desktop sends its permission card to the account's phones, payment steps included, with Allow once, Always in this task and Deny; the first answer on the computer or on any phone decides and the other cards close, and the grant stays on the computer (#652, #672 by @cutey-none, with the grants per chat and per task of #642). Every tool call tells the relay the step, in the model's own words when it gave them, so the line under another device's prompt reads Pixel 8 is working: 打开携程网站 and Pixel 8 is waiting for you while a card holds its run (#617 by @z1010223zero-pixel, #635, for #610). The relay tells a streamed turn where it stands while it waits for a provider slot and keeps the line alive while the provider thinks, and the apps draw the wait under the typing dots: The model is busy, 15 s so far with Cancel, or 3 ahead of you; the phones also compact a conversation at 32k tokens instead of 108k and carry about an eighth less in every call, since the time to the first token grew with the prompt (#626). Around the record that 1.0.7 opened: every call says who started it (a person, a scheduled task, the feed, a goal's check, another device) and where it sits in the conversation, a turn on a key of your own joins the training view when Help improve is on, what happened around a turn reaches the relay as codes and never as words (what the Sentinel decided, how an approval went, why a reply was stopped, a thumb up or down), and the operator's console counts the record by questions rather than calls and lays each question out once (#653, #654, #655, #660, #661, #662, #663); its figures read an index instead of every body, which on the hosted relay's 30 GB turned half a minute into a third of a second (#680, #681). The rest is what a check and the people using it found. @Yicheng-Mark made the runtime at home on Windows: a private file stays its owner's, a config.toml Notepad or PowerShell wrote is read, a file is written with the lines the model gave it and read the way a command's output is read, a listing says when it was cut, the ChatGPT token refresh is locked, and the mirror scripts, the web's and the console's line endings and the catalogue check hold there too (#625, #630, #633, #644, #645, #646, #658, #656, #632, #669, #608, #623); web_fetch reads compressed pages again (#649, #641). @z1010223zero-pixel made the web console's send disc stop a run and its naming chooser take a typed name (#615, #613) and the Feed say what it dropped (#639); @ZxlDragonDoctor made it explain its daily limit (#584); @yatping gave a folded thinking row its width back and the iPhone its whole Traditional Chinese (#684, #671); @cutey-none kept the iPhone from pausing another app's music (#690); @Felixkw12, @bayuh85 and @DennyHo0917 put Opper, AtmoRouter and API Route in the own-key catalogue (#648, #688, #603) and @ilya-bogin-keenable Keenable in the web search (#665); @jtboy80826 found the relay misreading a Gemini-shaped error (#611); @Longfellow1 turned the goals' recovery cases into one rule-based check (#634, #682); @cugbtang covered the session's last turn and the calendar's line folding (#675, #694). On Android, voice input through a provider's speech model no longer crashes the app when you stop talking (#627, #602), a failed feed run no longer writes yesterday's posts again (#650), the face and its clips can be saved to the gallery (#667) and a video model you added by hand shows in the picker (#666); on the desktop, the Library takes a blank document or Markdown files of your own (#692) and an embedding of the runtime can bring its own browser (#678). Nothing moves for a person upgrading: the Android package installs over 1.0.7 and keeps everything, the desktop keeps its settings and re-points its nanoMuse Cloud provider row on the first start, and a 1.0.7 client works against the relay (0.31.0); what is new is what the devices tell each other and the record, and the privacy policy says so in the same words.
Highlights
- A scheduled task's cards reach your phone, and the first answer decides. A scheduled run on nanoMuse Desktop asks while nobody may be at the computer. With a relay that takes pushed events (0.31), its permission cards also go to the account's Android and iPhone apps, payment steps included: the phone shows Allow once, Always in this task and Deny (a notification in the background), the first answer on the computer or on any phone decides, the other cards close, and the grant is kept on the computer. Behind it the hub takes an
eventwithout anid, to one device or to"*", and passes it only to devices whosehelloannouncesapprove.any, never back to the sender; only theapprovalandapproval_resultstages pass, 30 a minute per device, 16 KB each;welcome.server.featureslistsevent_pushso a client knows it may push, and older relays and apps are untouched (#652, #672, #631). On the desktop a step of the hands can be allowed for good in one chat, in one app or in one scheduled task, and Settings → Permissions, the Computer use page and the agent page say where each grant holds (#642). - Every device reads what the others are doing. A turn used to tell the account's other devices only that it started and that it ended. Now every tool call posts the step (the model's own words when it gave them, else the command, the path or the query), a card that waits for you posts waiting for you, and the model writing its answer posts plain working, at most once every two seconds per chat and nothing after the turn ends:
POST /v1/sync/workingtakesstate(working|waiting) anddetail(160 characters at most), kept in memory with the same ten-minute TTL, and rides them on the hubworkingframe (0.31). The line under another device's prompt reads Pixel 8 is working: 打开携程网站 or Pixel 8 is waiting for you on Android, the iPhone, the desktop and the web console, and plain is working… from a device on an older version (#617, #635, #610). - The wait before the first token is spoken of, and the prompts are smaller. The relay lets twelve requests reach the model at once and held the rest in silence. A streamed turn now hears where it stands: a chunk with no
choicesandnanomuse: {phase: "queued", ahead, waited_ms}every five seconds while it waits,phase: "working"when the slot is its own, and an SSE comment line every ten seconds while the provider is quiet before its first bytes; both are shapes every shipped client already skips, the slots go in arrival order, and a request that gives up while queued leaves no hole. Under the typing dots the phones draw nothing for ten seconds, then The model is busy, 15 s so far with Cancel, or 3 ahead of you and You are next as soon as the relay says so; the desktop says how long. Over the hosted model's last week the time to the first token grew with the prompt (4.7 s at the median under 12k tokens, 25 s between 24k and 40k, 54 s above, with 38 % of calls over 16k), so the phones compact a conversation at 32k tokens now on every window from 64k up, move old big tool results to disk from 28k, and word the two fattest parts of the baseline densely, about 5k characters less per call; the desktop holds the hands' screenshots to 2 MiB, the newest four to eight, where 5 MiB let a turn carry up to 23. The iPhone waits 300 seconds for a relay stream before it sends the turn again, as the desktop does (#626, #609). - The record says who started each call, and what you thought of the reply. Every chat request and every own-key turn sent up carries who started it (
X-NanoMuse-Run: a person, a scheduled task, the feed's routine, a goal's check, another device through the hub, the memory tidy-up), its turn and step in the conversation, the hands' run and step while a screen is operated, andX-NanoMuse-Platform; the relay keeps them in the record's row, the kept turn's meta, the call's telemetry row and the training view's shape, and notes one word for the script of what the person wrote. A turn on a key of your own joins the training view when Help improve is on, in the same shape as a Cloud turn's, never the system prompt and never what a tool returned. Under the newest reply on Android, the iPhone, the desktop and the web console sit a thumb up and a thumb down; a thumb down opens five one-word reasons and Skip; right after Stop one card asks Why did you stop it?. Each answer, and what the Sentinel decided about a tool call, how an approval went, how a step of the hands went, reaches the relay throughPOST /v1/eventsas codes and numbers tied to the turn's id, never a message; the relay drops any value that looks like prose and deletes them with the kept turns and with the account. Deleting kept data or the account writes the account's export pseudonym to a ledger (GET /v1/admin/deletions), so a training set built from an earlier export drops those subjects (#653, #654, #655, #660, #661, #662). - The operator reads the record question by question, and the figures read an index. One message often takes the agent several model calls, and the record counted each as a turn; each row now says whether it opened a question and which row did, older rows get theirs from a backfill, and
GET /v1/admin/recordand/v1/admin/datacount questions beside calls everywhere, with how many calls each took. A new Question by question page (GET /v1/admin/record/turns) lays each question out once: the person's message with its pictures inline, a step per model call with the tools it called, what came back before the next call with every screenshot where it was sent, the final reply marked, the whole call one click away; an account's Kept turns tab links to it. The figures read a covering index of the record (turns_figures, built at the first start after the upgrade) instead of walking every request body, the backfill goes a hundred rows a page and pauses after each page for as long as it took, and the question page fetches its calls by the key index on the read-only connection, so an open page no longer stalls the relay; the Usage page says how much of the prompts the provider's cache served (#663, #680, #681, #620, #677). - The runtime, on Windows and elsewhere. A private file (the settings, the vault, the channel tokens, the ChatGPT token, the calendar and contacts caches) stays its owner's alone on Windows, where
chmodcleared nothing but a read-only flag; aconfig.tomlNotepad saved with a byte-order mark or PowerShell wrote as UTF-16 is read instead of stopping every command; a file is written with the lines the model gave it and read the way a command's output is read (a byte-order mark decides, then UTF-8, then the console's code page), and a command's output on a Chinese console reaches the model readable; a listing or a search says when it stopped early; the ChatGPT token refresh is locked on Windows too, so two chats no longer spend the same refresh token, all by @Yicheng-Mark (#625, #630, #633, #644, #645, #646, #658).web_fetchreads compressed pages once instead of failing on every gzip response (#649, #641); a program that embeds the runtime can give theBrowsertool abackend_factoryand drive, show and take over its own browser with the Sentinel in front of every URL (#678, #676);POST /api/threads/{id}/feedbacktakes a thumb or a stop reason. The own-key catalogue has twenty-five providers with Opper (EU-hosted, 700+ models at the providers' rates) by @Felixkw12, AtmoRouter (route-prefixed ids,cc/claude-sonnet-4-6by default) by @bayuh85 and API Route (gpt-6.1-solby default) by @DennyHo0917 (#648, #688, #603, #647, #687, #564); Keenable answers web searches with or without a key, 1,000 an hour per address without, by @ilya-bogin-keenable (#665, #643); DuckDuckGo stays the default. - The web console and the desktop. The composer's send disc becomes a stop disc while the agent works and the naming chooser takes a typed name, both by @z1010223zero-pixel (#615, #613). On the desktop the Library has, beside Create document, a menu with Blank document (an empty
Untitled.mdin the Library folder, opened in the editor) and Import Markdown files… (.md,.markdownand.txtcopied into the folder and listed under Documents; a taken name gets a number, a file over 2 MB or of another kind is named as skipped; no model involved) (#692, #689); a folded Thinking row shows its title and summary again instead of an empty grey pill, by @yatping (#684, #683); the first start after an in-app update on Windows waits out the installer's hold on the profile's plugin link instead of failing with ENOTEMPTY, by @Yicheng-Mark (#623, #618); every model call goes through a loopback door of the plugin's own that adds the provenance headers and forwards only with the account's key; a refused sign-in is explained in the app's language. - Android. Voice input through a provider's speech model no longer crashes the app the moment a take falls silent: the engine stopped the microphone from inside the voice detector's own callback while the detector freed its native object; the fix is upstream OpenMinis 1.14's
ReentrantSafeRelease, carried over with its tests (#627, #602). A scheduled feed run that failed used to write yesterday's posts again under today's date; a turn's reply now counts only when it follows the turn's own prompt, a draft already posted in the last 30 days is dropped, and the Feed says when its 12 posts a day are full (#650, #639 by @z1010223zero-pixel, #584 by @ZxlDragonDoctor, #637, #574). A model call from the sandbox is retried after a transport blip as the chat's are (#640); the avatar workbench's menu has Save to gallery for the base picture, the mood stills, the candidates and your own clips (#667, #664); a video model you list on a provider yourself shows in the picker and the remembered answer is checked again when the candidates change (#666, #508). The phone takes part in everything above: the computer's cards, the step line, the wait line, the thumbs, the provenance and the events, in every language the app has. - The iPhone. Opening the app no longer stops music playing in another app: the avatar's muted clip still started the audio session in iOS's default category, which does not mix, so the session is put in
.ambientbefore a clip plays and goes back to it after a reply is read aloud, by @cutey-none (#690, #686); 403 strings that had only a Simplified Chinese value read in Traditional Chinese now, by @yatping (#671); a slow answer through nanoMuse Cloud is waited for up to 300 seconds instead of being sent again at 120. The iPhone takes part in the computer's cards, the step line, the wait line, the thumbs, the provenance and the events, in all nine languages. - The relay, in detail. A provider's 400 reaches the app in the provider's words when the body is a list, as Gemini's OpenAI-compatible endpoint sends it, from @jtboy80826 (#611); a number the carrier has already sent enough codes to hears
429 code_too_often, not "the relay failed"; the hub logs a refused socket;self-host.sh --local --bind 0.0.0.0writes the machine's LAN address intoPUBLIC_BASE, the invitation link and the URLs it prints, after @cugbtang's #673 (#674); the hosted relay's backup can go off the box, encrypted to an age public key, into a COS bucket under a write-only key (#621); a console build on Windows no longer rewrites its HTML for nothing, by @Yicheng-Mark (#669). - The project. The goals' 43 recovery cases are one rule-based safety check, by @Longfellow1 (#634, #682); the session's last turn and a long Chinese line's folding in an
.icsfile have tests, by @cugbtang (#675, #694); the mirror scripts, the zip check and the provenance wire's tests hold on Windows, by @Yicheng-Mark (#656, #657, #659); an iOS · Beta group workflow hands a TestFlight build to the external group and submits it for Apple's beta review (#619, #622); the harness bundle workflow builds a branch once. - TestFlight. Build 30 (1.0.7) was uploaded on 2026-10-25 and handed to the external group nanoMuse Beta for Apple's beta review; 1.0.8 goes up as build 31 and goes to the same group and review. A build reaches the public link once its review has passed, the internal testers before that.
Upgrade Notes
- Android installs over 1.0.7 and keeps your data.
nanoMuse-1.0.8-arm64.apk(Android 8.0+, arm64; versionCode 51) is signed with the same key as every version before it. Verify withsha256sum -c nanoMuse-1.0.8-arm64.apk.sha256. Nothing to set: the computer's cards, the step line under another device's prompt and the wait line under the typing dots appear on their own; the thumbs sit under the newest reply. - iPhone and iPad come through TestFlight. Build 31 (1.0.8) 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.8. 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.7 desktop on Windows downloads this version in the background on an unmetered network, offers it in the corner menu and installs it on a real quit. Your settings stay where they were; on the first start the app re-points its nanoMuse Cloud provider row at a loopback door inside the plugin (http://127.0.0.1:<port>/v1), which forwards to the relay with the account's key, and rewrites the row's picture bound to 2 MiB. A scheduled task's cards reach the phones only once the phones are on 1.0.8 too. - The relay is 0.31.0; a 1.0.7 client works against it unchanged. For a person: the queue and wait lines, the step line and the computer's cards on the phone need both sides on this version; everything else is as before. For operators: the first start after the upgrade builds an index of the record (
turns_figures) and holds the relay until it is done, about five minutes on the hosted relay's 30 GB, and a backfill then keys older rows in the background, a hundred rows a page, pausing after each page for as long as it took, about an hour for a hundred thousand calls. New since 0.30:POST /v1/eventsand the Data controls figures,GET /v1/admin/record/turnsand/v1/admin/turns/{id},GET /v1/admin/client-eventswith its export and summary,GET /v1/admin/deletions, thenanomusefield on queued chunks and the SSE comments, the hub's pushedeventandevent_pushinwelcome.server.features,stateanddetailonPOST /v1/sync/working,calls.cached_tokensandturns.cached_tokensand the Usage page's cache figures,429 code_too_oftenfor the carrier's own limit, and an optionalcos.envfor the backup off the box. No new setting is required. docs/cloud.md (github.com), docs/hub.md (github.com), docs/self-hosting.md (github.com) and cloud/README.md (github.com) have the details. - The runtime's settings are the same.
provider = "keenable"under[connectors.search](or Connections → Web search) picks Keenable;Browser(backend_factory=…)is for a program that embeds the runtime. A private file the runtime writes on Windows gets an ACL for the one account on the next write. 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.8-arm64.apk |
| iPhone, iPad | TestFlight, a beta that goes through Apple's review; build 31 (1.0.8) once its review has passed |
| Windows 10+ | nanoMuse-Desktop-1.0.8-win-x64.exe (the desktop app, on DeepSeek Harness; not signed) |
| macOS 12+ | nanoMuse-Desktop-1.0.8-mac-arm64.dmg / -mac-x64.dmg (or the .zip: unzip, drag to Applications; not notarized) |
| Linux x64 | nanoMuse-Desktop-1.0.8-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.8.tgz, dsh plugin --profile desktop add … (how) |
| Docker | ghcr.io/nano-muse/nanomuse:1.0.8 (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.8/ 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); the key you add can take over the chat and the screen, and pictures and clips are its from the start; the account can be switched off as a model source while you keep it for sync and your devices. With an account, nanoMuse Cloud keeps the record of your conversations with its models and the turns your own key answered, and from this version the apps also tell it, as codes and never as words, what was decided around each turn and what you thought of a reply; 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 @cutey-none for the pushed cards, the grants per chat and task and the iPhone's music (#652, #672, #642, #690), to @Yicheng-Mark for the runtime on Windows and the desktop's update start (#625, #630, #633, #644, #645, #646, #658, #623, #607, #608, #624, #632, #656, #657, #659, #669), to @z1010223zero-pixel for the step in the presence, the stop disc, the typed name and the Feed's drops (#617, #615, #613, #639), to @yatping for the thinking row and the Traditional Chinese (#684, #671), to @ZxlDragonDoctor for the Feed's limit (#584), to @Felixkw12, @bayuh85 and @DennyHo0917 for Opper, AtmoRouter and API Route (#648, #688, #603), to @ilya-bogin-keenable for Keenable (#665), to @jtboy80826 for the Gemini-shaped error (#611), to @Longfellow1 for the goals' recovery check (#634, #682), to @cugbtang for the session and calendar tests and the LAN-bind report (#675, #694, #673), and to everyone who reported #508, #564, #574, #602, #610, #618, #631, #637, #640, #641, #643, #647, #664, #676, #683, #686, #687 and #689. 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.8 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
- chore(deps): bump the actions group with 3 updates by @dependabot in https://github.com/nano-muse/nanoMuse/pull/578
- chore(deps): bump the desktop group across 2 directories with 5 updates by @dependabot in https://github.com/nano-muse/nanoMuse/pull/576
- chore(deps-dev): bump the web group in /web with 4 updates by @dependabot in https://github.com/nano-muse/nanoMuse/pull/575
- feat(runtime): add API Route own-key chat provider by @DennyHo0917 in https://github.com/nano-muse/nanoMuse/pull/603
- chore(web): rebuild the console on the bumped web dependencies (#575) by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/605
- docs(readme): refresh the community contributors by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/606
- chore: checkup round five (iOS stream patience, desktop screenshot bound and sign-in wording, carrier limit as 429) by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/609
- ci(ios): a workflow hands a TestFlight build to the external group by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/619
- feat(relay): the Usage page says how much of the prompts the cache served by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/620
- feat(deploy): the backup goes off the box, encrypted, when cos.env says where by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/621
- fix(ios): the beta-group lane names its platform by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/622
- The wait before the first token: queue position from the relay, a line under the dots, smaller prompts by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/626
- test(web): the Ideas copies are compared as text, not as checkouts by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/624
- chore(scripts): the provider catalogue check compares content, not line endings by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/608
- fix(runtime): a local endpoint is asked directly, and says why it answered nothing by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/607
- fix(desktop): a profile link the installer still holds is waited out by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/623
- fix(web): the composer send disc stops the run while the agent works by @z1010223zero-pixel in https://github.com/nano-muse/nanoMuse/pull/615
- fix(runtime): a file listing or a search says when it was cut by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/625
- fix(android): provider voice input no longer crashes when a take falls silent (#602) by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/627
- fix(web, desktop): the naming chooser takes a typed name by @z1010223zero-pixel in https://github.com/nano-muse/nanoMuse/pull/613
- feat(relay, runtime, web): presence says what the run is doing by @z1010223zero-pixel in https://github.com/nano-muse/nanoMuse/pull/617
- fix(relay): read a provider's error from a list-shaped body too by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/629
- fix(runtime): a command's output is read in the console's code page by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/630
- fix(web): the sources keep LF, so a Windows build writes the bundle it read by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/632
- fix(runtime): the ChatGPT token lock is taken on Windows too by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/633
- feat(desktop, android, ios): the working line reads the step on every device by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/635
- test(goals): add a 43-case offline recovery benchmark by @Longfellow1 in https://github.com/nano-muse/nanoMuse/pull/634
- docs(readme): refresh the community contributors by @github-actions in https://github.com/nano-muse/nanoMuse/pull/636
- fix(android): report feed silent drops and deduplicate post bodies by @z1010223zero-pixel in https://github.com/nano-muse/nanoMuse/pull/639
- feat(desktop): a hands grant can hold in one chat or one scheduled task by @cutey-none in https://github.com/nano-muse/nanoMuse/pull/642
- fix(runtime): a config.toml Windows wrote is read, not refused by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/644
- fix(runtime): a file is written with the lines the model gave it by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/646
- fix(android): a failed run does not replay the last reply, and a model blip is retried by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/650
- relay: drop OpenAI-only 'store' field before forwarding to the upstream (fixes 400 with Gemini openai-compat) by @jtboy80826 in https://github.com/nano-muse/nanoMuse/pull/611
- fix(runtime): web_fetch reads a compressed page once by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/649
- fix(runtime): a file is read the way a command's output is read by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/645
- feat(runtime): Opper in the provider catalogue by @Felixkw12 in https://github.com/nano-muse/nanoMuse/pull/648
- docs(readme): refresh the community contributors by @github-actions in https://github.com/nano-muse/nanoMuse/pull/638
- feat(relay): every turn says where it came from; own-key turns join the training view; client events and a deletions ledger by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/653
- feat(runtime): provenance headers, own-key turns and client events to the relay by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/654
- feat(desktop): provenance on every call through a loopback door; the turn's notes to the record by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/655
- feat(android): every model call says where it sits; what happened around a turn goes to the record as codes by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/660
- feat(web): thumbs under the newest reply and one question after a Stop by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/662
- feat(ios): every model call says where it sits; what happened around a turn goes to the record as codes by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/661
- feat(relay): count the record by questions beside calls, and read it question by question by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/663
- test(runtime): the provenance wire mounts its mock at construction by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/659
- test(harness): the zip check reads Python's lines and names on Windows by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/657
- fix(demo): the mirror scripts take their single-instance lock on Windows too by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/656
- fix(runtime): a private file stays its owner's alone on Windows too by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/658
- feat(relay): push an approval event to the devices that can answer it by @cutey-none in https://github.com/nano-muse/nanoMuse/pull/652
- feat(runtime): Keenable as a web search provider that needs no key by @ilya-bogin-keenable in https://github.com/nano-muse/nanoMuse/pull/665
- fix(android): report feed daily limit omissions by @ZxlDragonDoctor in https://github.com/nano-muse/nanoMuse/pull/584
- fix(android): offer hand-added video models and recheck when the candidates change by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/666
- feat(android): save the face and its clips to the gallery by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/667
- feat: a scheduled task's approval cards reach the phones by @cutey-none in https://github.com/nano-muse/nanoMuse/pull/672
- fix(cloud): the console's sources keep LF, so a Windows build writes the bundle it read by @Yicheng-Mark in https://github.com/nano-muse/nanoMuse/pull/669
- docs(readme): refresh the community contributors by @github-actions in https://github.com/nano-muse/nanoMuse/pull/668
- fix(scripts): self-host --bind 0.0.0.0 advertises the LAN address by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/674
- fix(ios): every string the app shows in Traditional Chinese by @yatping in https://github.com/nano-muse/nanoMuse/pull/671
- test(session): cover note_response and last_turn by @cugbtang in https://github.com/nano-muse/nanoMuse/pull/675
- feat(relay): the account drawer's kept turns link to the question view by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/677
- feat(runtime): the browser tool takes a backend from the embedding by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/678
- fix(relay): the record's figures read an index, and the key backfill treads lightly by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/680
- fix(relay): the question page fetches its calls by the key index, on the reader by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/681
- fix(desktop): a folded thinking row keeps its width in the agent bubble by @yatping in https://github.com/nano-muse/nanoMuse/pull/684
- fix(ios): avatar clips no longer pause other apps' music by @cutey-none in https://github.com/nano-muse/nanoMuse/pull/690
- test(goals): turn the 43 recovery cases into a safety-rule check by @Longfellow1 in https://github.com/nano-muse/nanoMuse/pull/682
- docs(readme): refresh the community contributors by @github-actions in https://github.com/nano-muse/nanoMuse/pull/679
- feat(runtime): AtmoRouter in the provider catalogue by @bayuh85 in https://github.com/nano-muse/nanoMuse/pull/688
- feat(desktop): a blank document or imported Markdown files in the Library by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/692
- docs(readme): refresh the community contributors by @github-actions in https://github.com/nano-muse/nanoMuse/pull/691
- test(calendar): a long Chinese line folds without cutting a character by @cugbtang in https://github.com/nano-muse/nanoMuse/pull/694
- build(release): 1.0.8 Crew by @lgy0404 in https://github.com/nano-muse/nanoMuse/pull/699
New Contributors
- @bayuh85 made their first contribution in https://github.com/nano-muse/nanoMuse/pull/688
- @cugbtang made their first contribution in https://github.com/nano-muse/nanoMuse/pull/675
- @DennyHo0917 made their first contribution in https://github.com/nano-muse/nanoMuse/pull/603
- @Felixkw12 made their first contribution in https://github.com/nano-muse/nanoMuse/pull/648
- @ilya-bogin-keenable made their first contribution in https://github.com/nano-muse/nanoMuse/pull/665
- @jtboy80826 made their first contribution in https://github.com/nano-muse/nanoMuse/pull/611
- @yatping made their first contribution in https://github.com/nano-muse/nanoMuse/pull/671
- @ZxlDragonDoctor made their first contribution in https://github.com/nano-muse/nanoMuse/pull/584
Contributors
@bayuh85 · @cugbtang · @cutey-none · @DennyHo0917 · @Felixkw12 · @ilya-bogin-keenable · @jtboy80826 · @lgy0404 · @Longfellow1 · @yatping · @Yicheng-Mark · @z1010223zero-pixel · @ZxlDragonDoctor
And the bots: @dependabot, @github-actions.
Full Changelog: https://github.com/nano-muse/nanoMuse/compare/v1.0.7...v1.0.8