Compiled entirely from public activity on meta.discourse.org, X, and GitHub.
💬 meta.discourse.org
Sam’s week centred on shipping a new Bots tab in Discourse’s admin interface, giving admins a dedicated place to monitor and manage bots. He also helped troubleshoot AI features, asking about embedding configuration and performance and suggesting a newer model for a topic-title generation issue. Elsewhere, he sought feedback on the default sidebar categories guide and brought the developers with the most context into a discussion about unifying BBCode rewriting APIs.
🐦 On social
Discussion centered on AI development workflows, local models, and owning hardware, with replies highlighting term-llm’s model support and web extension builder. Sam pushed back on criticism of containerized development, explaining his remote-accessible Discourse setup, and offered practical advice on running quantized Qwen models. Other threads explored monorepos and dependency forking, while standalone posts covered a full-drive slowdown and iPhone app clutter; replies mixed technical debate with hands-on help and offers to share recipes.
- 16 posts and 22 replies captured in the last 7 days
- Top by engagement: Do not sleep on experiencing an abliterated model, it…, My #1 piece of advice is, no matter if you love or hat…, May 2023 … on our internal Discourse, feeling good w…
Most engaged tweets:
- post — Do not sleep on experiencing an abliterated model, it feels odd, a model that is smart and follows all instructions , this is hosted on @AskVenice — 14 likes · 1 reposts · 0 replies · 12819 views
- reply — My #1 piece of advice is, no matter if you love or hate AI, invest the majority of your working day learning how to properly use AI. People who know how to wield this tech will be… — 32 likes · 0 reposts · 2 replies · 1911 views
- post — May 2023 … on our internal Discourse, feeling good we invested in this heavily earlier this year. Would not want to be a company just catching up to this new world order. — 12 likes · 1 reposts · 1 replies · 1514 views
- post — I am not sure if the golden rule of “wait 1 week to avoid supply chain attacks” is holding strong … we are in the “it is complicated” age. — 8 likes · 0 reposts · 2 replies · 1479 views
- reply to @MiaAI_lab — :) for everything — 4 likes · 0 reposts · 1 replies · 2328 views
🛠️ GitHub — Sam’s Commits
samsaffron/term-llm
Over the last seven days, Sam focused on making term-llm safer: tightening shell approvals, requiring explicit trust for project agents and skill scripts, protecting private data, and verifying update downloads. He also made linked-device access easier through guided QR pairing, a default hosted broker, and host-provided live voice. Alongside that, he polished everyday usability with better skill invocation, sortable session search, customizable icons, clearer context-usage reporting, and more reliable terminal resizing and message sending after server restarts.
Key commits:
ae113b6— we need to show media when debugging systemsfdd4902— refactor(claude-bin): extract environment setupda7fb73— feat(skills): improve invocation and result UX5f026aa— fix(frontend): insert bare completion tokens on Enter9837f6b— fix(serve): block cross-origin no-auth mutations
discourse/discourse
Over the last seven days, Sam focused on making Discourse’s AI features easier to administer and more resilient, adding centralized bot-account management with permission checks, audit logging, and clearer source attribution. He also separated sentiment and emotion analysis into configurable capabilities with multiple classifier backends, giving administrators more control over how content is analyzed. Reliability work rounded out the week: keeping AI conversations working when saved models are deleted, correctly rejecting invalid searches, and handling missing event-reminder counters safely.
Key commits:
612ca6d— FEATURE: Manage bot accounts in admin (#45212)589325e— FEATURE: Add configurable sentiment classifiers (#44941)c92bd04— FIX: Fall back when conversation models are deleted (#45136)5e159a4— FIX: correctly reject invalid searches (#45092)0fcfb34— FIX: protect against reminder counter not being set (#45090)
sam-saffron-jarvis/term-llm-hub-ingress
Over the last seven days, Sam focused on ingress reliability, correcting Caddy’s health checks to send the Hub’s public hostname in the Host header. This aligns the probes with Hub’s hostname validation, preventing an otherwise healthy backend from being incorrectly marked unavailable.
Key commits:
26f1a4f— correct so we include headers
🤖 Jarvis — Public Repo Work
Agent-authored public commits, typically guided by Sam during implementation work.
sam-saffron-jarvis/flashnext-recipe
Over the last seven days, Jarvis, acting under Sam’s direction, brought flashnext-recipe into line with the deployed Strata setup, preserving llama.cpp as a documented legacy option and making installation reproducible with pinned releases and verified downloads. The work focused on operational reliability—conversation caching, request queuing, restart fixes, and optional GPU sharing with Ollama—alongside automated checks and clearer documentation. Benchmarking also became more representative, replacing a single headline decode speed with measurements across real output types and documenting long-context performance.
Key commits:
3c26a4d— Report decode speed by kind of output, not one synthetic number8246a6d— Bring the recipe up to the running deployment; MIT licencec2134a7— Drop the duplicate legacy launcher; docs/ points at gateway/launch-llamacpp.shab00630— Strata IQ3_XXS recipe: the deployment actually in use, with two measured cold runs
⤴️ GitHub — Pull Requests
3 PRs this week:
- ✅ SamSaffron/term-llm#1299 (diff) — fix(security): reject cross-origin mutations in no-auth serve closed
In loopback –auth none / –allow-no-auth mode, browser-simple cross-origin POSTs could reach mutation routes even without an allowed CORS origin. Synthetic local tests reproduced a side-question model invocation and a persisted project…
- ✅ SamSaffron/term-llm#1295 (diff) — fix(tools): reject spawn_agent models on providers this host lacks closed
spawnagent asks for a model in exact provider:model format but never says which providers exist. Models fill the gap from their own branding or invent a name. On a host whose default provider is chatgpt, GPT models produced: - codex:gpt-5.4…
- ✅ discourse/discourse#45212 (diff) — FEATURE: Manage bot accounts in admin merged
Add an admin Bots list and bot creation flow with permission checks, validation, rate limiting, and staff-action logging. Show bot creators and registered sources, and provide shared bot avatar flair and source attribution for AI agents.
🐛 GitHub — Issues
1 issues this week:
- SamSaffron/term-llm#1264 — Herdr Integration closed
👀 GitHub — Reviews
1 reviews this week:
- discourse/discourse#45323 — DEV: Configure mini profiler storage expiry via an environment variable approved