Skip to content
Closed
Show file tree
Hide file tree
Changes from 66 commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
a503d5b
ci: add Claude PR review workflow (#2)
maxtongwang Feb 27, 2026
6f07151
fix(ci): use sticky comment for Claude PR reviews (#3)
maxtongwang Feb 27, 2026
e162827
feat(channels): add BlueBubbles iMessage channel
maxtongwang Feb 27, 2026
28b1f4b
feat(gateway): add /bluebubbles-personal listen-only endpoint
maxtongwang Feb 28, 2026
43b1ad3
chore(build): add sccache and split-debuginfo for faster dev iteration
maxtongwang Feb 28, 2026
55f9d87
chore: update Cargo.lock after sccache install
maxtongwang Feb 28, 2026
a3ae792
chore: ignore test-config.toml (may contain secrets)
maxtongwang Feb 28, 2026
26944da
feat(channels/bluebubbles): add rich text via Private API attributedBody
maxtongwang Feb 28, 2026
52fdd90
feat(channels/bluebubbles): typing indicator while LLM processes
maxtongwang Feb 28, 2026
6ee40eb
feat(bluebubbles): rich text, typing indicator, and message effects
maxtongwang Feb 28, 2026
7410181
feat(bluebubbles): filter bot's own messages from personal endpoint
maxtongwang Feb 28, 2026
818a706
feat(bluebubbles): improve system prompt for real-time data and tool use
maxtongwang Feb 28, 2026
9d68510
fix(channel/bluebubbles): apply CodeRabbit findings to fork + persona…
maxtongwang Feb 28, 2026
b7676dd
chore: merge upstream/main into fork main
maxtongwang Feb 28, 2026
03eacdd
feat(bluebubbles): add audio transcription for iMessage voice memos (#9)
maxtongwang Mar 1, 2026
d56c1c2
feat(bluebubbles): transcribe iMessage audio via local whisper CLI (#10)
maxtongwang Mar 1, 2026
9dcfe45
fix(bluebubbles): use guid+REST API download for audio transcription
maxtongwang Mar 1, 2026
e8e06cc
fix(bluebubbles): read BB local MP3 directly + async webhook response
maxtongwang Mar 1, 2026
035bb85
fix(bluebubbles): scan Convert dir instead of constructing filename
maxtongwang Mar 1, 2026
c2ca792
fix(oauth): correct html_escape_sanitizes_special_chars test assertion
maxtongwang Mar 1, 2026
4da1c72
feat(bluebubbles): REST API transcription, tapback reactions
maxtongwang Mar 1, 2026
1c4c62c
fix(web-fetch): follow redirect instead of returning URL as content
maxtongwang Mar 1, 2026
c014c58
chore: merge upstream/main into fork main (2026-03-01)
maxtongwang Mar 1, 2026
f39b5ae
fix(gateway): wire transcription into BlueBubbles channel and use asy…
maxtongwang Mar 1, 2026
16f5538
Merge remote-tracking branch 'origin/main'
maxtongwang Mar 1, 2026
06054be
perf(transcription): whisper-cli (whisper.cpp) fast-path + early typi…
maxtongwang Mar 1, 2026
3c9a0a0
feat(channel/bluebubbles): audio transcription, REST download, tapbac…
maxtongwang Mar 1, 2026
2f17383
Merge remote-tracking branch 'upstream/main'
maxtongwang Mar 1, 2026
5e1a05b
Merge branch 'main' of https://github.com/maxtongwang/zeroclaw
maxtongwang Mar 1, 2026
5151ed5
fix(channel/bluebubbles): address CodeRabbit review findings
maxtongwang Mar 2, 2026
26d58bc
chore(fork): merge feat/bb-full-feature into main
maxtongwang Mar 2, 2026
48162f7
fix(channel/bluebubbles): run local whisper even without [transcripti…
maxtongwang Mar 2, 2026
a6058f9
fix(ci): pin action SHA refs, PR-guard issue_comment, suppress large_…
maxtongwang Mar 2, 2026
1aa436d
fix(security): allowlist service in auth revoke; add OAuth state for …
maxtongwang Mar 2, 2026
b6007c1
fix(security): harden oauth.rs; fix transcription cleanup and attachm…
maxtongwang Mar 2, 2026
1df8aa0
fix(security): atomic file/dir creation perms; add actions allowlist …
maxtongwang Mar 2, 2026
1f7a6b7
fix(privacy): remove raw sender PII from debug/warn log messages
maxtongwang Mar 2, 2026
1555d36
fix(security): strip URL from send() error; restrict claude-review to…
maxtongwang Mar 2, 2026
71e679a
fix(docs): replace Chinese example command with English in channels-r…
maxtongwang Mar 2, 2026
d551a96
fix(security): temp dir cleanup on transcription failure; escape erro…
maxtongwang Mar 2, 2026
5c233b7
fix(security): harden oauth session, revocation, and subprocess paths
maxtongwang Mar 2, 2026
a29e3a2
docs(channels-ref): label delivery matrix row as BlueBubbles not iMes…
maxtongwang Mar 3, 2026
997c739
fix(channel/bb-gateway): use per-chat session ID in BlueBubbles messa…
maxtongwang Mar 3, 2026
631dec5
fix(gateway/bb+transcription+ci): address PR 2582 CodeRabbit findings
maxtongwang Mar 3, 2026
74affb3
fix(bluebubbles): address PR 2461 Round 12 CodeRabbit findings
maxtongwang Mar 3, 2026
38c0a1c
fix(tapback): whisper fallback on whisper-cli failure; remove path fr…
maxtongwang Mar 3, 2026
fbe3a0f
feat(channel/bluebubbles): dm_policy, group_policy, and send_read_rec…
maxtongwang Mar 2, 2026
4e31f32
fix(upstream-2495): address CodeRabbit review findings
maxtongwang Mar 2, 2026
d62e57a
fix(lint): resolve strict delta clippy violations in PR #2495 scope
maxtongwang Mar 2, 2026
c7c2dcc
fix(security): remove hard-coded test credentials in bluebubbles tests
maxtongwang Mar 2, 2026
b82f5ad
ci: trigger CI run for test credential cleanup
maxtongwang Mar 2, 2026
7a2c7db
fix(security): respect allowed_senders in group Open policy; redact P…
maxtongwang Mar 2, 2026
5321615
fix(security): harden oauth.rs and add BB allowlist validation
maxtongwang Mar 2, 2026
585df54
fix(tests): add async to BB allowlist validation test functions
maxtongwang Mar 2, 2026
5a8dad3
fix(privacy): remove PII from logs; reject whitespace-only allowlist …
maxtongwang Mar 2, 2026
788cfad
docs(config-ref): fix ClawHub product name typo (was ClawhHub)
maxtongwang Mar 3, 2026
d38885b
fix(gateway/bb): trim and reject empty webhook_secret before enabling…
maxtongwang Mar 3, 2026
e7e10bf
fix(lint/policy): add missing semicolon in mark_read match arm (clipp…
maxtongwang Mar 3, 2026
3e10730
fix(fmt/policy): cargo fmt — collapse single-use iterator chains to o…
maxtongwang Mar 3, 2026
063f388
fix(tests/bb-policy): add .expect() to new() calls in policy tests; f…
maxtongwang Mar 3, 2026
f341603
feat(channel/bb): improve read-receipt delivery for group chats
maxtongwang Mar 4, 2026
0527b79
fix(channel/bb): redact chat GUIDs from mark_read logs; fix VI matrix…
maxtongwang Mar 4, 2026
2732a11
fix(channel/bb+ci+docs): address CodeRabbit round findings
maxtongwang Mar 4, 2026
565a937
chore(ci): remove fork-only claude-review workflow from upstream PR
maxtongwang Mar 4, 2026
3825fc6
fix(channel/bb): stream attachment download to enforce 25 MiB cap early
maxtongwang Mar 4, 2026
b065e69
fix(gateway/bb): repair truncated comment block in webhook handler
maxtongwang Mar 4, 2026
9e63f0b
fix(channels,docs): address Round 2 CodeRabbit findings for PR #2495
maxtongwang Mar 4, 2026
c0468ff
docs(i18n/vi): add BlueBubbles §4.15 section to VI channels-reference
maxtongwang Mar 4, 2026
0cdc5ba
docs(bluebubbles): add operational runbook and troubleshooting; fix V…
maxtongwang Mar 4, 2026
0ac4d0f
fix(gateway/oauth): per-request PKCE session files to prevent concurr…
maxtongwang Mar 4, 2026
11d1677
fix(gateway/oauth): remove auth_check early-return bypass when pairin…
maxtongwang Mar 4, 2026
5d141fb
fix(security/i18n): address CodeRabbit findings for PR #2495
maxtongwang Mar 5, 2026
a42bf11
fix(security): fix TOCTOU race in OAuth revoke path for PR #2495
maxtongwang Mar 5, 2026
df41efe
fix: use tokio::fs for async dir cleanup in whisper-cli path
maxtongwang Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,9 @@ whatsapp-web = ["dep:wa-rs", "dep:wa-rs-core", "dep:wa-rs-binary", "dep:wa-rs-pr
firecrawl = []
web-fetch-html2md = []

[profile.dev]
split-debuginfo = "unpacked" # skip dsymutil on macOS; no effect on Linux/Windows

[profile.release]
opt-level = "z" # Optimize for size
lto = "fat" # Maximum cross-crate optimization for smaller binaries
Expand Down
5 changes: 5 additions & 0 deletions docs/actions-source-policy.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ Selected allowlist patterns:
- `sigstore/cosign-installer@*`
- `Checkmarx/vorpal-reviewdog-github-action@*`
- `Swatinem/rust-cache@*`
- `anthropics/claude-code-action@*`

## Change Control Export

Expand Down Expand Up @@ -87,6 +88,10 @@ Latest sweep notes:
- Added allowlist pattern: `rustsec/audit-check@*`
- Replaced inline `cargo install cargo-audit` execution with pinned `rustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998` in `security.yml`
- Supersedes floating-version proposal in #588 while keeping action source policy explicit
- 2026-03-02: Added automated PR review workflow using `anthropics/claude-code-action`
- Added allowlist pattern: `anthropics/claude-code-action@*`
- Workflow uses pinned source: `anthropics/claude-code-action@220272d38887a1caed373da96a9ffdb0919c26cc` (v1)
- Purpose: automated PR review on open/reopen and `@claude` trigger comments

## Rollback

Expand Down
161 changes: 105 additions & 56 deletions docs/channels-reference.md

Large diffs are not rendered by default.

908 changes: 474 additions & 434 deletions docs/config-reference.md

Large diffs are not rendered by default.

24 changes: 15 additions & 9 deletions docs/i18n/el/channels-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
Αυτός ο οδηγός περιγράφει τη διαδικασία διαμόρφωσης των καναλιών επικοινωνίας (Telegram, Discord, κ.λπ.) στο ZeroClaw.

Για κρυπτογραφημένα δωμάτια στο Matrix, συμβουλευτείτε τον:

- [Οδηγό Matrix E2EE](./matrix-e2ee-guide.md)

---
Expand Down Expand Up @@ -36,21 +37,23 @@ cli = true # Ενεργοποίηση διεπαφής τερματικού (CLI

## 4. Μέθοδοι Λήψης Δεδομένων ανά Κανάλι

| Κανάλι | Μηχανισμός | Απαιτεί Ανοιχτές Θύρες (Port Forwarding); |
|:---|:---|:---:|
| CLI | Direct Output | Όχι |
| Telegram | Polling | Όχι |
| Discord | Websocket | Όχι |
| Slack | Events API | Όχι |
| Matrix | Sync API | Όχι |
| Nextcloud Talk | Webhook | **Ναι** |
| Email | IMAP | Όχι |
| Κανάλι | Μηχανισμός | Απαιτεί Ανοιχτές Θύρες (Port Forwarding); |
| :------------- | :----------------------------------- | :---------------------------------------------------------: |
| CLI | Direct Output | Όχι |
| Telegram | Polling | Όχι |
| Discord | Websocket | Όχι |
| Slack | Events API | Όχι |
| Matrix | Sync API | Όχι |
| Nextcloud Talk | Webhook | **Ναι** |
| Email | IMAP | Όχι |
| iMessage | BlueBubbles webhook (`/bluebubbles`) | **Ναι** (ο διακομιστής BlueBubbles πρέπει να έχει πρόσβαση) |

---

## 5. Πολιτική Ασφαλείας (Allowlist)

Η πρόσβαση στο bot ελέγχεται μέσω της ρύθμισης `allowed_users`:

- **Κενή λίστα**: Αποκλεισμός όλων των χρηστών.
- **`["*"]`**: Ελεύθερη πρόσβαση (χρήση αποκλειστικά για δοκιμές).
- **Συγκεκριμένη λίστα**: Πρόσβαση μόνο στους εξουσιοδοτημένους λογαριασμούς.
Expand All @@ -60,6 +63,7 @@ cli = true # Ενεργοποίηση διεπαφής τερματικού (CLI
## 6. Αντιμετώπιση Προβλημάτων

Εάν το bot δεν ανταποκρίνεται:

1. **Εξουσιοδότηση**: Επαληθεύστε ότι το ID σας συμπεριλαμβάνεται στο `allowed_users`.
2. **Σύνδεση**: Βεβαιωθείτε ότι το bot έχει προστεθεί στο σωστό δωμάτιο/κανάλι.
3. **Credentials**: Ελέγξτε την εγκυρότητα των Tokens και API Secrets.
Expand All @@ -71,11 +75,13 @@ cli = true # Ενεργοποίηση διεπαφής τερματικού (CLI
### Διαγνωστικά Μηνύματα (Logs)

Εκτελέστε το ZeroClaw με αυξημένο επίπεδο καταγραφής:

```bash
RUST_LOG=info zeroclaw daemon
```

**Κοινά σφάλματα**:

- `ignoring message from unauthorized user`: Ο χρήστης δεν ανήκει στο allowlist.
- `401 / token mismatch`: Λανθασμένο διακριτικό πρόσβασης.
- `sync error`: Αδυναμία σύνδεσης με τον homeserver (σύνηθες στο Matrix).
Loading