Commit Graph

3268 Commits

Author SHA1 Message Date
Peter Steinberger
11a373685b feat(providers): normalize location parsing 2026-01-06 06:31:09 +01:00
Nacho Iacovino
6297fa9d9a feat(telegram): parse location and venue messages
- Add TelegramLocation, TelegramVenue, and TelegramMessageWithLocation types
- Add formatLocationMessage() to convert location/venue shares to text
- Add extractLocationData() for structured location access in ctxPayload
- Handle both raw location pins and venue shares (places with names)
- Include location in reply-to context for quoted messages

Location messages now appear as:
- [Location: lat, lon ±accuracy] for raw pins
- [Venue: Name - Address (lat, lon)] for places

ctxPayload includes LocationLat, LocationLon, LocationAccuracy,
VenueName, and VenueAddress fields for programmatic access.
2026-01-06 06:31:09 +01:00
Peter Steinberger
6d09280bdc templates: Add memory maintenance during heartbeats
New section explaining how to periodically review daily memory files
and update MEMORY.md with distilled learnings. Like a human reviewing
their journal and updating their mental model.
2026-01-06 05:21:09 +00:00
Iamadig
d9bae71f39 nano-banana: emit MEDIA token for generated images (#271) 2026-01-05 23:19:50 -06:00
Peter Steinberger
6b8866ffd7 templates: Add MEMORY.md long-term memory concept
- Updated session start to include MEMORY.md loading for main sessions
- Added 🧠 MEMORY.md section explaining:
  - Only load in main sessions (direct with human), not shared contexts
  - Security boundary: personal context shouldn't leak to strangers
  - Can freely read/edit/update in main sessions
  - Write significant events, thoughts, decisions, opinions
  - Curated memory vs raw daily logs

This gives new agents proper long-term memory that's secure and personal.
2026-01-06 05:19:24 +00:00
Shadow
2bc75f8c50 Auto-reply: fix typing stop race (#270) 2026-01-05 22:57:04 -06:00
Peter Steinberger
68a01a105d fix: clean up poll merge 2026-01-06 04:51:05 +00:00
Peter Steinberger
3a1b077c3f feat: unify poll support
Co-authored-by: DBH <5251425+dbhurley@users.noreply.github.com>
2026-01-06 04:51:05 +00:00
Sreekaran Srinath
1d5e80986f fix(ui): add anyOf/oneOf support in config form (#268)
* fix(ui): add anyOf/oneOf support in config form

- Handle literal unions as dropdowns with type preservation
- Handle primitive unions (string|number, boolean|string) as text inputs
- Unwrap single-variant optional types
- Fix enum handler to preserve types via index-based values
- Update normalizeUnion to support primitive unions in schema analysis
- Exclude allOf from union normalization (stays unsupported)

Fields like Thinking Default, Allow From, Memory now render properly
instead of showing 'unsupported schema node' errors.

* UI: fix enum placeholder collision

* Docs: update changelog for PR #268

---------

Co-authored-by: Shadow <hi@shadowing.dev>
2026-01-05 22:50:07 -06:00
Asleep
8240ed1a04 Format messages so they work with Gemini API (#266)
* fix: Gemini stops working after one message in a session

* fix: small issue in test file

* test: cover google role-merge behavior

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 04:45:40 +00:00
DBH
03e8e191ca feat: Add WhatsApp poll support (#248)
Implements issue #123 - WhatsApp Poll Support

## Gateway Protocol
- Add `poll` RPC method with params: to, question, options (2-12), selectableCount

## ActiveWebListener
- Add `sendPoll(to, poll)` method to interface
- Implementation uses Baileys poll message type

## CLI Command
- `clawdbot poll --to <jid> -q <question> -o <opt1> -o <opt2> [-s count]`
- Supports --dry-run, --json, --verbose flags
- Validates 2-12 options

## Changes
- src/gateway/protocol/schema.ts: Add PollParamsSchema
- src/gateway/protocol/index.ts: Export validator and types
- src/web/active-listener.ts: Add sendPoll to interface
- src/web/inbound.ts: Implement sendPoll using Baileys
- src/web/outbound.ts: Add sendPollWhatsApp function
- src/gateway/server-methods/send.ts: Add poll handler
- src/commands/poll.ts: New CLI command
- src/cli/program.ts: Register poll command

Closes #123
2026-01-06 04:44:15 +00:00
Peter Steinberger
d4abcb9f53 chore: fix lint warnings 2026-01-06 05:41:24 +01:00
Peter Steinberger
981eead7ea fix: improve compaction queueing and oauth flows 2026-01-06 05:41:24 +01:00
Marcus Neves
13752bb361 feat(whatsapp,telegram): add groupPolicy config option (#216)
Co-authored-by: Marcus Neves <conhecendo.contato@gmail.com>
Co-authored-by: Shadow <hi@shadowing.dev>
2026-01-05 22:41:19 -06:00
Peter Steinberger
ae32e3c6df docs: credit Kevin Kern for mention gating
Co-authored-by: Kevin Kern <hello@regenrek.at>
2026-01-06 04:22:02 +00:00
Peter Steinberger
caea773342 test: cover slack thread reply routing 2026-01-06 05:11:06 +01:00
Peter Steinberger
d47405e5cd Merge pull request #251 from scald/fix/slack-thread-replies
fix(slack): preserve thread context in auto-replies
2026-01-06 04:10:53 +00:00
Steve Caldwell
9a95cca79d fix(slack): preserve thread context in auto-replies
When replying to a message in a Slack thread, the response now stays
in the thread instead of going to the channel root.

Only threads replies when the incoming message was already in a thread
(has thread_ts). Top-level messages get top-level replies.

Fixes #250
2026-01-06 05:09:04 +01:00
Shadow
10c5c1a5b3 Changelog: add entries for PRs 220 and 261 2026-01-05 22:07:29 -06:00
Ayaan Zaidi
562335ff51 feat(telegram): support media groups (multi-image messages) (#220) 2026-01-05 22:04:33 -06:00
VACInc
d563a5981f fix(discord): Use channel ID for DMs instead of user ID (#261)
Co-authored-by: VAC <vac@vacs-mac-mini.localdomain>
2026-01-05 22:02:33 -06:00
Peter Steinberger
f7bdefbe3d refactor: centralize reply dispatch 2026-01-06 04:55:00 +01:00
Peter Steinberger
b2bb7621d2 docs: clarify group allowlists in README 2026-01-06 04:47:41 +01:00
Peter Steinberger
317cf435b0 Merge pull request #265 from clawdbot/chore/pr-241-reopen
PR #241 reconciliation
2026-01-06 03:42:47 +00:00
Peter Steinberger
6bdddd2ee3 test: extend typing idle coverage 2026-01-06 03:42:33 +00:00
Peter Steinberger
dab9874f9c chore: reconcile PR #241 2026-01-06 04:42:18 +01:00
kitze
1cae2208c3 chore: credit @kitze for PR #241 2026-01-06 04:31:08 +01:00
Peter Steinberger
04d33554cf feat: add ack reaction defaults 2026-01-06 03:28:47 +00:00
Peter Steinberger
6ccc127bfe test: cover typing idle gate 2026-01-06 03:28:47 +00:00
Peter Steinberger
425b7fcd23 refactor: unify group allowlist policy 2026-01-06 04:27:51 +01:00
Ayaan Zaidi
475b2158ab feat: add reaction to acknowledge message in createTelegramBot 2026-01-06 03:21:56 +00:00
Peter Steinberger
cb0c40b16f style: satisfy lint 2026-01-06 03:11:42 +00:00
Peter Steinberger
dbfe031707 fix: stop typing after dispatcher idle 2026-01-06 03:09:49 +00:00
Josh Palmer
17e2700b57 use process PATH for bash tool (#202)
what: default bash PATH to process.env.PATH

why: ensure Nix-provided tools on PATH inside sessions

tests: not run

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 03:05:21 +00:00
Peter Steinberger
2ad7fb471e docs: thank @joshp123 for PR #202 2026-01-06 04:04:42 +01:00
Peter Steinberger
4f3f295aa8 refactor: centralize agent timeout defaults 2026-01-06 02:48:44 +00:00
Martin Schürrer
93646772a4 gateway: honor agent timeout for chat.send (#229)
Co-authored-by: clawd@msch <clawd@msch>
2026-01-06 02:45:02 +00:00
Peter Steinberger
037b9fb861 style: format telegram bot test 2026-01-06 03:43:05 +01:00
Peter Steinberger
9b246315f8 chore: remove unused patch file 2026-01-06 03:41:56 +01:00
Peter Steinberger
f3b5f8da14 docs: note legacy patch file 2026-01-06 03:41:56 +01:00
Peter Steinberger
7ba5ef9760 docs: add bun install support 2026-01-06 03:41:56 +01:00
Peter Steinberger
dbf8784ae3 fix: route agent CLI via gateway 2026-01-06 03:41:56 +01:00
Ayaan Zaidi
87cab7a5c2 chore: credit PR #226 contribution 2026-01-06 02:40:29 +00:00
Peter Steinberger
79ced8b329 docs: update contributors 2026-01-06 02:33:27 +00:00
Peter Steinberger
db3308bc30 fix: add gateway stop/restart commands 2026-01-06 03:25:32 +01:00
Peter Steinberger
b65cca77c8 fix(telegram): improve gif handling 2026-01-06 02:22:19 +00:00
Peter Steinberger
a3d3b58491 docs: thank mneves75 for cron hardening 2026-01-06 03:10:13 +01:00
Marcus Neves
9572f92a0f Cron: normalize cron.add inputs + align channels (#256)
* fix: harden cron add and align channels

* fix: keep cron tool id params

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-06 02:09:48 +00:00
Peter Steinberger
a92ec734ec fix: harden config form 2026-01-06 03:05:56 +01:00
Peter Steinberger
5baec62198 fix: set codex oauth model default 2026-01-06 02:49:45 +01:00