<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ben/slopbot.git/main.py, branch master</title>
<subtitle>Zulip stock quote and agent bot</subtitle>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/'/>
<entry>
<title>Add tests and fix research tools</title>
<updated>2026-06-04T20:38:54+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-06-04T20:38:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=fe04ad47c9abf843cb6f64176981325a5b05f074'/>
<id>fe04ad47c9abf843cb6f64176981325a5b05f074</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Back off Zulip connection retries</title>
<updated>2026-06-04T19:01:15+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-06-04T19:01:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=299f4b47d26b7a8addb42420dda524c4e78fba87'/>
<id>299f4b47d26b7a8addb42420dda524c4e78fba87</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Resolve prompt path from working directory</title>
<updated>2026-06-04T18:57:54+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-06-04T18:57:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=064ac261533f146cf675af63d18c7505e1bc74b7'/>
<id>064ac261533f146cf675af63d18c7505e1bc74b7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add locked-down research tools</title>
<updated>2026-06-04T18:49:45+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-06-04T18:49:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=ff34f98e3adf7899fb3857eabb80471ca51f8156'/>
<id>ff34f98e3adf7899fb3857eabb80471ca51f8156</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace agentd with one-shot agent</title>
<updated>2026-06-04T18:33:17+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-06-04T18:33:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=2792e1e667ba25ea37890b1d51f1f25525e331a2'/>
<id>2792e1e667ba25ea37890b1d51f1f25525e331a2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: oneshot agentd sessions per mention</title>
<updated>2026-05-19T03:23:41+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-05-19T03:23:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=6992c311c1b2289f17f2591f9fe0ad44f3fb549e'/>
<id>6992c311c1b2289f17f2591f9fe0ad44f3fb549e</id>
<content type='text'>
Drop persistent sessions entirely. Each @slop mention is now a fresh
create → start → send → recv → stop cycle. No session state to go stale,
no restart logic, no binary-mismatch errors.

Conversation memory comes from Zulip topic history (already wired),
not agentd session state. DMs still work via unique per-message session names.

Removes: _sessions dict, _session_running(), _start_session(), _stop_session(),
         _reap_idle_sessions(), all stale-retry logic
Adds: _unique_session_name() (timestamp-suffixed), simplified ask_agentd()
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Drop persistent sessions entirely. Each @slop mention is now a fresh
create → start → send → recv → stop cycle. No session state to go stale,
no restart logic, no binary-mismatch errors.

Conversation memory comes from Zulip topic history (already wired),
not agentd session state. DMs still work via unique per-message session names.

Removes: _sessions dict, _session_running(), _start_session(), _stop_session(),
         _reap_idle_sessions(), all stale-retry logic
Adds: _unique_session_name() (timestamp-suffixed), simplified ask_agentd()
</pre>
</div>
</content>
</entry>
<entry>
<title>slopbot: auto-retry send on stale session error</title>
<updated>2026-05-19T02:57:32+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-05-19T02:57:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=b94c98a61bec73dc5d97e4997588f7bfc5076b89'/>
<id>b94c98a61bec73dc5d97e4997588f7bfc5076b89</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Parasail model pin and Kagi tool guidance</title>
<updated>2026-05-18T20:37:31+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-05-18T20:37:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=3bc7a477f0a1341ad9fe41f706b27cc5d9de4218'/>
<id>3bc7a477f0a1341ad9fe41f706b27cc5d9de4218</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>pin models: parasail-qwen3-235b on Parasail, qwen2.5:14b locally</title>
<updated>2026-05-18T20:27:20+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-05-18T20:27:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=38d404aa2bf09e8014dde818eb0ee67185c7681d'/>
<id>38d404aa2bf09e8014dde818eb0ee67185c7681d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(slopbot): add LLM @mention with agentic Kagi tool calling (t-937)</title>
<updated>2026-05-18T18:50:51+00:00</updated>
<author>
<name>Ben Sima</name>
<email>ben@bensima.com</email>
</author>
<published>2026-05-18T18:50:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.bensima.com/ben/slopbot.git/commit/?id=818b4fbc76b9ef28c68186ab9f382fda922ac31b'/>
<id>818b4fbc76b9ef28c68186ab9f382fda922ac31b</id>
<content type='text'>
- Detect @**slop** mentions via MENTION_RE regex
- Agentic loop (MAX_ITER=5): LLM decides when to call kagi_search
- Routing: Parasail primary (model discovery), Ollama qwen2.5:3b fallback
- kagi_search tool: hits Kagi API, returns top-3 snippet results
- Tickers appended to LLM reply when @mention includes $TICKER
- Logging: mention detected, tool calls, Kagi result count, backend used, response
- shell.nix: added openai + requests packages
- requirements.txt: openai&gt;=1.0.0, requests&gt;=2.28.0
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Detect @**slop** mentions via MENTION_RE regex
- Agentic loop (MAX_ITER=5): LLM decides when to call kagi_search
- Routing: Parasail primary (model discovery), Ollama qwen2.5:3b fallback
- kagi_search tool: hits Kagi API, returns top-3 snippet results
- Tickers appended to LLM reply when @mention includes $TICKER
- Logging: mention detected, tool calls, Kagi result count, backend used, response
- shell.nix: added openai + requests packages
- requirements.txt: openai&gt;=1.0.0, requests&gt;=2.28.0
</pre>
</div>
</content>
</entry>
</feed>
