Commit Graph

4135 Commits

Author SHA1 Message Date
Peter Steinberger
3a8d7f0817 fix: unify inbound dispatch pipeline 2026-01-23 22:58:54 +00:00
Peter Steinberger
333df812a3 test(compaction): cover staged pruning 2026-01-23 22:25:07 +00:00
Peter Steinberger
0a3b41e36f refactor: reuse ack reaction helper for whatsapp 2026-01-23 22:24:31 +00:00
Peter Steinberger
45822ef05c refactor: centralize ack reaction gating 2026-01-23 22:24:31 +00:00
Peter Steinberger
ee341fa491 feat(compaction): apply staged pruning 2026-01-23 22:23:23 +00:00
Peter Steinberger
56c0dc21ab feat(compaction): add staged helpers 2026-01-23 22:23:23 +00:00
Paul van Oorschot
3a4cdd3efd fix(discord): autoThread ack reactions + exec approval null handling (#1511)
* fix(discord): gate autoThread by thread owner

* fix(discord): ack bot-owned autoThreads

* fix(discord): ack mentions in open channels

- Ack reactions in bot-owned autoThreads
- Ack reactions in open channels (no mention required)
- DRY: Pass pre-computed isAutoThreadOwnedByBot to avoid redundant checks
- Consolidate ack logic with explanatory comment

* fix: allow null values in exec.approval.request schema

The ExecApprovalRequestParamsSchema was rejecting null values for optional
fields like resolvedPath, but the calling code in bash-tools.exec.ts passes
null. This caused intermittent 'invalid exec.approval.request params'
validation errors.

Fix: Accept Type.Union([Type.String(), Type.Null()]) for all optional string
fields in the schema. Update test to reflect new behavior.

* fix: align discord ack reactions with mention gating (#1511) (thanks @pvoo)

---------

Co-authored-by: Wimmie <wimmie@tameson.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-23 20:01:15 +00:00
Peter Steinberger
a530eebe29 fix: quiet auth probe diagnostics 2026-01-23 19:53:01 +00:00
Peter Steinberger
571257b972 fix: handle gateway slash command replies in TUI 2026-01-23 19:48:22 +00:00
Peter Steinberger
55299c037f fix: hide usage errors in status 2026-01-23 19:43:26 +00:00
Peter Steinberger
08d11149a0 feat: add models status auth probes 2026-01-23 19:28:55 +00:00
Peter Steinberger
1c71124ada fix: expand linux service PATH handling 2026-01-23 19:16:41 +00:00
Robby
d167ad9e9c fix(linux): add user bin directories to systemd service PATH for skill installation (#1512)
* fix(linux): add user bin directories to systemd service PATH

Fixes #1503

On Linux, the systemd service PATH was hardcoded to only include system
directories (/usr/local/bin, /usr/bin, /bin), causing binaries installed
via npm global with custom prefix or node version managers to not be found.

This adds common Linux user bin directories to the PATH:
- ~/.local/bin (XDG standard, pip, etc.)
- ~/.npm-global/bin (npm custom prefix)
- ~/bin (user's personal bin)
- Node version manager paths (nvm, fnm, volta, asdf)
- ~/.local/share/pnpm (pnpm global)
- ~/.bun/bin (Bun)

User directories are added before system directories so user-installed
binaries take precedence.

🤖 AI-assisted (Claude Opus 4.5 via Clawdbot)
📋 Testing: Existing unit tests pass (7/7)

* test: add comprehensive tests for Linux user bin directory resolution

- Add dedicated tests for resolveLinuxUserBinDirs() function
- Test path ordering (extraDirs > user dirs > system dirs)
- Test buildMinimalServicePath() with HOME set/unset
- Test platform-specific behavior (Linux vs macOS vs Windows)

Test count: 7 → 20 (+13 tests)

* test: add comprehensive tests for Linux user bin directory handling

- Test Linux user directories included when HOME is set
- Test Linux user directories excluded when HOME is missing
- Test path ordering (extraDirs > user dirs > system dirs)
- Test platform-specific behavior (Linux vs macOS vs Windows)
- Test buildMinimalServicePath() with HOME in env

Covers getMinimalServicePathParts() and buildMinimalServicePath()
for all Linux user bin directory edge cases.

Test count: 7 → 16 (+9 tests)
2026-01-23 19:06:14 +00:00
Peter Steinberger
9f5cee9493 fix(exec-approvals): stabilize allowlist ids (#1521) 2026-01-23 19:00:45 +00:00
Peter Steinberger
72d505caed fix: surface gateway slash commands in TUI 2026-01-23 18:58:41 +00:00
Peter Steinberger
d2f845ed0e fix: forward unknown TUI slash commands 2026-01-23 18:41:02 +00:00
Peter Steinberger
6b88bb7ac6 fix: add per-channel markdown table conversion (#1495) (thanks @odysseus0) 2026-01-23 18:39:25 +00:00
Peter Steinberger
84288d059a test: move gateway server coverage to e2e 2026-01-23 18:34:33 +00:00
Peter Steinberger
817084de60 test: move auto-reply directive coverage to e2e 2026-01-23 18:34:33 +00:00
Peter Steinberger
04a323bb5b test: consolidate auto-reply unit coverage 2026-01-23 18:34:33 +00:00
Peter Steinberger
7129952819 test: dedupe CLI onboard auth cases 2026-01-23 18:34:33 +00:00
Peter Steinberger
1e0fbeb291 test: trim async waits in webhook tests 2026-01-23 18:34:33 +00:00
Peter Steinberger
885b9f4fbc test: stub heavy tools in agent tests 2026-01-23 18:34:33 +00:00
Peter Steinberger
228c3cf31f test: speed up default test env 2026-01-23 18:34:33 +00:00
Peter Steinberger
1c51871903 fix: normalize session lock path 2026-01-23 18:34:33 +00:00
George Zhang
4490e8f0f0 feat(telegram): convert markdown tables to bullet points (#1495)
Tables render poorly in Telegram (pipes stripped, whitespace collapses).
This adds a 'tableMode' option to markdownToIR that converts tables to
nested bullet points, which render cleanly on mobile.

- Add tableMode: 'flat' | 'bullets' to MarkdownParseOptions
- Track table state during token rendering
- Render tables as bullet points with first column as row labels
- Apply bold styling to row labels for visual hierarchy
- Enable tableMode: 'bullets' for Telegram formatter

Closes #TBD
2026-01-23 18:00:51 +00:00
George Zhang
e0f62ed11a daemon: prefer symlinked paths over realpath for stable service configs (#1505)
When installing the LaunchAgent/systemd service, the CLI was using
fs.realpath() to resolve the entry.js path, which converted stable
symlinked paths (e.g. node_modules/clawdbot) into version-specific
paths (e.g. .pnpm/clawdbot@X.Y.Z/...).

This caused the service to break after pnpm updates because the old
versioned path no longer exists, even though the symlink still works.

Now we prefer the original (symlinked) path when it's valid, keeping
service configs stable across package version updates.
2026-01-23 11:52:26 +00:00
Peter Steinberger
9e1ce76cfb fix: restart gateway after update by default 2026-01-23 11:50:19 +00:00
Peter Steinberger
a42f924a14 chore: speed up tests and update opencode models 2026-01-23 11:36:32 +00:00
Peter Steinberger
d5a382a8d9 fix: stabilize ci tests 2026-01-23 09:52:22 +00:00
Peter Steinberger
d6d36df9a0 Merge origin/main into fix-discord-accountId 2026-01-23 09:15:44 +00:00
Sergii Kozak
82baf58263 Discord Actions: Update tests for optional config parameter 2026-01-23 01:11:54 -08:00
Peter Steinberger
c7c17fab59 fix: always offer TUI hatch 2026-01-23 09:07:43 +00:00
Peter Steinberger
62a3e08012 test: fix discord action mocks 2026-01-23 09:06:04 +00:00
Peter Steinberger
1118b98947 fix: honor accountId in message actions 2026-01-23 09:06:04 +00:00
Sergii Kozak
e9791cdbfa Discord: preserve accountId in message actions (refs #1489) 2026-01-23 09:06:04 +00:00
Peter Steinberger
be3cb5776c fix: keep core tools when allowlist is plugin-only 2026-01-23 09:02:17 +00:00
Sergii Kozak
b629fe6ded Discord: honor accountId across channel actions (refs #1489) 2026-01-23 00:50:50 -08:00
Peter Steinberger
9961d6765b fix: preserve PNG alpha fallback (#1491) (thanks @robbyczgw-cla) 2026-01-23 08:45:50 +00:00
Robby
74380873c7 fix(media): preserve alpha channel for transparent PNGs (#1473) 2026-01-23 08:43:01 +00:00
Sergii Kozak
b683a3c933 Discord: preserve accountId in message actions (refs #1489) 2026-01-22 23:51:58 -08:00
Peter Steinberger
36d5748061 test: consolidate pi-tools shards 2026-01-23 07:34:57 +00:00
Peter Steinberger
7d8c92dbad test: speed up history and cron suites 2026-01-23 07:34:57 +00:00
Ian Hildebrand
a8f4b0a076 fix: support direct token and provider in auth apply commands (#1485) 2026-01-23 07:27:52 +00:00
Peter Steinberger
bc34d22972 test: streamline slow suites 2026-01-23 07:26:19 +00:00
Peter Steinberger
e98f97b5ee fix: log config update in copilot auth 2026-01-23 07:23:52 +00:00
Hiren Patel
2cf551b153 [AI Assisted] Usage: add Google Antigravity usage tracking (#1490)
* Usage: add Google Antigravity usage tracking

- Add dedicated fetcher for google-antigravity provider
- Fetch credits and per-model quotas from Cloud Code API
- Report individual model IDs sorted by usage (top 10)
- Include comprehensive debug logging with [antigravity] prefix

* fix: refine antigravity usage tracking (#1490) (thanks @patelhiren)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-23 07:17:59 +00:00
Peter Steinberger
6272315b69 fix: stop gateway before uninstall 2026-01-23 07:17:42 +00:00
Peter Steinberger
de455683af Revert "fix: improve GitHub Copilot integration"
This reverts commit b69e70668d.
2026-01-23 07:14:00 +00:00
Peter Steinberger
fb4bbfe6ec Revert "fix: set Copilot user agent header"
This reverts commit 86c40e5dca.
2026-01-23 07:14:00 +00:00