From be19c2687dc85d244797d4960ea552777c23259d Mon Sep 17 00:00:00 2001 From: leemour Date: Sat, 31 Oct 2026 03:49:34 +0100 Subject: [PATCH 1/2] chore(deps): cli-core 0.491.0, notes found by part of a word in any case Moves max from cli-core 0.484.0 to 0.491.0. Store version 40 (0.490.0) adds a trigram index, so contacts list notes: finds part of a word in any letter case and refuses queries shorter than three characters. A CLI on an older cli-core does not write trigrams into a store already at version 40, so every CLI moves together. 0.491.0 only changes mail sync, which max does not use. No code changes were needed: typecheck, lint and the full suite pass unchanged. Updates people.md and the max-cli skill for the new notes: behaviour, and adds a correction under Unreleased: the 0.88.0 entry for #873 named the contact card fields first_name, last_name, user_id, but #874 renamed them firstName, lastName, userId. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 19 +++++++++++++++++++ docs/people.md | 3 +++ package.json | 2 +- pnpm-lock.yaml | 10 +++++----- skills/max-cli/SKILL.md | 3 ++- 5 files changed, 30 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b0604d1..75d8f991 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,25 @@ номера версий по [семантике](https://semver.org/lang/ru/), то есть до `1.0.0` интерфейс команд ещё может меняться. +## Unreleased + +### Что нового + +- **`contacts list notes:` находит часть слова в любом регистре, в том числе кириллицу (cli-core 0.490.0).** Раньше + `notes:КВАРТ` не находил заметку со словом «квартира»: сравнение без учёта регистра работало только для латиницы, а поиск + читал все заметки. Теперь заметки ищутся по индексу из трёх символов и отвечают за миллисекунды. Что учесть: запрос + короче трёх символов отклоняется с ошибкой «search needs at least three characters» (пустой запрос по-прежнему + ничего не отбирает). Хранилище обновится до версии 40 при первом открытии; заметки, сохранённые раньше, получают + индекс порциями при `search notes` или `store migrate`, а пока их ищет прежний способ. Сборка другой программы + WireCat со старым cli-core не пишет индекс в уже обновлённое хранилище, поэтому обновите все программы WireCat сразу. + +### Исправлено + +- **Поправка к 0.88.0: поля карточки контакта называются `firstName`, `lastName` и `userId`.** В записи 0.88.0 про + вложение `CONTACT` они названы `first_name`, `last_name` и `user_id`; #874 переименовал их, а запись осталась прежней. +- **max требует cli-core 0.491.0** (cli-base остаётся 0.65.0). В 0.491.0 исправлена только почтовая синхронизация, + max её не использует. + ## 0.88.0 — 31.10.2026 ### Что нового diff --git a/docs/people.md b/docs/people.md index a604bb1b..a76856dc 100644 --- a/docs/people.md +++ b/docs/people.md @@ -230,6 +230,9 @@ max personal contacts show "Борис Пример" --with-notes max personal contacts list notes:квартира # люди, в чьих заметках есть этот текст ``` +Поиск `notes:` находит часть слова в любом регистре, в том числе кириллицу: `notes:КВАРТ` найдёт «квартира». +Запрос короче трёх символов отклоняется с ошибкой «search needs at least three characters». + Псевдонимы и заметки хранятся в локальной копии и никогда не уходят в MAX. Псевдоним действует только в аккаунте, с которым вы работаете; заметка о человеке видна в каждом профиле входа `max` на этом компьютере, где этот человек встречается. `contacts rename` меняет имя в адресной книге MAX — diff --git a/package.json b/package.json index 18b18d44..ba4e837b 100644 --- a/package.json +++ b/package.json @@ -107,7 +107,7 @@ "@msgpack/msgpack": "3.1.3", "@valibot/to-json-schema": "1.8.0", "@wirecat/cli-base": "0.65.0", - "@wirecat/cli-core": "0.484.0", + "@wirecat/cli-core": "0.491.0", "commander": "15.0.0", "lossless-json": "4.3.3", "ogg-opus-decoder": "1.7.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c6b8ce8a..aa4cde66 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,8 +25,8 @@ importers: specifier: 0.65.0 version: 0.65.0(commander@15.0.0)(esbuild@0.28.2)(typescript@7.0.2)(vitest@5.0.5) '@wirecat/cli-core': - specifier: 0.484.0 - version: 0.484.0(@napi-rs/canvas@1.0.13)(@wirecat/cli-base@0.65.0(commander@15.0.0)(esbuild@0.28.2)(typescript@7.0.2)(vitest@5.0.5))(cac@6.7.14)(commander@15.0.0)(typescript@7.0.2)(zod@4.6.7) + specifier: 0.491.0 + version: 0.491.0(@napi-rs/canvas@1.0.13)(@wirecat/cli-base@0.65.0(commander@15.0.0)(esbuild@0.28.2)(typescript@7.0.2)(vitest@5.0.5))(cac@6.7.14)(commander@15.0.0)(typescript@7.0.2)(zod@4.6.7) commander: specifier: 15.0.0 version: 15.0.0 @@ -1354,8 +1354,8 @@ packages: '@wirecat/cli-core-sqlite@1.1.0': resolution: {integrity: sha512-GpGlh/dAIX/nblBYCdT6DfWSLFxav9mxxeELQAfEuw+QZdT9unKxbi5xa02s/s4JS1P7n0PQx2sCABj4FlMRNw==} - '@wirecat/cli-core@0.484.0': - resolution: {integrity: sha512-AWZ1jul5YGimujBWAAf7Iy+vr7oZgoNKdAguP6vjtsh391rN/f/pg9+KKJNJr+5iQ9TkYoZF1F69qbhznXgErw==} + '@wirecat/cli-core@0.491.0': + resolution: {integrity: sha512-6YfDW0olrzGruDEItOMa2th/IzljRIqKqZtXN/CZp1i3S06z9d4zup6hwqf6uPGOrYreR64pTtYBthd1Dwniiw==} engines: {node: ^22.16.0 || >=24} hasBin: true peerDependencies: @@ -3704,7 +3704,7 @@ snapshots: '@wirecat/cli-core-sqlite@1.1.0': {} - '@wirecat/cli-core@0.484.0(@napi-rs/canvas@1.0.13)(@wirecat/cli-base@0.65.0(commander@15.0.0)(esbuild@0.28.2)(typescript@7.0.2)(vitest@5.0.5))(cac@6.7.14)(commander@15.0.0)(typescript@7.0.2)(zod@4.6.7)': + '@wirecat/cli-core@0.491.0(@napi-rs/canvas@1.0.13)(@wirecat/cli-base@0.65.0(commander@15.0.0)(esbuild@0.28.2)(typescript@7.0.2)(vitest@5.0.5))(cac@6.7.14)(commander@15.0.0)(typescript@7.0.2)(zod@4.6.7)': dependencies: '@anthropic-ai/sdk': 1.3.0(zod@4.6.7) '@bomb.sh/tab': 0.0.22(cac@6.7.14)(commander@15.0.0) diff --git a/skills/max-cli/SKILL.md b/skills/max-cli/SKILL.md index 3370a8f0..d2f883d7 100644 --- a/skills/max-cli/SKILL.md +++ b/skills/max-cli/SKILL.md @@ -176,7 +176,8 @@ remove|admins|update|link reset|requests accept|requests decline` видят д [поиск по темам](https://github.com/WireCatLabs/max-cli/blob/main/docs/topic-search.md) (разговоры по смыслу), [язык запросов](https://github.com/WireCatLabs/max-cli/blob/main/docs/query-language.md). 5a. **Substring-поиску названий нужны три символа:** `title:` у chats list. Запрос `chats list` отвечает только из - локальной копии — с `--offline`; `contacts list name:`/`notes:` отказывают, пока в копии нет контактов. Строгие message + локальной копии — с `--offline`; `contacts list name:`/`notes:` отказывают, пока в копии нет контактов. `notes:` ищет часть слова в любом регистре (в том числе по-русски) и + тоже отказывает на запросе короче трёх символов: «search needs at least three characters». Строгие message terms могут быть короче; не заменяйте strict zero hits fuzzy discovery автоматически. 5b. **`max personal store export` выгружает только скачанное и прочитанное** и в MAX не ходит. Какие куски From 55c7ea6c55f83e4b9781335ba51d9231200961f0 Mon Sep 17 00:00:00 2001 From: leemour Date: Sat, 31 Oct 2026 03:54:20 +0100 Subject: [PATCH 2/2] docs(changelog): use the repo's unreleased heading Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 75d8f991..683c3e3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ номера версий по [семантике](https://semver.org/lang/ru/), то есть до `1.0.0` интерфейс команд ещё может меняться. -## Unreleased +## Не выпущено ### Что нового