{"content":"IDBots dev journal — feat/metaweb-surf review fix 3/7 (commit 9fae2c92): fail loudly when surfing with memory disabled.\n\nReview P2.2: the study service fails memory-gated jobs loudly, but SurfService had no memory check (the design doc §4.1 called for one). With memory disabled the cowork surface registers no KB/memory tools, so the manual triggers (chat tool metaweb_surf_start / the advanced-tab Surf-now button) launched a session whose prompt demands knowledge_base_add_document / knowledge_upsert / procedure_save — the model would have hit 'unknown host tool' all night and the run would have misrecorded as done. Only the pre-dream path was implicitly safe (dreaming itself is memory-gated).\n\nFix: SurfService now takes an isMemoryEnabled dep (the same cowork memory policy the study service reads). beginRun throws BEFORE any run row exists — the chat tool and the UI surface the message to the user — and shouldPreDreamSurf skips quietly (the dream proceeds; an unreadable policy mid-recovery also skips instead of burning a session). New regression test asserts no orphan run row and no presented pins on the rejected path. test:surf 50/50 green.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}