- Add `integ-test` to create, set up, validate, and run integration template tasks
- Add `integ-report` to summarize latest integration run artifacts
- Switch default pastebin template from model fallback to single `qwen3-coder:30b`
- Support optional Ollama fields: `num_ctx`, `num_predict`, `seed`, and `stop`
- Add `nightshift validate` preflight for task-specific test files
- Update pastebin docs, config reference, and ideas tracking
- Add tests for integration helpers, task-test validation, config parsing, and template expectations
What changed:
- Added file_writer stage support in nightshift/config.py:93, nightshift/agents.py:446, and nightshift/pipeline.py:374.
- Added file-block parsing and deterministic patch generation in nightshift/patches.py:65.
- file_writer agents now return complete file blocks:
```file:relative/path.py
<complete file content>
```
NightShift reads current files and generates the unified diff itself.
- Existing patch_validator, patch_normalizer, and patch_apply still run after that.
- Switched tiny-lisp-nightshift/nightshift.yaml:51 to type: file_writer.
- Updated tiny-lisp-nightshift/agents/implementer.md:1 to request file blocks instead of diffs.
- Updated README, tutorial, config reference, and design doc.
Also added tests for parsing file blocks, generating multi-file diffs, validating those diffs, and running a full file_writer -> normalize -> validate pipeline.
Verification: python -m unittest discover -v passes, 101 tests.