Releases: wlsdks/muse-agent
Release list
v0.2.30 — chat starter prompts
Added
- Chat starter prompts — the empty chat now shows tappable starter chips grounded in what Muse can do ("오늘 일정 정리 / Summarize my day", "이번 주 할 일 / Tasks this week", "최근 노트 요약 / Summarize my notes", "뭘 도와줄 수 있어? / What can you help with?"). Tapping one fills the input and focuses it — never auto-sends; chips disappear once a conversation starts. Real-browser verified.
Early/experimental, macOS only.
v0.2.29 — web UI polish
Web/desktop UI polish, verified in a real browser. Early/experimental, macOS only.
Changed
- Branding matches the product voice — dropped "AI Conductor / AI 지휘자" from the web app; sidebar fallback is the identity line ("Learns you, not the world" / "세상이 아니라, 당신을 배우는 AI"), window title is just "Muse". The live subtitle stays the AI-generated personalized tagline.
- Connection status, not a raw address — the header's bare
127.0.0.1:3030is now a connection-status badge (connected / connecting / offline); the URL stays as a tooltip + in Settings. - Calmer load errors — dashboard cards no longer surface the raw "Failed to fetch"; they show "Couldn't load / 불러올 수 없어요" with a check-connection hint.
v0.2.28 — onboarding nudge + test coverage
Onboarding nudge + a big test-coverage pass. Early/experimental, macOS only.
Added
- First-run points you at real first value — after setup, the wizard suggests
muse browsing sync(seed answers from your Chrome history) andmuse demo(a cited example) as next steps; bilingual, opt-in (never auto-run), and drops the browsing hint if you already connected it.
Changed
- ~100 new tests (no source changes) locking in behavior: local tasks/notes providers + weather tool (round-trips, corrupt-store degrade, write-atomicity, injected-fetch degrade paths that never fabricate), and the memory user-store Kysely runtime, file-lock exhaustion, and pattern-detector boundaries. Each mutation-checked.
v0.2.27 — Codex delegation + chat API grounding gate
Two headline additions plus memory/observability polish. Early/experimental, macOS only.
Added
- Codex delegation (opt-in). With a ChatGPT Plus/Pro subscription + the official
codexCLI installed and logged in, point Muse's chat/ask at it — Muse shells to the official CLI (read-only sandbox, ephemeral, neutral workdir) and never touches your OAuth token. OFF by default (local stays default), selected via--model codex/codex-defaultor an opt-in setup choice, blocked underMUSE_LOCAL_ONLY=true. Using a ChatGPT subscription to back a third-party app is an unofficial gray-area route (a cloud API key is the clean path) — Muse says so up front. Text answers only; Muse still grounds + cites the result. - Compaction failure telemetry — memory-compaction failures classified into bounded reasons instead of opaque strings.
muse browsing search --jsonemits the same grounded block asmuse ask --json.
Fixed
- The chat API is now grounded like everything else.
/chat,/api/chatand the streaming variants route through the same deterministic grounding + citation gate as/api/ask: an ungroundable claim is dropped by code (→ "I'm not sure"), a grounded answer passes unchanged, and the response carries the grounding verdict — closing a real hole in Muse's core "every claim cites a real source" guarantee. - chat-ink grounding parity (Korean NFC input, pronoun-rewrite) now regression-guarded.
v0.2.26 — CLI naming, error voice, slow-model knob
The remaining pre-release polish from the deep CLI audit. Early/experimental, macOS only.
Fixed
approvalvsapprovalsdisambiguated. The two adjacent groups both exposedapprove <id>/list; their descriptions now name their distinct domains and cross-reference each other —approval= tool-call trust decisions,approvals= the outbound draft-first action worklist. Names unchanged (no breaking change).- Consistent error voice.
import,ingest,bg, andapprovalsprint failures through onemuse <command>: <message>envelope, with exit codes and stdout/stderr routing unchanged.
Added
MUSE_STREAM_IDLE_TIMEOUT_MSmakes the streaming idle-timeout tunable — a model that connects but never responds no longer freezesask/chatfor the fixed 3 minutes. Set e.g.=8000to fail fast. Default 180s unchanged; the value can only shorten a real stall (0/negative/non-numeric fall back to the default, so it can't be disabled).
v0.2.25 — pre-release CLI polish (setup posture, help, robustness)
A second, deeper pre-release CLI audit (four independent expert passes — no blockers) fixed a handful of real rough edges in setup/onboarding posture, help output, branding, and input robustness. Early/experimental, macOS only.
Fixed
muse setupcredits the local default model. A fresh local-first box no longer reads "model — not configured" or gets pushed toward cloud; it now agrees withmuse doctor(both show the resolvedollama/gemma4:12blocal default) with a soft "customize" nudge.muse setup localrecommends the model you already have (pinned local default) instead of a 17 GB power-tier download, and persists it so the checklist clears.- The "New here?" banner stays on top-level help instead of leaking onto 300+ subcommand
--helpoutputs (and piped stdout). - Off-brand "JARVIS" wording removed from
remember/brief/statushelp + the briefing prompt. - A giant CLI argument no longer crashes with a raw stack trace —
muse note "$(pbpaste)"on ~1 MB prints a clean "input too large — pipe via stdin" message + exit 1. - Atomic config writes (temp + rename) so a crash mid-write can't truncate settings.
- Clean message when a store path is unreadable (config that's a directory / no read perm) instead of a raw
EISDIR/EACCES.
v0.2.24 — CLI quality audit fixes
A CLI-quality follow-up to 0.2.23: an expert audit turned up ten rough edges in help, error handling, and flags — this fixes all of them, each with a test. Early/experimental, macOS only.
Fixed
muse help <command>now renders that command's real help; unknown names get a grounded error.- Typos in a subcommand are caught (
muse setup lcoal→ "did you mean 'muse setup local'?", exit 1) instead of silently running the default. -q/--quietactually suppresses tips/spinners (it was wired but unused).--no-colornow wins over an ambientFORCE_COLOR(NO_COLOR > --no-color > FORCE_COLOR > TERM=dumb > TTY).--no-inputno longer hangssetup data.- Invalid
--config/--argsJSON and corruptconfig.jsonprint a clean fix-it line, not an "internal bug" GitHub link. remind snoozeonly moves a reminder later (max(now,due)+10min), never earlier.- Correct copy-paste hints in
setup/today; all 21 previously-orphaned commands grouped in--help;completionin its own candidate list.
Changed
- Docs: local-only is opt-in (
MUSE_LOCAL_ONLY=true), not the enforced default; Muse runs local by default and is provider-neutral.
v0.2.23 — Best-in-class CLI: faster, cleaner, more helpful
A best-in-class pass on the CLI, grounded in the clig.dev guidelines: it starts faster, reads cleaner, and helps you more.
Added
- Examples-first help on the daily-driver commands (ask, today, remember, skills, mcp, ingest, setup), safe path first.
- Global flags
--no-color,-q/--quiet,--no-input; a "New here?" hint + docs footer on top-level help. - Humane errors — expected failures print one clean line with a next-step hint; genuine bugs print a pre-filled GitHub issue link (version + command).
- Distinct conversation turns — each exchange gets a dim rule +
#Nand a bold prompt header. - Cleaner answers — proper markdown: framed code blocks with a language label (no raw backticks), aligned/nested lists, highlighted inline code, readable links, spacing.
- A truthful HUD with a context-usage indicator (
ctx N%): a local Ollama model reads 🔒 local (was falsely ⚠ cloud); segments stay customizable.
Changed
- ~6× faster cold start on light commands via lazy command loading:
--help374→68ms,completion386→61ms,config-path384→62ms; heavy commands drop ~40%.--help/completion/did-you-mean unchanged;--version~20ms.
Fixed
- Complete colour discipline: NO_COLOR > FORCE_COLOR > --no-color > TERM=dumb > isTTY.
Early / experimental — macOS only, provided as a pre-release.
v0.2.22 — A living bluebird, a shapeable HUD, clearer setup steps
Terminal polish: the muse chat gets a living bluebird and a HUD you can shape, and the first-run wizard now reads as clearly-numbered steps.
Added
- An animated bluebird in the terminal chat — a small pixel bluebird that gently bobs and blinks on the chat home screen. Static under
NO_COLOR/ non-TTY /MUSE_NO_ANIM. - A customizable HUD —
MUSE_HUD_SEGMENTS=model,locality,tools,skillspicks and orders segments;MUSE_HUD=minimal/fullare preset shortcuts. Unset stays exactly as before.
Changed
- Clearer first-run setup steps — the wizard now frames its flow as numbered steps with a ruled divider before each (1/3 pick a model → 2/3 connect your data → 3/3 finishing up), instead of one long scroll.
Early / experimental — macOS only, provided as a pre-release.
v0.2.21 — A first run that connects your data and proves its value
A first-run experience worthy of the app: muse now opens a warm, branded setup wizard, walks you through connecting your data, and proves its value on the first screen — and the app's empty states now guide you to value instead of dead-ending.
Added
- A premium first-run setup wizard — on first
muse(ormuse setup start), a branded, bilingual (KO·EN) onboarding: the bluebird banner, a designed "how should Muse think?" picker (Local / Cloud API key / Codex), and a bird success moment. Shows once;--no-setup/MUSE_SKIP_FIRST_RUNbypass it; fail-soft. - Connect your data during setup — after picking a model, a multi-select of the safe built-in connectors (Apple Contacts, Chrome browsing history, Reminders/Notes mirrors) so setup ends with real data. Opt-in, skippable.
- A proof-of-value moment — setup finishes with a personalized, grounded line ("Sam님, 연락처 12명 연결됐어요 — 이제 당신을 배울게요"); an empty install gets a warm content-free welcome. Fabrication = 0.
- Codex (your ChatGPT subscription) as a setup option — detects your own official
codexCLI login and delegates to it (Muse never handles the token), with honest copy up front (unofficial third-party route; the clean path is a Cloud API key). Live routing is a flagged preview. - Starter skills scaffolded on a fresh install when the skills folder is empty.
- Actionable empty states in the app — "No tasks / notes / …" blanks became warm CTAs (add your first task, connect a calendar, start a chat) that move you toward value.
Early / experimental — macOS only, provided as a pre-release.