Compiled entirely from public activity on meta.discourse.org, X, and GitHub.
💬 meta.discourse.org
Sam shipped detailed admin-only AI logging for Discourse AI and clarified LLM setup, including working Gemini Flash support through the Interactions API. He also responded to an Ask Discourse upgrade issue and reorganized a sprawling LLM settings discussion into a separate topic.
🐦 On social
Social activity centered on developer tooling and infrastructure, including split-horizon DNS for local services, a contribution to omasnap, and modernization work on Logster. AI discussions covered local-model patching, provider metadata, vision support, model selection, and the complexity of stateful WebSocket APIs. Replies were largely technical and conversational, mixing implementation details and follow-up questions with playful comments about “AGI-bin” and Qwen Max Square.
- 22 posts and 26 replies captured in the last 7 days
- Top by engagement: Agy-bin , agi is coming later :), I have a agi bin provider in term llm, not easy due to…, Nice, first official confirmation it is glm 5.3 vision
Most engaged tweets:
- reply to @samsaffron — Agy-bin , agi is coming later :)
0 likes · 0 reposts · 0 replies - reply to @maria_rcks — I have a agi bin provider in term llm, not easy due to a few mcp/cli bugs but it is a regular model I use for reviews due to speed, wish oauth was allowed to third parties like it…
0 likes · 0 reposts · 0 replies - reply to @thdxr — Nice, first official confirmation it is glm 5.3 vision
0 likes · 0 reposts · 0 replies - post — I never thought I would say this, but split horizon DNS for the right problem can be incredibly cool: https:// github.com/sam-saffron-ja rvis/term-llm-hub-ingress … … any local…
0 likes · 0 reposts · 0 replies - post — Zoxide is the best, first thing I install everywhere I go.
0 likes · 0 reposts · 0 replies
🛠️ GitHub — Sam’s Commits
samsaffron/term-llm
Over the last seven days, Sam focused on making term-llm a more capable workspace: expanding the Web UI with project/checkout selection, per-conversation agents, richer diff review, and queued comments, along with passkey-secured Hub access. He also improved terminal workflows with seamless session branching, background-run visibility, provider usage reporting, and live Ollama capability discovery. A substantial reliability and security push hardened SQLite migrations, streaming and tool-failure handling, provider integrations, concurrency, and untrusted terminal output.
Key commits:
52ebf66— fix(sqlite): harden schema migrationse76bc6c— fix: stabilize reverse stream drain test1611bd1— fix: harden serving and tool failure handling5a34d5a— fix(grok): omit controls when tools are absentbbdaf4b— feat(serve): expand web workspace workflows
discourse/discourse
Sam focused heavily on AI observability and administration, introducing a comprehensive audit-log interface, decoded message views, better filtering and usage reporting, plus time-to-first-token metrics. He also improved AI reliability by pausing failing embedding providers and made workflow execution progress visible in real time. A smaller core fix corrected group user counts.
Key commits:
f01efc1— FIX: Show all users in single AI usage table (#42768)4b55014— UX: Improve AI logs filtering (#42759)8272d3c— FEATURE: decode messages in AI logs (#42705)91a8ca9— FEATURE: Add AI audit log admin (#42667)feb3fba— FIX: Pause failing embedding providers (#42539)
discourse/dv
Sam focused on improving DV’s developer experience, adding dynamic shell integration for Bash/Zsh/Fish and TCP port tunneling with portable MailHog forwarding, backed by extensive tests and documentation. He also streamlined Discourse API-key generation, fixed staff access for AI debugging without overriding configured groups, and made a small updater correction.
Key commits:
4bcd4a9— feat(cli): add TCP port tunnelingbff46d8— fix agy updateb0ef083— fix(discourse): allow staff AI debugging271fe51— refactor(discourse): reuse API key generator9982f8c— feat(cli): add dynamic shell integration
sam-saffron-jarvis/term-llm-hub-ingress
Sam focused on making the home-hosted term-llm Hub easier and safer to operate. He added support for running Caddy on a dedicated LAN IP when ports 80/443 are occupied, hardened the autossh container to run unprivileged, and introduced a release updater that verifies artifacts, health-checks deployments, and automatically rolls back failures.
Key commits:
SamSaffron/dotfiles
Sam focused on building a switchable Quickshell desktop for Hyprland, adding an integrated bar, launcher, notifications, control center, window overview, and extensive system, Docker, weather, media, and usage monitoring while retaining the existing shell as a safe fallback. He then refined notification behavior and visuals, improved links and window-management integration, and simplified the dotfiles by moving the countdown functionality to omasnap.
Key commits:
e3ed829— moved to omasnapc86eb2f— correct notifications2fb9878— fix links and visualsc34bbb3— Add notification integration and window overview1764443— move notifications to the top
MiniProfiler/rack-mini-profiler
Sam focused on preparing and shipping rack-mini-profiler 5.0.0, updating release notes, versioning, and frontend assets. He improved SQL profiling by recording PostgreSQL bind parameters and strengthening Active Record bind handling and test coverage. He also hardened browser-side fetch instrumentation against unhandled rejections and added regression coverage around authorization cookies and cache-control behavior.
Key commits:
d95511f— new asset versionc7405d0— update changelog1d94d62— fix: prevent unhandled fetch rejectionsabc2a3a— Record PostgreSQL bind parameters8fa266a— Add test for bind mapping
discourse/discourse-mcp
Sam drove a major expansion of discourse-mcp, introducing opt-in workflow, AI, moderation, analytics, messaging, group, theme, webhook, site-setting, and tag-management toolsets. He also centralized tool definitions and filtering, strengthened authorization and mutation safeguards, added device-based API-key authentication, and substantially expanded test coverage and documentation—culminating in preparation for the 0.3.0 release.
Key commits:
aa14829— FEATURE: support workflow and ai toolsets (#51)
SamSaffron/blog
Sam focused on hardening the blog’s one-time-secret feature, merging Sam-directed Jarvis work that addressed several low-severity security and reliability risks. The changes added per-user/IP rate limiting, made secret retrieval and deletion atomic to prevent concurrent reads, and explicitly enforced CSRF protection without altering legitimate usage.
Key commits:
deb220b— Merge pull request #5 from sam-saffron-jarvis/fix/secrets-hardening
🤖 Jarvis — Public Repo Work
Agent-authored public commits, typically guided by Sam during implementation work.
SamSaffron/term-llm
Under Sam’s direction, Jarvis broadened term-llm’s provider support with native Grok subscription OAuth, improved OpenCode Go/Muse routing, and made Guardian model selection more predictable. The work also strengthened agent reliability—especially Responses WebSocket tool sessions, concurrent worktree operations, scheduled runs, container workspace isolation, and session-schema recovery. On the product side, Jarvis added inline diff instructions to make code-review feedback more actionable.
Key commits:
01fffca— fix(session): repair missing project schema (#1057)f5e5444— fix(contain): use single-workspace mode for agents (#1056)e45b799— feat: add native Grok subscription OAuth (#1055)9908c60— Make Guardian model selection predictable (#1051)1eb83d9— fix: keep Responses WebSockets alive during tools (#1052)
sam-saffron-jarvis/term-llm-hub-ingress
Sam directed Jarvis to create a secure hybrid ingress deployment for running term-llm Hub at home behind one stable public URL, using split DNS for LAN access and a restricted reverse SSH tunnel through a public droplet. The work emphasized safe operations and hardening—isolated secrets, certificate automation, passkey bootstrap and recovery, pinned artifacts, HAProxy/Caddy configuration, validation scripts, CI checks, and comprehensive deployment documentation.
Key commits:
fa1c6e0— Add public-safe split-horizon term-llm Hub deployment
SamSaffron/blog
Over the last seven days, Jarvis, acting under Sam’s direction, hardened the blog’s one-time-secret feature against several low-severity security risks. The work added per-user/IP rate limiting, made secret retrieval-and-deletion atomic to prevent concurrent reads, and explicitly enforced CSRF protection—all without changing legitimate user flows.
Key commits:
e222f06— Harden blog secrets controller
sam-saffron-jarvis/rails-ai-lifecycle-harness
Sam-directed Jarvis work focused on improving and evaluating a Rails lifecycle agent harness, publishing runway-aware experiments and a corrected five-task result of 8/15 full solves. The agent architecture was redesigned from an external staged pipeline into a single lead agent that orchestrates two dedicated subagents—for state analysis and red testing—before implementing fixes. A follow-up experiment exposed a child-model resolution bug, so its 0/3 diagnostic result was preserved but explicitly invalidated and left unscored.
Key commits:
3d9c245— Report invalid single-ask subagent experiment2204d06— Let the lead agent orchestrate two subagents244428f— Add staged analysis test and implementation agents2b1f35c— Publish corrected runway-aware 8/15 matrix2ec2776— Publish runway-aware 6/6 experiment
⤴️ GitHub — Pull Requests
6 PRs this week:
- ✅ SamSaffron/term-llm#1045 (diff) — fix: One unread reverse response can wedge every request on the node tunnel closed
- Made reverse-response delivery to each request queue nonblocking so the tunnel’s sole WebSocket reader cannot wait behind one unread response. - When a request’s 16-frame queue is full, remove and abort only that pending request with a slow-consume…
- ✅ SamSaffron/term-llm#1053 (diff) — fix: Script-backed custom tools report execution failures as successes closed
- Added a shared script-tool error-output helper that preserves existing formatted diagnostics while setting
ToolOutput.IsError=truefor validation, resolution, setup, and execution failures. - Marked captured nonzero exit statuses as errors in bot…
- Added a shared script-tool error-output helper that preserves existing formatted diagnostics while setting
- ✅ SamSaffron/term-llm#1046 (diff) — fix: Every stateful response run decodes all historical transcript bodies before closed
- Added an optional response-run start-state reader for session stores. - Implemented the SQLite reader as one coherent scalar query for
transcript_rev, compaction sequence/count, and the latest eligible durable boundary row ID. - Routed the capabi…
- Added an optional response-run start-state reader for session stores. - Implemented the SQLite reader as one coherent scalar query for
- ✅ SamSaffron/term-llm#1054 (diff) — fix: CLI-provider MCP bridge discards tool failure status closed
- Extended the internal MCP HTTP executor result to carry semantic tool failure status separately from Go transport errors. - Propagated
ToolOutput.IsError || ToolOutput.TimedOutthrough the shared CLI tool bridge and into `mcp.CallToolResult.IsErr…
- Extended the internal MCP HTTP executor result to carry semantic tool failure status separately from Go transport errors. - Propagated
- 🟢 tobi/omasnap#80 (diff) — feat: add delayed capture countdowns opened
Adds a new –delay option, this is particularly handy when you want to take a screenshot of a hover or some other fiddly piece that requires a bit of prep
- ✅ SamSaffron/term-llm#1050 (diff) — Expand inline diff review workflow closed
Build out the inline diff review loop after the initial line-comment feature: - preserve focus when responses land and across diff body/list reorders - pin commented files open so live-follow cannot collapse or scroll away from the review target - re…
🐛 GitHub — Issues
No issue activity this week.
👀 GitHub — Reviews
No reviews this week.