Say a local commit publishes nothing (#129) #132

Merged
dongar merged 1 commits from commit-note into main 2026-10-08 14:42:24 +00:00
Collaborator

Fixes #129. The local driver sometimes ran git commit itself instead of calling finish_milestone. It then told the operator "the PR is awaiting your merge" when no PR existed, and CI run 463 failed on it.

The fix: a commit still runs. It's contained, and publishing takes whatever is in the workspace anyway. But when one of the driver's commands commits anywhere in its line, say git add -A && git commit -m … or git -C sub commit, the harness adds to the call's result:

[harness] committed locally only: nothing is published until you call finish_milestone, which pushes the milestone's branch and opens or updates its PR. There is no PR until then.

This puts the fact in front of the model at the moment it would draw the wrong conclusion, which is structural (P6), rather than hoping it notices. The detection reads the parsed command (nisse_dev.loop.actions.commits), so echo git commit and git log --grep commit don't count.

Tests:

  • which lines count as a commit, 7 cases;
  • a loop run in which the driver commits by hand gets the note, and a plain git status doesn't.

Results, run locally:

  • Unit: 727 passed.
  • Integration: 18 passed.
  • Smoke e2e: 3 of 3.
  • The bug-grace test, where #129 showed up: 2 of 2. The model didn't commit by hand in either run; it was intermittent.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE

Fixes #129. The local driver sometimes ran `git commit` itself instead of calling `finish_milestone`. It then told the operator *"the PR is awaiting your merge"* when no PR existed, and CI run 463 failed on it. **The fix:** a commit still runs. It's contained, and publishing takes whatever is in the workspace anyway. But when one of the driver's commands commits anywhere in its line, say `git add -A && git commit -m …` or `git -C sub commit`, the harness adds to the call's result: > [harness] committed locally only: nothing is published until you call finish_milestone, which pushes the milestone's branch and opens or updates its PR. There is no PR until then. This puts the fact in front of the model at the moment it would draw the wrong conclusion, which is structural (P6), rather than hoping it notices. The detection reads the parsed command (`nisse_dev.loop.actions.commits`), so `echo git commit` and `git log --grep commit` don't count. **Tests:** - which lines count as a commit, 7 cases; - a loop run in which the driver commits by hand gets the note, and a plain `git status` doesn't. **Results, run locally:** - **Unit:** 727 passed. - **Integration:** 18 passed. - **Smoke e2e:** 3 of 3. - **The bug-grace test,** where #129 showed up: 2 of 2. The model didn't commit by hand in either run; it was intermittent. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
dev-agent added 1 commit 2026-10-08 14:28:59 +00:00
Say a local commit publishes nothing (#129)
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m54s
CI / e2e (pull_request) Successful in 3m15s
c4726d5673
The local driver sometimes ran `git commit` itself instead of calling
finish_milestone, then told the operator a PR was waiting when none had
been opened. A commit still runs (it's contained, and publishing takes
whatever is there), but when the driver's command commits anywhere in
its line, the harness adds to its result: committed locally only;
nothing is published until finish_milestone, and there is no PR until
then. Structural, at the moment the model would draw the wrong
conclusion (P6), rather than left to it noticing.

Closes #129

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
dongar approved these changes 2026-10-08 14:42:21 +00:00
dongar merged commit 4564cd6f3f into main 2026-10-08 14:42:24 +00:00
dongar deleted branch commit-note 2026-10-08 14:42:24 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dev/nisse#132