Changelog
What changed in each version of hvf, newest first.
Release notes come straight from the commit messages; the earliest ones are in Spanish.
0.22.1
LatestBug Fixes
- notify: fall back to rename only when hard links are unsupported (b1aedbc)
- notify: put a damaged notify.json back where hard links are unsupported (b1ed403)
- sdk: release pipes and escalate to SIGKILL when runToolCapture times out (7c9eef4)
- sdk: release runToolCapture pipes when the grace period ends (e3bf6ea)
- sdk: resolve runToolCapture on close so output is never lost (ab18e0d)
- sdk: stop the runToolCapture timeout once the process has exited (25b76ae)
Bug Fixes
- backup: keep revocations on identity restores and tighten state routes (0e7f984)
- backup: keep used invitations and enrollment links on identity restores (ce462c4)
- daemon: address the D4a QA findings (1e7a410)
- daemon: load the Reflect polyfill before the daemon in the compiled binary (e587716)
- daemon: require a recent passkey for device tokens and revoke them on recover (f6c95cb)
- smtp: never reuse the stored password for another server (68161b5)
- smtp: reject control characters before they reach security -i (9944fd9)
Features
- backup: include state.db and the event archive in backups (31785db)
- daemon: add device tokens for programs and invitation peek (187d4d1)
- daemon: add the D4a gateway, identity and passkeys (6717349)
- daemon: run mail-smtp as a plugin worker and apply plugin route roles (d5714be)
- smtp: add the mail-smtp plugin and hvf smtp for emailed invitations (92acca9)
Bug Fixes
- install: reject credentials in HVF_DOWNLOAD_BASE and pin curl to https (3117b93)
- install: require https for HVF_DOWNLOAD_BASE and harden SHA256SUMS parsing (4778b98)
Features
- install: download from HVF_DOWNLOAD_BASE with sha256 verification (7732707)
Bug Fixes
- daemon: harden the plugin worker boundary and lifecycle (2564745)
- sdk: decode UTF-8 across pipe reads in the JSON-RPC peer (63336a2)
Features
- cli: serve plugin workers and add hvf daemon plugins (9ee2af4)
- daemon: run plugins in workers (7ee1a3d)
- plugins: declare plugin manifests and add the hello example (9bf9321)
- sdk: add JSON-RPC over stdio and the plugin worker runtime (5fe4bb3)
Bug Fixes
- cli: start the on-demand daemon with a filtered environment (5c4499e)
- cli: stop doubling $ in the systemd unit Environment lines (14c85c4)
- daemon: check the fallback socket folder before connecting (7e3a796)
- daemon: create state.db, its sidecars and backups as 0600 (80fad71)
- daemon: fsync event archives before deleting their rows (3be7fa4)
- daemon: give WebSocket protocol errors a stable message (6d36bf4)
- daemon: send reset when the event replay cannot be complete (3a969a2)
- daemon: treat a start lock whose owner died as abandoned (a735e19)
Features
- cli: add hvf daemon and hvf events (b99ef1d)
- daemon: add the daemon package with state.db, event log and API schemas (0aadb6d)
- events: show the latest events by default (512d2a1)
- init: offer to install the daemon as a service (b1f30e3)
Bug Fixes
- cli: restore a set-aside notify.json without overwriting a new one (658dc05)
- sdk: treat a destroyed or failed stdin as EOF in Interview (9063117)
Bug Fixes
- cli: check that notify.json can be written before asking for any field (b8f1179)
- cli: resolve relative notify.json links from the real folder (6c20924)
- cli: write through broken notify.json links and report unwritable folders (af2cc3d)
- sdk: answer with the default after reset() once stdin has ended (1545741)
Bug Fixes
- accurate import footer from the menu and keep pty summary with large output (e458bb9)
- cli: keep stdin free for the MCP transport in hvf mcp serve (bae2a82)
- notify: keep corrupt notify.json, write it 0600 atomically and allow changing the quota watch (784c66b)
- notify: never replace an unreadable notify.json and keep quota watch values (a2a7c2a)
- sdk: harden the terminal handoff and make Interview.close() final (0e1243d)
- tidy minor TUI, import and pty harness findings (447176e)
- tui: keep hvf alive on Ctrl+C in a child and stop listening to stdin between questions (fb7c8e5)
Bug Fixes
- sdk: keep stdin paused while a child owns the terminal after Ink unmounts (d38441e)
Bug Fixes
- init,import: don't leave half-finished state after an interrupted wizard (57dd363)
- tests: decode pty output as a stream so split UTF-8 characters still match (c3aef2b)
Bug Fixes
- restore: always remove the extracted backup, and let Ctrl+C leave the welcome screen (48e0791)
- tui: exit cleanly on a single Ctrl+C instead of leaving a blank screen (12ae736)
- tui: keep the full-screen view interactive when CI is set (ce5c11e)
- tui: make Ctrl+C abort a wizard without saving anything (0e23339)
Features
- notify: optional NotifierPlugin.discoverConfig with Telegram chat id detection (77f7312)
- tui: Notifications screen with masked secrets and chat id auto-detection (aea04e6)
Bug Fixes
- notify: never install a quota watch pointing to a non-executable hvf (aa75c7b)
Features
- notify: periodic quota alerts with hvf notify check-quota and a launchd/cron watch (496f2dc)
- protocol: add an optional stable id to usage windows (bec4430)
Bug Fixes
- bridge: make bridge.db safe under concurrent hvf processes (c4d7e98)
Bug Fixes
- bridge: make hvf __bg-notify idempotent, fixing a duplicate notification (e06f03f)
Features
- bridge: chain a tmux pane-died notify hook into background sessions (0c16474)
- bridge: fire notify on new mailbox messages and finished delegations (6260cf2)
- cli: add the hidden hvf __bg-notify <id> subcommand (32cf2d6)
- cli: wire the real notify/hvfBin dependencies into every bridge entry point (bd9ffb8)
Bug Fixes
- cli: escape literal <channel> tag in core.notify.usage (4042af9)
- cli: warn about plaintext token before hvf notify telegram setup (39c0772)
- tests: detect OS explicitly for file permission checks (c0db8df)
Features
- cli: add hvf notify status|enable|disable|test and telegram setup (7f680a4)
- notify-telegram: add the Telegram NotifierPlugin channel (d01639e)
- protocol,cli: add NotifierPlugin architecture and notify.json (251586a)
Bug Fixes
- cli: move content reshare's .bak outside the scanned content dir (064fc0a)
Bug Fixes
- cli: relink existing profiles right after skill/command add (ca31859)
Features
- cli: add hvf content unshare/reshare for per-profile content exceptions (7153733)
- cli: add ProfileContentConfig for per-item content exceptions (6f5af15)
- cli: link shared content dirs per item instead of per whole folder (520352c)
Features
- cli: add the seven brain/backup MCP tools (Entregable 3 de 3) (3563dd4)
Bug Fixes
- tui: add real scroll to ContentScreen's detail level (748f59a)
- tui: replay keystrokes dropped in the gap between screen mounts (75bd749)
- tui: select Quit with the cursor and Enter in the menu (59b407b)
- tui: stop the command bar hanging on a pasted slug+Enter too (d09a820)
- tui: stop wizard/rename text questions hanging on a pasted answer+Enter (d70561f)
Features
- cli: add the nine shared-content MCP tools (skill/command/plugin) (de10f78)
Features
- bridge: add registerExtraTools extension point and mcp_actions audit table (6408a88)
- cli: add the five profile MCP tools (profile_add/rename/remove/default_get/default_set) (77ea313)
Bug Fixes
- bridge: correct the detach hint to lowercase Ctrl+B d (0d5d3d9)
- sdk: pause stdin before handing the terminal to a child process (690b818)
Features
- bridge: add bg_start, bg_list, bg_attach and bg_stop MCP tools (5943340)
- bridge: track and manage background profile sessions over tmux (f0a434d)
- cli: add hvf bg start|list|attach|stop for background profiles (01f1f3f)
- install: warn when tmux is missing (needed for hvf bg) (e6f0f8d)
- sdk: add runCommandInteractive for external interactive programs (3af5a3b)
- tui: add Background profiles screen to the interactive menu (3374889)
Features
- cli: return to the menu when a profile launched with
hvf runexits (a2a2fb0)
- cli: return to the menu when a profile launched with
Features
- tui: visible menu shortcuts and an inline / command bar (14b76fd)
Features
- tui: generalize scroll to menu, wizard, usage and brain screens (2351219)
Bug Fixes
- ci: install Bun in the release job before semantic-release runs (9007bde)
- claude: tag session hooks explicitly so any hook can be removed (2651803)
- hvf: arregla el intermitente de test_usage_codex_from_latest_session (d274d3b)
- hvf: CI de Linux — nombres de miembro del .tar y gh real en install (1b0010c)
- hvf: evita que una pantalla de Ink se cierre sola justo tras ctx.io.reset() (86f864d)
- hvf: install.sh usa gh para descargar la release (el repo es privado) (84cd872)
- hvf: path_without_real_gh oculta gh en TODAS sus ubicaciones del PATH (1dc5f3c)
- hvf: quitar el logotipo ASCII de la cabecera de la vista "Perfiles" (db70a3f)
- hvf: tolera miembros de .tar con o sin './' y gh real en el PATH de tests (e097f68)
- hvf: vista "Perfiles" de Ink — columna de cuenta sin desbordar y pantalla alternativa de verdad (588d3ca)
- tui: "Ver skills, comandos y plugins" abre su propia pantalla de Ink (9b14e4b)
- tui: catch AsyncScreen load() failures instead of crashing (8346c78)
- tui: CONTENT_CHROME_ROWS seguía calibrado para la cabecera de 4 filas (e2b9304)
- tui: hvf usage monta la pantalla alternativa antes de pedir la cuota (702281f)
- tui: keep the cursor visible when the content screen shrinks (2fa7208)
- tui: keep the source profile selected after rename conflicts (f18716c)
- tui: la cabecera y el pie nunca se encogen por debajo de su tamaño natural (56dd9e8)
- tui: preserve profile navigation and refresh state (02c74fc)
Features
- bridge: add the mailbox between profiles (phase B2) (e6187c8)
- bridge: nuevo plugin @hivefold/plugin-bridge (Fase B1) (4bb0e60)
- claude,codex: implementa registerMcpServer y runHeadless (Fase B1) (266d1d7)
- cli: hvf mcp serve|install|uninstall (Fase B1) (2508dbf)
- cli: hvf skill/command remove y hvf claude plugin remove (879ebbb)
- cli: say when aliases changed, and make reloading them exact (b1180b0)
- hvf: "volver al menú" al invocar list/usage/brain status directamente (415d623)
- hvf: el menú interactivo pasa a Ink en pantalla alternativa (06f0391)
- hvf: rediseño de UX del CLI — caja, menú agrupado, navegación con flechas (5a1c17c)
- hvf: vista "Cerebro" de Ink para
hvf brain status(3cd0310) - hvf: vista "Perfiles" de hvf list en Ink, pantalla completa (77190d7)
- hvf: vista "Perfiles" de Ink — cabecera con logotipo ASCII (2465a75)
- hvf: vista "Uso y cuota" de Ink para
hvf usage(06a8db2) - release: versiona hvf automáticamente con semantic-release (be384b7)
- sdk: extiende ProviderPlugin para la delegación headless de bridge (Fase B1) (047f99e)
- sdk: separa el cálculo de la barra de cuota de su pintado (b267678)
- tui: "Ver skills, comandos y plugins" navegable con scroll, detalle y acciones (fd883b5)
- tui: add navigable profile details and rename (da23901)
- tui: envuelve el menú y la invocación directa con runWizard (Etapa 4) (105db84)
- tui: envuelve remove/backups/plugin y mcp install|uninstall en su wizard (7be1674)
- tui: logotipo ASCII compacto en la cabecera de siempre (3648dd4)
- tui: mecanismo WizardController/WizardScreen/runWizard + Ctx.suspendTui (Etapa 4) (6e96673)
- tui: pantalla de bienvenida con el logotipo grande en el primer arranque (fa3e1b0)
- tui: run a single Ink app per interactive session (no more flicker) (44ead54)
- tui: single Ink app per interactive session (router) (e360824)
Primera release del binario de
hvfen TypeScript (fases A0–A4 dedocs/plan-hvf-typescript.md): monorepo con arquitectura de plugins, i18n (es/en), paridad completa de comandos con el antiguo script de Bash (conservado en la etiquetabash-final).install.shdescarga el binario de esta release según tu plataforma.