Skip to content

fix(store): title MAX dialogs by their partner's contact name - #859

Merged
leemour merged 2 commits into
mainfrom
fix/834a-dialog-titles
Oct 29, 2026
Merged

leemour merged 2 commits into
mainfrom
fix/834a-dialog-titles

Conversation

@leemour

@leemour leemour commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator

What

One-to-one MAX dialogs were stored with a null title (the login writes title: null and overwrote what chats list had saved), so max <profile> chats list 'title:Стас*' --offline found none.

After each login, maxRecord now fills every stored untitled dialog from its single stored member's contact name (the name contacts shows). This also backfills existing rows on the next login, so there is no separate migration. See nameDialogs in src/record.ts.

Scope

max-cli only. The store (upsertChat, roster.members) is cli-core's and is used unchanged; no cli-core change is needed.

A dialog whose partner is neither a contact nor a known chat member stays untitled until an online chats list (it asks CONTACT_INFO).

Tests

src/record.test.ts covers fill on login and re-fill after the title was reset to null. Fails without the fix. Full suite: 1592 passed, 7 skipped; typecheck clean; lint 0 errors.

Plan: cli-private plans/projects/2026-10-28-project-state-plan.md (TASK-834.a.v, PR WireCatLabs/cli-private#535)

🤖 Generated with Claude Code

@leemour
leemour force-pushed the fix/834a-dialog-titles branch from 64f0890 to eb386c3 Compare October 29, 2026 22:41
leemour and others added 2 commits October 29, 2026 23:46
The login saved every dialog with a null title and overwrote any title
chats list had stored, so `chats list 'title:Стас*' --offline` matched no
dialog. After each login, untitled stored dialogs now take the name of
their one stored member, which also backfills existing rows.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
… list

Main already moved max to cli-core 0.478.0 (#864), which superseded this
branch's 0.473.0 bump, its regenerated docs/commands.md and its changelog
line. What is left is the check that `messages list` marks the owner's
own MAX messages with sender_is_me: true and the partner's with false.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@leemour
leemour force-pushed the fix/834a-dialog-titles branch from eb386c3 to adc8367 Compare October 29, 2026 22:46
@leemour
leemour merged commit 22e9348 into main Oct 29, 2026
13 checks passed
@leemour leemour mentioned this pull request Oct 30, 2026
leemour added a commit that referenced this pull request Oct 30, 2026
Version 0.87.0 and the dated changelog section, so #859 reaches npm.
Only package.json, src/version.ts and CHANGELOG.md change. `pnpm
release:check` passes except the clean-tree check, which needs the
commit.

Approved by the owner 2026-10-30 (NEED-1904, A).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <[email protected]>
leemour added a commit that referenced this pull request Oct 30, 2026
…bet (#872)

Moves max to cli-core 0.484.0 (store version 38, cli-core #2175): chat
titles and contact names are matched ignoring case in any alphabet, via
folded copies written by the store.

- `nameDialogs` (#859) saves titles through `db.chats.saveChats`, which
fills `title_folded` in 0.484.0. max has no raw SQL on the store. A
write that skips the copy is emptied by a trigger and refilled on the
next open.
- cli-core 0.478.0 to 0.484.0 changelog: nothing else max must adapt to
(reactors, gcal tools line and MCP speedup do not touch max). cli-base
stays 0.65.0, inside cli-core's peer range.
- No generated files changed.
- CHANGELOG entry under «Не выпущено».

Testing: `pnpm test` 1596 passed, 7 skipped; typecheck, lint,
docs:check, parity:check, version:check, bot:generate:check ok.

Not merged, not released.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Claude Opus 5.5 <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant