0.2.2
Security hardening for the local daemon, a simpler rule for which environment a command runs in, web setup for chat bots, and a lighter, safer install.
Install
curl -fsSL https://github.com/ElanvitalAI/elanous/releases/latest/download/install.sh | bash # one line
npm had not been updated for 0.2.2; the one-line installer above is the way to install this release.
Security
- The daemon no longer hands out its admin token over HTTP.
connect-inforeturns no token; a new device pastes its token once. - Every
/v1route now requires authentication by default. Previously a few read routes (including the notes vault search) and several settings/control writes could be reached without a token. - Telegram and Discord bot tokens are stored once, in the secrets store, and referenced from config — no more plaintext tokens in
config.json. - Isolated (test) environments no longer receive copies of production secrets: plaintext secret fields are stripped, outbound credentials (chat bot tokens, web-push keys) are left out of the copied secrets file, and copies are written
0600. elanous doctorreports configuration and secret files that other users could read, andelanous doctor --fix --yestightens them (the folder to700, files lose group/other bits; nothing is read).
Changes
- Which environment am I in? The rule is now: an explicit root (
--test,--config-dir,ELANOUS_STATE_DIR) wins; otherwise the installed copy is production and any source checkout is an isolated environment. The old "leader tree" setting is gone.elanous whereshows the answer and why. - Web setup — connect Telegram and Discord bots from the web app (token check, secrets store, allowed users), pick the Obsidian vault and skills, and choose the answer depth. A device that is not yet connected now says so once instead of failing silently.
- Install and update — installing or updating from a source checkout builds the web app first and stops if the build fails, so the installed web app always matches the code.
- Test daemons never take production ports. A test daemon started without
--portleases a port from the test band; production ports are never chosen. - Resource coordinator (preview) —
elanous control serveruns a small coordinator that answers "where is this resource running?" (elanous resources list|where), bound to loopback or a tailnet address, with per-machine scoped tokens. - Codex accounts — the shared
defaultaccount is used only up to 60% by default (a stricter global threshold still wins), and rotation moves to the next account with room. - Intake — a daily intake pipeline collects items (videos, saved Telegram messages, trending GitHub repositories), queues them with a daily cap, and absorbs them into notes.
- Many fixes found by installing on bare Ubuntu 26.04 and macOS machines.
Notes
- If you set
dashboard.uiModeor used--rich, they still load without error; the terminal UI is being simplified to a single essential layout in upcoming releases.