chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
# commit-history worked examples
|
||||
|
||||
## 1. Branch filter
|
||||
|
||||
User: "Show agent commits on main."
|
||||
|
||||
Invocation:
|
||||
|
||||
```json
|
||||
memory_commits { "branch": "main", "limit": 100 }
|
||||
```
|
||||
|
||||
Response:
|
||||
|
||||
```json
|
||||
{
|
||||
"commits": [
|
||||
{ "short": "9a1b2c3", "branch": "main", "authoredAt": "2026-06-07T09:12:00Z",
|
||||
"message": "rotate refresh tokens", "sessionIds": ["7f3a9c21"],
|
||||
"observationCount": 14, "files": 3 },
|
||||
{ "short": "b21d004", "branch": "main", "authoredAt": "2026-06-05T14:40:00Z",
|
||||
"message": "rate limiter audit", "sessionIds": ["b21d004e"],
|
||||
"observationCount": 9, "files": 1 }
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
Present:
|
||||
|
||||
> - `9a1b2c3` main 2026-06-07 "rotate refresh tokens", session `7f3a9c2` (14 obs, 3 files)
|
||||
> - `b21d004` main 2026-06-05 "rate limiter audit", session `b21d004` (9 obs, 1 file)
|
||||
|
||||
## 2. Bare number as limit
|
||||
|
||||
User: "commit-history 5"
|
||||
|
||||
Treat `5` as the limit:
|
||||
|
||||
```json
|
||||
memory_commits { "limit": 5 }
|
||||
```
|
||||
|
||||
Render the five newest linked commits in the same format.
|
||||
|
||||
## 3. Empty result
|
||||
|
||||
User: "Show agent commits on release-2.0."
|
||||
|
||||
```json
|
||||
memory_commits { "branch": "release-2.0", "limit": 100 }
|
||||
```
|
||||
|
||||
Response:
|
||||
|
||||
```json
|
||||
{ "commits": [] }
|
||||
```
|
||||
|
||||
Present:
|
||||
|
||||
> No agent-linked commits on `release-2.0`. Drop the branch filter to see all
|
||||
> linked commits, or try a different branch.
|
||||
|
||||
REST fallback for this same call, with encoding:
|
||||
|
||||
```http
|
||||
GET /agentmemory/commits?branch=release-2.0&limit=100
|
||||
```
|
||||
|
||||
Build it with `URLSearchParams` so a branch like `feat/a&b` becomes
|
||||
`feat%2Fa%26b` rather than breaking the query.
|
||||
@@ -0,0 +1,62 @@
|
||||
---
|
||||
name: commit-history
|
||||
description: List recent git commits linked to agent sessions, optionally filtered by branch or repo. Use when the user asks "show agent commits", "what has the agent shipped", "list linked commits", or wants commits with their session context.
|
||||
argument-hint: "[branch=... repo=... limit=...]"
|
||||
user-invocable: true
|
||||
---
|
||||
|
||||
The user wants a list of agent-linked commits. Filter args: $ARGUMENTS
|
||||
|
||||
## Quick start
|
||||
|
||||
```json
|
||||
memory_commits { "branch": "main", "limit": 20 }
|
||||
```
|
||||
|
||||
Expected output:
|
||||
|
||||
```text
|
||||
9a1b2c3 main 2026-06-07 "rotate refresh tokens" · session 7f3a9c2 (14 obs)
|
||||
b21d004 main 2026-06-05 "rate limiter audit" · session b21d004 (9 obs)
|
||||
```
|
||||
|
||||
## Why
|
||||
|
||||
Render only the commits the tool returned, newest first. An empty result means
|
||||
the filter matched nothing, not that work is missing.
|
||||
|
||||
## Workflow
|
||||
|
||||
1. Parse `$ARGUMENTS` for `branch=<name>`, `repo=<url-or-fragment>`,
|
||||
`limit=<n>`. A bare numeric token is the limit. Defaults: no branch, no repo,
|
||||
limit 100, max 500.
|
||||
2. Call `memory_commits` with the parsed filters.
|
||||
3. Render reverse-chronologically: short sha, branch, authored timestamp, first
|
||||
line of the message, linked session id(s) (first 8) with observation counts,
|
||||
and file count when `files` is present.
|
||||
4. Empty result: tell the user the filter matched nothing and suggest dropping
|
||||
the branch or repo filter.
|
||||
|
||||
## Anti-patterns
|
||||
|
||||
WRONG (REST fallback): concatenate `?branch=` + raw branch name, so a name with
|
||||
`?`, `&`, or `#` corrupts the query string.
|
||||
|
||||
RIGHT: URL-encode every value with `URLSearchParams`/`encodeURIComponent` before
|
||||
appending to `GET /agentmemory/commits`.
|
||||
|
||||
## Checklist
|
||||
|
||||
- Filters parsed; bare number treated as limit; limit capped at 500.
|
||||
- Output is reverse-chronological.
|
||||
- Session ids and observation counts come straight from the response.
|
||||
- REST fallback URL-encodes branch, repo, and limit.
|
||||
|
||||
## See also
|
||||
|
||||
- `commit-context`: drill into one commit's session.
|
||||
- `recall`: search the observations behind a linked session.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
See ../_shared/TROUBLESHOOTING.md if `memory_commits` is not available.
|
||||
Reference in New Issue
Block a user