Releases: NTBooks/Fanad
Releases · NTBooks/Fanad
Release list
v0.5.3: local speed-dial accounts (family without Telegram)
Added
- Local speed-dial accounts, for family without Telegram: a local account is a household name with no
Telegram behind it, whose entire surface is its no-login/r/remote-control link. It is never
vouched, can't be claimed by any Telegram sender (even one with the same @username), and is
permanently speed-dial-only. Because the link is the account, a local's share link can be minted
never-expiring (Telegram guest links still always expire). The Access tab gains a Telegram/Local
selector, local rows show a house badge with link-first copy, and the printable sheet gives
open-your-link instructions. Name collisions with existing pads, vouches, and the allowlist are
refused both ways.
v0.5.2: task /view card, speed-dial toggle slots
Added
- Task detail view:
/view N(or the per-row 👁/view_N) opens a task's full detail (your verbatim
text, a fuller read, and the steps checklist) and lets you edit its steps without starting it, on
Telegram, Slack, and web. This brings the chat surfaces to parity with the web Kanban editor. - Speed-dial on/off toggle slots: give a pad slot a second (OFF) command and the number becomes a
toggle that alternates the device, kept in sync across the Telegram digit, the web pad, and the
no-login link. Each remote-page button now washes a color fill across itself on press, which also
acts as a brief re-tap lock so a quick double-tap can't fire twice.
Changed
- The speed-dial pad editor was decluttered, its Test button now fires the command typed in the row
(not only the saved one), and the no-login handout page names the bot. - The remote-control page's "Powered by Fanad" footer links to fanad.org.
Fixed
- Bare action verbs no longer hijack a task statement: "start the doc" or "done the dishes" files a
task, while the slash form ("/done clean the garage") and a position ("start 3") still act on one. - Renamed the web remote/link panel's CSS class (
sd-sharetosd-remote) so ad blockers stop
hiding it. - Cheat-sheet Speed Dial box no longer renders mushed together.
v0.5.1: shareable no-login remote-control links
Added
- Shareable no-login "remote control" links: the host can mint a link (
/r/<token>) that exposes just
one guest's speed-dial pad (its 0-9 buttons) as a responsive page, hand it to someone with no Telegram
account or login, and revoke it any time. Fail-closed by design: minting and use both require web login
(auth modesimple), only the predefined pad slots fire, requests are per-token rate limited and
noindex/no-store, and the share token authenticates nothing on the API. Manage them in Settings, Access:
1 / 7 / 30-day expiry, an optional label, and an active-link list with revoke.
v0.5.0: HA notebook selector, speed-dial web, npx connect
Added
- Home Assistant notebook selector: the read endpoints accept
?notebook=<id|main>, so a read-only
token can pull a specific owned notebook's data without switching the account's current notebook.
A Home Assistant dashboard can now offer a notebook picker. Reads only; unknown or foreign ids fall
back safely to the account's own current space. - Speed dial in the web sidebar: a pad-holder's 0-9 pad now appears at the top of the wide-screen left
hint bar, and each row sends "dial N". A bare "0" is the reserved "show my pad" key.
Changed
- Zero-checkout CLI connect: the connect line handed back with a token is now
npx github:NTBooks/Fanad <server> <token>, so the CLI client runs from a fresh terminal (Node 24+)
with nothing pre-installed. npx fetches, caches, and builds it on first run. - A full-account pad-holder now sees their speed-dial pad alongside their normal first reply, rather
than the pad replacing that first message.
Fixed
- A locked-down (speed-dial-only) account is now denied
vouchin the central access gate, so it
cannot grow the whitelist beyond its own lockdown.
v0.4.0: Self-service access tokens
Added
- Self-service access token: the chat
tokencommand (alsocreate/new/mint/get token)
mints a read-only, never-expiring claim token scoped to your own account, behind a yes/no confirm
with a warning. It is the credential a Home Assistant dashboard needs to read your Fanad data, so
any authorized user can now get one without the owner-only web panel. Shown once. - Web Settings, Security: an "Expires" dropdown (30 / 90 / 365 days / Never) when minting a token,
exposing the never-expiring option the backend already supported.
v0.3.0: Medication and Speed Dial
Added
- Medication module (opt-in): a calm adherence logger modeled on the Diet module. Log
doses, keep per-medication metrics (hidden from the daily tally), set up templates and daily
reminders, and review it all in a web view. A logger, not an advisor. - Speed dial (owner-curated Home Assistant pads): program another Telegram account's 0-9
pad, mapping each slot to a Home Assistant command you authored. They send a bare digit (or
tap a button) and it fires only that command. An optional "speed-dial only" lock restricts an
account to its pad, with no tasks or chat. - First-run reaction demo in the web UI: a self-playing reel that teaches the "command pad, not
a chatbot" model, with a replay button. - Browser (non-Telegram) demo signup: the signup link opens the create-account panel directly.
- The docs site (brochure, manual, cheatsheet, how-tos) is now published to GitHub Pages.
Changed
- The web shortcut legend nests sub-shortcuts under their parent for a cleaner map.
Fixed
- The reaction-demo reel runs slower and pauses on hover or focus.
- Stale quick-reply chips are cleared on a contentless acknowledgement.
v0.2.1 — HA add-on auto-pairing
Ringing the house works with no token paste when Fanad runs as a Home Assistant App — it reaches HA core through the Supervisor proxy. A URL/token set in Settings still overrides it. See CHANGELOG.md.
v0.2.0 — first public release
First public release of Fanad — a local-first, local-LLM personal scratchpad for tasks, notes, lists, timers, and light journaling. Capture by texting a bot (Telegram/Slack) or the web UI; a local model (LM Studio/Ollama) parses and ranks your own data, never inventing.
Highlights
- Always-on web chat + rich web UI; Telegram (long-polling) and Slack (Socket Mode) bots at parity.
- SQLite storage via native
node:sqlite; secrets AES-256-GCM encrypted at rest; cloud LLMs hard-gated off by default; no telemetry. - Read-only
GET /api/ha/summaryendpoint + read-only tokens for Home Assistant dashboards. - Install with
npx github:NTBooks/Fanador the Windows installer. MIT licensed. 1,100+ tests, CI on every push.
See CHANGELOG.md for the full list.