Security model: plainer prose, effects instead of internal names
Cuts the page's description of itself, splits long sentences, puts the
tunnel's routes in a table, and names what each rule does rather than the
function that enforces it. Points at SECURITY.md, not CLAUDE.md.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Drop the leading H1 from every page; GitHub already shows the page name
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Say what we mean: spoofed caller id, canned responses in tests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keryx the service, Lyra the assistant: the wiki follows the rename
Every page says Keryx for the service and the assistant (Lyra by default) for the voice;
links point at wak31415/keryx and src/keryx; Restarting-Jarvis is Restarting-Keryx.
The wake word is still "hey jarvis", the pretrained model's name. Troubleshooting
covers serve refusing until `keryx migrate` has run.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: plugins, custom tools, and what landed on main since the last edit
New pages: Custom Tools (writing and checking your own voice tools) and Sharing Custom
Tools (a suggested convention for publishing them; there is no registry). The two worked
examples are rewritten as plugins. Every other page is checked against main: plugins in
place of the retired settings, jarvis plugins / jarvis tools, CLAUDE_CONFIG_DIR, a failed
restart that rings, TRANSCRIPTION_LANGUAGE and CLOCK_FORMAT.
docs: rulings live in CLAUDE.md and SECURITY.md, not a design spec
The spec left the repository; every page that cited it now names the section
of CLAUDE.md or SECURITY.md that holds the same ruling.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
docs: Security Model puts the secrets and the PIN in ~/.config/jarvis
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
docs: the security model has three levels of trust, and reads come before the PIN
Summarises SECURITY.md rather than restating it, and drops the wake-word
section: that channel is not on main.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
docs: before the PIN the phone gets nothing, and wrong PINs count across calls
Security Model is one page again, built from two changes that landed
together: a phone call gets nothing private, has nothing announced into it
and leaves nothing behind until the PIN is in (five tools excepted), and wrong
PINs are counted across calls in pin-failures.json, with the lock, its price
and how to clear it. It also says what the wake word's missing PIN means, that
signature validation cannot be skipped behind a tunnel, and that at most
MAX_PHONE_SESSIONS calls run at once.
Data and Retention lists pin-failures.json and the approval socket, and says a
spoken PIN is redacted as it is written and that an unauthorized call's
transcript is never read back. Troubleshooting gains the lockout, the busy
line, the refused debug switch and a call that opens without its news.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs: wiki links that resolve from the bare /wiki URL, and corrections by issue
Five links were relative markdown, which GitHub resolves against the current
URL and so 404s from /wiki itself. They are [[Title|Page-Name]] links now.
The wiki is restricted to collaborators, so Home asks for corrections as an
issue rather than a wiki edit.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
docs: the manual, moved out of the README
The README was 967 lines. The content was good, which was the problem: a front
door that takes twenty minutes to read is not a front door. It keeps what a
reader needs before they decide to install anything — what it is, the
architecture, setup, and how to write your own tools — and everything longer than
that lives here, in full rather than in summary.
Fourteen pages in three groups, which is also how the sidebar reads, grouped by
when you need them rather than by what subsystem they belong to: install and
operate it, decide whether to deploy it, understand one thing deeply.
Two things this wiki deliberately is not. It is not the rulings of record — the
design spec in the repository is, because a wiki is a separate git repository and
none of it arrives with a `git clone`, and the decisions that look like bugs until
you know them have to travel with the code. And it is not a settings reference:
`.env.example` and spec §3.4 already hold that, and a third copy is a third thing
to drift.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JgnEwxB2L2ZqzTgq476MAt