idle-draft: stop committing state file with machine commits
idle-draft.state.json is now gitignored in the target repo; explicitly git add-ing an ignored path errors, which broke every success commit. The state file is still written atomically — just no longer tracked. Claude-Session: https://claude.ai/code/session_01Lgv4Qn82boNFC1jn8QXSNw
This commit is contained in:
@@ -1420,7 +1420,7 @@ def run_dispatch(args, config: dict, repo: Path, state_path: Path) -> int:
|
|||||||
f"(7d {before_pct}%→{after_pct}%)"
|
f"(7d {before_pct}%→{after_pct}%)"
|
||||||
)
|
)
|
||||||
rel_canonical = str(Path(canonical).relative_to(repo))
|
rel_canonical = str(Path(canonical).relative_to(repo))
|
||||||
ok, reason = git_commit(repo, [rel_canonical, "idle-draft.state.json"], msg)
|
ok, reason = git_commit(repo, [rel_canonical], msg)
|
||||||
log_event(repo, f"success: {cand['item_key']} -> {rel_canonical}; commit={ok} ({reason})")
|
log_event(repo, f"success: {cand['item_key']} -> {rel_canonical}; commit={ok} ({reason})")
|
||||||
elif outcome == "content_failure":
|
elif outcome == "content_failure":
|
||||||
blocked_reason = apply_failure_state(state, cand, defaults["max_attempts"])
|
blocked_reason = apply_failure_state(state, cand, defaults["max_attempts"])
|
||||||
|
|||||||
@@ -305,10 +305,13 @@ For the selected `(item_or_dossier, work_type, provider)`:
|
|||||||
11. On success: write `idle-draft.state.json` atomically (temp file + `os.replace()` in
|
11. On success: write `idle-draft.state.json` atomically (temp file + `os.replace()` in
|
||||||
the same directory), then:
|
the same directory), then:
|
||||||
```
|
```
|
||||||
git -C <repo> add -- <produced-file> idle-draft.state.json
|
git -C <repo> add -- <produced-file>
|
||||||
git -C <repo> commit -m "<message>" -- <produced-file> idle-draft.state.json
|
git -C <repo> commit -m "<message>" -- <produced-file>
|
||||||
```
|
```
|
||||||
Never `git add -A`, never `git commit -a`. Commit message:
|
Never `git add -A`, never `git commit -a`. `idle-draft.state.json` is
|
||||||
|
machine-managed churn and is gitignored in the target repo — it is written
|
||||||
|
atomically but never staged or committed (explicitly `git add`-ing an ignored
|
||||||
|
path fails, which would break every machine commit). Commit message:
|
||||||
`idle-draft: <work_type> <item> via <provider> (7d <before>%→<after>%)`, where
|
`idle-draft: <work_type> <item> via <provider> (7d <before>%→<after>%)`, where
|
||||||
before/after are that provider's `seven_day.utilization_pct` immediately before
|
before/after are that provider's `seven_day.utilization_pct` immediately before
|
||||||
dispatch and immediately after re-probe on completion. No push.
|
dispatch and immediately after re-probe on completion. No push.
|
||||||
|
|||||||
Reference in New Issue
Block a user