Compiled entirely from public activity on meta.discourse.org, X, and GitHub.
💬 meta.discourse.org
Sam’s week focused on Discourse AI streaming reliability, responding to reports of dropped parallel tool calls with Mistral and a Gemini decoding bug that could truncate replies, with fixes underway. He also highlighted an automation setup for updating a Discourse post from an X feed and traced a code-block copying bug that loses leading spaces back to the button’s original 2020 implementation.
🐦 On social
AI tooling and hands-on agent workflows dominated the week, with posts on tracking OpenAI’s “28 days of shipping” through Discourse workflows, instant steering for harness builders, and a personal Jarvis extension with an LLM-anonymised screenshot. Other highlights included generating and queueing music playlists through term-llm and praise for Nano banana 2.1. Replies were technically engaged and pragmatic, discussing third-party harness access and vendor restrictions, describing agents that produce evidence and expand test suites, and expressing caution about relying entirely on codemode.
- 14 posts and 11 replies captured in the last 7 days
- Top by engagement: 28 days of shipping at OpenAI by @thsottiaux is now tr…, A tiny bit about instant steer for harness builders:, My personal extension for new convo on Jarvis , screen…
Most engaged tweets:
- post — 28 days of shipping at OpenAI by @thsottiaux is now tracked at: (automatically using @discourse workflows and leaning on Sol to extract info from Tibo’s tweets) — 6 likes · 0 reposts · 0 replies · 778 views
- post — A tiny bit about instant steer for harness builders: — 1 likes · 1 reposts · 1 replies · 721 views
- post — My personal extension for new convo on Jarvis , screenshot anonymised using llm , keeping stuff I am happy to share — 1 likes · 1 reposts · 0 replies · 726 views
- post — Nano banana 2.1 looks like a nice step forward! - great job team … cc @OfficialLoganK — 1 likes · 0 reposts · 1 replies · 559 views
- post — I love creating playlists with state of art models and queueing them directly on my phone via term llm app - listening to lots less podcasts due to this — 0 likes · 1 reposts · 0 replies · 746 views
🛠️ GitHub — Sam’s Commits
discourse/discourse
Over the last seven days, Sam focused on making Discourse AI more flexible and reliable: separating agent identity from language-model selection, and introducing shared work budgets across bot replies, delegated agents, and tool calls. He strengthened conversation-history handling and prevented overlapping replies from racing, while improving MCP protocol negotiation and fixing streaming issues in Gemini and OpenAI-compatible tool calls. Outside AI, he fixed code-block copying so indentation, trailing spaces, and final newlines are preserved.
Key commits:
008b5fc— FIX: Handle AI completion edge cases (#44460)074b846— FIX: Drop unsummarizable AI history safely (#44404)5628c3d— FEATURE: Add shared AI turn work budgets (#44362)b8d8fea— FEATURE: Separate AI agent identity from models (#43676)5712141— FIX: Preserve code block whitespace (#44310)
SamSaffron/discourse-blog
Over the last 7 days, Sam focused on making discourse-blog safer and more reliable: blocking public blog and review access when anonymous downloads are restricted, and preserving review-snapshot uploads until reviews are revoked or expire. He also made the reader’s syntax highlighter independent of core runtime assets, reducing deployment dependencies. Expanded regression coverage and upgrade documentation support these changes, particularly upload retention and cleanup during upgrades.
Key commits:
bbeb11f— fix: Harden blog upload access and retention
tmm1/rbtrace
Over the last 7 days, Sam focused on leaner packaging for tmm1/rbtrace, merging a contribution that reduces gem size by excluding unnecessary repository files. The change limits packaged contents to runtime directories and essential documentation, rather than including every tracked file. Sam’s only qualifying commit was this merge, so his activity was integration of a packaging improvement rather than new tracing functionality.
Key commits:
1c42652— Merge pull request #111 from yuri-zubov/reduce-gem-size
🤖 Jarvis — Public Repo Work
Agent-authored public commits, typically guided by Sam during implementation work.
couchbase/couchbase-ruby-client
Over the last seven days, Jarvis, acting under Sam’s direction, focused on making Couchbase’s precompiled Ruby gems safer to load alongside other C++ extensions. The change hides symbols from the statically bundled C++ runtime on ELF platforms, preventing Couchbase’s private runtime from interfering with the system runtime and causing crashes in extensions such as mini_racer.
Key commits:
17ba3d9— Hide statically linked libstdc++ symbols from the extension (#254)
⤴️ GitHub — Pull Requests
7 PRs this week:
- ✅ discourse/discourse#44460 (diff) — FIX: Handle AI completion edge cases merged
Retry streaming requests that end unexpectedly before producing output, exclude inaccessible PM posts from history snapshots, and prevent token report totals from overflowing 32-bit integers.
- ✅ SamSaffron/term-llm#1223 (diff) — Add audio support to show_media merged
show_mediacan now display audio as well as images and video. The design is inplans/show-media-audio.md. - Files are identified by their bytes, not their extension: MP3 (with or without an ID3 tag), WAV (including streamed WAV of unknown length)… - ✅ SamSaffron/term-llm#1222 (diff) — docs: Correct the widget credential-stripping guarantee closed
The widget security model unconditionally claimed that widgets do not receive the Web UI token. Direct widget requests authenticated using
x-api-keyretain that header when forwarded, so that guarantee was false. Updated only the security paragraph… - ✅ discourse/discourse#44404 (diff) — FIX: Drop unsummarizable AI history safely merged
Fall back to a checkpoint that omits older history when compression cannot fit the prompt, preserving recent turns and warning agents not to repeat completed tool actions. Default unspecified agent work budgets to 500,000 tokens instead of the model …
- ✅ discourse/discourse#44362 (diff) — FEATURE: Add shared AI turn work budgets merged
Track output and tool work across a bot reply, including delegated agents and tool-triggered completions. Prepare oversized conversation history safely, while preserving existing context when it cannot be compacted. Serialize bot replies to prevent o…
- 🟢 discourse/discourse#44396 (diff) — FEATURE: Share AI artifacts and conversations opened
Add standalone and conversation-linked artifact sharing, including public views, embeds, link management, and artifact embed options.
- ✅ discourse/discourse#43676 (diff) — FEATURE: Separate AI agent identity from models merged
Use agents as conversation recipients and select language models independently. Resolve and validate agent/model choices across personal messages, chat, and streamed replies, retaining them for follow-ups. Retire model companion-user creation and use…
🐛 GitHub — Issues
No issue activity this week.
👀 GitHub — Reviews
3 reviews this week:
- discourse/discourse#44403 — FIX: Correct AI model routing, Chat labels and bot navigation approved
- discourse/discourse#44398 — FIX: Skip users who mute or ignore the inviter in chat channel invites [pt-3a628 approved
- discourse/discourse#44321 — PERF: Reduce cold block reads in post searches approved