Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
79e4d28
gitagent v2: a Rust agent harness for terminal tasks
chandan25809-lyzr Oct 20, 2026
df0fea6
bench: register the Terminal-Bench 2.1 full run (89 x 5, Opus 5.5, no…
chandan25809-lyzr Oct 20, 2026
e52ad3b
Dashboard: Harbor's job records (mean, pass@k, trial counts, config, …
chandan25809-lyzr Oct 21, 2026
e4f8807
Dashboard: rounds over all tasks (split "all") count the 89 split tas…
chandan25809-lyzr Oct 21, 2026
87d6cce
bench: full-run tile on the dashboard header; tb21-final recorded as …
chandan25809-lyzr Oct 21, 2026
db85876
bench: Terminal-Bench 2.1 full run final, 93.0% (89 tasks x 5, Opus 5…
chandan25809-lyzr Oct 21, 2026
9844f91
bench: Harbor Hub links for the Terminal-Bench 2.1 full run (uploaded…
chandan25809-lyzr Oct 21, 2026
c1e0fc2
Test: benchmark mode must send the exact system prompt and tool defin…
chandan25809-lyzr Oct 21, 2026
3700451
Agent directories: agent.yaml with SOUL.md, RULES.md, DUTIES.md (AGEN…
chandan25809-lyzr Oct 21, 2026
904bbc6
Models: provider:model@https://… for OpenAI-compatible endpoints, GIT…
chandan25809-lyzr Oct 21, 2026
927ecc9
Learning: a counter keeps two online-learning runs in the same millis…
chandan25809-lyzr Oct 21, 2026
2da9453
Tool names from gitagent 1.x (cli, read, write, edit, memory, task_tr…
chandan25809-lyzr Oct 21, 2026
75250de
Memory: memory/MEMORY.md and the layers in memory/memory.yaml are sho…
chandan25809-lyzr Oct 21, 2026
e4bee58
Declared tools: tools/*.yaml (OpenGAP and 1.x layouts) become tools t…
chandan25809-lyzr Oct 21, 2026
8f04787
Agent hooks: hooks/hooks.yaml with the OpenGAP events (session start …
chandan25809-lyzr Oct 21, 2026
fc5740b
MCP: servers from agent.yaml, gitagent.yaml, .mcp.json and the librar…
chandan25809-lyzr Oct 21, 2026
e162ce7
Approvals and kill switch: the agent's compliance section decides wha…
chandan25809-lyzr Oct 21, 2026
ed0319b
gitagent validate [dir] [--compliance]: checks agent.yaml against the…
chandan25809-lyzr Oct 21, 2026
5e479d9
Conversation mode: a plain reply ends the turn (no task_complete), wi…
chandan25809-lyzr Oct 21, 2026
dd21a50
IPC protocol (gitagent --ipc): JSON Lines on stdin and stdout for cli…
chandan25809-lyzr Oct 22, 2026
401c985
Paths: a relative --dir or --out-dir now works; the work directory, t…
chandan25809-lyzr Oct 22, 2026
a5a7d2a
Models: a fallback model that cannot be set up (no API key, say) is l…
chandan25809-lyzr Oct 22, 2026
7fc89af
IPC: the process exits right after session_end, even when the client …
chandan25809-lyzr Oct 22, 2026
1d6726a
Review fixes: the kill switch and IPC abort cancel a model call in pr…
chandan25809-lyzr Oct 22, 2026
93b0dfc
Environments: config/default.yaml with config/<env>.yaml merged on to…
chandan25809-lyzr Oct 22, 2026
1c2553d
Knowledge and examples: documents in knowledge/index.yaml marked alwa…
chandan25809-lyzr Oct 22, 2026
6fa7175
Inheritance: extends names a parent agent (a path, or a git URL clone…
chandan25809-lyzr Oct 22, 2026
2ea27a1
Sub-agents of an agent directory: agents/<name>/ is a whole agent run…
chandan25809-lyzr Oct 22, 2026
f0cb1d4
Lifecycle instructions: hooks/bootstrap.md ends the system prompt as …
chandan25809-lyzr Oct 22, 2026
e95e7be
Command line as in gitagent 1.x: the task as plain words, -d, -m, -e …
chandan25809-lyzr Oct 22, 2026
9052cbd
Workflows: workflows/*.yaml (the OpenGAP form, the 1.x steps form and…
chandan25809-lyzr Oct 22, 2026
61f55fb
Plugins as in gitagent 1.x: a plugin.yaml adds tools (tools/*.yaml), …
chandan25809-lyzr Oct 22, 2026
df9af83
Compliance at run time: an append-only audit log in .gitagent/audit/a…
chandan25809-lyzr Oct 22, 2026
6c8ac53
Client libraries over the IPC protocol: clients/python (query, tool, …
chandan25809-lyzr Oct 22, 2026
8a993c6
Cargo.lock: the command line's new dependencies
chandan25809-lyzr Oct 22, 2026
a2155fc
Workflows: a tool step naming a tool the agent does not have fails wi…
chandan25809-lyzr Oct 22, 2026
1ea2c3c
Compatibility with gitagent 1.x agents, scripts and clients
chandan25809-lyzr Oct 23, 2026
591eaf3
More of gitagent 1.x's behaviour, checked against its source
chandan25809-lyzr Oct 23, 2026
f2ddf40
Schedules: prompts the agent runs on a timetable
chandan25809-lyzr Oct 23, 2026
9bf06c0
A local web page for an agent: gitagent ui
chandan25809-lyzr Oct 23, 2026
af3e171
Interactive mode as a console: one colour, live tool lines, a status …
chandan25809-lyzr Oct 23, 2026
48d931b
Version 2.0.0, and a boxed welcome for interactive sessions
chandan25809-lyzr Oct 23, 2026
e2cdbdb
A thinking indicator, /new and /clear for interactive sessions
chandan25809-lyzr Oct 23, 2026
8fb7e52
Command suggestions at the prompt, and /help as a guide
chandan25809-lyzr Oct 23, 2026
8a8ae46
The name in line-drawn letters when a session opens
chandan25809-lyzr Oct 24, 2026
61fd23f
The web page as a living map of the agent
chandan25809-lyzr Oct 24, 2026
6f37bd5
Parallel tasks: the plan tool, a live task board, and no web page
chandan25809-lyzr Oct 25, 2026
4d61ed7
README: the results, how a run works, and what gitagent 2 is
chandan25809-lyzr Oct 25, 2026
e3a4d41
README for gitagent 2: the story of a run, the mascot, and the pictures
chandan25809-lyzr Oct 25, 2026
9c9166c
docs: how gitagent works in detail; README results first, 93.03%
chandan25809-lyzr Oct 25, 2026
8a56612
README: name the top published entry with its source; realistic recor…
chandan25809-lyzr Oct 25, 2026
bc6ae06
Scripted turns can take time; the recordings are typed at a person's …
chandan25809-lyzr Oct 25, 2026
6d7c9f4
README: link the results log and the public job logs of the headline run
chandan25809-lyzr Oct 25, 2026
ffa2b5c
Take the run log out of the repository; the public proof is the job logs
chandan25809-lyzr Oct 25, 2026
b961527
LICENSE and CONTRIBUTING.md for gitagent 2; installer URL points at main
chandan25809-lyzr Oct 25, 2026
9963270
gitagent 3.0.0; README: why, architecture, SDKs over IPC, migration, …
chandan25809-lyzr Oct 25, 2026
7161099
gitagent 3 in the planning documents; the results chart's labels fit
chandan25809-lyzr Oct 25, 2026
f1d54ee
BLUEPRINT for gitagent 3, with why Harbor; no v2 left
chandan25809-lyzr Oct 25, 2026
a4b73fd
Docs: drop the build checklist and the deviations log; learning folde…
chandan25809-lyzr Oct 25, 2026
0740fd2
README: CLI options and subcommands
chandan25809-lyzr Oct 25, 2026
a03b977
README: explain why the harness scores higher
chandan25809-lyzr Oct 25, 2026
94b22e8
Everyday defaults: guards on, no time limit in the console
chandan25809-lyzr Oct 25, 2026
59e87e7
Review fixes: workflow checks, spending, hooks, schedules, scaffolding
chandan25809-lyzr Oct 25, 2026
347ab09
Docs: hooks that fail closed also block on answers they cannot read
chandan25809-lyzr Oct 25, 2026
d9bbe13
Sub-agent turn limits, task board fixes, /tests guard for benchmarks …
chandan25809-lyzr Oct 25, 2026
7ee3592
Rate limits: count them and adapt how many calls run at once
chandan25809-lyzr Oct 25, 2026
90d45b7
Show the score as 93.03% ±0.8
chandan25809-lyzr Oct 25, 2026
6548444
Keep the benchmark's split, rounds, scores and lesson store out of th…
chandan25809-lyzr Oct 25, 2026
c7d41b0
gitagent 3: the Rust rewrite
chandan25809-lyzr Oct 25, 2026
5ffb388
README: Claude Code's published score in the results
chandan25809-lyzr Oct 25, 2026
cfac2d5
README: Claude Code's published score in the results
chandan25809-lyzr Oct 25, 2026
2aedee9
Review fixes: install paths, spending overflow, approval prompt, sess…
chandan25809-lyzr Oct 27, 2026
2e62ceb
Review fixes: install paths, spending overflow, approval prompt, sess…
chandan25809-lyzr Oct 27, 2026
3e939ac
Docs: clearer score note, cache figures corrected
chandan25809-lyzr Oct 27, 2026
cda740b
Docs: clearer score note, cache figures corrected
chandan25809-lyzr Oct 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
62 changes: 62 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: ci

on:
push:
pull_request:

env:
CARGO_TERM_COLOR: always

jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install toolchain from rust-toolchain.toml
run: rustup show active-toolchain || rustup toolchain install
- uses: Swatinem/rust-cache@v2
- run: cargo fmt --all -- --check
- run: cargo clippy --all-targets --locked -- -D warnings
- run: cargo test --workspace --locked

musl:
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- name: Install toolchain from rust-toolchain.toml
run: rustup show active-toolchain || rustup toolchain install
- uses: Swatinem/rust-cache@v2
- uses: mlugg/setup-zig@v2
- run: cargo install --locked cargo-zigbuild
- run: scripts/build-release.sh
- name: Check the binaries are static
run: |
for t in x86_64-unknown-linux-musl aarch64-unknown-linux-musl; do
file target/$t/release/gitagent | tee /dev/stderr | grep -q 'statically linked'
done
- uses: actions/upload-artifact@v4
with:
name: gitagent-linux
path: target/*-unknown-linux-musl/release/gitagent

clients:
runs-on: ubuntu-latest
needs: check
steps:
- uses: actions/checkout@v4
- name: Install toolchain from rust-toolchain.toml
run: rustup show active-toolchain || rustup toolchain install
- uses: Swatinem/rust-cache@v2
- run: cargo build --locked -p gitagent-cli
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Python client
run: GITAGENT_BIN=target/debug/gitagent python3 -m unittest discover -s clients/python/tests -v
- uses: actions/setup-node@v4
with:
node-version: "22"
- name: TypeScript client
working-directory: clients/typescript
run: npm install --no-audit --no-fund && npm run check
29 changes: 0 additions & 29 deletions .github/workflows/publish.yml

This file was deleted.

51 changes: 51 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
name: release

on:
push:
tags: ["v*"]

permissions:
contents: write

jobs:
linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install toolchain from rust-toolchain.toml
run: rustup show active-toolchain || rustup toolchain install
- uses: mlugg/setup-zig@v2
- run: cargo install --locked cargo-zigbuild
- run: scripts/package-release.sh x86_64-unknown-linux-musl aarch64-unknown-linux-musl
- uses: actions/upload-artifact@v4
with:
name: linux
path: dist/*.tar.gz

macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install toolchain from rust-toolchain.toml
run: rustup show active-toolchain || rustup toolchain install
- run: scripts/package-release.sh aarch64-apple-darwin x86_64-apple-darwin
- uses: actions/upload-artifact@v4
with:
name: macos
path: dist/*.tar.gz

publish:
needs: [linux, macos]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true
- name: Checksums
working-directory: dist
run: sha256sum gitagent-*.tar.gz > SHA256SUMS
- name: Create the release
env:
GH_TOKEN: ${{ github.token }}
run: gh release create "$GITHUB_REF_NAME" dist/* --repo "$GITHUB_REPOSITORY" --title "$GITHUB_REF_NAME" --generate-notes
34 changes: 17 additions & 17 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
node_modules/
dist/
pi-mono/
.claude/
.gitagent/
.gitagent/whatsapp-auth/
*.tgz
snake-game.html
examples/debug-events.ts
/target/
bench/jobs/
.env
cmd
workspace/
memory/.latest-frame.jpg
memory/.latest-screen.jpg
*.env
.DS_Store
.basecode/
.cursor/
.vscode/
.mcp.json
.env.*
__pycache__/
*.pyc
dist/

# The full run log, the dev/held-out split, the round history, the published
# scores and the lesson store stay on the benchmark machine; the public proof
# is the job logs on the Harbor hub.
bench/RESULTS.md
bench/split.json
bench/rounds.json
bench/leaderboard.json
bench/lessons/
bench/reruns/
Loading
Loading