Skip to content

Commit ac948f6

Browse files
kevinkevin
authored andcommitted
release: prepare v0.7.3
1 parent 70cb66b commit ac948f6

8 files changed

Lines changed: 80 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,25 @@
22

33
## Unreleased
44

5+
## [0.7.3] — 2026-05-03
6+
7+
### Changed
8+
9+
- **umbrella summary fidelity**: `compute_summary(..., paths=...)` now preserves each umbrella candidate's `signal` (`name_token`, `description_token`, `downstream_share`, `execution_profile`) instead of returning only `token` and `skill_ids`. This removes ambiguity when the same token is surfaced by multiple signals.
10+
- **markdown report labels**: the `## Umbrella Candidates` section now prints the signal type in each cluster heading, matching JSON output and the standalone `helm skill-lifecycle umbrella --json` command.
11+
- **workspace hook validation**: verified the OpenClaw workspace runner path records `skill_used` and `skill_success` events against the same lifecycle sidecar files used by Helm.
12+
- **dedup gate noise reduction**: tightened the workspace briefing dedup checker so URL and filename-slug matches act as high-specificity Obsidian signals, reducing hub/index note noise while preserving the Gemini Embedding 2 duplicate catch.
13+
14+
### Packaging
15+
16+
- bumped package metadata to `0.7.3`.
17+
- smoke-tested the installed console script via `helm skill-lifecycle scan --path ~/.openclaw/workspace --dry-run --json`.
18+
19+
### Tests
20+
21+
- 60 lifecycle test cases passing.
22+
- Full suite: 369 tests passing.
23+
524
## [0.7.2] — 2026-05-03
625

726
### Added

README.ko.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<p align="center">Helm은 AI agent workspace를 위한 로컬 운영 레이어입니다. 명령 전 profile, 위험 작업 전 checkpoint, chat이 사라진 뒤에도 남는 durable task history를 제공합니다.</p>
1010

11-
<p align="center"><strong>현재 릴리즈: v0.7.2</strong></p>
11+
<p align="center"><strong>현재 릴리즈: v0.7.3</strong></p>
1212

1313
<p align="center">
1414
<a href="https://v0-helm-agent-ops.vercel.app/">Landing page</a> ·
@@ -228,6 +228,7 @@ Helm은 전용 workspace에 두고, 기존 시스템은 먼저 read-only context
228228
- [`CHANGELOG.md`](CHANGELOG.md)
229229
- [`CONTRIBUTING.md`](CONTRIBUTING.md)
230230
- [`SECURITY.md`](SECURITY.md)
231+
- [`docs/releases/0.7.3.md`](docs/releases/0.7.3.md)
231232
- [`docs/releases/0.7.2.md`](docs/releases/0.7.2.md)
232233
- [`docs/releases/0.7.1.md`](docs/releases/0.7.1.md)
233234
- [`docs/releases/0.7.0.md`](docs/releases/0.7.0.md)
@@ -236,7 +237,7 @@ Helm은 전용 workspace에 두고, 기존 시스템은 먼저 read-only context
236237
237238
## 현재 상태
238239
239-
Helm v0.7.2는 PRD의 남은 optional 항목을 채웁니다. `helm curator` alias, umbrella의 `execution_profile` 시그널, persisted negative claim에 대한 `revalidation-due`, archive dry-run의 파일 인벤토리 미리보기. 자세한 내용은 [`docs/skill-lifecycle.md`](docs/skill-lifecycle.md) 참고.
240+
Helm v0.7.3은 skill-lifecycle reporting 표면을 더 정확하게 다듬습니다. umbrella 후보 summary JSON과 report에 signal type을 보존하고, user install 후 packaged `helm` CLI smoke를 통과했으며, OpenClaw workspace hook 경로도 end-to-end로 검증했습니다. 자세한 내용은 [`docs/skill-lifecycle.md`](docs/skill-lifecycle.md) 참고.
240241
241242
Helm에는 private memory, personal agent overlay, credential, private task history가 포함되지 않습니다.
242243

README.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
<p align="center">Helm is a local operations layer for AI agent workspaces: profiles before commands, checkpoints before risky work, durable task history after the chat is gone.</p>
1010

11-
<p align="center"><strong>Current release: v0.7.2</strong></p>
11+
<p align="center"><strong>Current release: v0.7.3</strong></p>
1212

1313
<p align="center">
1414
<a href="https://v0-helm-agent-ops.vercel.app/">Landing page</a> ·
@@ -228,6 +228,7 @@ Release details:
228228
- [`CHANGELOG.md`](CHANGELOG.md)
229229
- [`CONTRIBUTING.md`](CONTRIBUTING.md)
230230
- [`SECURITY.md`](SECURITY.md)
231+
- [`docs/releases/0.7.3.md`](docs/releases/0.7.3.md)
231232
- [`docs/releases/0.7.2.md`](docs/releases/0.7.2.md)
232233
- [`docs/releases/0.7.1.md`](docs/releases/0.7.1.md)
233234
- [`docs/releases/0.7.0.md`](docs/releases/0.7.0.md)
@@ -236,7 +237,7 @@ Release details:
236237
237238
## Status
238239
239-
Helm v0.7.2 fills the remaining PRD optional items: `helm curator` alias, umbrella `execution_profile` signal, `revalidation-due` for persisted negative claims, and concrete file-inventory preview for archive dry-runs. See [`docs/skill-lifecycle.md`](docs/skill-lifecycle.md).
240+
Helm v0.7.3 tightens the skill-lifecycle reporting surface: umbrella candidates now preserve their signal type in summary JSON and reports, the packaged `helm` CLI was smoke-tested after user install, and the OpenClaw workspace hook path was verified end-to-end. See [`docs/skill-lifecycle.md`](docs/skill-lifecycle.md).
240241
241242
Helm does not include private memory, personal agent overlays, credentials, or private task history.
242243

docs/releases/0.7.3.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Helm v0.7.3 — Lifecycle Reporting Tightening
2+
3+
**Date:** 2026-05-03
4+
5+
Helm 0.7.3 is a small correctness and packaging release for the
6+
skill-lifecycle work shipped in 0.7.0-0.7.2. It keeps the public CLI
7+
surface stable while making summary output less ambiguous and confirming
8+
that the packaged `helm` command works after user installation.
9+
10+
## Changed
11+
12+
- umbrella candidates in `helm skill-lifecycle status --json` and
13+
`helm skill-lifecycle report --format json` now include the source
14+
`signal` for each cluster. This matches the standalone
15+
`helm skill-lifecycle umbrella --json` command and prevents duplicate
16+
tokens such as `market` from looking like the same recommendation.
17+
- markdown lifecycle reports now label umbrella clusters as
18+
`name_token`, `description_token`, `downstream_share`, or
19+
`execution_profile` instead of using the generic `shared token`
20+
heading for every cluster.
21+
- the OpenClaw workspace runner hook path was smoke-tested against the
22+
same lifecycle sidecar metadata used by Helm. A local `inspect_local`
23+
run with `--skill car` recorded both `skill_used` and
24+
`skill_success` events.
25+
- the workspace briefing dedup gate was tightened so URL and filename
26+
slug matches are treated as high-specificity Obsidian signals. In the
27+
Gemini Embedding 2 regression case, Obsidian matches now narrow to the
28+
relevant Gemini note instead of unrelated hub/index notes while still
29+
returning `seen_before=true`.
30+
31+
## Packaging
32+
33+
- package metadata bumped to `0.7.3`.
34+
- installed package smoke passed using the console script:
35+
`helm skill-lifecycle scan --path ~/.openclaw/workspace --dry-run --json`.
36+
37+
## Tests
38+
39+
- 60 lifecycle test cases passing.
40+
- full suite: 369 tests passing.
41+
42+
## Migration
43+
44+
No migration required. Existing 0.7.x lifecycle metadata is compatible.

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 = "helm-agent-ops"
7-
version = "0.7.2"
7+
version = "0.7.3"
88
description = "Stability-first operations CLI for long-lived agent workspaces."
99
readme = "README.md"
1010
requires-python = ">=3.10"

scripts/skill_lifecycle_lib.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,11 @@ def compute_summary(
446446

447447
if paths is not None:
448448
summary["umbrella_candidates"] = [
449-
{"token": cluster.token, "skill_ids": list(cluster.skill_ids)}
449+
{
450+
"signal": cluster.signal,
451+
"token": cluster.token,
452+
"skill_ids": list(cluster.skill_ids),
453+
}
450454
for cluster in detect_umbrella_candidates(paths)
451455
]
452456
summary["negative_claim_candidates"] = [
@@ -552,9 +556,10 @@ def _block(title: str, rows: Iterable[tuple[str, float | None]], unit: str) -> N
552556
lines.append("- (none)")
553557
else:
554558
for cluster in umbrella:
559+
signal = cluster.get("signal", "name_token")
555560
token = cluster["token"]
556561
skills = cluster["skill_ids"]
557-
lines.append(f"### shared token: `{token}` ({len(skills)} skills)")
562+
lines.append(f"### {signal}: `{token}` ({len(skills)} skills)")
558563
for skill_id in skills:
559564
lines.append(f"- {skill_id}")
560565
lines.append("")

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
setup(
55
name="helm-agent-ops",
6-
version="0.7.2",
6+
version="0.7.3",
77
description="Stability-first operations CLI for long-lived agent workspaces.",
88
py_modules=["helm", "helm_workspace", "helm_context"],
99
packages=["scripts", "commands", "references"],

tests/test_skill_lifecycle.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,7 @@ def test_compute_summary_with_paths_includes_candidates(tmp_path: Path) -> None:
637637
usage = load_usage(paths)
638638
summary = compute_summary(usage, DEFAULT_CONFIG, paths=paths)
639639
assert summary["umbrella_candidates"]
640+
assert summary["umbrella_candidates"][0]["signal"] == "name_token"
640641
assert summary["umbrella_candidates"][0]["token"] == "search"
641642
assert summary["negative_claim_candidates"]
642643
assert summary["negative_claim_candidates"][0]["keyword"] == "unavailable"
@@ -655,7 +656,7 @@ def test_render_report_includes_candidates(tmp_path: Path) -> None:
655656
usage = load_usage(paths)
656657
summary = compute_summary(usage, DEFAULT_CONFIG, paths=paths)
657658
md = render_report_markdown(usage, summary)
658-
assert "shared token: `search`" in md
659+
assert "name_token: `search`" in md
659660
assert "alpha-search" in md
660661
assert "[failed]" in md
661662

0 commit comments

Comments
 (0)