[Bug]: windows artifacts not syncing
Current Behavior / Issue
On Windows, the riptide daemon downloads task artifacts from the cloud but rejects every write to disk as path traversal detected, even though the rejected path is a legitimate direct child of the task directory. Artifacts render correctly in app.humanlayer.dev, but .humanlayer\tasks<task>\ and ~.humanlayer\riptide\artifacts<session>\ are created and stay empty. No artifact is ever synced to disk on Windows.
riptide-daemon/src/lib/artifact-path-validation.ts
Expected Behavior
Artifacts should be written to the task directory on disk, matching what app.humanlayer.dev shows. A direct child of the task directory must not be flagged as path traversal.
Steps to Reproduce
- On Windows, run a riptide/CodeLayer task that produces artifacts (e.g. ticket.md or a design doc); confirm they appear in app.humanlayer.dev.
- Inspect .humanlayer\tasks<task>\ and ~.humanlayer\riptide\artifacts<session>\ — both are empty.
- Check ~.humanlayer\riptide\logs\error-riptided-prod-*.jsonl — every artifact write is logged as Rejected artifact write in sync: path traversal detected.
Context
The daemon creates the session/task directories but rejects all file writes into them.
Environment:
- Component: hld (riptide-daemon) — artifact sync path validation; also bundled in hlyr / @humanlayer/cli
- Version: daemon riptided-prod 0.29.6 (@humanlayer/cli package 0.29.6; humanlayer -v reports 0.29.0)
- OS: Windows 11 Enterprise, 10.0.26200 (x64)
- Node/Go version (if applicable): Node v26.3.0
Nightly build version:
Claude code version: 2.1.207
Source: humanlayer/humanlayer