Repository navigation
Releases: WireCatLabs/cli-memo
Releases · WireCatLabs/cli-memo
Release list
0.76.0
Added
- Project evidence includes stored meeting transcripts when
--sourceselects a meeting account,
its recorded profile orall. CLI and MCP return cited transcript cue references dated by the meeting
start. Superseded/deleted transcripts stay out; missing or pending indexes remain visible. This reads
existing indexed text and does not fetch recordings or confirm project membership. - Shared SDK update: pins Core 0.358.0 for transcript context reads, retaining Base 0.47.1.
The store schema and compatibility boundary are unchanged. Intervening messenger chat-membership
contract changes require no Memo adapter changes; shared consumer compatibility remains checked.
Fixed
- A failed timer run no longer keeps its error text in
last.json(privacy). That text can name a folder, a
sender or a subject, and it reached the file, the "scheduled sync failing" line andmemo auto status. They now
keep the error code, its reason id and the kind of source (notes: configuration_error (folder.unbound)); the
full message stays on stderr and in the timer's journal, whichmemo auto statusnames (log). - A failing source in
memo sync --jsonnames its reason id (failed[].reason_id, additive), the fixed id
thatlast.jsonandmemo auto statusnow show beside the error code, as a run that stopped already did.
0.75.0
Added
memo projects evidencenames the other projects, tags and topics its texts mention (mentions, and an
"also names" line in the text): words found in the excerpts and their context, each cited, never membership. A
mail hit now shows the emails before and after it in its thread as context.
0.74.0
Added
memo projects evidenceindexes new mail and imported documents for search before it reads, so a store
just synced no longer misses them;--no-catch-up(MCPcatch_up: false) reads the index as it is. The
project's key is searched too, and--alias(MCPalias) adds more names. The text output says when the index
could not be brought up to date.--since-timealso takes a start date (2026-09-01); a continued run keeps its end. Each message hit shows the messages next to it in its
chat as context (--before-n,--after-n, default 2, MCPbefore_n/after_n), never as more hits.
0.73.0
Changed — may break callers
npm install -ginstalls the agent skill only when asked. It wrote the skill into~/.claude/skillsand
~/.agents/skillsby default, and npm hides a lifecycle script's output, so nobody was told. Now
MEMO_INSTALL_AGENT=all(or an agent's name) installs it at install time; otherwise run
memo skill install --for all.memo commandswithout--jsonprints the commands as text, by section (Read, Write, Organise, Automate,
Set up), one line each with(writes)on a command that changes something, instead of the JSON document. A
path lists one group:memo commands mail rules.memo commands --jsonis unchanged, contract 4.- A bare
memo, or a group without its command (memo tags), exits 2 instead of 1, as the other WireCat tools
do: it prints the first screen or the group's help, and a missing command is a usage mistake. - Adopt Core 0.348.0 and Base 0.47.0, which move together: a next step in
--jsonoutput may carryline, the
whole command to type. Core 0.348.0 changes no store schema from the 0.347.0 tg and max pin. An SDK consumer that
pins Core or Base beside memo moves with them.
Added
memo projects evidence <project> --source <accounts|all>and MCPproject_evidence: cited references about a
project from stored messages, mail and imported notes folders. An existing project brings its name and aliases;
each name,--context-queryand--contactis its own literal search, and the hits are joined, each with the
searches that found it.--since-timetakes days back (default60d). An item found only through a person's
name is markedperson-only. A source that failed or has no reader yet (your own notes, meetings) is listed,
never read as empty, and so is one whose new text still waits for the search index.--limitand--max-pages
bound a run, and--cursorcontinues a stopped one with the same window. Nothing is written.
Fixed
--helpworks on the 13 commands that take a query:notes list,folders list,tags list,tasks list,
tasks agenda,projects meetings list,relationships list,vocabulary list,memories list,facts list,
meetings actions list,actions listandagents logexited 2 on--helpas an unknown option (Core 0.347.0). A test now runs--help
on every command.- A search that skips meaning for a missing model names the tools that download it (tg, max or wa), from Core
itself; memo no longer rewrites atg models text downloadhint it was handed. memo commands | headno longer crashes with an unhandledEPIPEwhen the reader stops early; memo ignores
the closed pipe, as the tools built on Core do.
0.72.0
Changed — may break callers
memo --helpand a barememoshow a short first screen instead of every command: what memo is for, eight
things it does, the other WireCat tools, and where to go next (memo commands,memo guide,memo help options,
memo skill show). A script that read a command or an option from the root help readsmemo --help-all, which
prints the old help, ormemo help options.- A command's
--helpends with Returns, Next usually and Example in place of its Examples block, worked out
from the command's definition.docs/commands.mdshows the same lines. - A list command refuses an unknown
--optionbefore it reads anything, with commander's message
(unknown option '--project').memo tasks list --project HRBused to answer with a pointer toproject:HRB.
Added
memo guide [name]: scenarios, the commands for a common task in order and why each, with--jsonfor agents.
person-briefgathers one person across tg, MAX, mail, notes, meetings and Drive before a call;
decision-trailfinds what was decided about a topic across every source;start-the-day,prepare-meetingand
set-upstay within memo. Every memo step is checked against the command tree in CI.
Security
MEMO_READ_ONLY=1refuses every change withpermission_error(exit 5) before the command runs: writes to
the store and your files, mail trash and restore, the timer, the skill files,upgradeandask --allow-remote.
Reads andmemo syncstill run, and so dotasks planandtasks link, which cli-core marks as safe for a
scheduled agent.memo mcpleaves its writing tools out under the lock.
0.71.0
Added
- MCP tools
meeting_actions_add,meeting_actions_showandmeeting_actions_liststage and inspect
cited meeting follow-ups for owner review. Exact retries reuse their batch; no confirmation tool is exposed. memo projects contextand MCPproject_contextbring pending key documents, relationships, facts and
meeting findings together, alongside open numbered tasks. Bounded previews report continuation and source scope.
0.70.0
Changed — may break callers
memo sync --ignoreleaves a file or folder alone for that run. Notes already imported from it stay in Memo;
before, the run removed them and the next run imported them again.notes.ignorein the config still removes them.
Fixed
- Project context, key-document commands and search key-document ordering accept an exact project name or alias,
as meeting searches do. Ambiguous names list candidates; numeric IDs,project:<id>and keys still work. memo syncreports the files it could not read on every run, also in the text report. Each folder line counts
them (1 not read) and a line names each file and why, such as a file over 50 MiB or an.xls. Before, only the
first run's--jsonlisted them, and the count of notes included them.- A notes folder that is gone is a normal error,
not_foundwith the way to fix it, not "this is a bug (ENOENT)".
memo doctornames the same fix in place of a barememo folders. memo notes shownames a link that leads nowhere by its text, in place of an empty entry after a comma.- The hint for search by meaning gives a command that works without installing tg:
npx -y @wirecat/tg-cli local models text download e5-small. - The docs:
.docfiles are read and need nothing extra (PDF and Word readers come with Memo); install leads with
memo skill install --for alland explains npm 12's "install scripts blocked"; Himalaya 2.x and its config file;
the cache folder andMEMO_AUTO; plainmemo tasks listleaves out project tasks; tg and max commands show a
profile; the README example is real output.
0.69.0
Added
- Prepare a cited packet of stored series history with
memo meetings prepareor the MCP toolmeeting_prepare.
It includes linked people and projects, accepted facts, owner notes and source tasks. You can explicitly add
a stored messenger profile or mailbox and a literal word query. Memo reports missing history, bounded output
and continuation cursors; it does not contact a provider or verify the next meeting time.
Changed — may break callers
- Commands with no text view of their own print plain lines in place of JSON when
--jsonis not given: one line
per record for a list (organizations list,projects list,reminders list,tasks list…) andfield: value
lines for one record (projects add,tasks add…). A script that read that JSON gets the same data, in the shared
envelope, with--json.
Fixed
- A failed mail login no longer holds
memo syncfor a minute. A read that fails is tried again after 15 s, and
a refused login or keyring was too, twice per account; with two accounts that took 60 s. It now fails at once.
A missing himalaya says it is not installed or not on PATH, notfailed (ENOENT): no error text. - The README and the installation page give the sizes: the search model is about 135 MB and the install about
250 MB. The Windows steps say Windows is not tested yet.
0.68.0
Fixed
- Tasks and reminders work in a store that holds only notes. A notes folder is an account:
--accountand
--sourcetake it asnotes:<number>(thefolder_idsearch gives) or as thefolder:<id>Memo's own errors
show, and--source notesnames your folder when you have one. Every spelling was refused before, so a task
could not be made from a note and a reminder needed a mail account.memo tasks add document:<id>takes the
file's folder as its account without--account. memo tasks listandmemo reminders listwithout--sourceread every stored account and name them in
meta.accounts, as a search does; they refused before.memo tasks agendastill reads one account; the README
said it covered every account.- A reminder for a task in a project is refused with the reason: such a task belongs to no account. The message
said the task was not open. A read given--account provider:accountis told to use--sourcewith that value.
0.67.0
Fixed
- A store with notes only gets a plain answer from
tasksandreminders.tasks list,tasks agenda,
reminders listandreminders polloffered afolder:<id>value that then failed, andnotes:1failed with
"the account is not in the local store". They now list only the accounts that can hold tasks, and with none say
that a task from a message, email or note, and a reminder, need a tg, max or mail account, and that a project's
tasks need none. memo search noteslabels a note found by its title as a plain hit, not "(by meaning)".memo tasks list --project SYNTsays to writememo tasks list project:SYNT; it failed with a bare syntax error.memo tasks add --projectwith an unknown project namesmemo projects add; it pointed to avocabulary resolvecommand that does not exist.- The README names
vocabulary showandvocabulary check, and the MCP toolvocabulary_check; it named
resolveandpreflight, which do not exist. It links memo's own pages on wirecat.dev, says that search by
meaning needs tg-cli or max-cli to download the model, and that macOS and Windows are not tested yet.
Added
search meetingsandmeetings passage, with MCPsearch_meetingsandmeeting_passage, read
archived meeting evidence through shared Core readers. Explicit source selection, project/label
aliases, dates and scoped cursors keep searches bounded; MCP also has label, participant, event and
series selectors. Passages
include fingerprints for reviewed findings; unknown speakers and archive coverage stay explicit.
search allcontinues to combine messages, mail and notes.