Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
8273 commits
Select commit Hold shift + click to select a range
6918fbc
test: incorporate `resolveVoiceCallConfig` into config validation tests.
shakkernerd Jan 26, 2026
e162676
fix: allow environment variables in voice call config validation
shakkernerd Jan 26, 2026
f3e3c45
Docs: add LINE channel guide
thewilloftheshadow Jan 26, 2026
961b4ad
feat(gateway): deprecate query param hook token auth for security (#2…
YuriNachos Jan 26, 2026
300cda5
fix: wrap telegram reasoning italics per line (#2181)
YuriNachos Jan 26, 2026
ded366d
docs: expand security guidance for prompt injection and browser control
steipete Jan 26, 2026
403c397
Docs: add cli/security labels
thewilloftheshadow Jan 26, 2026
8b68cdd
fix: harden doctor gateway exposure warnings (#2016) (thanks @Alex-Al…
Alex-Alaniz Jan 26, 2026
b623557
fix: harden url fetch dns pinning
steipete Jan 26, 2026
9720098
fix: secure twilio webhook verification
steipete Jan 26, 2026
3e07bd8
feat(discord): add configurable privileged Gateway Intents (GuildPres…
kentaro Jan 26, 2026
07e34e3
Discord: add presence cache tests (#2266) (thanks @kentaro)
thewilloftheshadow Jan 26, 2026
b9643ad
docs(fly): add private/hardened deployment guide
dguido Jan 26, 2026
5b6a211
docs: tighten fly private deployment steps
steipete Jan 26, 2026
c01cc61
docs: note fly private deployment fixups (#2289) (thanks @dguido)
steipete Jan 26, 2026
ce60c6d
feat(telegram): implement sendPayload for channelData support
Jan 25, 2026
0e3340d
feat(plugins): sync plugin commands to Telegram menu and export gatew…
Jan 25, 2026
b8e6f0b
fix(telegram): register bot.command handlers for plugin commands
Jan 25, 2026
db23957
fix(telegram): extract and send buttons from channelData
Jan 25, 2026
94ead83
fix: telegram sendPayload and plugin auth (#1917) (thanks @JoshuaLelon)
obviyus Jan 26, 2026
b06fc50
docs: clarify onboarding security warning
steipete Jan 26, 2026
287ab84
fix(slack): handle file redirects
steipete Jan 26, 2026
bfe9bb8
docs(changelog): note slack redirect fix
steipete Jan 26, 2026
e0b8661
Docs: credit LINE channel guide contributor
thewilloftheshadow Jan 26, 2026
2a4ccb6
Docs: update clawtributors
thewilloftheshadow Jan 26, 2026
a486940
fix: honor tools.exec.safeBins config
steipete Jan 26, 2026
e6bdffe
feat: add control ui device auth bypass
steipete Jan 26, 2026
b9098f3
fix: remove unsupported gateway auth off option
steipete Jan 26, 2026
2ad3508
feat(config): add tools.alsoAllow additive allowlist
vignesh07 Jan 25, 2026
d62b7c0
fix: treat tools.alsoAllow as implicit allow-all when no allowlist
vignesh07 Jan 25, 2026
3497be2
docs: recommend tools.alsoAllow for optional plugin tools
vignesh07 Jan 25, 2026
42d0399
feat(config): forbid allow+alsoAllow in same scope; auto-merge
Jan 26, 2026
ab73ace
fix: use Windows ACLs for security audit
steipete Jan 26, 2026
3314b39
fix: harden gateway auth defaults
steipete Jan 26, 2026
f625303
test(config): enforce allow+alsoAllow mutual exclusion
Jan 26, 2026
39d219d
Add FUNDING.yml
alexstyl Jan 26, 2026
526303d
refactor(auth)!: remove external CLI OAuth reuse
steipete Jan 26, 2026
aa2a1a1
test(auth): update auth profile coverage
steipete Jan 26, 2026
000d550
docs(auth): remove external CLI OAuth reuse
steipete Jan 26, 2026
fba7afa
chore(scripts): update claude auth status hints
steipete Jan 26, 2026
34b3494
Merge branch 'main' into feat/tools-alsoAllow
shakkernerd Jan 26, 2026
10d5ea5
docs: Add Oracle Cloud (OCI) platform guide (#2333)
hirefrank Jan 26, 2026
2cbc991
feat(agents): add MEMORY.md to bootstrap files (#2318)
czekaj Jan 26, 2026
1a947a2
fix: support memory.md in bootstrap files (#2318) (thanks @czekaj)
thewilloftheshadow Jan 26, 2026
c5ffc11
chore(repo): remove stray .DS_Store
steipete Jan 26, 2026
f5c90f0
feat: Twitch Plugin (#1612)
jaydenfyi Jan 26, 2026
97248a2
feat: surface security audit + docs
steipete Jan 26, 2026
320b45c
docs: note sandbox opt-in in gateway security
steipete Jan 26, 2026
1371e95
docs: clarify onboarding + credentials
steipete Jan 26, 2026
a5b9934
style: format workspace bootstrap signature
steipete Jan 26, 2026
8e051a4
test: stub windows ACL for include perms audit
steipete Jan 26, 2026
9e6b45f
fix(discord): honor threadId for thread-reply
ppamment Jan 26, 2026
ec75e0b
CI: use app token for auto-response
thewilloftheshadow Jan 26, 2026
bdea265
CI: run auto-response on pull_request_target
thewilloftheshadow Jan 26, 2026
bc8c31e
Merge branch 'main' into feat/tools-alsoAllow
shakkernerd Jan 26, 2026
ff382f6
Merge pull request #1742 from clawdbot/feat/tools-alsoAllow
shakkernerd Jan 26, 2026
fbc5ac1
docs(install): add migration guide for moving to a new machine (#2381)
vignesh07 Jan 26, 2026
d34ae86
chore: expand labeler coverage
thewilloftheshadow Jan 26, 2026
fb14146
fix: harden ssh target handling
steipete Jan 26, 2026
20f6a55
feat(telegram): add silent message option (#2382)
Suksham-sharma Jan 26, 2026
820ab87
docs: clarify exec defaults
steipete Jan 26, 2026
86fa934
fix: reset chat state on webchat reconnect after gateway restart
dlauer Jan 26, 2026
6d26971
fix(bluebubbles): add inbound message debouncing to coalesce URL link…
tyler6204 Jan 25, 2026
420e529
fix(bluebubbles): increase inbound message debounce time for URL prev…
tyler6204 Jan 26, 2026
147842f
refactor(bluebubbles): remove URL balloon message handling and improv…
tyler6204 Jan 26, 2026
9c0c586
fix: coalesce BlueBubbles link previews (#1981) (thanks @tyler6204)
tyler6204 Jan 26, 2026
0f8f0fb
docs: clarify command authorization for exec directives
steipete Jan 26, 2026
3888f1e
docs: update SKILL.md and generate_image.py to support multi-image ed…
tyler6204 Jan 25, 2026
fe1f2d9
fix: add multi-image input support to nano-banana-pro skill (#1958) (…
tyler6204 Jan 26, 2026
b3a60af
fix: gate ngrok free-tier bypass to loopback
steipete Jan 26, 2026
2807f5a
feat: add heartbeat visibility filtering for webchat
dlauer Jan 26, 2026
6cbdd76
fix: pin tar override for npm installs
steipete Jan 26, 2026
0aa48a2
docs: add Northflank deployment guide for Clawdbot
AdeboyeDN Jan 26, 2026
2a70938
cleanup
AdeboyeDN Jan 26, 2026
99ce47e
minor update
AdeboyeDN Jan 26, 2026
107f07a
docs: add Northflank page to nav + polish copy
Jan 26, 2026
cd7be58
docs: add Northflank deploy guide to changelog (#2167) (thanks @Adebo…
vignesh07 Jan 26, 2026
8274697
fix(heartbeat): remove unhandled rejection crash in wake handler
dlauer Jan 26, 2026
91d5ea6
Fix: allow cron heartbeat payloads through filters (#2219) (thanks @d…
thewilloftheshadow Jan 26, 2026
5aa02cf
fix(gateway): sanitize error responses to prevent information disclosure
robbyczgw-cla Jan 26, 2026
af9606d
fix(history): add LRU eviction for groupHistories to prevent memory leak
robbyczgw-cla Jan 26, 2026
5c35b62
fix: refresh history key order for LRU eviction
thewilloftheshadow Jan 26, 2026
343882d
feat(telegram): add edit message action (#2394) (thanks @marcelomar21)
vignesh07 Jan 26, 2026
a8ad242
fix(security): properly test Windows ACL audit for config includes (#…
dominicnunez Jan 27, 2026
e43f4c0
fix(telegram): handle network errors gracefully
Jan 26, 2026
b861a0b
Telegram: harden network retries and config
gumadeiras Jan 27, 2026
0c855bd
Infra: fix recoverable error formatting
gumadeiras Jan 27, 2026
1506d49
fix: switch Matrix plugin SDK
steipete Jan 27, 2026
4b63474
fix: fallback to main agent OAuth credentials when secondary agent re…
dlauer Jan 27, 2026
1e7cb23
Fix: avoid plugin registration on global help/version (#2212) (thanks…
thewilloftheshadow Jan 26, 2026
3b8792e
Security: fix timing attack vulnerability in LINE webhook signature v…
Kiwitwitter Jan 27, 2026
e0dc49f
line: centralize webhook signature validation
thewilloftheshadow Jan 27, 2026
58b96ca
CI: sync labels on PR updates
thewilloftheshadow Jan 27, 2026
c95072f
fix: support versioned node binaries (e.g., node-22)
David-Marsh-Photo Jan 26, 2026
566c998
CLI: expand versioned node argv handling
gumadeiras Jan 27, 2026
2f7fff8
CLI: add changelog for versioned node argv (#2490) (thanks @David-Mar…
gumadeiras Jan 27, 2026
27174f5
bugfix:The Mintlify navbar (logo + search bar with ⌘K) scrolls away w…
chenyuan99 Jan 27, 2026
761cb01
Merge branch 'main' into main
shakkernerd Jan 27, 2026
14f8acd
fix(agents): release session locks on process termination
Jan 27, 2026
d8e5dd9
fix: clean up session locks on exit (#2483) (thanks @janeexai)
thewilloftheshadow Jan 27, 2026
481bd33
fix(gateway): gracefully handle AbortError and transient network erro…
Glucksberg Jan 27, 2026
f300875
Fix: Corrected the `sendActivity` parameter type from an array to a s…
shakkernerd Jan 27, 2026
260f6e2
Docs: fix /scripts redirect loop
thewilloftheshadow Jan 27, 2026
e331145
Merge branch 'main' into pr-1810
shakkernerd Jan 27, 2026
d5f2924
fix(msteams): use sendActivity for typing indicator
shakkernerd Jan 27, 2026
241436a
fix: handle fetch/API errors in telegram delivery to prevent gateway …
Jan 27, 2026
5796a92
fix: log telegram API fetch errors (#2492) (thanks @altryne)
thewilloftheshadow Jan 27, 2026
66a5b32
fix: harden session lock cleanup (#2483) (thanks @janeexai)
gumadeiras Jan 27, 2026
45ca0d9
Merge branch 'main' into fix/secondary-agent-oauth-fallback
shakkernerd Jan 27, 2026
9e20006
telegram: centralize api error logging
thewilloftheshadow Jan 27, 2026
7d5221b
fix: centralize telegram api error logging (#2492) (thanks @altryne)
thewilloftheshadow Jan 27, 2026
dde9605
Agents: summarize dropped messages during compaction safeguard prunin…
jogi47 Jan 27, 2026
ba5f319
fix: summarize dropped compaction messages (#2509) (thanks @jogi47)
thewilloftheshadow Jan 27, 2026
357ff6e
feat: Add test case for OAuth fallback failure when both secondary an…
shakkernerd Jan 27, 2026
dce7925
fix: inherit main agent credentials on secondary agent refresh failure
shakkernerd Jan 27, 2026
ff42a48
Skip cooldowned providers during model failover (#2143)
YiWang24 Jan 27, 2026
959ddae
Agents: finish cooldowned provider skip (#2534)
gumadeiras Jan 27, 2026
b151b8d
test: stabilize CLI hint assertions under CLAWDBOT_PROFILE (#2507)
vignesh07 Jan 27, 2026
e7fdccc
refactor: route browser control via gateway/node
steipete Jan 27, 2026
8b56f0e
docs: warn against public web binding
steipete Jan 27, 2026
5eee991
fix: harden file serving
steipete Jan 26, 2026
71196fb
style: format fs-safe
steipete Jan 26, 2026
83de980
style: wrap fs-safe
steipete Jan 26, 2026
771f23d
fix(exec): prevent PATH injection in docker sandbox
steipete Jan 27, 2026
4074981
test(exec): normalize PATH injection quoting
steipete Jan 27, 2026
912c869
test(exec): quote PATH injection string
steipete Jan 27, 2026
1cca0e5
chore: warn on weak uuid fallback
steipete Jan 27, 2026
615ccf6
git: stop tracking bundled build artifacts
0oAstro Jan 26, 2026
c2a4863
Build: stop tracking bundled artifacts (#2455) (thanks @0oAstro)
gumadeiras Jan 27, 2026
b8645e9
Build: update A2UI bundle hash (#2455) (thanks @0oAstro)
gumadeiras Jan 27, 2026
2044b3c
Build: restore A2UI scaffold assets (#2455) (thanks @0oAstro)
gumadeiras Jan 27, 2026
286b3ca
docs(security): add formal verification page (draft)
vignesh07 Jan 27, 2026
e03e2ba
docs(security): clarify formal models caveats and reproduction
vignesh07 Jan 27, 2026
e487fe2
docs(security): improve formal verification page reproducibility
vignesh07 Jan 27, 2026
1b219cc
fix(macos): gate project-local node_modules bins to DEBUG
steipete Jan 27, 2026
552b295
Merge pull request #2568 from clawdbot/docs/formal-verification
vignesh07 Jan 27, 2026
39260e7
docs(security): publish formal verification page under gateway/security
vignesh07 Jan 27, 2026
2d24e65
docs(security): fix formal verification docs URL
vignesh07 Jan 27, 2026
b3003ed
docs: add formal verification page to Mintlify navigation
vignesh07 Jan 27, 2026
066b222
docs: publish formal verification page in docs index
vignesh07 Jan 27, 2026
4c2d8ee
fix(macos): auto-scroll to bottom when sending message while scrolled up
kennyklee Jan 27, 2026
9135304
fix: local updates for PR #2471
gumadeiras Jan 27, 2026
d2b5037
fix: auto-scroll to bottom on user send (#2471) (thanks @kennyklee)
gumadeiras Jan 27, 2026
f72b881
docs: fix formal verification route (#2583)
vignesh07 Jan 27, 2026
cb770f2
docs: fix Mintlify MDX autolink (#2584)
vignesh07 Jan 27, 2026
78f0bc3
fix(browser): gate evaluate behind config flag
steipete Jan 27, 2026
3b0c80c
Add per-sender group tool policies and fix precedence (#1757)
adam91holt Jan 27, 2026
6c451f4
Fix a subtle bug: `modelDefault` doesn’t apply when provider === "aut…
papago2355 Jan 27, 2026
9a2be71
docs: redirect gateway/security/formal-verification (#2594)
vignesh07 Jan 27, 2026
9daa846
docs(bluebubbles): note reverse-proxy localhost trust caveat
steipete Jan 27, 2026
506bed5
feat(telegram): add sticker support with vision caching
longjos Jan 26, 2026
34fea72
fix(telegram): improve sticker vision + cache (#2548) (thanks @longjos)
obviyus Jan 27, 2026
54d6cd7
docs: update changelog for #2629
obviyus Jan 27, 2026
d3a6333
docs: allow nested gateway security pages (#2641)
vignesh07 Jan 27, 2026
d91b4a3
feat: improve /help and /commands formatting with categories and pagi…
hougangdev Jan 27, 2026
97440ea
test: update status tests for new help/commands format
hougangdev Jan 27, 2026
cc1782b
fix: tighten commands output + telegram pagination (#2504)
gumadeiras Jan 27, 2026
2ad550a
fix: land /help + /commands formatting (#2504) (thanks @hougangdev)
gumadeiras Jan 27, 2026
cc80495
fix(telegram): send sticker pixels to vision models
obviyus Jan 27, 2026
a49250f
docs: add changelog for #2650
obviyus Jan 27, 2026
d7a00dc
fix: gate sticker vision on image input
obviyus Jan 27, 2026
72fea5e
chore: bump version to 2026.1.26
steipete Jan 27, 2026
f400405
📖 lore.md: Added full Great Molt chaos + Icon Generation Saga
steipete Jan 27, 2026
83460df
chore: update molt.bot domains
steipete Jan 27, 2026
6d16a65
refactor: rename clawdbot to moltbot with legacy compat
steipete Jan 27, 2026
735aea9
refactor: align skills and loaders with moltbot rename
steipete Jan 27, 2026
58640e9
fix: load config from moltbot and legacy dirs
steipete Jan 27, 2026
7e99311
chore: normalize io compat test newline
steipete Jan 27, 2026
44f9017
fix: include compat dist in npm package
steipete Jan 27, 2026
3f83afe
chore: update a2ui bundle hash
steipete Jan 27, 2026
5eff33a
fix: sync pnpm lockfile for moltbot rename
steipete Jan 27, 2026
3015e11
fix: stabilize install smoke against clawdbot installer
steipete Jan 27, 2026
0594ccf
fix: skip a2ui bundling when sources are excluded
steipete Jan 27, 2026
e4518d2
fix: allow docker builds to skip missing a2ui assets
steipete Jan 27, 2026
3817e0c
fix: bundle a2ui before tests
steipete Jan 27, 2026
889882f
fix: cap windows vitest workers in ci
steipete Jan 27, 2026
240232a
fix: run windows ci tests serially
steipete Jan 27, 2026
cf334d3
fix: shard windows ci test runs
steipete Jan 27, 2026
4a9c921
fix: use threads pool for windows ci tests
steipete Jan 27, 2026
0ad40f4
fix: avoid daemon runtime prompt under spinner
obviyus Jan 27, 2026
f662039
docs: note daemon runtime prompt fix (#2874)
obviyus Jan 27, 2026
640c8d1
fix: ignore windows vitest worker crashes
steipete Jan 27, 2026
3fe4b25
updating references
gumadeiras Jan 27, 2026
cc72498
Mac: finish Moltbot rename
thewilloftheshadow Jan 27, 2026
c1a7917
Mac: finish Moltbot rename (paths)
thewilloftheshadow Jan 27, 2026
d33cd45
fix(macOS): rename Clawdbot directories to Moltbot for naming consist…
fal3 Jan 27, 2026
2894402
fix: update remaining ClawdbotKit path references to MoltbotKit
fal3 Jan 27, 2026
cf5ed4b
chore: update Package.resolved after dependency resolution
fal3 Jan 27, 2026
4a31021
fix: add MACOS_APP_SOURCES_DIR constant and update test to use new path
fal3 Jan 27, 2026
e6186ee
fix: finish Moltbot macOS rename (#2844) (thanks @fal3)
thewilloftheshadow Jan 27, 2026
9883d5d
Extensions: use workspace moltbot in memory-core
joshp123 Jan 27, 2026
60873a1
fix(security): recognize Venice-style claude-opus-45 as top-tier model
jonisjongithub Jan 27, 2026
1d37815
fix(models): recognize Venice-style claude-opus-45 as claude-opus-4-5…
vignesh07 Jan 27, 2026
f7a0b09
Branding: update bot.molt bundle IDs + launchd labels
thewilloftheshadow Jan 27, 2026
9ec4c61
Branding: remove legacy android packages
thewilloftheshadow Jan 27, 2026
284b54a
feat: Add support for Telegram quote (partial message replies) (#2900)
aduk059 Jan 27, 2026
b5c885b
fix(ui): auto-expand chat textarea on input (Fixes #2939) (#2950)
shivamraut101 Jan 27, 2026
371e410
chore: clean up log + a2ui hash
gumadeiras Jan 27, 2026
c568142
chore: stop tracking a2ui bundle hash
gumadeiras Jan 27, 2026
2930ebf
fix(ui): constrain chat textarea auto-resize (#2950) (thanks @shivamr…
vignesh07 Jan 27, 2026
6bf2f0e
fix(models): inherit baseUrl and api from provider config
lploc94 Jan 27, 2026
4656dce
test(models): add tests for baseUrl and api inheritance
lploc94 Jan 27, 2026
4768b59
fix: local updates for PR #2740
gumadeiras Jan 27, 2026
9b16a6b
fix: inherit provider baseUrl/api for inline models (#2740) (thanks @…
gumadeiras Jan 27, 2026
a0698e0
perf(cli): use compile cache (~10% faster)
pi0 Jan 27, 2026
3fd766f
update import
pi0 Jan 27, 2026
4a1b6bc
update refs
pi0 Jan 27, 2026
d35ffcd
docs: update changelog for compile cache (#2808) (thanks @pi0)
vignesh07 Jan 27, 2026
2490288
Merge pull request #2808 from pi0/perf/compile-cache
vignesh07 Jan 27, 2026
b59ea0e
fix: prevent infinite retry loop for images exceeding 5MB
Suksham-sharma Jan 27, 2026
20c0d1f
fix: avoid global image size regression
thewilloftheshadow Jan 27, 2026
0b1c8db
fix: handle image size errors safely (#2871) (thanks @Suksham-sharma)
thewilloftheshadow Jan 27, 2026
8198e82
docs: update security + formal verification pages for Moltbot rename
vignesh07 Jan 27, 2026
98b1365
docs: fix Moltbot naming in security + formal verification pages
vignesh07 Jan 27, 2026
ce5a2ad
docs: fix Moltbot naming consistency on formal verification page
vignesh07 Jan 27, 2026
2bcd765
Replace 'clawdbot' with 'moltbot' in security documentation
vignesh07 Jan 27, 2026
90a6bbd
docs: restore gateway/security formal verification redirect copy
vignesh07 Jan 27, 2026
f7a0142
Update permalink for formal verification document
vignesh07 Jan 27, 2026
ead73f8
docs: add v1++ formal model targets (pairing/ingress/routing)
vignesh07 Jan 27, 2026
0b2b501
docs: clarify v1++ claims (not just target lists)
vignesh07 Jan 27, 2026
3bf768a
docs: add new formal security models + updates for Moltbot rename
vignesh07 Jan 27, 2026
3b879fe
fix(infra): prevent gateway crashes on transient network errors
elliotsecops Jan 27, 2026
3a25a4f
fix: keep unhandled rejections safe
thewilloftheshadow Jan 27, 2026
0770194
test: align unhandled rejection logs (#2980) (thanks @elliotsecops)
thewilloftheshadow Jan 28, 2026
e2c437e
fix: migrate legacy state/config paths
steipete Jan 28, 2026
8d07955
chore: bump beta version to 2026.1.27-beta.1
steipete Jan 28, 2026
4aa2f24
test: handle legacy cron swift path
steipete Jan 28, 2026
1883541
docs: update plugin skill gating key
steipete Jan 28, 2026
aced5dd
docs: switch skill metadata key to moltbot
steipete Jan 28, 2026
7eb57b6
chore: prep 2026.1.27-beta.1 release
steipete Jan 28, 2026
afd57c7
style: format unhandled rejection handler
steipete Jan 28, 2026
5fe7bbe
docs: update exe.dev install instructions
zackerthescar Jan 28, 2026
4647309
fix: update exe.dev install docs (#https://github.com/moltbot/moltbot…
thewilloftheshadow Jan 28, 2026
f6d0d4d
fix: honor state dir override in config resolution
steipete Jan 28, 2026
72a3046
test: honor windows homedir env for legacy config
steipete Jan 28, 2026
64be96c
Add bitwarden skill
Jan 26, 2026
4287c21
fix: guard channel-tools listActions against plugin crashes
Jan 27, 2026
34653e4
fix: guard channel tool listActions (#2859) (thanks @mbelinky)
thewilloftheshadow Jan 28, 2026
2496056
fix(minimax): use correct API endpoint and format
YangHuang2280 Jan 28, 2026
eb50314
fix: update MiniMax provider config (#3064) (thanks @hlbbbbbbb)
thewilloftheshadow Jan 28, 2026
558b64f
fix: handle Telegram network errors gracefully to prevent gateway cra…
ryancontent Jan 27, 2026
57d9c09
fix: expand Telegram polling network recovery (#3013) (thanks @ryanco…
thewilloftheshadow Jan 28, 2026
f7cae91
Merge moltbot repository
claude Jan 28, 2026
9e3a155
feat: add astrai_memory module for local-first AI memory
claude Jan 30, 2026
cc344e3
chore: add .gitignore for astrai_memory pycache
claude Jan 30, 2026
637e931
feat: add encryption and security features to astrai_memory
claude Jan 30, 2026
c542a72
feat: add astrai_alpha module for AI-native trading
claude Feb 3, 2026
542c66a
feat: add execution cost model and immutable trade ledger
claude Feb 3, 2026
c6a52bc
chore: add .gitignore for astrai_alpha pycache
claude Feb 3, 2026
34bc9c1
feat: add Alpaca paper trading gateway with risk controls
claude Feb 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
366 changes: 366 additions & 0 deletions .agent/workflows/update_clawdbot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,366 @@
---
description: Update Clawdbot from upstream when branch has diverged (ahead/behind)
---

# Clawdbot Upstream Sync Workflow

Use this workflow when your fork has diverged from upstream (e.g., "18 commits ahead, 29 commits behind").

## Quick Reference

```bash
# Check divergence status
git fetch upstream && git rev-list --left-right --count main...upstream/main

# Full sync (rebase preferred)
git fetch upstream && git rebase upstream/main && pnpm install && pnpm build && ./scripts/restart-mac.sh

# Check for Swift 6.2 issues after sync
grep -r "FileManager\.default\|Thread\.isMainThread" src/ apps/ --include="*.swift"
```

---

## Step 1: Assess Divergence

```bash
git fetch upstream
git log --oneline --left-right main...upstream/main | head -20
```

This shows:
- `<` = your local commits (ahead)
- `>` = upstream commits you're missing (behind)

**Decision point:**
- Few local commits, many upstream → **Rebase** (cleaner history)
- Many local commits or shared branch → **Merge** (preserves history)

---

## Step 2A: Rebase Strategy (Preferred)

Replays your commits on top of upstream. Results in linear history.

```bash
# Ensure working tree is clean
git status

# Rebase onto upstream
git rebase upstream/main
```

### Handling Rebase Conflicts

```bash
# When conflicts occur:
# 1. Fix conflicts in the listed files
# 2. Stage resolved files
git add <resolved-files>

# 3. Continue rebase
git rebase --continue

# If a commit is no longer needed (already in upstream):
git rebase --skip

# To abort and return to original state:
git rebase --abort
```

### Common Conflict Patterns

| File | Resolution |
|------|------------|
| `package.json` | Take upstream deps, keep local scripts if needed |
| `pnpm-lock.yaml` | Accept upstream, regenerate with `pnpm install` |
| `*.patch` files | Usually take upstream version |
| Source files | Merge logic carefully, prefer upstream structure |

---

## Step 2B: Merge Strategy (Alternative)

Preserves all history with a merge commit.

```bash
git merge upstream/main --no-edit
```

Resolve conflicts same as rebase, then:
```bash
git add <resolved-files>
git commit
```

---

## Step 3: Rebuild Everything

After sync completes:

```bash
# Install dependencies (regenerates lock if needed)
pnpm install

# Build TypeScript
pnpm build

# Build UI assets
pnpm ui:build

# Run diagnostics
pnpm clawdbot doctor
```

---

## Step 4: Rebuild macOS App

```bash
# Full rebuild, sign, and launch
./scripts/restart-mac.sh

# Or just package without restart
pnpm mac:package
```

### Install to /Applications

```bash
# Kill running app
pkill -x "Clawdbot" || true

# Move old version
mv /Applications/Clawdbot.app /tmp/Clawdbot-backup.app

# Install new build
cp -R dist/Clawdbot.app /Applications/

# Launch
open /Applications/Clawdbot.app
```

---

## Step 4A: Verify macOS App & Agent

After rebuilding the macOS app, always verify it works correctly:

```bash
# Check gateway health
pnpm clawdbot health

# Verify no zombie processes
ps aux | grep -E "(clawdbot|gateway)" | grep -v grep

# Test agent functionality by sending a verification message
pnpm clawdbot agent --message "Verification: macOS app rebuild successful - agent is responding." --session-id YOUR_TELEGRAM_SESSION_ID

# Confirm the message was received on Telegram
# (Check your Telegram chat with the bot)
```

**Important:** Always wait for the Telegram verification message before proceeding. If the agent doesn't respond, troubleshoot the gateway or model configuration before pushing.

---

## Step 5: Handle Swift/macOS Build Issues (Common After Upstream Sync)

Upstream updates may introduce Swift 6.2 / macOS 26 SDK incompatibilities. Use analyze-mode for systematic debugging:

### Analyze-Mode Investigation
```bash
# Gather context with parallel agents
morph-mcp_warpgrep_codebase_search search_string="Find deprecated FileManager.default and Thread.isMainThread usages in Swift files" repo_path="/Volumes/Main SSD/Developer/clawdis"
morph-mcp_warpgrep_codebase_search search_string="Locate Peekaboo submodule and macOS app Swift files with concurrency issues" repo_path="/Volumes/Main SSD/Developer/clawdis"
```

### Common Swift 6.2 Fixes

**FileManager.default Deprecation:**
```bash
# Search for deprecated usage
grep -r "FileManager\.default" src/ apps/ --include="*.swift"

# Replace with proper initialization
# OLD: FileManager.default
# NEW: FileManager()
```

**Thread.isMainThread Deprecation:**
```bash
# Search for deprecated usage
grep -r "Thread\.isMainThread" src/ apps/ --include="*.swift"

# Replace with modern concurrency check
# OLD: Thread.isMainThread
# NEW: await MainActor.run { ... } or DispatchQueue.main.sync { ... }
```

### Peekaboo Submodule Fixes
```bash
# Check Peekaboo for concurrency issues
cd src/canvas-host/a2ui
grep -r "Thread\.isMainThread\|FileManager\.default" . --include="*.swift"

# Fix and rebuild submodule
cd /Volumes/Main SSD/Developer/clawdis
pnpm canvas:a2ui:bundle
```

### macOS App Concurrency Fixes
```bash
# Check macOS app for issues
grep -r "Thread\.isMainThread\|FileManager\.default" apps/macos/ --include="*.swift"

# Clean and rebuild after fixes
cd apps/macos && rm -rf .build .swiftpm
./scripts/restart-mac.sh
```

### Model Configuration Updates
If upstream introduced new model configurations:
```bash
# Check for OpenRouter API key requirements
grep -r "openrouter\|OPENROUTER" src/ --include="*.ts" --include="*.js"

# Update clawdbot.json with fallback chains
# Add model fallback configurations as needed
```

---

## Step 6: Verify & Push

```bash
# Verify everything works
pnpm clawdbot health
pnpm test

# Push (force required after rebase)
git push origin main --force-with-lease

# Or regular push after merge
git push origin main
```

---

## Troubleshooting

### Build Fails After Sync

```bash
# Clean and rebuild
rm -rf node_modules dist
pnpm install
pnpm build
```

### Type Errors (Bun/Node Incompatibility)

Common issue: `fetch.preconnect` type mismatch. Fix by using `FetchLike` type instead of `typeof fetch`.

### macOS App Crashes on Launch

Usually resource bundle mismatch. Full rebuild required:
```bash
cd apps/macos && rm -rf .build .swiftpm
./scripts/restart-mac.sh
```

### Patch Failures

```bash
# Check patch status
pnpm install 2>&1 | grep -i patch

# If patches fail, they may need updating for new dep versions
# Check patches/ directory against package.json patchedDependencies
```

### Swift 6.2 / macOS 26 SDK Build Failures

**Symptoms:** Build fails with deprecation warnings about `FileManager.default` or `Thread.isMainThread`

**Search-Mode Investigation:**
```bash
# Exhaustive search for deprecated APIs
morph-mcp_warpgrep_codebase_search search_string="Find all Swift files using deprecated FileManager.default or Thread.isMainThread" repo_path="/Volumes/Main SSD/Developer/clawdis"
```

**Quick Fix Commands:**
```bash
# Find all affected files
find . -name "*.swift" -exec grep -l "FileManager\.default\|Thread\.isMainThread" {} \;

# Replace FileManager.default with FileManager()
find . -name "*.swift" -exec sed -i '' 's/FileManager\.default/FileManager()/g' {} \;

# For Thread.isMainThread, need manual review of each usage
grep -rn "Thread\.isMainThread" --include="*.swift" .
```

**Rebuild After Fixes:**
```bash
# Clean all build artifacts
rm -rf apps/macos/.build apps/macos/.swiftpm
rm -rf src/canvas-host/a2ui/.build

# Rebuild Peekaboo bundle
pnpm canvas:a2ui:bundle

# Full macOS rebuild
./scripts/restart-mac.sh
```

---

## Automation Script

Save as `scripts/sync-upstream.sh`:

```bash
#!/usr/bin/env bash
set -euo pipefail

echo "==> Fetching upstream..."
git fetch upstream

echo "==> Current divergence:"
git rev-list --left-right --count main...upstream/main

echo "==> Rebasing onto upstream/main..."
git rebase upstream/main

echo "==> Installing dependencies..."
pnpm install

echo "==> Building..."
pnpm build
pnpm ui:build

echo "==> Running doctor..."
pnpm clawdbot doctor

echo "==> Rebuilding macOS app..."
./scripts/restart-mac.sh

echo "==> Verifying gateway health..."
pnpm clawdbot health

echo "==> Checking for Swift 6.2 compatibility issues..."
if grep -r "FileManager\.default\|Thread\.isMainThread" src/ apps/ --include="*.swift" --quiet; then
echo "⚠️ Found potential Swift 6.2 deprecated API usage"
echo " Run manual fixes or use analyze-mode investigation"
else
echo "✅ No obvious Swift deprecation issues found"
fi

echo "==> Testing agent functionality..."
# Note: Update YOUR_TELEGRAM_SESSION_ID with actual session ID
pnpm clawdbot agent --message "Verification: Upstream sync and macOS rebuild completed successfully." --session-id YOUR_TELEGRAM_SESSION_ID || echo "Warning: Agent test failed - check Telegram for verification message"

echo "==> Done! Check Telegram for verification message, then run 'git push --force-with-lease' when ready."
```
30 changes: 30 additions & 0 deletions .detect-secrets.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# detect-secrets exclusion patterns (regex)
#
# Note: detect-secrets does not read this file by default. If you want these
# applied, wire them into your scan command (e.g. translate to --exclude-files
# / --exclude-lines) or into a baseline's filters_used.

[exclude-files]
# pnpm lockfiles contain lots of high-entropy package integrity blobs.
pattern = (^|/)pnpm-lock\.yaml$
# Generated output and vendored assets.
pattern = (^|/)(dist|vendor)/
# Local config file with allowlist patterns.
pattern = (^|/)\.detect-secrets\.cfg$

[exclude-lines]
# Fastlane checks for private key marker; not a real key.
pattern = key_content\.include\?\("BEGIN PRIVATE KEY"\)
# UI label string for Anthropic auth mode.
pattern = case \.apiKeyEnv: "API key \(env var\)"
# CodingKeys mapping uses apiKey literal.
pattern = case apikey = "apiKey"
# Schema labels referencing password fields (not actual secrets).
pattern = "gateway\.remote\.password"
pattern = "gateway\.auth\.password"
# Schema label for talk API key (label text only).
pattern = "talk\.apiKey"
# checking for typeof is not something we care about.
pattern = === "string"
# specific optional-chaining password check that didn't match the line above.
pattern = typeof remote\?\.password === "string"
Loading
Loading