Compiled entirely from public activity on meta.discourse.org, X, and GitHub.
💬 meta.discourse.org
Sam responded to community reports about captioning, tracking, and emoji handling. He confirmed the AI caption subsystem is being reworked with controls to rebake captions, reassured users that small post-action data remains in the database, and noted that inline emoji translation now supports emojis directly after Chinese characters.
🐦 On social
No X activity captured this week.
🛠️ GitHub — Sam’s Commits
samsaffron/term-llm
Over the last seven days, Sam focused on making agent workflows safer and more predictable, refining worktree creation and promotion, propagating working directories and request context, and unifying shell approval behavior. He also improved the interactive experience with side-question overlays, image-diff rendering, guardian-review cost visibility, and better streamed reasoning/error handling. Provider and runtime reliability received substantial attention as well, including Grok’s ACP migration, a direct Gemini REST implementation, and fixes for cancellation, recorder concurrency, image interrupts, and terminal handoffs.
Key commits:
4feba9d— surface guardian reviews in ask outputc3d29f5— unify approval mode defaults and overrides4654deb— unify approval mode defaults and overrides62fcbb8— add clean worktree creation option8e0e335— allow /shell to run commands
discourse/discourse
Sam focused on strengthening Discourse AI’s long-running agent behavior by making token-budgeted execution and context compaction the default for every agent. The work simplifies legacy configuration while preserving a stable compressed conversation history, improving context retention, model-limit handling, and prompt-cache reuse.
Key commits:
f86bdd7— DEV: Make AI context compaction global (#41317)
SamSaffron/dotfiles
Sam focused on making Neovim plugin updates safer and more controlled, first refreshing several pinned dependencies and then introducing a seven-day quarantine workflow for future upgrades. The new system pins bootstrap code, blocks accidental direct updates, supports AI-reviewed urgent changes, safely rolls back failures, and includes focused tests and documentation.
Key commits:
🤖 Jarvis — Public Repo Work
Agent-authored public commits, typically guided by Sam during implementation work.
SamSaffron/term-llm
Over the last seven days, Sam-directed Jarvis work focused on making term-llm’s long-lived runtimes and streaming paths faster and more reliable, addressing credential rotation, retry idempotency, cancellation deadlocks, malformed responses, and batched tool outputs. It also expanded agent capabilities with typed output schemas and preserved MCP image results, while improving the user experience through richer session statistics, worktree-aware terminal reporting, responsive worktree selection, and more efficient TUI streaming renders.
Key commits:
71a81d7— perf: reduce TUI streaming render snapshot work (#935)f3b9ef7— feat: support typed output tool schemas (#934)b643279— fix: accept batched durable tool outputs (#932)69a6dc6— feat: report session worktree directory with OSC 7 (#931)28cd74b— fix responsive worktree picker rendering (#928)
⤴️ GitHub — Pull Requests
7 PRs this week:
- ✅ SamSaffron/term-llm#924 (diff) — feat: add ephemeral side-question overlays closed
Add Claude-style ephemeral side questions to the TUI and web UI.
/side <question>opens a one-turn overlay over the current conversation. The main response keeps running and remains visible; the user is never switched into a second transcript. Each… - ✅ SamSaffron/term-llm#929 (diff) — fix: Concurrent ChatGPT token refresh can delete freshly renewed credentials closed
- Serialize ChatGPT OAuth refreshes process-wide. - Reload persisted credentials after acquiring the refresh lock and reuse a token another caller already renewed instead of exchanging the same rotating refresh token twice. - Save a refreshed copy be…
- ✅ SamSaffron/term-llm#918 (diff) — fix: Job cancellation can report success while the newly started job keeps runni closed
- Made queued/claimed and running cancellation updates conditional on the status that was observed. - Added a bounded retry when another worker advances or completes the run before the cancellation update wins. - Ensured a claimed-to-running race is …
- ✅ SamSaffron/term-llm#917 (diff) — fix: Concurrent MCP disable can nil-panic an in-flight tool call closed
- Keep
Manager.muread-locked while validating an MCP server’s status and client pointer. - Capture the client locally before releasing the manager lock, then invoke the tool through that stable pointer. - Add a concurrentCallTool/Disableregr…
- Keep
- ✅ SamSaffron/term-llm#923 (diff) — fix: Tool-enabled runtimes leak a memory SQLite store and connection closed
- Replaced eager memory-store wiring with a lightweight
ImageRecorderthat opens the memory SQLite store only whenRecordImageis called. - Closed the store after every image record attempt, so no SQL connection remains owned by a tool manager. -…
- Replaced eager memory-store wiring with a lightweight
- ✅ SamSaffron/term-llm#922 (diff) — fix: Late image-recorder wiring drops metadata and leaks a SQLite connection per closed
- Patch the already-registered
image_generatetool whenSetImageRecorderis called, including its agent and session attribution. - Replace runtime-lifetime ownership of an eagerly opened memory store with a lazy recorder that opens the configured…
- Patch the already-registered
- ✅ discourse/discourse#41317 (diff) — DEV: Make AI context compaction global merged
Apply token-budgeted agent execution and context compaction to all AI agent runs instead of gating it behind execution_mode. Remove the legacy fixed-limit agent settings, keep compression_threshold defaulted to 80, and trim prompt history from the la…
🐛 GitHub — Issues
No issue activity this week.
👀 GitHub — Reviews
No reviews this week.