Skip to content

Commit b2e6141

Browse files
authored
Merge pull request #39 from Digital-Threads/feat/complete-finalize
feat: complete finalizes tasks — enrich, retitle, close-if-done, batch (0.22.0)
2 parents 1f1a064 + 1389beb commit b2e6141

12 files changed

Lines changed: 930 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,33 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.22.0] - 2026-06-13
11+
12+
### Added
13+
- **`complete` finalizes a task.** `task-journal complete <id>` now brings a
14+
legacy task to the shape a live-journaled one would have had: it enriches the
15+
task's memory from the sessions it touched (task-scoped — no dream watermark,
16+
so tasks finalize independently), asks the model to judge a human-readable
17+
title, a one-sentence outcome, and whether the events clearly show the task is
18+
done, then writes a `Rename` event when the auto-title is junk and a `Close`
19+
event **only when done** — the model decides from content; unclear tasks stay
20+
open. Artifacts are picked up automatically as enriched events are indexed.
21+
- **Batch finalize.** `task-journal complete` with no id finalizes every open
22+
task: it prints a numbered list (id · event/session counts · title), lets you
23+
exclude tasks by number, shows the count and asks to confirm, then finalizes
24+
the rest; tasks judged not-done are left open and listed at the end. `--quick`
25+
skips the heavy enrich pass, `--dry-run` reports scope without calling the
26+
model, and `--yes` is required to run the batch without an interactive
27+
terminal (so a hook can't mass-close tasks unattended).
28+
- **`Rename` event type** — updates a task's title on replay (latest wins),
29+
letting `complete` fix junk auto-titles without mutating the append-only log.
30+
31+
### Fixed
32+
- **Close outcome survives a rebuild.** `Close` events now carry their
33+
`outcome`/`outcome_tag` in metadata and `rebuild_state` restores them, so a
34+
recorded outcome is no longer lost the next time the SQLite state is rebuilt
35+
from the JSONL log.
36+
1037
## [0.21.0] - 2026-06-13
1138

1239
### Added

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ members = [
77
]
88

99
[workspace.package]
10-
version = "0.21.1"
10+
version = "0.22.0"
1111
edition = "2021"
1212
rust-version = "1.88"
1313
license = "MIT"

crates/tj-cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ default = ["embed"]
2323
embed = ["tj-core/embed"]
2424

2525
[dependencies]
26-
tj-core = { package = "task-journal-core", version = "0.21.1", path = "../tj-core", default-features = false }
26+
tj-core = { package = "task-journal-core", version = "0.22.0", path = "../tj-core", default-features = false }
2727
anyhow = { workspace = true }
2828
clap = { workspace = true }
2929
tracing = { workspace = true }

0 commit comments

Comments
 (0)