Skip to content

Commit 694792c

Browse files
feat(docs): deep code analysis engine with 5 supporting modules
stats: lines: "+33/-9 (net +24)" files: 3 complexity: "Stable complexity"
1 parent 84b8fff commit 694792c

5 files changed

Lines changed: 42 additions & 8 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
195195
- `README.md` + `docs/llm-tools/README.md` — sumd/sumr i redeploy dodane
196196
do list narzędzi i matrix konfiguracji.
197197

198+
## [0.1.13] - 2026-05-11
199+
200+
### Docs
201+
- Update README.md
202+
203+
### Other
204+
- Update uv.lock
205+
198206
## [0.1.12] - 2026-05-11
199207

200208
### Docs

README.md

Lines changed: 31 additions & 5 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.12-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-$5.10-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-11.0h-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.13-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-$5.25-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-11.2h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
99

10-
- 🤖 **LLM usage:** $5.1000 (34 commits)
11-
- 👤 **Human dev:** ~$1101 (11.0h @ $100/h, 30min dedup)
10+
- 🤖 **LLM usage:** $5.2500 (35 commits)
11+
- 👤 **Human dev:** ~$1122 (11.2h @ $100/h, 30min dedup)
1212

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

@@ -76,13 +76,18 @@ The doctor probes 8 things and never writes anything: `git_repo`,
7676
`1` if any check fails, `0` if only warnings (warnings are advisory).
7777
Use it after `koru --init` and whenever a session starts mis-behaving.
7878

79-
Natural-language intake is built in:
79+
Natural-language intake and housekeeping are built in:
8080

8181
```bash
8282
koru task "Dodaj feature importu raportów"
8383
koru agent --list # show Windsurf/Cursor/Claude Code/aider/OpenRouter lanes
8484
koru agent # print and save the current LLM handoff prompt
8585
koru agent --launch # launch the best available CLI agent when possible
86+
koru scan # auto-generate tickets from repo signals (TODOs, pytest errors)
87+
koru scan --apply # create the proposed tickets in planfile
88+
koru gc # preview stale tickets eligible for cleanup
89+
koru gc --apply # delete old done/failed/blocked tickets
90+
koru gate authorize PLF-070 --mode advisory --reason "..." # record a gate waiver
8691
```
8792

8893
The no-args `koru` prompt includes detected project markers
@@ -231,6 +236,26 @@ change queue execution semantics.
231236
pip install "koru[watch]"
232237
```
233238

239+
## Queue garbage collection — `koru gc`
240+
241+
Over time, completed and failed tickets accumulate in the sprint YAML.
242+
`koru gc` cleans them up:
243+
244+
```bash
245+
koru gc # dry-run: preview what would be removed
246+
koru gc --apply # actually delete stale tickets
247+
koru gc --max-age 7 # only keep tickets younger than 7 days
248+
koru gc --keep-last 5 # always keep the 5 newest done tickets
249+
koru gc --status done,failed # only clean these statuses (default: done,failed,blocked)
250+
koru gc --no-archive # skip JSONL archive before deletion
251+
koru gc --format json # machine-readable output
252+
```
253+
254+
Before deletion, tickets are archived to
255+
`.planfile/.koru/gc/gc-YYYYMMDD-HHMMSS.jsonl` (disable with `--no-archive`).
256+
The `--keep-last N` flag protects the N most recently finished tickets per
257+
status even when they exceed `--max-age`.
258+
234259
## Filesystem contract
235260

236261
**koru never writes outside `<project>/.planfile/`.** This is a hard
@@ -243,6 +268,7 @@ rule for the production code path; any deviation is a bug.
243268
│ └── current.yaml # planfile-owned (source of truth)
244269
└── .koru/ # koru-owned, opt-in, gitignore-friendly
245270
├── runs/ # one log per `koru --queue` invocation
271+
├── gc/ # JSONL archives from `koru gc --apply`
246272
├── prompts/ # captured `--interactive` answers
247273
├── llm-cache/ # opt-in LlmExecutor response cache
248274
└── README.md # in-place explainer

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.1.12
1+
0.1.13

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.12"
7+
version = "0.1.13"
88
description = "Closed-loop automation across semcod/* repositories."
99
readme = "README.md"
1010
requires-python = ">=3.12"

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)