--no-commit silently discards writes on session merge
## Summary
When creating tasks (or other write operations) with `--no-commit` during a session, the writes exist on the session's Dolt branch but are **silently discarded** when `session merge` is called. The merge reports `conflicts: 0, status: merged` — success — but the writes are gone.
## Steps to Reproduce
```bash
synthesist session start test-session
synthesist --session=test-session phase set plan
# Create 27 tasks with --no-commit
synthesist --session=test-session --no-commit task create tree/spec "Task 1" --id t1
synthesist --session=test-session --no-commit task create tree/spec "Task 2" --id t2
# ... repeat
# Merge
synthesist session merge test-session
# Output: { "conflicts": 0, "session": "test-session", "status": "merged" }
# Check
synthesist task list tree/spec
# Output: { "tasks": null } ← all tasks lost
```
## Expected Behavior
`--no-commit` should batch writes into the session branch without committing each one individually, but they should still be **included in the merge**. Either:
1. `session merge` should auto-commit any uncommitted changes on the session branch before merging, or
2. `--no-commit` should warn/error if the session is about to be merged with uncommitted changes, or
3. The docs should explicitly state that `--no-commit` requires a manual commit before merge
## Actual Behavior
- Writes with `--no-commit` succeed (return valid JSON, no errors)
- `session merge` succeeds (reports 0 conflicts)
- All `--no-commit` writes are silently discarded
- No warning, no error — data loss is invisible
## Impact
In practice this means any batch operation using `--no-commit` for performance (e.g., importing 30+ campaign items) will lose all data on merge. The only workaround is to omit `--no-commit` entirely and accept a git commit per operation.
## Environment
- synthesist v5.3.2
- macOS arm64
- Dolt-backed storage
issue