summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-06-04env keyBen Sima
2026-06-04Back off Zulip connection retriesBen Sima
2026-06-04Resolve prompt path from working directoryBen Sima
2026-06-04Deploy slopbot as user serviceBen Sima
2026-06-04Add locked-down research toolsBen Sima
2026-06-04Ignore direnv cacheBen Sima
2026-06-04Replace agentd with one-shot agentBen Sima
2026-05-21Convert to nix flake; fix systemd service to use nix runBen Sima
- Add flake.nix with nixos-unstable nixpkgs, devShell and slopbot package - Add flake.lock - Update .envrc to 'use flake .' - Update slopbot.service: use 'nix run' instead of nix-shell, remove broken sandbox options (ProtectHome, InaccessiblePaths, ProtectSystem, ReadOnlyPaths, ReadWritePaths, PrivateTmp) that block nix store access - Delete shell.nix - Add 'result' to .gitignore - Restore openai to requirements.txt (was accidentally dropped)
2026-05-18refactor: oneshot agentd sessions per mentionBen Sima
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()
2026-05-18slopbot: auto-retry send on stale session errorBen Sima
2026-05-18Fix Parasail model pin and Kagi tool guidanceBen Sima
2026-05-18pin models: parasail-qwen3-235b on Parasail, qwen2.5:14b locallyBen Sima
2026-05-18feat(slopbot): add LLM @mention with agentic Kagi tool calling (t-937)Ben Sima
- 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>=1.0.0, requests>=2.28.0
2026-05-18Add structured loggingBen Sima
2026-05-18add shell.nix with zulip + yfinanceBen Sima
2026-05-18feat: implement slopbot Zulip stock ticker botBen Sima
- Adds main.py: single-file bot using raw zulip event loop - Matches $TICKER patterns via TICKER_RE = re.compile(r'$([A-Z]{1,5})') - fetch_price() uses yf.Ticker(ticker).fast_info['lastPrice'] - Returns '$TICKER: $123.45' on success - Returns '$TICKER: unavailable (msg)' on exception - handle_event() ignores non-message events, skips bot's own messages, deduplicates tickers, replies to same stream + topic - Module-level client + call_on_each_event per spec
2026-05-18init: slopbot scaffoldBen Sima