Commit Graph

7529 Commits

Author SHA1 Message Date
Peter Steinberger
f7432c75d7 chore: sync plugin versions for 2026.1.22 2026-01-23 08:18:55 +00:00
Peter Steinberger
df8da7b88e fix: allow windows spawn in test parallel 2026-01-23 07:52:04 +00:00
Peter Steinberger
a01d5aa9a7 docs: fix 2026.1.21 changelog placement 2026-01-23 07:51:40 +00:00
Peter Steinberger
01bb95c039 test: split vitest into unit and gateway 2026-01-23 07:34:57 +00: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
b1e9cc7841 docs: note vitest worker cap 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
Peter Steinberger
2473ea5e94 Revert "fix: treat copilot oauth tokens as non-expiring"
This reverts commit 486dd8e071.
2026-01-23 07:14:00 +00:00
Peter Steinberger
d7a0de0bfd docs: fix Lobster changelog placement 2026-01-23 07:12:13 +00:00
Peter Steinberger
0d63f0879a fix: stabilize cron log wait 2026-01-23 07:11:01 +00:00
Peter Steinberger
9c9bd7bfdc fix: sanitize assistant session text (#1456) (thanks @zerone0x) 2026-01-23 07:05:31 +00:00
Peter Steinberger
09f78e2066 fix: prioritize Anthropic token auth option 2026-01-23 07:04:18 +00:00
zerone0x
668f8a1f29 fix: sanitize tool call text in sessions-helpers extractAssistantText
Adds sanitization to extractAssistantText in sessions-helpers.ts to
prevent tool call text from leaking to users. Previously, messages
retrieved from chat history via sessions-helpers.ts could expose:

- Minimax XML tool calls (<invoke>...</invoke>)
- Downgraded tool call markers ([Tool Call: name (ID: ...)])
- Thinking tags (<think>...</think>)

This fix:
- Exports the stripping functions from pi-embedded-utils.ts
- Adds a new sanitizeTextContent helper in sessions-helpers.ts
- Updates extractAssistantText to sanitize before returning
- Updates extractMessageText in commands-subagents.ts to sanitize

Fixes #1269

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-23 07:03:26 +00:00
Peter Steinberger
981cf00d19 fix(tui): hide off think/verbose in footer 2026-01-23 07:02:56 +00:00
Peter Steinberger
5c1f8f6f4d docs: highlight compaction safeguards in changelog 2026-01-23 06:41:23 +00:00
Peter Steinberger
4134a0e457 test: avoid double cron finish wait 2026-01-23 06:40:14 +00:00
Peter Steinberger
0598561c63 test: harden onboarding/discord/telegram test setup 2026-01-23 06:38:16 +00:00
Peter Steinberger
80f03adc9c test: stabilize cron + async search timings 2026-01-23 06:38:16 +00:00
Dave Lauer
0c045bf135 feat(compaction): add adaptive chunk sizing, progressive fallback, and UI indicator (#1466)
* fix(ui): allow relative URLs in avatar validation

The isAvatarUrl check only accepted http://, https://, or data: URLs,
but the /avatar/{agentId} endpoint returns relative paths like /avatar/main.
This caused local file avatars to display as text instead of images.

Fixes avatar display for locally configured avatar files.

* fix(gateway): resolve local avatars to URL in HTML injection and RPC

The frontend fix alone wasn't enough because:
1. serveIndexHtml() was injecting the raw avatar filename into HTML
2. agent.identity.get RPC was returning raw filename, overwriting the
   HTML-injected value

Now both paths resolve local file avatars (*.png, *.jpg, etc.) to the
/avatar/{agentId} endpoint URL.

* feat(compaction): add adaptive chunk sizing and progressive fallback

- Add computeAdaptiveChunkRatio() to reduce chunk size for large messages
- Add isOversizedForSummary() to detect messages too large to summarize
- Add summarizeWithFallback() with progressive fallback:
  - Tries full summarization first
  - Falls back to partial summarization excluding oversized messages
  - Notes oversized messages in the summary output
- Add SAFETY_MARGIN (1.2x) buffer for token estimation inaccuracy
- Reduce MIN_CHUNK_RATIO to 0.15 for very large messages

This prevents compaction failures when conversations contain
unusually large tool outputs or responses that exceed the
summarization model's context window.

* feat(ui): add compaction indicator and improve event error handling

Compaction indicator:
- Add CompactionStatus type and handleCompactionEvent() in app-tool-stream.ts
- Show '🧹 Compacting context...' toast while active (with pulse animation)
- Show '🧹 Context compacted' briefly after completion
- Auto-clear toast after 5 seconds
- Add CSS styles for .callout.info, .callout.success, .compaction-indicator

Error handling improvements:
- Wrap onEvent callback in try/catch in gateway.ts to prevent errors
  from breaking the WebSocket message handler
- Wrap handleGatewayEvent in try/catch with console.error logging
  to isolate errors and make them visible in devtools

These changes address UI freezes during heavy agent activity by:
1. Showing users when compaction is happening
2. Preventing uncaught errors from silently breaking the event loop

* fix(control-ui): add agentId to DEFAULT_ASSISTANT_IDENTITY

TypeScript inferred the union type without agentId when falling back to
DEFAULT_ASSISTANT_IDENTITY, causing build errors at control-ui.ts:222-223.
2026-01-23 06:32:30 +00:00
Peter Steinberger
0d725a3588 fix: reduce Slack WebClient retries 2026-01-23 06:31:53 +00:00
Peter Steinberger
ea165b6fac fix: fall back to non-PTY exec 2026-01-23 06:27:26 +00:00
Peter Steinberger
12700696f8 test: trim plugin + telegram test setup 2026-01-23 06:22:09 +00:00
Peter Steinberger
9c5a339d0e test(memory): speed up batch coverage 2026-01-23 06:22:09 +00:00
Peter Steinberger
35e20753e7 test(agents): merge sessions_spawn group announce coverage 2026-01-23 06:22:09 +00:00
Peter Steinberger
e2a98bc69c test(commands): streamline onboarding tests 2026-01-23 06:22:09 +00:00
Peter Steinberger
9513dec35f test(gateway): consolidate server suites for speed 2026-01-23 06:22:09 +00:00
ganghyun kim
d72a8a5cd6 fix: clarify Discord onboarding hint (#1487)
Thanks @kyleok.

Co-authored-by: Ganghyun Kim <58307870+kyleok@users.noreply.github.com>
2026-01-23 06:11:41 +00:00
Peter Steinberger
cf2d0645fb fix: always skip browser opens in tests 2026-01-23 06:00:21 +00:00
Peter Steinberger
389cafd078 fix: extend gateway chat test timeout on windows 2026-01-23 05:55:35 +00:00
Peter Steinberger
a9b0f99d48 fix: gateway summary lookup + test browser opens 2026-01-23 05:54:51 +00:00
Peter Steinberger
eeda206294 docs: update media auto-detect 2026-01-23 05:47:16 +00:00
Peter Steinberger
436cb68861 test: add media auto-detect coverage 2026-01-23 05:47:13 +00:00
Peter Steinberger
09933a74cc feat: improve media auto-detect 2026-01-23 05:47:09 +00:00
Peter Steinberger
0892eefa2b docs: expand slack replyToModeByChatType examples 2026-01-23 05:38:28 +00:00
Peter Steinberger
a1878d0d3c feat: add slack replyToModeByChatType overrides 2026-01-23 05:38:28 +00:00
Peter Steinberger
281c7e9905 fix: improve matrix direct room resolution (#1436) (thanks @sibbl) (#1486)
* fix: improve matrix direct room resolution (#1436) (thanks @sibbl)

* docs: update changelog for matrix fix (#1486) (thanks @sibbl)
2026-01-23 05:38:04 +00:00
Sebastian Schubotz
78b8f172a3 fix(matrix): broken import and enhance direct room resolve logic (#1436)
* fix(matrix): fix broken import again

* fix(matrix): improve error handling and fallback logic in resolveDirectRoomId
2026-01-23 05:35:01 +00:00
Stefan Galescu
aa3972d93d feat(slack): add dm-specific replyToMode configuration (#1442)
Adds support for separate replyToMode settings for DMs vs channels:

- Add channels.slack.dm.replyToMode for DM-specific threading
- Keep channels.slack.replyToMode as default for channels
- Add resolveSlackReplyToMode helper to centralize logic
- Pass chatType through threading resolution chain

Usage:
```json5
{
  channels: {
    slack: {
      replyToMode: "off",     // channels
      dm: {
        replyToMode: "all"    // DMs always thread
      }
    }
  }
}
```

When dm.replyToMode is set, DMs use that mode; channels use the
top-level replyToMode. Backward compatible when not configured.
2026-01-23 05:13:23 +00:00
Peter Steinberger
865ede2731 test: harden docker onboarding waits 2026-01-23 05:10:59 +00:00
Travis Irby
f653b57aee hydrate files from thread root message on replies
When replying to a Slack thread, files attached to the root message were
  not being fetched. The existing `resolveSlackThreadStarter()` fetched the
  root message text via `conversations.replies` but ignored the `files[]`
  array in the response.

  Changes:
  - Add `files` to `SlackThreadStarter` type and extract from API response
  - Download thread starter files when the reply message has no attachments
  - Add verbose log for thread starter file hydration

  Fixes issue where asking about a PDF in a thread reply would fail because
  the model never received the file content from the root message.
2026-01-23 05:10:36 +00:00
Neo
e1f68407fb fix: follow soul.md more closely (#1434)
* Agents: honor SOUL.md persona guidance

* fix: harden SOUL.md detection (#1434) (thanks @neooriginal)

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-01-23 05:00:13 +00:00
Tak hoffman
bf4a5b3987 CLI: fix Windows gateway startup 2026-01-23 04:47:01 +00:00
Peter Steinberger
74cfee1395 docs: note #1482 in changelog 2026-01-23 04:38:08 +00:00