com um clique
add-compact
// Add /compact command for manual context compaction. Solves context rot in long sessions by forwarding the SDK's built-in /compact slash command. Main-group or trusted sender only.
// Add /compact command for manual context compaction. Solves context rot in long sessions by forwarding the SDK's built-in /compact slash command. Main-group or trusted sender only.
Show what this AgentLite instance can do — installed skills, available tools, and system info. Read-only. Use when the user asks what the bot can do, what's installed, or runs /capabilities.
Quick read-only health check — session context, workspace mounts, tool availability, and task snapshot. Use when the user asks for system status or runs /status.
Delegate sub-tasks to remote ACP (Agent Client Protocol) peers such as Claude Code or Codex via the built-in acp_* host actions. Use when the user asks to hand work to another agent, wants a second opinion, or needs long / sandboxed execution that shouldn't block this chat.
Add Discord bot channel integration to AgentLite.
Add Gmail integration to AgentLite. Can be configured as a tool (agent reads/sends emails when triggered from WhatsApp) or as a full channel (emails can trigger the agent, schedule tasks, and receive replies). Guides through GCP OAuth setup and implements the integration.
Add image vision to AgentLite agents. Resizes and processes WhatsApp image attachments, then sends them to Claude as multimodal content blocks.
| name | add-compact |
| description | Add /compact command for manual context compaction. Solves context rot in long sessions by forwarding the SDK's built-in /compact slash command. Main-group or trusted sender only. |
Adds a /compact session command that compacts conversation history to fight context rot in long-running sessions. Uses the Claude Agent SDK's built-in /compact slash command — no synthetic system prompts.
Session contract: /compact keeps the same logical session alive. The SDK returns a new session ID after compaction (via the init system message), which the agent-runner forwards to the orchestrator as newSessionId. No destructive reset occurs — the agent retains summarized context.
Check if src/session-commands.ts exists:
test -f src/session-commands.ts && echo "Already applied" || echo "Not applied"
If already applied, skip to Phase 3 (Verify).
Merge the skill branch:
git fetch upstream skill/compact
git merge upstream/skill/compact
Note:
upstreamis the remote pointing toqwibitai/agentlite. If using a different remote name, substitute accordingly.
This adds:
src/session-commands.ts (extract and authorize session commands)src/session-commands.test.ts (unit tests for command parsing and auth)src/orchestrator.ts (both processGroupMessages and startMessageLoop)container/agent-runner/src/index.tsnpm test
npm run build
./container/build.sh
launchctl kickstart -k gui/$(id -u)/com.agentlite # macOS
# Linux: systemctl --user restart agentlite
npm run dev/compactgroups/{folder}/conversations/ (by the PreCompact hook)Compact boundary observed (confirms SDK actually compacted)compact_boundary was NOT observed, the response says "compact_boundary was not observed"@<assistant> /compactis_from_me), send: @<assistant> /compact/compact/compact, then another normal message in quick succession (same polling batch):runAgent calls)/compact in the batch are preserved (cursor advances to /compact's timestamp only) and processed on the next poll cycle@<assistant> /compact:/compact is consumed (cursor advanced) — it does NOT replay on future polls/compact + other messages in the same polling interval)requiresTrigger enabled) as a non-admin user, send bare /compact (no trigger prefix):/compact is consumed silentlyrequiresTrigger is false, a denial message IS sent because the sender is considered reachable/compact triggers itgit clone <your-fork> /tmp/agentlite-test
cd /tmp/agentlite-test
claude # then run /add-compact
npm run build
npm test
./container/build.sh
# Manual: send /compact from main group, verify compaction + continuation
# Manual: send @<assistant> /compact from non-main as non-admin, verify denial
# Manual: send @<assistant> /compact from non-main as admin, verify allowed
# Manual: verify no auto-compaction behavior
docs/SECURITY.md). Non-main groups are untrusted — a careless or malicious user could wipe the agent's short-term memory. However, the device owner (is_from_me) is always trusted and can compact from any group.PreCompact hook in the agent-runner archives the full transcript to conversations/ before the SDK compacts it./clear command (separate skill, separate semantics — /clear is a destructive reset)is_from_me) or main-group senders can use /compact. Other users are denied./compact fail to process, the error message says "Failed to process messages before /compact." The cursor advances past sent output to prevent duplicates; /compact remains pending for the next attempt.