Skip to content

Commit 9657e73

Browse files
fix(docs): update docs
Statistics: 5 files changed, 230 insertions, 140 deletions Summary: - Dirs: .=2, src=2, tests=1 - Exts: .py=3, .md=1, .lock=1 - A/M/D: 0/5/0 - Symbols: _find_blocking_tickets, _promote_blocking_to_critical, _build_ticket_args, _extract_error_from_stderr, _try_fallback_ticket_list Modified files: - README.md (+4/-4) - src/koru/autonomous.py (+16/-1) - src/koru/context.py (+207/-134) - tests/test_autonomous.py (+2/-0) - uv.lock (+1/-1) Changes (notes): - README.md (+4/-4): update documentation - src/koru/autonomous.py (+16/-1): update - src/koru/context.py (+207/-134): add functions: _auto_promote_blocking_tickets, _build_ticket_args, _extract_error_from_stderr, _find_blocking_tickets - tests/test_autonomous.py (+2/-0): update - uv.lock (+1/-1): update Implementation notes (heuristics): - Type inferred from file paths + diff keywords + add/delete ratio - Scope prefers 'goal' when goal/* is touched; otherwise based on top-level dirs - For <=6 files: generate short per-file notes from added lines (defs/classes/click options/headings) - A/M/D derived from git name-status; per-file +X/-X from git numstat
1 parent 1d6a307 commit 9657e73

8 files changed

Lines changed: 243 additions & 142 deletions

File tree

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7474
`quality:regix``gate:regix`, `quality:redup*``gate:redup`,
7575
`quality:sumr:*``gate:sumr`.
7676

77+
## [0.1.62] - 2026-05-12
78+
79+
### Docs
80+
- Update README.md
81+
82+
### Test
83+
- Update tests/test_autonomous.py
84+
85+
### Other
86+
- Update uv.lock
87+
7788
## [0.1.61] - 2026-05-12
7889

7990
### Docs

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
## AI Cost Tracking
66

7-
![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.1.61-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
8-
![AI Cost](https://img.shields.io/badge/AI%20Cost-$3.34-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-27.9h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
7+
![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-0.1.62-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
8+
![AI Cost](https://img.shields.io/badge/AI%20Cost-$3.35-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-28.4h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
99

10-
- 🤖 **LLM usage:** $3.3440 (85 commits)
11-
- 👤 **Human dev:** ~$2795 (27.9h @ $100/h, 30min dedup)
10+
- 🤖 **LLM usage:** $3.3518 (86 commits)
11+
- 👤 **Human dev:** ~$2845 (28.4h @ $100/h, 30min dedup)
1212

1313
Generated on 2026-05-12 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
1414

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.61
1+
0.1.62

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "koru"
7-
version = "0.1.61"
7+
version = "0.1.62"
88
description = "Closed-loop automation across semcod/* repositories."
99
readme = "README.md"
1010
requires-python = ">=3.12"

src/koru/autonomous.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,22 @@ def _run_cycle(
269269
autopilot_status = "skipped"
270270
if enable_autopilot and client is not None:
271271
if queue_result.last_status in _AUTOPILOT_BLOCKED_QUEUE_STATUSES:
272-
print(f" autopilot: skipped (queue_status={queue_result.last_status})")
272+
# Queue needs human/LLM attention — drive the actual ticket
273+
# content instead of the generic drive_prompt so the IDE's LLM
274+
# knows exactly what to work on.
275+
ticket_prompt = queue_result.last_message.strip() if queue_result.last_message else ""
276+
if ticket_prompt:
277+
reply = client.drive(ticket_prompt, submit=submit, ide=autopilot_ide)
278+
ok = bool(reply.get("ok", True))
279+
autopilot_status = "ok" if ok else "failed"
280+
if ok:
281+
backend = reply.get("backend", "?")
282+
print(f" autopilot: ok (ticket={queue_result.ticket_id}, ide={autopilot_ide}, backend={backend})")
283+
else:
284+
message = reply.get("message", "unknown error")
285+
print(f" autopilot: failed ({message})")
286+
else:
287+
print(f" autopilot: skipped (queue_status={queue_result.last_status}, empty message)")
273288
else:
274289
reply = client.drive(drive_prompt, submit=submit, ide=autopilot_ide)
275290
ok = bool(reply.get("ok", True))

0 commit comments

Comments
 (0)