basecamp / basecamp/openclaw-basecamp

Readings poller silently drops "Mention" and "Chat" entry types — chat mentions and Pings never reach agents

Open
#167 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
TypeScript
Stars
12
Forks
5
Avg merge
1d 16h
Merged PRs (30d)
2

Description

## Environment

- openclaw-basecamp @ main (c35120c)
- OpenClaw 2026.7.1-2, macOS arm64, Node 24
- Regular Basecamp 4 customer account, single service account

## Symptom

Campfire @mentions of the bot and Ping (DM) messages are never delivered to agents. The readings poll advances its cursor and marks the items read, so nothing retries and nothing is logged above debug level. To-dos, assignments, and comments work fine.

## Root cause

`GET /my/readings.json` labels @mention notifications as `type: "Mention"` and Ping/chat entries as `type: "Chat"`. Neither key exists in `READINGS_TYPE_MAP` (src/inbound/normalize.ts), so `normalizeRecordingType` returns undefined and `normalizeReadingsEvent` drops the entry as unknown kind. Cursor still advances (by design, to avoid re-polling), which makes the drop permanent and silent.

Observed live entries:

type = Mention | title = "@mentioned you: ..." | app_url = .../buckets//chats/@
type = Chat | title = "Chat" | app_url = .../buckets//chats/
type = Mention | title = "@mentioned you: ..." | app_url = .../circles/@

## Relation to prior reports

PR #88 (closed unmerged) found the "Chat" half of this plus two Ping delivery bugs (base64 readable_identifier decoding, circle 204 fallback). We applied that patch locally and it holds up. The "Mention" type is additional: it needs the underlying recordable inferred from app_url, since a Mention can point at a chat line, card, todo, message, or document.

## Fix we're running locally

1. PR #88 as-is (Chat mapping, base64 GID decode, Ping transcript fallback).
2. `type: "Mention"` handled by inferring recordable type from app_url (/chats/ → Chat::Line, /cards/ → Kanban::Card, /todos/ → Todo, /messages/ → Message, /documents/ → Document, else Comment), and setting `mentionsAgent: true` since the entry is by definition a mention of the account.

With both, campfire/message-board mentions and Pings deliver and agents reply. All 1172 existing tests pass. Happy to submit this as a PR if useful.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in src/inbound/normalize.ts at READINGS_TYPE_MAP, normalizeRecordingType, and normalizeReadingsEvent, then inspect the GET /my/readings.json handling and PR #88 changes. Verify Mention and Chat readings are normalized rather than dropped, Pings use the stated fallbacks, and run the existing 1172-test suite to confirm mentions and Pings reach agents.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, backend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.