Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "commitlore",
"displayName": "CommitLore",
"version": "1.2.4",
"version": "1.2.5",
"description": "Recorded decisions from git history, delivered to the agent before it edits. Constraints, alternatives already ruled out, and warnings left by whoever was here last.",
"author": {
"name": "MongLong0214",
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "commitlore",
"version": "1.2.4",
"version": "1.2.5",
"description": "Decision memory from Git history, with verified capture for coding sessions.",
"author": {
"name": "MongLong0214",
Expand Down
59 changes: 59 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,65 @@ Release notes for 1.0.0, 1.0.1 and 1.0.2 are on the
[GitHub releases page](https://github.com/MongLong0214/commitlore/releases); they
were not written here.

## 1.2.5

Two flags on `capture` did nothing and said nothing; a third refusal knew the
fix and did not say it.

**`capture --out` exited 0 and never wrote the file (#878).** The flag is
documented as "write the pending nonce to a file", and prompt-only mode — get the
nonce, hand the prompt to a model, come back with `--draft` — is the step it
exists for. That was the one run where the pipeline reported `nonce: null` while
prepare had already persisted a real transaction under a real nonce, so the write
was guarded out. Measured by the reporter as 3 runs, 3 exit 0, 3 missing files,
with and without `--diff`. The nonce is now reported, so `--out` writes it and
`--json` carries it.

**`capture --diff` was accepted, ignored by prepare, and honoured by verify
(#877).** Passing the *same* `--diff` file to both steps failed whenever that
file was not byte-identical to the staged diff:
`discarded record 0 (source-mismatch): diff hash does not match the prepared
transaction`. That message is about the draft's sources, and the fault was
entirely the flag's — the reporter spent several attempts re-checking quotes and
locators that were never wrong.

The refusal itself was right and stays. A capture transaction binds to the staged
diff, which prepare, verify and stage each recompute independently, because every
binding is computed server-side and never from the caller. `--diff` cannot select
a different diff; it can only assert what is staged. So it is now refused where
that is decidable — up front, exit 2, naming the flag and naming the way out
(`git reset --soft`, which is what the reporter had to find on their own) — rather
than several steps later against the record. A run refused this way also leaves no
pending transaction behind; the old path wrote two per attempt.

`--diff` byte-identical to the staged diff keeps working, and the help text now
says what the flag does rather than implying an override it never had.

**`unknown-key` now names the `X-` form the author could have written (#881).**
Claude Code instructs every session to end its commit message with
`Claude-Session:`, so the key arrives by default, the hook refuses it, the commit
is lost, and an agent that cannot see the repository's earlier commits writes it
again. Reported twice in one day in two repositories by the same author, the
second time after already knowing about the first, because `X-` is not the kind of
thing that stays in mind between repositories.

```
31: unknown-key Claude-Session — got "Claude-Session",
want "a key from SPEC §3, or X-Claude-Session if this is your own metadata"
```

Nothing is accepted that was not accepted before, and nothing is rewritten: SPEC
§6 says the message is not modified, and silently renaming someone's trailer would
be worse than refusing it. This only says the name. Two keys are deliberately not
offered the prefix — one whose value reads as a sentence, which keeps the #647
answer, because that author's problem is that their prose became metadata; and one
that differs from a SPEC §3 key only by case, because `X-limit` would be a valid
record carrying the wrong key.

`spec/fixtures/invalid/03-unknown-key.expected.json` moves with it. The violation
it pins is unchanged and `Constraint:` is still refused; only the advisory `want`
text differs.

## 1.2.4

`doctor` blamed the hook that worked, and prescribed reinstalling it.
Expand Down
12 changes: 6 additions & 6 deletions README.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,18 @@
</p>

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

<details>
<summary>先にインストーラーを読みたいですか?</summary>

```bash
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh
sh install.sh v1.2.4
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh
sh install.sh v1.2.5

# あるいはスクリプトを使わずに。スクリプトが作るチェックアウトは自分でも作れます。
git clone --depth 1 --branch v1.2.4 https://github.com/MongLong0214/commitlore
git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```

Expand Down Expand Up @@ -107,13 +107,13 @@ CommitLore はその判断をコードのそばに残します。
macOS と Linux:

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

Windows:

```powershell
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.ps1))) v1.2.4
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5
```

Node.js 22.23.2+ と Git が必要です。スクリプトは何かを書き込む前に両方を確認します。
Expand Down
12 changes: 6 additions & 6 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,18 @@
</p>

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

<details>
<summary>먼저 설치기를 읽어 보고 싶나요?</summary>

```bash
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh
sh install.sh v1.2.4
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh
sh install.sh v1.2.5

# 또는 스크립트를 건너뜁니다. 스크립트가 만드는 체크아웃은 직접 만들 수 있습니다.
git clone --depth 1 --branch v1.2.4 https://github.com/MongLong0214/commitlore
git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```

Expand Down Expand Up @@ -107,13 +107,13 @@ CommitLore는 그 판단을 코드 곁에 보관합니다.
macOS와 Linux:

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

Windows:

```powershell
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.ps1))) v1.2.4
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5
```

Node.js 22.23.2+와 Git이 필요합니다. 스크립트는 무엇이든 쓰기 전에 둘을 확인합니다.
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,18 +48,18 @@
</p>

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

<details>
<summary>Prefer to read the installer first?</summary>

```bash
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh
sh install.sh v1.2.4
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh
sh install.sh v1.2.5

# Or skip the script: the checkout it makes is one you can make yourself.
git clone --depth 1 --branch v1.2.4 https://github.com/MongLong0214/commitlore
git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```

Expand Down Expand Up @@ -109,13 +109,13 @@ preserve, not for narrating every change.
macOS and Linux:

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

Windows:

```powershell
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.ps1))) v1.2.4
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5
```

Requires Node.js 22.23.2+ and Git. The script checks both before it writes anything.
Expand Down
12 changes: 6 additions & 6 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,18 @@
</p>

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

<details>
<summary>想先阅读安装器吗?</summary>

```bash
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh
sh install.sh v1.2.4
curl -fsSLO https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh
sh install.sh v1.2.5

# 或者跳过脚本:它创建的检出,你自己也能创建。
git clone --depth 1 --branch v1.2.4 https://github.com/MongLong0214/commitlore
git clone --depth 1 --branch v1.2.5 https://github.com/MongLong0214/commitlore
node commitlore/dist/commitlore.mjs --version
```

Expand Down Expand Up @@ -105,13 +105,13 @@ CommitLore 把那份判断留在代码旁边。
macOS 和 Linux:

```bash
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.sh | sh -s v1.2.4
curl -fsSL https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.sh | sh -s v1.2.5
```

Windows:

```powershell
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.4/install.ps1))) v1.2.4
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/MongLong0214/commitlore/v1.2.5/install.ps1))) v1.2.5
```

需要 Node.js 22.23.2+ 和 Git。脚本会在写入任何内容前检查两者。
Expand Down
46 changes: 36 additions & 10 deletions dist/commands/capture.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading