Repository navigation
0.3.5 fixes a bug where agent-to-agent handoffs could be reported as declined even though the receiver processed them. It also adds email reply threading and contact names in Google Messages group chats.
Request lifecycle
request__closeis now outbound-only, andrequest__close_allis removed. Closing an inbound request used to auto-sendDeclined by agent.An agent cleaning up its ledger after processing a notification would tell the sender the request failed. That path is gone.- Declining a query is done by answering. Rejections only come from infrastructure: ACL denial, dead path, owner decline, bounce. A rejection now always means the message did not land.
- The receiver's ledger records whether an inbound item is a query or a notification. Notifications are recorded closed at delivery, since no reply is owed. Only queries stay open waiting for an answer.
- Owner denials of held pushes reach the sender. The hold notice no longer marks the sender's row rejected, so a denial within the hold window is delivered instead of dropped.
email__sendaccepts areplyTomessage id. Replies carry the right threading headers and land in the recipient's existing thread.
Google Messages
- Group messages show contact names instead of raw phone numbers.
- Hardening. Connection and watch fixes from an audit pass. The protocol client is consumed from npm again. The extension's tests run in the main suite.
Fixes
- Pushes held for first-contact approval now have a 7-day TTL, matching the approval window they wait on.
- The server bundle build fails if a dependency resolves to a local path.
- extension-schema 0.1.1 fixes type resolution for TypeScript consumers.
Upgrading
One migration, run with the server stopped, before deploying:
pnpm exec tsx scripts/migrations/0.3.4-to-0.3.5/1-inbound-request-kind.ts <CAST_AGENTS_DIR> --applyDry-run first by omitting --apply. Each modified agent.db is backed up beside itself. The script is idempotent. The migration is required: an un-migrated database fails to read inbound requests on 0.3.5. Historical fire-and-forget entries are backfilled as queries (the original kind was never stored), which affects history display only.
Then rebuild the server bundle (pnpm bundle --outdir <dir>, or pnpm install && pnpm build for source installs). The agent container image is untouched.