Skip to content

feat(adapter): maxAdapter, cli-messaging's port over a connected MaxClient - #259

Merged
leemour merged 1 commit into
mainfrom
feat/max-adapter
Sep 30, 2026
Merged

leemour merged 1 commit into
mainfrom
feat/max-adapter

Conversation

@leemour

@leemour leemour commented Sep 30, 2026

Copy link
Copy Markdown
Owner

T6 item 4 (plan docs_ai/plans/2026-09-30-max-onto-services.md, corrected as built).

  • src/adapter/max-adapter.ts: MessengerCore + MessageEditing, MessagePins, MessageReactions, ReadState over a connected MaxClient built without its guard (the shared services guard). Other groups join with their moves.
  • Send id: MaxClient.newSendId() (timestamp cid, as the official client) through cli-messaging 0.64.0's newSendId port hook (RISK-74); a non-safe-integer id is refused before sending.
  • MaxClient.messages.send gains uploads (bytes already read) and markup (already parsed, MAX names).
  • Attachments: MAX's fileId/videoId/event/userIds/poll → providerRef.
  • No command uses the adapter yet (that is items 5–6), so no behaviour changes.

Tests: src/adapter/max-adapter.test.ts against the mock MAX (frames sent, answers equal to MaxClient's mapped). Checked: lint, typecheck, 1176 tests, test:matrix, docs:check.

🤖 Generated with Claude Code

…lient

T6 item 4. MessengerCore plus MessageEditing, MessagePins,
MessageReactions and ReadState, over a MaxClient built without its send
guard: the shared services guard each write. Messages and attachments map
to the shared shapes; MAX's file and video ids, control events and polls go
under providerRef.

MaxClient gains newSendId() (its timestamp cid, as the official client
sends) and two send options the shared services need: uploads already read,
and markup already parsed, in MAX's names. cli-messaging 0.64.0 for the
port's newSendId. A send id that is not a safe integer is refused before
anything is sent.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@leemour
leemour merged commit 2209d01 into main Sep 30, 2026
4 checks passed
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