Optional config key (default false). When true, research candidates are
offered even at max_unreviewed_research_per_dossier; research_sampled
bookkeeping, mark sampled, and status flags are unchanged so unsampled
items stay visible for later human verification.
Claude-Session: https://claude.ai/code/session_01Lgv4Qn82boNFC1jn8QXSNw
idle-draft.state.json is now gitignored in the target repo; explicitly
git add-ing an ignored path errors, which broke every success commit.
The state file is still written atomically — just no longer tracked.
Claude-Session: https://claude.ai/code/session_01Lgv4Qn82boNFC1jn8QXSNw
Lock-contention test added; children die with the dispatcher (SIGTERM/
SIGINT handlers + atexit); tmp files are per-invocation (.tmp.<pid>) so
a SIGKILL-orphaned child can never collide with a new instance.
Claude-Session: https://claude.ai/code/session_01YQDoWNM7XPPii28khFWoMc
Research and topic_ideas runs get --allowedTools WebSearch,WebFetch;
research template mandates >=1 web search for related stories with
full-URL + access-date citations under the dossier's status labels.
Claude-Session: https://claude.ai/code/session_01YQDoWNM7XPPii28khFWoMc