Skip to content

#nocontext, movers prompt fixes, LOG_WIDTH, quieter logs, PR rule - #38

Open
robdevops wants to merge 30 commits into
mainfrom
claude/compassionate-heisenberg-pz23nq
Open

robdevops wants to merge 30 commits into
mainfrom
claude/compassionate-heisenberg-pz23nq

Conversation

@robdevops

@robdevops robdevops commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

What

  • #nocontext: put it in a message that tags the bot (or a DM) and the model gets only that message: no chat history, no replied-to message or its photo, and the tag is removed first. Documented in README.md and CLAUDE.md.
  • Movers explanations: the list is sent once with no transcript (it was in the prompt twice, plus about 20 earlier messages), which saves a few hundred to ~1,000 input tokens per list.
  • Glued xAI replies: text written before a search call in the same stream is dropped, and only the text after the last search is kept. It logs xAI wrote N chars before a search call when it acts.
  • Logs:
    • The summary line shows the provider's own searches (0 tools, 2 searches).
    • MCP tool lists are one line, cut at a whole name at LOG_WIDTH characters (new env var, default 95, 0 = no limit).
    • The MCP library's Unknown SSE event: ping keepalive warning is filtered out.
  • PR rule in CLAUDE.md: open a PR right after pushing a claude/* branch if it has none, so Claude Code shows the PR/CI button. Never merge it unless asked.

Testing

make check on Python 3.13.5: ruff clean, 299 tests pass. Each behaviour change has a test; the movers, glue and #nocontext tests fail on the old code. Not run against a live bot or live xAI.

🤖 Generated with Claude Code

https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw

claude added 26 commits October 12, 2026 02:32
New databases get the compact table; tools/period_cache_without_rowid.py converts an existing one.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
…evops fork

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
…eplies

"at close" matched no gate keyword, so the model got the no-tools prompt and
answered from the transcript, opening with "(no tool calls needed)".

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
…heisenberg-pz23nq

# Conflicts:
#	lib/telegram/handlers.py
…ssages

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
…shows

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
A remote MCP server sends a ping event every 30 s, which the client logs as a warning.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
…ary line

With server-side search the model can write a draft, search, then keep writing into the same text,
so the reply held the draft glued to the answer. Only the text after the last search call is kept.
The per-request summary line now shows the provider's own searches next to the tool calls.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Only the movers list itself goes in the transcript; the rest of the history has nothing to do with it.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
The tag is removed before the model sees it. No chat history, no replied-to message or photo.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
@robdevops robdevops changed the title Open a PR right after pushing a claude/* branch #nocontext, movers prompt fixes, LOG_WIDTH, quieter logs, PR rule Oct 21, 2026
… bot runs

SIGNALCLI_PATH turns it on; SIGNAL_ALLOWED_SENDERS lists who may DM it (and get Sharesight data).
Messages and replies travel over the daemon's JSON-RPC socket. History is kept per chat in signal_messages.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
The bot then never starts signal-cli: it connects to the socket, retrying with a growing pause, and asks
the daemon for its account over JSON-RPC. SIGNALCLI_BIN keeps working and loses to the socket when both are set.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
…only setting

The bot only connects to the socket of a daemon you run. SIGNALCLI_BIN, the daemon subprocess and the CLI listAccounts call are gone.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014k4kywyN5dAo39izUPvxbw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants