Commit Graph

59 Commits

Author SHA1 Message Date
RJS
67ea77baa6 Replace on_pass with on_status dict for per-status stage routing
on_status replaces the single on_pass field with a mapping that routes
each review status (pass/fail/retry/escalate) to a different target
stage. The lookup order for non-pass statuses is:
  on_status[status] -> on_fail -> next_stage (agent output)

Config parsing validates that on_status keys are valid status names
and all referenced stages exist. Includes test coverage for parsing,
validation errors, pass/fail/escalate routing, and on_fail fallback.
2026-05-23 14:43:50 +00:00
78dcf911d6 Refactor of writing tool 2026-05-23 02:46:59 -07:00
e1e6803eb1 Clean up docs, tests, patch writing bug
Checked out commit from rsarv3006 which is super interesting, grabbed some inspiration from it and mentioned it in the ideas file.
2026-05-22 21:04:54 -07:00
33b9de5441 Story generator fixes again 2026-05-22 19:37:03 -07:00
c4d88fced5 Update story mode for invariants 2026-05-22 17:13:27 -07:00
4ad0c310d1 hide the tasks for my story 2026-05-22 04:19:25 -07:00
a0ad9b2ac0 Project runner tool and writer tooling fixes
i wanted the animated status bar...
2026-05-22 04:17:37 -07:00
d928a52fb3 Improve logging 2026-05-22 03:31:58 -07:00
6e03430a33 Recover usable drafts from failed runs 2026-05-22 02:55:26 -07:00
dee87434e7 Accuracy tweaks for story writer 2026-05-22 02:22:56 -07:00
9157853c10 Storybuilder test 2026-05-21 22:19:07 -07:00
dcebe62889 More iteration 2026-05-21 04:40:34 -07:00
90e4c80116 bugfixes after test run and terminal status 2026-05-21 04:14:05 -07:00
fb575fc5f7 Rename the tutorial to a more generic name
Rather avoid using the name of a popular service
2026-05-21 03:56:30 -07:00
f7fed4535b Add tutorial integration workflow helpers
- 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
2026-05-21 03:46:27 -07:00
e3679296fd Reliability improvements, integ test fixes
Isolate editor from editing tests for the tutorial, hardcode tests for the integ test, some fixs around isolation. We got the integ working!
2026-05-21 00:31:31 -07:00
8b07876552 Improvement pass from llm
- tests/test_version.py: removed the brittle exact hotdog/topping/version assertion and kept the useful display contract.
  - nightshift/agents.py: normalized review next_stage / context_update values like None, null, and N/A to empty.
  - nightshift/git.py: added clearer non-git and Git safe-directory artifact messages with actionable guidance.
  - nightshift/cli.py: fixed run --all so completed dependencies remain in scope.
  - tests/test_agents.py, tests/test_git.py, tests/test_cli.py: added regression coverage.
  - docs/codex/20260521-next-improvements.md: marked the completed items.
2026-05-20 23:11:20 -07:00
3bb5bd4157 Fixes based on tests, do tdd
Changed the pastebin tutorial so it now starts skeletal: no prebuilt Flask behavior, no pre-generated task tests, and .gitkeep placeholders under templates/ and tests/. The new pipeline  in nightshift/project_templates/tutorial-pastebin/nightshift.yaml:1 now runs:

  plan -> semantic_context -> context -> write_tests -> review_tests -> implement -> pytest -> review
                                                                                                                                                                                           ────────────────────────────────────────────────────
  Added nightshift/project_templates/tutorial-pastebin/.nightshift/agents/test-writer.md:1, tightened the planner/implementer/reviewer/debugger prompts, mirrored the pipeline docs/
  example, and raised default retries to 6 for the basic starter plus pastebin.

  I also fixed the retry policy issue in nightshift/escalation.py:17 and nightshift/pipeline.py:251: configured repeated-failure thresholds are now respected instead of hard-stopping      in nightshift/project_templates/tutorial-pastebin/
  early after three same-stage/same-cause failures. Non-implementation file_writer stages now get stage-specific retry artifacts so test generation does not collide with implementation
  repair artifacts
2026-05-20 21:51:40 -07:00
c12493a248 fix guard and make stop repeat configurable 2026-05-20 05:02:32 -07:00
2f2146f47d setup scripts improvement and what happened
- Added nightshift what-happened to summarize the latest run/task failure from artifacts.
  - Added integ-run --setup with setup options, so sandbox creation can immediately run integ-setup.
  - integ-setup output now explicitly shows the venv activation command.
  - Command stages now prefer a detected project/adjacent .venv, so python -m pytest -q should use the integ venv without relying on shell activation.
  - Retry command outputs now get attempt-specific artifact names, like test-output-1.txt, instead of overwriting.
  - Docs updated in README.md, the pastebin template README, and examples/tutorial/03-pastebin.
  - Added pytest config so root python -m pytest -q ignores generated integ/template target tests.
  - Version bumped to 0.2.4-alpha-bratwurst-relish.
2026-05-20 04:20:15 -07:00
93a50ddb42 added hotdog animations
I am a professional software engineer
2026-05-20 03:55:43 -07:00
d08e629bce hotdog versioning and some bugfixes for integration project and model testing 2026-05-20 03:50:51 -07:00
7c54050223 add integ runs, dynamic model choices, symantic search, better file creation, debugging agents 2026-05-20 02:36:23 -07:00
05471e432e Some notes from testing 2026-05-17 19:31:54 -07:00
a3e1be75fe Add more rigorous responses to test failures 2026-05-17 19:05:27 -07:00
75a8646708 memes 2026-05-17 18:17:59 -07:00
b0f8d59707 Add project templates and clean up a bit 2026-05-17 17:32:09 -07:00
5e5cd184b9 Clean up some files and add a new tutorial 2026-05-17 17:18:27 -07:00
71e65a1df4 Add installers and fix path 2026-05-17 16:56:53 -07:00
3616c1155a Add an easier first tutorial, add installers 2026-05-17 16:50:01 -07:00
76b7942c4a Web UI quality of life 2026-05-17 16:25:25 -07:00
347ec583e6 actually show the logo 2026-05-17 16:13:25 -07:00
3ab8567ae9 Show logo on dash 2026-05-17 16:11:40 -07:00
068822d766 Dashboard and human readable devlogs 2026-05-17 16:09:49 -07:00
fa97abf0c3 Implemented deterministic diff generation via a new file_writer stage.
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.
2026-05-17 15:24:10 -07:00
42564c6867 The ollama backend now uses Ollama’s HTTP API instead of ollama run 2026-05-17 14:23:31 -07:00
db9b24379e Outline some bugs and move some docs 2026-05-17 14:17:17 -07:00
e079c9088d The bug was that validate_patch had no on_fail, so NightShift stopped instead of sending that feedback back to implement. 2026-05-17 13:56:36 -07:00
809ec92e0e fix apply patch when user has no git 2026-05-17 13:53:10 -07:00
ec9181eb64 Fixes around test run 2 2026-05-17 13:46:26 -07:00
a32142e9ea Bugfixes from test run 2026-05-17 13:34:19 -07:00
7c1cf29745 fix pathing for tutorial 2026-05-17 10:30:41 -07:00
eb155d37e5 Added tutorial for real models 2026-05-17 10:29:05 -07:00
9e3b56b214 documentation update 2026-05-17 10:16:26 -07:00
a8616a1062 close out phase2 and support quickstart 2026-05-17 10:11:59 -07:00
4e502ba494 Examples, readme logo fix 2026-05-17 10:06:18 -07:00
12e2c99a75 improve communication, add code writing, change logo 2026-05-17 10:04:45 -07:00
646c655314 Repo Lookup, Request Context, Planner, Context Stage, QoL improvements
- Added operational run logging via nightshift/runlog.py.
  - CLI now streams progress during run / run --all.
  - Runs write .nightshift/runs/<run-id>/run.log and aggregate .nightshift/nightshift.log.
  - Web dashboard now shows the last 100 run log lines.
  - Added agent temperature config.
  - Added minimal openai_compatible backend and temperature passing for it.
  - Added Ollama temperature handling.
  - Added scoped repo lookup tools in nightshift/repo_tools.py: list_files, read_file, grep.
  - Planner agents can request lookup context with lookup_requests; NightShift saves files-inspected.md and reruns the planner with retrieved context.
  - Added repo_context stage type that writes context-pack.md.
  - Marked phases 23-27 complete in docs/design.md:990.
2026-05-17 09:56:28 -07:00
86aa7dd13c Update design.md 2026-05-17 09:45:49 -07:00
caac39b090 add bug docs 2026-05-17 02:09:32 -07:00