v1.8.0
What's Changed
- feat(otel): adopt withSpan at turn/provider/tool boundaries (sprint 0.1) by @Memphis-Chains in #323
- feat(observability): confabulation event detector + 7d health counter (sprint 0.2) by @Memphis-Chains in #324
- fix(soul): apply MEMPHIS_AUTONOMY_MODE env override on read (sprint 1.1, B1) by @Memphis-Chains in #325
- fix(env): sweep env-override sites + harden rustLoopAdapter race (sprint 1.2) by @Memphis-Chains in #326
- feat(agent): anti-confabulation guard + self-describe enforcement (sprint 1.3) by @Memphis-Chains in #327
- fix(vault): enforce 0600 perms on entry/state files at write time (sprint 2.2, #275) by @Memphis-Chains in #329
- chore(tech-debt): consolidate MCP cast helper, scheduler HOME, backup progress (sprint 3.2) by @Memphis-Chains in #330
- feat(kartograf): TS session layer scaffold (sprint 4.2, N32 prep) by @Memphis-Chains in #331
- feat(channels): photo handler with honest fallback (sprint 3.1) by @Memphis-Chains in #332
- fix(napi): pino flush before exit closes one SEGV-shutdown cause (sprint 2.3, partial #270) by @Memphis-Chains in #333
- fix(silent-fail): surface vault fsync + security audit + Rust loop fallback (sprint 2.4) by @Memphis-Chains in #328
- test(e2e): isolate vault entries path in full-workflow test (wiring W5) by @Memphis-Chains in #337
- fix(ci): preflight gate captures + propagates subprocess stdout (debug visibility) by @Memphis-Chains in #339
- fix(mcp): register memphis_self_describe + memphis_repair + memphis_cron (wiring W1) by @Memphis-Chains in #334
- fix(config): document 5 runtime env vars in envSchema (wiring W2) by @Memphis-Chains in #335
- fix(prompt): un-castrate memphis_exec — full shell access in prompt by @Memphis-Chains in #341
- test(shutdown): SEGV stress for mcp serve + full daemon (Track B B1, #270) by @Memphis-Chains in #340
- chore(dead-code): remove 2 orphan modules (wiring W4) by @Memphis-Chains in #336
- fix(cli): expose 'full' as autonomy mode option by @Memphis-Chains in #342
- docs(shutdown): SHUTDOWN-LIFECYCLE.md + close BUG3 (Track B B4, #270) by @Memphis-Chains in #343
- docs(ops): quarterly disaster restore drill (Track C1) by @Memphis-Chains in #344
- docs(rfc): Shamir secret sharing for vault recovery (Track C2) by @Memphis-Chains in #345
- feat(slo): memphis_slo_status MCP tool + SLO evaluator (Track C3) by @Memphis-Chains in #346
- feat(ci): cross-arch matrix + chain format compat test (Track C4) by @Memphis-Chains in #347
- fix(cli): vault add/get/entry-delete accept positional key (operator UX) by @Memphis-Chains in #321
- fix(env): parseBool accepts 1/yes/on truthy + 0/no/off falsy by @Memphis-Chains in #320
- docs(dev): codebase truth snapshot — 2026-04-27 by @Memphis-Chains in #322
- fix(ollama): expose OLLAMA_KEEP_ALIVE so the model stays warm by @Memphis-Chains in #348
- fix(track-c): address Codex P1+P2 findings on #343-#346 by @Memphis-Chains in #349
- fix(vault): detect path split + meaningful local-fallback output by @Memphis-Chains in #350
- fix(vault): auto-resolve missing state path from sibling/legacy fallbacks by @Memphis-Chains in #351
- fix(cli): accept --cron and --type as aliases for schedule add by @Memphis-Chains in #352
- fix(ci): mark cross-arch matrix informational (continue-on-error) by @Memphis-Chains in #353
- fix(ollama): default keep_alive to 24h (drop opt-in requirement) by @Memphis-Chains in #354
- fix(vault): print path-fallback notice once per process by @Memphis-Chains in #355
- refactor(sprint-1/a1): delete dead leaf files (Karpathy refactor) by @Memphis-Chains in #356
- refactor(sprint-1/a2): delete Matrix federation (~3000 LOC) by @Memphis-Chains in #357
- refactor(sprint-2/b1): consolidate bool parsers into core/env.parseBool by @Memphis-Chains in #358
- refactor(sprint-2/b2): inline thin path-resolver wrappers by @Memphis-Chains in #359
- refactor(sprint-2/b3): merge split chain-integrity tests by @Memphis-Chains in #360
- fix(operator): correct soul-manifest path lookup by @Memphis-Chains in #361
- fix(operator): align Rust vault path defaults with TS layer by @Memphis-Chains in #362
- feat(doctor): add --post-install flag for tier-1 fresh-install sanity by @Memphis-Chains in #363
- feat(vault): .env stays in sync with vault state (sync-env + delete cleanup + drop pre-write) by @Memphis-Chains in #364
- fix(cli): eagerly resolve VAULT: in every command (telegram status, etc.) by @Memphis-Chains in #365
- fix(minimax): parse inline …</minimax:tool_call> XML in M2.7 responses by @Memphis-Chains in #366
- fix(minimax): coalesce system-role messages — fixes 400 'invalid message role: system' by @Memphis-Chains in #367
- fix(self-update): fall back to origin/main when branch has no upstream by @Memphis-Chains in #368
- fix(config): production safety check accepts _VAULT_KEY alternative by @Memphis-Chains in #369
- fix(tui): refresh runs on background thread; main loop never blocks on it by @Memphis-Chains in #371
- fix(tests): macOS-portable tmpdir — fixes 8 cross-arch failures from /private/var symlink by @Memphis-Chains in #372
- fix(apps): default manifest platforms to linux+darwin+win32 (macOS CI) by @Memphis-Chains in #373
- refactor(env): drop MEMPHIS_DIR alias — single canonical MEMPHIS_DATA_DIR (Sprint 6 F1) by @Memphis-Chains in #374
- fix(security): enforce 0600 on sensitive config files + heal-on-load (#272) by @Memphis-Chains in #375
- fix(secret-scan): add OpenAI/Stripe/Mistral prefixes + mirror in kartograf corpus (#274) by @Memphis-Chains in #376
- fix(vault): distinguish resolved vs failed vault refs (#276) by @Memphis-Chains in #377
- fix(cli): cleanup tick listener in monitorRuntime — symmetric on/off (#277) by @Memphis-Chains in #378
- chore(readme): bump version v1.4.0 → v1.7.2 + refresh feature highlights (S1-5) by @Memphis-Chains in #379
- feat(doctor): surface embed backend label in latency check (S4-2) by @Memphis-Chains in #380
- fix(providers): GLM timeout + cascade-aware error mapping (S4-3) by @Memphis-Chains in #381
- feat(doctor): surface cron task failures with log path (S4-4) by @Memphis-Chains in #382
- feat(doctor): --fix --apply gate for orphan cleanup with backup (S4-1) by @Memphis-Chains in #383
- fix(scheduler): spawn task shells as login shells (Wodzu cron regression) by @Memphis-Chains in #384
- fix(doctor): skip chain.backup- dirs in repair iterator by @Memphis-Chains in #385
- fix(soul): thread rawEnv through tool-executor + self-modify into manifest reads (S5-4) by @Memphis-Chains in #387
- fix(providers): wire factory.resolveProvider to real OllamaProvider (S5-6) by @Memphis-Chains in #386
- feat(cli): memphis auth audit — surface CLI auth-gate matrix (S5-3) by @Memphis-Chains in #388
- security(cli): close 5 auth-gate gaps in secret/trust/backup/evolve/reset (S5-1) by @Memphis-Chains in #389
- fix(npm): ship NAPI bridge binary in npm tarball (S9-0, v1.8.0 release-blocker) by @Memphis-Chains in #390
- docs(readme): fix 12 stale doc links pointing at bare docs/ paths (S10-1) by @Memphis-Chains in #391
- docs(operator): add English install-from-scratch walkthrough (S10-2) by @Memphis-Chains in #392
- feat(cli): gate chat/ask/tui on first-run state (S10-5) by @Memphis-Chains in #393
- docs(readme): fix nonexistent CLI commands in cheatsheet (S10-6) by @Memphis-Chains in #394
- docs(operator): force-flag bypass contract (S7-1 — MEMPHIS_VAULT_FORCE_REINIT + MEMPHIS_RESTART_ALLOW_SUICIDE) by @Memphis-Chains in #395
- docs(release): CHANGELOG.md entry for v1.8.0 (S8-2 — 73 commits since v1.7.2) by @Memphis-Chains in #396
- fix(doctor): demote 3 architectural-debt warns to pass (S7-2 — ta2/ta9/ta10) by @Memphis-Chains in #399
- feat(release): GPG signing scaffold + SHA256SUMS (S8-1, inert until secrets configured) by @Memphis-Chains in #400
- feat(napi): platform-aware bridge resolver + sub-package skeletons (S9-1a) by @Memphis-Chains in #401
- test(macos): switch managed-apps.vault-boundary to realTmpdir (S11-1 partial) by @Memphis-Chains in #402
- ci(prebuilds): per-platform NAPI binary build + publish matrix (S9-3) by @Memphis-Chains in #404
- fix(secret-scan): replace GNU-only regex constructs with portable POSIX ERE (#403, S11-2 partial) by @Memphis-Chains in #405
- feat(napi): wire loadPlatformAwareBridge across 5 adapters + optionalDependencies (S9-1b) by @Memphis-Chains in #406
- docs(readme): surface FORCE-FLAGS, RUST-DISTRIBUTION, and updated RELEASE-PROCESS by @Memphis-Chains in #408
- test(ops): NAPI sub-package metadata contract test (S9-1c) by @Memphis-Chains in #409
- release: v1.8.0 — security & honesty + per-platform distribution + Linux-canonical by @Memphis-Chains in #410
- docs(stale): STATUS-2026-05-02 markers on 4 obsolete planning docs (post-v1.8.0) by @Memphis-Chains in #411
- fix(release-smoke): first-run stub + force vault re-init (unblock v1.8.0 release.yml) by @Memphis-Chains in #412
- fix(test): unblock cli.tui.test.ts past S10-5 first-run gate (CI v1.8.0) by @Memphis-Chains in #413
- fix(secret-scan): tighten api_key value class + extend exclusion list (v1.8.0) by @Memphis-Chains in #414
Full Changelog: v1.7.2...v1.8.0