Attempting to clear a task namespace with 'task edit <id> --namespace --json' sets taskNamespace to '.hs' instead of empty/null. Repro on t-587.3: namespace Omni/Ide.hs -> edit --namespace '' -> taskNamespace became '.hs'. Expected behavior is clear namespace (empty/null) or explicit validation error.
Review complete. The fix correctly uses the Maybe (Maybe Text) pattern to distinguish 'flag not provided' (Nothing → keep existing) from 'flag provided as empty' (Just Nothing → clear namespace) from 'flag provided with value' (Just (Just nsPath) → set). The old code passed empty string to Namespace.fromHaskellModule which produced '.hs'. The fix checks for empty/whitespace-only input before calling fromHaskellModule. Help text updated. Minimal, focused change. Build tool unavailable in sandbox but type analysis confirms correctness.
Automation (review) run review-t-590-20260211-215845 cost_cents=0 cumulative_cost_cents=0.
Integrated into live as commit a4d7cffe84aa43c5e9dea37d4e5c1e8c741d4cea. Build verification skipped (tools unavailable in integration workspace).
Automation (integrator) run integrator-t-590-20260211-220709 cost_cents=0 cumulative_cost_cents=0.
Implemented fix in commit cad32d1d: task edit now treats empty --namespace as explicit clear (null) instead of coercing to .hs; non-empty namespace behavior unchanged. Repro verified with temp task: namespace set -> edit --namespace '' -> namespace becomes null.