Say a local commit publishes nothing (#129)
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
This commit is contained in:
1 parent
bd17c74c3a
commit
c4726d5673
4 files changed
+80
-3
No files matched your search
@@ -35,6 +35,8 @@ from nisse_core.actions import (
|
||||
classify_shell,
|
||||
inside,
|
||||
resolve,
|
||||
split_shell,
|
||||
unwrap,
|
||||
worst,
|
||||
)
|
||||
|
||||
@@ -87,6 +89,22 @@ _BRANCHES = (
|
||||
)
|
||||
|
||||
|
||||
def commits(action: Action) -> bool:
|
||||
"""Whether the call runs a `git commit` anywhere in its line (#129)."""
|
||||
if action.tool != "run_command":
|
||||
return False
|
||||
for argv, _ in split_shell(str(action.arguments.get("command", ""))) or []:
|
||||
argv = unwrap(argv)
|
||||
if argv[:1] != ["git"]:
|
||||
continue
|
||||
args = argv[1:]
|
||||
while args and args[0] in ("-C", "-c"):
|
||||
args = args[2:]
|
||||
if args[:1] == ["commit"]:
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def classify(action: Action, root: str) -> Verdict:
|
||||
"""The fast path's verdict on one execution tool call in the workspace
|
||||
at ``root``."""
|
||||
|
||||
Reference in new issue
Block a user