tink-harness 1.9.21 → 1.9.22

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tink",
3
3
  "description": "A small harness layer for Claude Code and Codex.",
4
- "version": "1.9.21",
4
+ "version": "1.9.22",
5
5
  "author": {
6
6
  "name": "dotori"
7
7
  }
package/CHANGELOG.md CHANGED
@@ -6,6 +6,13 @@ All notable changes to Tink are tracked here.
6
6
 
7
7
  No unreleased changes yet.
8
8
 
9
+ ## [1.9.22] - 2026-06-11
10
+
11
+ ### Added
12
+
13
+ - Install/update completion output now points to the GitHub repo with a one-line star note (ko/zh/en).
14
+ - Progress display gained a full progress map (one bar per phase with the active row marked, an overall bar, and the active phase's step list) shown at plan creation/restructure, phase completion, resume, and on request; the compact 3-line block remains the every-response footer.
15
+
9
16
  ## [1.9.21] - 2026-06-11
10
17
 
11
18
  ### Changed
package/README.ko.md CHANGED
@@ -10,7 +10,7 @@ Tink는 사소하지 않은 모든 에이전트 작업을 눈에 보이는 파
10
10
 
11
11
  <sub>Claude Code와 Codex를 위한 작은 하네스 레이어</sub>
12
12
 
13
- **최신 패키지:** v1.9.21 — 로컬 건강 리포트가 탭형 대시보드로 바뀌었습니다. 3D 하네스 지도, 쉬운 말 건강 요약, Claude Code와 Codex 양쪽 복사-붙여넣기 명령이 포함된 다음 행동 제안을 제공합니다. 전체 변경 이력은 [CHANGELOG](CHANGELOG.md)를 확인하세요.
13
+ **최신 패키지:** v1.9.22 — 로컬 건강 리포트가 탭형 대시보드로 바뀌었습니다. 3D 하네스 지도, 쉬운 말 건강 요약, Claude Code와 Codex 양쪽 복사-붙여넣기 명령이 포함된 다음 행동 제안을 제공합니다. 전체 변경 이력은 [CHANGELOG](CHANGELOG.md)를 확인하세요.
14
14
 
15
15
  [English](README.md) · **한국어** · [변경 이력](CHANGELOG.md)
16
16
 
package/README.md CHANGED
@@ -17,14 +17,14 @@
17
17
  <p><sub>A small harness layer for Claude Code and Codex</sub></p>
18
18
 
19
19
  <p>
20
- <a href="https://github.com/dotoricode/tink-harness/releases/tag/v1.9.21"><img src="https://img.shields.io/github/v/release/dotoricode/tink-harness?label=release&color=2ea44f" alt="GitHub release"></a>
20
+ <a href="https://github.com/dotoricode/tink-harness/releases/tag/v1.9.22"><img src="https://img.shields.io/github/v/release/dotoricode/tink-harness?label=release&color=2ea44f" alt="GitHub release"></a>
21
21
  <a href="https://www.npmjs.com/package/tink-harness"><img src="https://img.shields.io/npm/v/tink-harness?label=npm&color=cb3837" alt="npm version"></a>
22
22
  <a href="https://github.com/dotoricode/tink-harness/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/dotoricode/tink-harness/ci.yml?branch=main&label=ci" alt="CI"></a>
23
23
  <a href="https://github.com/dotoricode/tink-harness/blob/main/LICENSE"><img src="https://img.shields.io/github/license/dotoricode/tink-harness" alt="License"></a>
24
24
  <a href="https://github.com/dotoricode/tink-harness/stargazers"><img src="https://img.shields.io/github/stars/dotoricode/tink-harness?style=social" alt="GitHub stars"></a>
25
25
  </p>
26
26
 
27
- <p><strong>Latest package:</strong> v1.9.21 - The local health report is now a tabbed dashboard with a 3D harness map, plain-language health summaries, and next-action suggestions with copy-paste commands for both Claude Code and Codex. See <a href="CHANGELOG.md">CHANGELOG</a> for release history.</p>
27
+ <p><strong>Latest package:</strong> v1.9.22 - The local health report is now a tabbed dashboard with a 3D harness map, plain-language health summaries, and next-action suggestions with copy-paste commands for both Claude Code and Codex. See <a href="CHANGELOG.md">CHANGELOG</a> for release history.</p>
28
28
 
29
29
  **English** · [한국어](README.ko.md) · [Changelog](CHANGELOG.md)
30
30
 
package/VERSIONING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Versioning
2
2
 
3
- Current version: `1.9.21`
3
+ Current version: `1.9.22`
4
4
 
5
5
  Tink follows semver from `1.0.0` onward.
6
6
 
package/bin/install.js CHANGED
@@ -740,6 +740,16 @@ function nextStepFor(agent) {
740
740
  return 'Next: open Claude Code and run /tink:cast <task> to start. Run /tink:setup only to review or change settings.';
741
741
  }
742
742
 
743
+ function githubPointer(language) {
744
+ if (language === 'ko') {
745
+ return '문서·데모·로드맵: https://github.com/dotoricode/tink-harness' + String.fromCharCode(10) + 'Tink가 Claude Code·Codex 워크플로에 도움이 됐다면, star 하나가 다른 개발자들이 찾는 데 힘이 됩니다.';
746
+ }
747
+ if (language === 'zh') {
748
+ return '文档、演示与路线图: https://github.com/dotoricode/tink-harness' + String.fromCharCode(10) + '如果 Tink 对你的 Claude Code/Codex 工作流有帮助,一个 star 能帮助更多人发现它。';
749
+ }
750
+ return 'Docs, demo, and roadmap: https://github.com/dotoricode/tink-harness' + String.fromCharCode(10) + 'If Tink helps your Claude Code or Codex workflow, a star helps others find it.';
751
+ }
752
+
743
753
  function doneLineFor(agent) {
744
754
  if (agent === 'codex') return '\nDone. Open Codex and use $tink:cast <task> to start.';
745
755
  if (agent === 'all') return '\nDone. Use /tink:cast <task> in Claude Code or $tink:cast <task> in Codex to start.';
@@ -1007,10 +1017,12 @@ async function main() {
1007
1017
  if (interactive) {
1008
1018
  note(summary, COPY[language].installed);
1009
1019
  if (isUpdate) note(updateResultSummary(agent, targets), 'Update Result Summary');
1020
+ note(githubPointer(language), 'GitHub');
1010
1021
  outro(COPY[language].done);
1011
1022
  } else {
1012
1023
  console.log(`\n${summary}`);
1013
1024
  if (isUpdate) console.log(`\n${updateResultSummary(agent, targets)}`);
1025
+ console.log(`\n${githubPointer(language)}`);
1014
1026
  console.log(doneLineFor(agent));
1015
1027
  }
1016
1028
  }
package/commands/cast.md CHANGED
@@ -408,6 +408,34 @@ Rule: while such a run is active, END every assistant response with a progress b
408
408
  - On run completion, show the final 100% bar once with `✅` instead of `다음`.
409
409
  - Never skip the block because a response feels small; if the response is blocked, the block shows where work stopped.
410
410
 
411
+ **Full progress view.** The compact block above is the every-response footer. At key moments, show the full map instead, so the user can plan how far to go today:
412
+
413
+ - right after the plan is first created or restructured,
414
+ - right after a goal/phase completes,
415
+ - on the first response after resuming a run, and
416
+ - whenever the user asks about progress or the plan.
417
+
418
+ ```text
419
+ 📊 전체 진행 상황
420
+ ✅ Phase 0 nav graph ▓▓▓▓▓▓▓▓▓▓ 100%
421
+ ▶ Phase 1 Section Index ░░░░░░░░░░ 0% ← 지금
422
+ Phase 2 Block Index ░░░░░░░░░░ 0%
423
+ Phase 3 query + aliases ░░░░░░░░░░ 0%
424
+ ──────────────────────────────────────
425
+ 전체 ▓▓▓░░░░░░░ 25% · 4개 중 1개 완료
426
+
427
+ ▶ Phase 1 세부
428
+ ✅ [1/4] build-block-index.mjs 작성
429
+ ▶ [2/4] sections/*.jsonl 생성 ← 지금
430
+ [3/4] validate-index.mjs 기본 구조
431
+ [4/4] line range 검증
432
+ ```
433
+
434
+ - One row per goal/phase with its own 10-cell bar; mark completed rows `✅`, the active row `▶` plus `← 지금`. Below the divider, the same overall bar as the compact block.
435
+ - The detail block lists the active phase's steps with `✅`/`▶`/blank markers - no mini bars; the markers carry the state.
436
+ - Keep alignment tolerant: pad with two or more spaces instead of strict columns, because mixed Korean/English widths break exact tables.
437
+ - The full view replaces the compact block in that response; the next response returns to the compact footer.
438
+
411
439
  ## Procedure
412
440
  This is the Lane 3 full path from Quick triage. Lanes 1 and 2 intentionally skip most of it.
413
441
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tink-harness",
3
- "version": "1.9.21",
3
+ "version": "1.9.22",
4
4
  "description": "Self-growing harnesses for Claude Code and Codex.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -408,6 +408,34 @@ Rule: while such a run is active, END every assistant response with a progress b
408
408
  - On run completion, show the final 100% bar once with `✅` instead of `다음`.
409
409
  - Never skip the block because a response feels small; if the response is blocked, the block shows where work stopped.
410
410
 
411
+ **Full progress view.** The compact block above is the every-response footer. At key moments, show the full map instead, so the user can plan how far to go today:
412
+
413
+ - right after the plan is first created or restructured,
414
+ - right after a goal/phase completes,
415
+ - on the first response after resuming a run, and
416
+ - whenever the user asks about progress or the plan.
417
+
418
+ ```text
419
+ 📊 전체 진행 상황
420
+ ✅ Phase 0 nav graph ▓▓▓▓▓▓▓▓▓▓ 100%
421
+ ▶ Phase 1 Section Index ░░░░░░░░░░ 0% ← 지금
422
+ Phase 2 Block Index ░░░░░░░░░░ 0%
423
+ Phase 3 query + aliases ░░░░░░░░░░ 0%
424
+ ──────────────────────────────────────
425
+ 전체 ▓▓▓░░░░░░░ 25% · 4개 중 1개 완료
426
+
427
+ ▶ Phase 1 세부
428
+ ✅ [1/4] build-block-index.mjs 작성
429
+ ▶ [2/4] sections/*.jsonl 생성 ← 지금
430
+ [3/4] validate-index.mjs 기본 구조
431
+ [4/4] line range 검증
432
+ ```
433
+
434
+ - One row per goal/phase with its own 10-cell bar; mark completed rows `✅`, the active row `▶` plus `← 지금`. Below the divider, the same overall bar as the compact block.
435
+ - The detail block lists the active phase's steps with `✅`/`▶`/blank markers - no mini bars; the markers carry the state.
436
+ - Keep alignment tolerant: pad with two or more spaces instead of strict columns, because mixed Korean/English widths break exact tables.
437
+ - The full view replaces the compact block in that response; the next response returns to the compact footer.
438
+
411
439
  ## Procedure
412
440
  This is the Lane 3 full path from Quick triage. Lanes 1 and 2 intentionally skip most of it.
413
441
 
@@ -60,7 +60,7 @@ Default Korean options are `승인`, `조정`, `취소`. If a run-only draft is
60
60
 
61
61
  Option label quality rules: use short, common, readable labels only. Good Korean labels include `승인`, `조정`, `취소`, `요구사항 입력`, `기본 하네스만 사용`, `새 하네스 초안 만들기`, `구조 점검`, `내용 점검`, and `전체 점검`. Do not invent compressed Korean labels, transliterated fragments, or unclear summaries such as `콘데의달 지질`. If the idea is too specific for a clean 1-5 word label, put the detail in `description` and use a generic label such as `내용 점검` or `전체 점검`. Before calling `request_user_input`, reread each Korean label; if it looks misspelled, unnatural, or semantically unclear, replace it with a plain fallback label.
62
62
 
63
- When `request_user_input` is unavailable, write the same approval request as a normal assistant message and wait for the user's answer. Do not create run state, load harness bodies, edit files, run commands, or continue the task before the answer. A user's `$tink:cast` invocation means "prepare and ask for approval", not "start immediately". Exception - quick triage Lane 1: when the request is clearly simple and safe (a question, a read-only check, or one obvious localized edit with no hard-gate signals), start immediately with a one-line marker instead of asking; full preparation applies to non-trivial tasks. When an active plan has 3 or more steps, end every response with the Tink progress block (10-cell bar, current step, remaining steps).
63
+ When `request_user_input` is unavailable, write the same approval request as a normal assistant message and wait for the user's answer. Do not create run state, load harness bodies, edit files, run commands, or continue the task before the answer. A user's `$tink:cast` invocation means "prepare and ask for approval", not "start immediately". Exception - quick triage Lane 1: when the request is clearly simple and safe (a question, a read-only check, or one obvious localized edit with no hard-gate signals), start immediately with a one-line marker instead of asking; full preparation applies to non-trivial tasks. When an active plan has 3 or more steps, end every response with the Tink progress block (10-cell bar, current step, remaining steps); right after creating or restructuring a plan, completing a goal/phase, or resuming a run, show the full progress map instead (one bar per phase with the active row marked, an overall bar, and the active phase's steps).
64
64
 
65
65
  Use this compact approval request shape. Keep it short; do not expose internal terms such as Stitch, Probe, synthesis probe, generic fit, or hard gate in user-facing text. Translate them into plain wording such as `확인할 점`, `맞춤 절차 판단`, `기본 하네스로 충분`, or `기본 하네스만으로는 부족함`.
66
66