Compiled entirely from public activity on meta.discourse.org, X, and GitHub.
💬 meta.discourse.org
Sam shipped support for Gemini’s new Interactions API and sought additional testing for its use in Discourse Workflows. He also responded to AI reliability and configuration issues, planning stronger Daily Summary validation, troubleshooting invalid structured output, and warning about risks in username-aware persona prompts. Separately, he explored making admins behave like regular users by default unless they explicitly elevate privileges.
🐦 On social
Discussion centered on AI coding harnesses and agent safety: term-llm’s auto mode, containerized workers, transcript inspection, model interfaces, and the subtleties of avoiding approval fatigue. Other notable posts examined model-review costs, prompt tuning, and API spending controls, while replies frequently offered technical corrections, implementation details, and direct questions to tool providers.
- 21 posts and 22 replies captured in the last 7 days
- Top by engagement: accessible from anywhere in the world, open source, I…, The prompt fatigue (constant yes clicking) is higher r…, Did you just say Astra in 2 weeks?
Most engaged tweets:
- reply to @nateberkopec — accessible from anywhere in the world, open source, I tend to ship instructions to random workers when I am bored and waiting in a doctors office for example. protocol is a revers…
0 likes · 0 reposts · 0 replies - reply to @simonw — The prompt fatigue (constant yes clicking) is higher risk than auto mode, it is very interesting to compare various implementation of auto mode, so much nuance there
0 likes · 0 reposts · 0 replies - reply to @thsottiaux — Did you just say Astra in 2 weeks?
0 likes · 0 reposts · 0 replies - post — 2 qwen-3.8-max (high) reviews of a reasonably complicated change, 7% of my monthly opencode go quota - not judging here, paying API would probably come in at similar numbers, prob…
0 likes · 0 reposts · 0 replies - post — I think I finally cracked my claws system prompt, it has not gone 100% potty mouth, but swears enough to be interesting
0 likes · 0 reposts · 0 replies
🛠️ GitHub — Sam’s Commits
samsaffron/term-llm
I need explicit workspace access confirmation before I can inspect /home/agent/.cache/jarvis/weekly-report-repos/term-llm. Please authorize read-only access to that repository path.
Key commits:
64edaa8— test: make integration tests deterministic2bcc605— fix(tools): inherit approvals across Git worktreesde0e108— fix: harden persistence and lifecycle handlingd8dfba6— feat(tools): remember workspace approvals393bea2— feat(llm): add OpenCode Go provider
discourse/discourse
Over the last seven days, Sam focused entirely on Discourse AI, adding Gemini’s Interactions API with support for thinking controls, service tiers, Maps, code execution, and generated-image handling. He also improved cross-provider reliability by preserving participant identities in vLLM-compatible prompts and making streamed JSON repair robust without destroying pretty-printed whitespace, backed by extensive regression tests.
Key commits:
c6d0e54— FIX: Preserve whitespace in streamed JSON (#42339)11d2abf— FIX: Embed user IDs in vLLM prompts (#42295)7b04c3d— FEATURE: Add Gemini Interactions API support (#42206)
discourse/dv
Sam focused on expanding dv’s bundled AI-agent tooling with end-to-end support for Google Antigravity (agy), including container installation, aliases, prompt execution, and updates. He also enabled reuse of host OAuth credentials inside containers and added configuration migrations, tests, and documentation to make the integration reliable for existing users.
Key commits:
7cf82e0— FEATURE: add agy
tmm1/rbtrace
Sam focused on preparing rbtrace 0.5.5, integrating Ruby 4.1 compatibility updates and fixes for heap/shape dumps and traced expressions. He also hardened the native C extension’s MessagePack command handling by validating tracer IDs and input lengths and preventing memory leaks, while safely handling allocation failures. Overall, the work aimed to improve forward compatibility and native-code reliability.
Key commits:
6ae1dec— Fix native input and allocation handlingfabc073— Fix native command validation and cleanupe3a99c1— changelog and bump034c14c— Merge pull request #109 from rwstauner/deprecated
SamSaffron/dotfiles
Sam refined the Neovim plugin-update workflow by disabling lazy.nvim’s built-in update checker. This makes the quarantined updater the sole source of truth, preventing premature notices for plugin commits that have not yet passed quarantine.
Key commits:
d919163— config: disable lazy.nvim update checker
🤖 Jarvis — Public Repo Work
No public Jarvis commits this week.
⤴️ GitHub — Pull Requests
16 PRs this week:
- ✅ SamSaffron/term-llm#1017 (diff) — fix: File-history total-size cap is never enforced during a long-running process closed
- Enforce
MaxTotalBytesduring ordinaryRecordChangetraffic instead of only during startup GC. - Amortize the lightweight size check: run it after at most 8 MiB of retained input (using a proportional interval for smaller caps) or 64 metadata-on…
- Enforce
- ✅ SamSaffron/term-llm#1013 (diff) — fix: A stopping widget can erase and orphan its concurrent replacement closed
- Serialize each widget’s complete stop lifecycle with the same mutex used for starts, including process termination, waiting, and Unix-socket cleanup. - Use a lock-aware stop helper from startup cancellation paths that already hold the lifecycle mut…
- ✅ SamSaffron/term-llm#1016 (diff) — fix: Stateful web runs continue after session persistence fails closed
- Fail stateful runs before
onStartor provider execution when a configured session store cannot create or hydrate the requested session. - Preserve existing execution behavior for explicitly stateless runs and runtimes with persistence disabled. -…
- Fail stateful runs before
- ✅ SamSaffron/term-llm#1012 (diff) — fix: A lost trigger response hides an already-running queued agent closed
- Reconcile a failed
queue_agenttrigger response against/v2/runs?job_id=...using a detached, two-second context. - Return the original job/run IDs when the jobs server already admitted the run, rather than reporting a misleading execution fail…
- Reconcile a failed
- ✅ SamSaffron/term-llm#1010 (diff) — feat: add conversation branching and path notes merged
- ✅ SamSaffron/term-llm#1000 (diff) — feat: add conversation branching closed
Add first-class conversation branching to both the web UI and TUI while keeping each branch as an ordinary linear session. - add atomic, revision-safe branch persistence with source-scoped idempotency - continue stale durable response anchors into ch…
- ✅ SamSaffron/term-llm#992 (diff) — fix: Telegram callback write failures bypass transcript reconciliation closed
- Return callback persistence errors from
runStoreOpWithoutCancelwhile preserving its existing logging and timeout behavior. - Mark the Telegram callback store queue degraded when a queued operation fails, so the existing final `ReplaceMessages(ca…
- Return callback persistence errors from
- ✅ SamSaffron/term-llm#1002 (diff) — fix: Stopping the agy proxy can nil its transport under an active request closed
- Snapshot the agy proxy’s transport under
Server.muwhenforwardbegins, then use that stable pointer for the upstream round trip. - Return a service-unavailable response if a handler starts after shutdown has already cleared the transport. - Ad…
- Snapshot the agy proxy’s transport under
- ✅ SamSaffron/term-llm#1003 (diff) — fix: Shutdown can strand a newly claimed job without executing it closed
- Serialize run admission with manager shutdown under the existing manager mutex. - If shutdown wins after a worker commits a claim but before execution is admitted, return that still-claimed run to
queuedand clear itsworker_idinstead of leavi…
- Serialize run admission with manager shutdown under the existing manager mutex. - If shutdown wins after a worker commits a claim but before execution is admitted, return that still-claimed run to
- ✅ SamSaffron/term-llm#993 (diff) — fix: Telegram turn-write failures bypass final transcript reconciliation closed
- Made Telegram store helpers report whether writes succeeded. - Marked a turn persistence-degraded when direct system/user/fallback transcript writes fail. - Marked the callback persistence queue degraded when an enqueued operation executes but retu…
- ✅ discourse/discourse#42339 (diff) — FIX: Preserve whitespace in streamed JSON merged
Escape control characters only within JSON string values so pretty-printed formatting remains intact. Retain lexical state across streaming chunks to correctly handle split strings, escapes, and control characters.
- 🟢 discourse/discourse#42336 (diff) — FEATURE: Add links to sidebar with drag and drop opened
Allow dragging links from other windows and current window direct into the sidebar
- ✅ discourse/discourse#42295 (diff) — FIX: Embed user IDs in vLLM prompts merged
vLLM accepts “user” as a parameter but depends on templates to actually present to LLM. Out of the box both Qwen and DeepSeek throw this info away. Username is important for Discourse discussions, so we now embed username vs supply to the API
- ✅ SamSaffron/term-llm#998 (diff) — feat: add authorized @agent delegation mentions closed
Adds explicit
@agent:<name>delegation mentions to the chat TUI on top of the existing project file mention picker. Examples: ```text Ask @agent:codebase to trace the parser Have @agent:reviewer challenge the proposed fix Review @internal/mentions/… - ✅ SamSaffron/term-llm#996 (diff) — feat: add Claude-style @ file autocomplete closed
Adds project-scoped
@file and directory autocomplete to the chat TUI, following Claude Code 2.1.220’s submit-time mention semantics. Typing@fuzzy-finds project paths. Selection inserts ordinary text: ```text @internal/mentions/parse.go @“docs/… - ✅ discourse/discourse#42206 (diff) — FEATURE: Add Gemini Interactions API support merged
Move default Gemini models to the Interactions API and add provider options for thinking, service tiers, and native Maps and code execution tools. Preserve generated-image attachments in model messages and ensure thinking blocks close cleanly before …
🐛 GitHub — Issues
No issue activity this week.
👀 GitHub — Reviews
3 reviews this week:
- discourse/discourse#42389 — FIX: Prevent RAG chunking from corrupting CJK text commented
- discourse/discourse#42299 — I18N: Translations for the translations feature approved
- discourse/discourse#42294 — FIX: Ensure language header selections do not silently get added to ‘Languages I approved