jonah-fleet 1.37.0 → 1.37.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,19 @@ All notable changes to `jonah-fleet` will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.37.1](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.37.0...v1.37.1) (2026-10-12)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **prompts:** prevent autowork repetition polling loops on in-flight peer-review PRs ([#713](https://github.com/Jonah-Projects/jonah-fleet/issues/713)) ([ceb76f8](https://github.com/Jonah-Projects/jonah-fleet/commit/ceb76f84c78b16d9075b1b4e453c6ae8696c1d88))
|
|
14
|
+
|
|
15
|
+
## [Unreleased]
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **prompts:** prevent autowork repetition polling loops on in-flight peer-review PRs, define the Active Peer Review & Non-Draft Awaiting Review Invariant in `autowork.md`, and protect `Starting review (round N)` claim windows in `ORCHESTRATION.md`
|
|
20
|
+
|
|
8
21
|
## [1.37.0](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.36.0...v1.37.0) (2026-10-11)
|
|
9
22
|
|
|
10
23
|
|
|
@@ -26,18 +39,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
26
39
|
|
|
27
40
|
* **terminal-card:** refine backlog triage hints for radar digests and needs-attention issues ([#692](https://github.com/Jonah-Projects/jonah-fleet/issues/692)) ([935ef75](https://github.com/Jonah-Projects/jonah-fleet/commit/935ef75a5e4cbd607bc75f0767901f6f6d7927a8))
|
|
28
41
|
|
|
29
|
-
## [Unreleased] - 2026-10-11
|
|
30
|
-
|
|
31
|
-
### Added
|
|
32
|
-
|
|
33
|
-
- **memory:** partition `LESSONS.md` operational memory ingestion by routine role (`[autowork]`, `[peer-review]`, `[general]`) to prevent unbounded prompt token bloat while maintaining high-signal operational memory
|
|
34
|
-
- **runner:** add head-tail streaming truncation circuit breaker (`DEFAULT_MAX_LINES = 500`, `DEFAULT_MAX_BYTES = 64KB`) for command execution and large tool outputs to prevent context overflow and worker stalls
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
### Fixed
|
|
38
|
-
|
|
39
|
-
- **terminal-card:** refine backlog triage hints to provide targeted unblock advice for radar digests and `needs-attention` issues instead of generic `needs-human` prompts
|
|
40
|
-
|
|
41
42
|
## [1.35.1](https://github.com/Jonah-Projects/jonah-fleet/compare/v1.35.0...v1.35.1) (2026-10-10)
|
|
42
43
|
|
|
43
44
|
|
package/package.json
CHANGED
|
@@ -28,7 +28,7 @@ Autowork triggers pass the target issue via environment variables (`TARGET_ISSUE
|
|
|
28
28
|
|
|
29
29
|
Invariants deliberately upheld from this spec:
|
|
30
30
|
|
|
31
|
-
- **Single-flight per issue and PR convergence** — at most one run works an issue or pull request at a time, enforced by the autowork claim protocol (assign → read-back → earliest-timestamp tiebreak). For **umbrella** issues, single-flight is maintained at the _child-issue_ level so slices progress cleanly.
|
|
31
|
+
- **Single-flight per issue and PR convergence** — at most one run works an issue or pull request at a time, enforced by the autowork claim protocol (assign → read-back → earliest-timestamp tiebreak). For **umbrella** issues, single-flight is maintained at the _child-issue_ level so slices progress cleanly. Pull requests actively claimed by peer review (`Starting review (round N)` within 2 hours) or awaiting review are strictly protected from concurrent autowork convergence and repetitive polling loops.
|
|
32
32
|
- **Recover dead-run claims** — a crashed run's orphaned claim is released back to the pool rather than starving the issue or PR, both opportunistically during candidate selection and periodically via issues housekeeping.
|
|
33
33
|
- **Reader/writer separation** — the routine that authors a PR never merges it; the Peer Review routine is the sole merge authority for pull requests.
|
|
34
34
|
- **Warm-Context Review Synchronization** — Autowork maintains an active warm session during implementation, polling for Peer Review's verdict. When Peer Review bounces a PR to draft with findings, Autowork immediately detects the draft state in-session, applies fixes directly to its warm working tree, and re-marks the PR ready—re-firing Peer Review for Round N+1 without cold-start overhead.
|
|
@@ -54,7 +54,7 @@ Single source of truth for both autowork candidate reclamation and housekeeping
|
|
|
54
54
|
|
|
55
55
|
Single source of truth for Autowork Phase 1 pull request convergence. An assigned pull request or draft PR with unaddressed review comments is a _stale claim_ (safe to reclaim and reassign by another runner) only when **all** of these hold:
|
|
56
56
|
|
|
57
|
-
1. **It carries an autowork claim comment**: The PR thread contains `🔒 Addressing review findings by autowork run
|
|
57
|
+
1. **It carries an autowork claim comment or peer-review marker**: The PR thread contains `🔒 Addressing review findings by autowork run …`, `🔒 Addressing review findings by local autowork session …`, or `Starting review (round N) …`.
|
|
58
58
|
2. **The claim is old**: The most recent claim comment's `created_at` is **more than 2 hours** ago. (2 hours instead of 6 hours because PR review convergence is a rapid turnaround loop).
|
|
59
59
|
3. **No active commits or review activity**: No new commit has been pushed to the PR branch within the last 2 hours.
|
|
60
60
|
|
|
@@ -61,6 +61,7 @@ If any criterion cannot be met, stop immediately and log FAILURE with the reason
|
|
|
61
61
|
- Do not fall into the **Telemetry Rabbit Hole**: do not spend cycles instrumenting elaborate fallback telemetry or defensive error handling for features that suffer from lack of user intent rather than software bugs.
|
|
62
62
|
- Do not guess or invent arbitrary specifications for ambiguous issues — post the 4-part escalation card ('Why I believe this'), label `needs-info`, and release the claim instead of blindly writing code.
|
|
63
63
|
- Do not call `schedule` or yield the turn with plain text while waiting for background verification tasks — stay in the tool loop until the Definition of Done is met.
|
|
64
|
+
- Do not busy-poll external routine issues, PRs under review, or background tasks in a repetitive tool loop; never poll in a loop with identical commands (e.g. repeated `gh issue view <peer_review_run>` or `gh run view`) without making progress.
|
|
64
65
|
- Do not write implementation code before proving that the reproduction test or verifier fails (the Red Gate).
|
|
65
66
|
- Do not pause or prompt rhetorical questions ("Shall I continue?", "Should I start implementing?")—proceed autonomously.
|
|
66
67
|
- Do not use bare `git commit` or blind `git add .` without scoping specific paths (`git commit -m "..." -- <paths>`).
|
|
@@ -92,9 +93,10 @@ b. **Eligible → claim, then implement.** Call `get_me` once to learn your own
|
|
|
92
93
|
### Phase 1: Converge on open work (Scan mode; skipped in Targeted mode)
|
|
93
94
|
|
|
94
95
|
1. List all open PRs needing attention (specifically draft PRs bounced back by peer review or open PRs with review comments: `gh pr list --state open --json number,title,isDraft,headRefName,assignees,labels,author`, excluding automated release PRs `release-please--*` / `chore(main): release*`).
|
|
96
|
+
- **Active Peer Review & Non-Draft Awaiting Review Invariant**: In Phase 1, only PRs that have been **bounced to draft** with actionable review findings, or PRs with **unaddressed review comments** (threads from peer review requiring code changes), require convergence. If a PR is ready for review (`isDraft: false`), or carries an active peer-review claim comment (`Starting review (round N)` posted within the last 2 hours), or has no unaddressed review comments / changes requested, you DO NOT OWN THIS PR. You MUST NOT attempt to address it, MUST NOT block, and MUST NEVER poll its review run issue (e.g. `gh issue view <peer_review_run>`). Skip this PR immediately and evaluate the next PR or proceed directly to Phase 2.
|
|
95
97
|
1a. **PR Claim Protocol (Single-Flight PR Convergence)**:
|
|
96
98
|
- For each open PR needing attention (bounced to draft with actionable findings, or open with unaddressed review comments):
|
|
97
|
-
- **Check eligibility**: re-read candidate PR (`gh pr view <PR> --json assignees,comments`). Skip PRs currently assigned to another live runner or carrying an active claim comment posted within the last 2 hours (unless stale claim per `ORCHESTRATION.md`).
|
|
99
|
+
- **Check eligibility**: re-read candidate PR (`gh pr view <PR> --json assignees,comments`). Skip PRs currently assigned to another live runner or carrying an active claim comment posted within the last 2 hours per the invariant above (unless stale claim per `ORCHESTRATION.md`).
|
|
98
100
|
- Call `get_me` once to learn your own login if not already known.
|
|
99
101
|
- **Claim atomically**: assign yourself to the PR (`gh pr edit <PR> --add-assignee <login>`) AND post a claim comment on the PR:
|
|
100
102
|
- In **Cloud Actions**: `🔒 Addressing review findings by autowork run {run_url} {timestamp}`
|