Fixing SQLite "database is locked" When Many Scheduled Jobs Share One FileRun many scheduled Python jobs against one SQLite file without lock errors: WAL mode, BEGIN IMMEDIATE, short writes and idempotent inserts.7 min read·craigsolomon.hashnode.devOct 10
Least-Privilege AI Agents: Keep Publishing Keys Out of the Drafting ProcessKeep publishing credentials out of your AI drafting agent's container, and trigger publishing from a human click instead of a status column.7 min read·craigsolomon.hashnode.devOct 9
How to Make an MCP Database Tool Read-Only in Python With SQLiteStop an MCP query tool from running writes or stacked statements, using a text guard plus engine-level read-only enforcement in Python.7 min read·craigsolomon.hashnode.devOct 8
How to Detect Competitor Pricing Page Changes in Python Without False AlarmsFetch a pricing page, normalize it, store it in SQLite and diff it, while filtering the noise that makes naive page watchers fire on every run.6 min read·craigsolomon.hashnode.dev1OOct 8
How to Write Pluggable Drafters for a Scheduled Claude Agent in PythonWrite drafters for a scheduled Claude agent as plain Python functions with no publish access, registered with APScheduler and tested offline.6 min read·craigsolomon.hashnode.dev1IOct 6