<!-- AUTO-GENERATED by scripts/gen-neomind-changelog.js — 请勿手工编辑,内容会被下次构建覆盖 -->
版本发布说明
本页由 NeoMind 官方 CHANGELOG 自动生成并随 wiki 部署同步,摘要保留英文原文。升级步骤见 安装与升级。
当前版本:NeoMind 0.9.24(2026-09-14)
- OpenAPI: every operation annotated, spec fully codegen-ready (final state) — All 334/338 HTTP handlers carry #[utoipa::path] annotations (354 operations, 278 unique paths, 37 tags); the 4 wildcard routes (*path-style) are deliberately…
- CLI could not find a desktop install's data directory (password reset… — neomind user reset-password admin reported "User 'admin' not found in data/users.redb" on a machine whose only live store was the desktop app's. The CLI resolver…
- Upgrade notes (0.9.23 → 0.9.24) — Hosts with a custom NEOMIND_DATA_DIR (Docker volumes, deploy/neomind.service) may need to re-create API keys. 0.9.21–0.9.23 encrypted keys with a cwd-relative…
- Release-readiness fixes (pre-tag) — Cursor pagination: my earlier "fix" traded a loop for silent truncation — now actually correct. The cursor was passed as the scan's LOWER bound while end stayed at…
- Docs-correctness audit — the route table was incomplete, and the drift test… — /api/docs was missing 14 routes registered in admin_routes (12), extension_upload_routes, and component_upload_routes: the generator listed only five router variables,…
- Live API verification pass — one more real bug found and fixed — Client mistakes no longer answer 500: an unregistered device_type on POST/PUT /api/devices came back as 500 INTERNAL_ERROR ("template 'nope' not found") — integrators…
- OpenAPI schema — first milestone (superseded by the full-surface section above) — GET /api/docs/openapi.json went live with utoipa-generated coverage for the domains third parties integrate against first: auth (login/register/keys), device CRUD…
- Business-contract audit (FE↔BE) + Swagger-style interactive docs — Audited every 0.9.24 contract change against its actual frontend consumer (3-state status, offline-timeout tri-state, aggregate validation, hours clamp, cursor…
- External-API batch 2 — consistency contracts + the promised /api/docs — GET /api/docs now exists (the CLI help has promised it since forever; it 404'd into static-file serving): a human-readable HTML route index grouped by auth class…
- External-API consumer fixes — error envelopes, honest status codes,… — Unified error envelope on EVERY failure path: the auth middleware's 401/403 (i.e. every protected route) used to answer {error:"<string>"} — error as a plain string, no…
- Cleanup wave round 2 — shared channel send ladder + data-dir resolver — post_json + channel_http_client in neomind-messages: the five webhook-style channels (Slack/Telegram/DingTalk/WeCom/Feishu) carried byte-identical send ladders — post →…
- Optimization + consistency wave (post-0.9.24 bump) — Ingest hot path: update_last_seen no longer writes a redb txn per metric per report (10-metric device @1Hz was 10 txns/s of whole-config read-modify-write) — in-memory…
- Builtin-model pipeline: end-to-end integration tests (chain, not just links) — New builtin_llm_bootstrap integration suite pins the full chain with REAL code paths and minimal fakes: a PATH-injected shell/python neomind-llama-server (serves…
- Iteration regression audit — round 2 findings, all fixed — [MEDIUM] Quant override dead download (introduced by the openbmb switch): resolve_quant accepted qad_q4_0 for the MiniCPM default — the download fetched the correct…
- MiniCPM5-2B download source: third-party mirror → official openbmb repo — The default model downloaded from Abiray/MiniCPM5-2B-GGUF (a personal-account mirror) whose bytes are a repack — LFS pointer comparison: official 1,561,318,368 B /…
- llama-server lifecycle: deterministic cleanup on every exit path — kill_on_drop on the spawn + a global handle registry: every systemctl restart (and any crash / kill -9 / desktop force-quit) used to orphan the model-loaded…
- CLI exit-code contract + clean stdout; data-push backpressure — CLI failures now exit non-zero: every CliResponse with success:false used to print "❌ …" and exit 0 — scripts and the agent's shell tool could not distinguish failure…
- Builtin llama-server default port 8081 → 29375 (collision with llama.cpp… — The old default sat right next to llama-server's OWN default (8080) on one of the hottest dev ports — any user running llama.cpp tooling collided with our spawn, and…
- Self-review of this session's fixes — five regressions WE introduced, all fixed — [CRITICAL] Offline-edit merge compared milliseconds against seconds — the frontend writes updatedAt as Date.now() (ms) while the server persists updated_at as Unix…
- Desktop LAN access: on by default, one-toggle opt-out — The desktop app's embedded server keeps binding 0.0.0.0 by default — edge devices connect out of the box, and the embedded MQTT broker follows the same binding via a…
- Review wave 4 — whole-project FE/BE sweep, first fix batch — Offline dashboard edits survive reload (P0): the hybrid store's reload merge never compared updatedAt, so a stale server version overwrote newer local edits made while…
- Device/telemetry data-path fixes — the contract audit's P0/P1 batch — Aggregate queries returned the average regardless of the requested function (P0): ?aggregate=max|min|sum|last all yielded value: avg — charts and agents silently got…
- Regression sweep round 2 — siblings of the fixed bug classes + one WS contract… — Multimodal budget floor (twin of the 8K bug): stream_multimodal.rs carried the exact unfixed clone of the streaming budget floor — every image chat turn could construct…
- Chat turns now survive page switches — the final reply always lands in history — Frontend pair fix: the side panel chat never subscribed to connection-state changes (only the full chat page did), and the WS layer silently cleared queued messages on…
- Context window: MiniCPM5-2B default 8K → 32K (product decision 2026-09-12) — The 2026-09 eval's "8K optimum" was measured on the harness's lighter prompt; the production platform prompt (system + tool definitions + memory/skill context) weighs…
- Fixed: 8K-context models broke down in chat (budget floor constructed overflows) — Root cause: the streaming history budget computed window − prompt_overhead − response_reserve, then raised the result to a hard 20%-of-window floor (stream_core.rs). On…
- Fixed: API-key auth dead under custom
NEOMIND_DATA_DIR(regression since… — Root cause: AuthState::new() resolved api_keys.redb through store_path() (honoring NEOMIND_DATA_DIR, since v0.9.21's storage unification) but kept loading the… - Server release tarballs back to ~30 MB — DWARF split into an optional sidecar — v0.9.23's Linux server packages ballooned (amd64 30→91 MB, arm64 26→78 MB): the line-tables-only release profile added in 9c67e474 keeps ~200 MB of DWARF per binary in…
近期版本
0.9.23(2026-09-09)
binary push frames + platform perf pass, long-task agent fixes, onboarding wizard redesigned
- Built-in model default → MiniCPM5-2B (2026-09 eval)
- Agent platform fixes surfaced by the corrected eval harness
- SDK 0.7.0 — zero-serialization push (raw FFI) + segmented payload codec
- Chat turn time budget is now configurable (default 1800s) — agent no longer stops…
- Neutral "definition of done" in the platform prompts
- Preferences: Language row shows the truth; timezone list follows the UI language
- Binary push frames on
/api/extensions/:id/stream - Text tool-calling teaching now reaches every backend
- Platform perf: shared event cache, zero-copy extension IPC, runner workers
- DEF-001/002 — MQTT client timestamps honored; telemetry source/metric validated
- Metric history honors the hours window
- Onboarding wizard redesigned
- Edge-model leaderboard: corrected-harness re-run
0.9.22(2026-09-03)
dialogs rebuilt single-page, Data Explorer detail grows up, chat context ring
- Pending-device registration — one honest page
- Add Device Type — the wizard finally becomes a form
- Data Explorer — the detail view grows up
- Shared widget & dialog infrastructure
- Context management — budget-first, configurable, and losing the right things
- Chat context visibility
- Also
版本速览
| 版本 | 发布日期 | 主题 |
|---|---|---|
| 0.9.21 | 2026-08-29 | security hardening, backups, observability, in-app server… |
| 0.9.20 | 2026-08-26 | agent capability, open model catalog, Jetson |
| 0.9.19 | 2026-08-21 | — |
| 0.9.18 | 2026-08-19 | — |
| 0.9.17 | 2026-08-16 | — |
| 0.9.16 | 2026-08-11 | — |
| 0.9.15 | 2026-08-04 | — |
| 0.9.14 | 2026-07-31 | — |
| 0.9.13 | 2026-07-30 | — |
| 0.9.12 | 2026-07-27 | — |
| 0.9.11 | 2026-07-22 | — |
| 0.9.10 | 2026-07-21 | — |
| 0.9.9 | 2026-07-17 | — |
| 0.9.8 | 2026-07-16 | — |
| 0.9.7 | 2026-07-15 | — |
| 0.9.6 | 2026-07-15 | — |
| 0.9.5 | 2026-07-13 | — |
| 0.9.4 | 2026-07-10 | — |
| 0.9.3 | 2026-07-09 | — |
| 0.9.2 | 2026-07-07 | — |
| 0.9.1 | 2026-07-06 | — |
| 0.8.25 | 2026-06-26 | — |
| 0.8.24 | 2026-06-26 | — |
| 0.8.23 | 2026-06-25 | — |
| 0.8.22 | 2026-06-23 | — |
| 0.8.21 | 2026-06-22 | — |
| 0.8.20 | 2026-06-22 | — |
| 0.8.19 | 2026-06-18 | — |
| 0.8.18 | 2026-06-17 | — |
| 0.8.17 | 2026-06-17 | — |
| 0.8.16 | 2026-06-16 | — |
| 0.8.15 | 2026-06-16 | — |
| 0.8.13 | 2026-06-14 | — |
| 0.8.12 | 2026-06-12 | — |
| 0.8.11 | 2026-06-11 | — |
| 0.8.10 | 2026-06-11 | — |
| 0.8.9 | 2026-06-10 | — |
| 0.8.8 | 2026-06-09 | — |
| 0.8.7 | 2026-06-08 | — |
> 完整历史与细节见 NeoMind CHANGELOG。