Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
f1c587d
fix(coding-agent): avoid duplicate session reads
mitsuhiko Jul 19, 2026
9560746
fix(ai): replace generic record checks
mitsuhiko Jul 19, 2026
d2f8daf
fix(ai,agent,coding-agent): share UUIDv7 and use for Codex (#6834)
xl0 Jul 19, 2026
75cb0b8
fix(ai): support responses API for OpenCode Go
mitsuhiko Jul 19, 2026
94373d8
feat(ai): add shared contentText utility (#6840)
xl0 Jul 19, 2026
5f2f7d0
fix(tui): clear inverted cursor on exit to avoid dual cursor appearan…
dam9000 Jul 20, 2026
916de90
fix(pi-ai): normalize bin path to avoid consumer lockfile churn (#6812)
jmfederico Jul 20, 2026
87845fc
chore: approve contributor rsaryev
github-actions[bot] Jul 20, 2026
85f89db
chore: approve contributor QuintinShaw
github-actions[bot] Jul 20, 2026
8b93737
kimi: add low,high to k3 and remove k2p7 references
davidbrai Jul 20, 2026
da95649
lint fix
davidbrai Jul 20, 2026
21f92b3
run generate-models
davidbrai Jul 20, 2026
84fb69c
update npm shrinkwrap
davidbrai Jul 20, 2026
35f12c8
fix: gpt 5.6 context window (#6853)
aadishv Jul 20, 2026
9e7fce7
export missing message and tool execution event types (#6772)
davidbrai Jul 20, 2026
d9f7f81
fix: tool_call_id error when switching (#6854)
cristinaponcela Jul 20, 2026
bbb91fa
feat(ai): add Qwen Token Plan as built-in provider (#6858)
QuintinShaw Jul 20, 2026
2e810c2
fix: issue template links
cristinaponcela Jul 20, 2026
bb437b0
Merge pull request #6861 from cristinaponcela/fix/issue-linking
cristinaponcela Jul 20, 2026
3595e08
fix(tui): keep paste registry in sync when deleting paste markers
badlogic Jul 20, 2026
13437ca
fix(ai): normalize Kimi K2.7 to the canonical coding model
badlogic Jul 20, 2026
1942b26
fix: env section ignored (#6864)
cristinaponcela Jul 20, 2026
c179395
feat: get_available_thinking_levels rpc (#6865)
cristinaponcela Jul 20, 2026
2fd3868
add usage info to branch summary, compaction and tool result entries …
davidbrai Jul 20, 2026
f8b74a4
fix: complete extension usage accounting
badlogic Jul 20, 2026
c889eb8
fix(coding-agent): defer startup model catalog refresh
badlogic Jul 20, 2026
3a40794
feat(ai): regenerate models
mitsuhiko Jul 20, 2026
1235c0e
fix(agent): decouple agent streams from compat
badlogic Jul 20, 2026
ff99226
chore: approve contributor R-Taneja
github-actions[bot] Jul 20, 2026
c8c3cd4
fix(ai): validate generated model data before builds
mitsuhiko Jul 20, 2026
31dc078
update brace-expansion version
davidbrai Jul 21, 2026
bc62a57
Merge pull request #6896 from earendil-works/update-brace-expansion
davidbrai Jul 21, 2026
bb01973
chore: approve contributor zaycruz
github-actions[bot] Jul 21, 2026
890b354
run generate-models
davidbrai Jul 21, 2026
54fad50
fix(coding-agent): prefer newer generated model catalogs
mitsuhiko Jul 21, 2026
9e7582a
feat: sqlite session storage (#6594)
cristinaponcela Jul 21, 2026
8e53e0e
compaction & branch summarization follow retry policy
davidbrai Jul 21, 2026
8495f9d
chore: rename orchestrator to server (#6898)
cristinaponcela Jul 21, 2026
162179a
add branch/compact retries to agent-harness
davidbrai Jul 21, 2026
109c412
feat(agent): prepare SQLite storage package for publishing
badlogic Jul 21, 2026
74f8784
update deprecated github actions
davidbrai Jul 21, 2026
864b35c
fix(coding-agent): show llama download progress
badlogic Jul 21, 2026
c901d9a
docs: audit unreleased changelogs
badlogic Jul 21, 2026
c23b58a
feat(ai): update generated image models
badlogic Jul 21, 2026
d35237c
fix: build packages before release tests
badlogic Jul 21, 2026
3f1762c
Merge pull request #6902 from earendil-works/bump-github-actions-vers…
davidbrai Jul 21, 2026
9c480b6
Release v0.81.0
badlogic Jul 21, 2026
3dcb411
Add [Unreleased] section for next cycle
badlogic Jul 21, 2026
899fe26
fix: flaky test (#6905)
cristinaponcela Jul 21, 2026
959cc18
fix moonshot/kimi3 compat properties
davidbrai Jul 21, 2026
ceac988
Merge remote-tracking branch 'origin/main' into fix/issue-6647-retry-…
davidbrai Jul 21, 2026
4b91ec6
feat(coding-agent): add release source archives (#6913)
christianklotz Jul 21, 2026
243f64b
report aborted retry attempts as unsuccessful
davidbrai Jul 21, 2026
7540da4
add docs for new event types
davidbrai Jul 21, 2026
65dd2e0
Merge pull request #6901 from earendil-works/fix/issue-6647-retry-sum…
davidbrai Jul 21, 2026
a822896
feat(ai): add new Gemini generated models
mitsuhiko Jul 21, 2026
b142504
fix(coding-agent): defer catalog refresh until after TUI startup
mitsuhiko Jul 21, 2026
b9e5c5d
fix(agent): restore streamFn extension compatibility
badlogic Jul 21, 2026
20be4b1
Release v0.81.1
badlogic Jul 21, 2026
dd6bea4
Add [Unreleased] section for next cycle
badlogic Jul 21, 2026
394c212
Merge upstream/main v0.81.1
actions-user Jul 22, 2026
7c3e20e
sync: record upstream pin dd6bea4
actions-user Jul 22, 2026
cbcc213
docs(changelog): audit upstream dd6bea4
actions-user Jul 21, 2026
2b2d97f
fix: restore upstream merge QA gates
actions-user Jul 21, 2026
2914772
fix(coding-agent): cover merged runtime protocols
actions-user Jul 21, 2026
297b0f4
docs: write upstream merge report
actions-user Jul 22, 2026
904a1a1
docs: clarify upstream merge report
actions-user Jul 22, 2026
f546122
chore: remove upstream agent report
actions-user Jul 22, 2026
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
8 changes: 8 additions & 0 deletions .github/APPROVED_CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -279,3 +279,11 @@ ananthakumaran pr
andrebreijao pr

anh-chu pr

rsaryev pr

QuintinShaw pr

R-Taneja pr

zaycruz pr
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/bug.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ body:
- type: markdown
attributes:
value: |
**Before you start:** Read [CONTRIBUTING.md](https://github.com/code-yeongyu/senpi/blob/main/CONTRIBUTING.md).
**Before you start:** Read [CONTRIBUTING.md](https://github.com/earendil-works/pi/blob/main/CONTRIBUTING.md).

Issues stay open for maintainer review. Reports that skip the quality bar in [CONTRIBUTING.md](https://github.com/code-yeongyu/senpi/blob/main/CONTRIBUTING.md) may be closed without extended triage.
New issues from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. Issues that do not meet the quality bar in [CONTRIBUTING.md](https://github.com/earendil-works/pi/blob/main/CONTRIBUTING.md) will not be reopened or receive a reply.

Keep this short. If it doesn't fit on one screen, it's too long. Write in your own voice.

Expand Down
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/contribution.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ body:
- type: markdown
attributes:
value: |
**Before you start:** Read [CONTRIBUTING.md](https://github.com/code-yeongyu/senpi/blob/main/CONTRIBUTING.md).
**Before you start:** Read [CONTRIBUTING.md](https://github.com/earendil-works/pi/blob/main/CONTRIBUTING.md).

Issues stay open for maintainer review. Proposals that skip the quality bar in [CONTRIBUTING.md](https://github.com/code-yeongyu/senpi/blob/main/CONTRIBUTING.md) may be closed without extended triage.
New issues from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. Issues that do not meet the quality bar in [CONTRIBUTING.md](https://github.com/earendil-works/pi/blob/main/CONTRIBUTING.md) will not be reopened or receive a reply.

Keep this short. If it doesn't fit on one screen, it's too long. Write in your own voice.

Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/package-report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ body:
value: |
Use this form to report a package listed on pi.dev. For Pi core bugs, use the bug report template instead.
New issues from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. Issues that do not meet the quality bar in [CONTRIBUTING.md](https://github.com/earendil-works/pi-mono/blob/main/CONTRIBUTING.md) will not be reopened or receive a reply.
New issues from new contributors are auto-closed by default. Maintainers review auto-closed issues daily. Issues that do not meet the quality bar in [CONTRIBUTING.md](https://github.com/earendil-works/pi/blob/main/CONTRIBUTING.md) will not be reopened or receive a reply.
Keep this short. If it doesn't fit on one screen, it's too long. Write in your own voice.
Expand Down
6 changes: 3 additions & 3 deletions .github/upstream.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"repo": "badlogic/pi-mono",
"tag": "v0.80.10",
"sha": "216e672e7c9fc65682553394b74e483c0c9e47f7",
"synced_at": "2026-07-16T22:29:25Z"
"tag": "v0.81.1",
"sha": "dd6bea41efa8caa7a10fe5a6401676dc5699f83f",
"synced_at": "2026-07-22T01:44:24Z"
}
59 changes: 43 additions & 16 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
SOURCE_REF: ${{ github.event.inputs.source_ref || github.event.inputs.tag || github.ref_name }}
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ env.SOURCE_REF }}
persist-credentials: false
Expand All @@ -44,14 +44,32 @@ jobs:
bun-version: 1.3.14

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
node-version: '22'
registry-url: 'https://registry.npmjs.org'
package-manager-cache: false

- name: Build binaries
run: ./scripts/build-binaries.sh
- name: Create source archive
run: |
set -euo pipefail

VERSION="${RELEASE_TAG#v}"
mkdir -p release-assets
./scripts/create-source-archive.sh \
--version "${VERSION}" \
--ref HEAD \
--out "release-assets/pi-${VERSION}-source.tar.gz"

- name: Build binaries from source archive
run: |
set -euo pipefail

VERSION="${RELEASE_TAG#v}"
build_root="$(mktemp -d)"
trap 'rm -rf "${build_root}"' EXIT
tar -xzf "release-assets/pi-${VERSION}-source.tar.gz" -C "${build_root}"
"${build_root}/pi-${VERSION}/scripts/build-binaries.sh" \
--out "${GITHUB_WORKSPACE}/packages/coding-agent/binaries"

- name: Prepare GitHub release payload
run: |
Expand Down Expand Up @@ -84,7 +102,9 @@ jobs:
cp "${binary_assets[@]}" "${GITHUB_WORKSPACE}/release-assets/"

cd "${GITHUB_WORKSPACE}/release-assets"
source_asset="pi-${VERSION}-source.tar.gz"
release_assets=(
"${source_asset}"
pi-darwin-arm64.tar.gz
pi-darwin-x64.tar.gz
pi-linux-x64.tar.gz
Expand Down Expand Up @@ -126,7 +146,10 @@ jobs:

cd release-assets

VERSION="${RELEASE_TAG#v}"
source_asset="pi-${VERSION}-source.tar.gz"
expected_assets=(
"${source_asset}"
pi-darwin-arm64.tar.gz
pi-darwin-x64.tar.gz
pi-linux-x64.tar.gz
Expand All @@ -145,15 +168,18 @@ jobs:

sha256sum -c SHA256SUMS

- name: Create draft GitHub Release and upload binaries
- name: Create draft GitHub Release and upload assets
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -euo pipefail

cd release-assets

VERSION="${RELEASE_TAG#v}"
source_asset="pi-${VERSION}-source.tar.gz"
release_assets=(
"${source_asset}"
pi-darwin-arm64.tar.gz
pi-darwin-x64.tar.gz
pi-linux-x64.tar.gz
Expand Down Expand Up @@ -202,35 +228,36 @@ jobs:
SOURCE_REF: ${{ github.event.inputs.source_ref || github.event.inputs.tag || github.ref_name }}
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ env.SOURCE_REF }}
persist-credentials: false

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
node-version: '22'
registry-url: 'https://registry.npmjs.org'
cache: npm

- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev fd-find ripgrep
sudo ln -s "$(which fdfind)" /usr/local/bin/fd
sudo ln -s $(which fdfind) /usr/local/bin/fd

- name: Install dependencies
run: npm ci --ignore-scripts

# Build only — the tagged commit already passed the required "Check and test"
# status gate on main (full `npm run check` + `npm test`). Re-running the whole
# workspace test suite here is redundant and, on this contended publish runner,
# its subprocess-heavy suites (app-server/daemon, MCP, PTY) leak handles and hang
# the job. Build produces the dist artifacts `scripts/publish.mjs` bundles.
- name: Build
run: npm run build

- name: Check
run: npm run check

- name: Test
run: npm test

- name: Upgrade npm for trusted publishing
run: |
npm install -g npm@11.16.0 --ignore-scripts
Expand Down
57 changes: 10 additions & 47 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,69 +11,32 @@ concurrency:
cancel-in-progress: true

jobs:
check:
name: Check and test
build-check-test:
runs-on: ubuntu-latest
timeout-minutes: 90
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: '24'
node-version: 22
cache: npm

- name: Install system dependencies
run: |
sudo env DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get update
sudo env DEBIAN_FRONTEND=noninteractive NEEDRESTART_MODE=a apt-get install -y \
libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev fd-find ripgrep
sudo ln -sf "$(which fdfind)" /usr/local/bin/fd
sudo apt-get update
sudo apt-get install -y libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev fd-find ripgrep
sudo ln -s $(which fdfind) /usr/local/bin/fd

- name: Install dependencies
run: npm ci --ignore-scripts

- name: Build
run: npm run build

- name: Check
run: npm run check

- name: Build workspace package entries
run: npm run build

- name: Test
timeout-minutes: 50
run: npm test

terminal-cross-os:
name: Terminal tools (${{ matrix.os }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10

- name: Setup Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e
with:
node-version: '24'
cache: npm

- name: Install dependencies
run: npm ci --ignore-scripts

# The persistent-terminal TS runtime + tool suite must pass on all three OS. Native
# ConPTY/PTY behavior is proven separately by the Native Prebuilds cargo job; here the
# loader falls back to the child_process pipe backend when no host prebuild is present,
# so these tests exercise the cross-OS TS layer (loader, session, screen, tools).
- name: PTY package tests
run: npm run test --workspace @earendil-works/pi-pty

- name: Terminal extension + shell resolution tests
shell: bash
run: npx vitest run test/suite/terminal-extension.test.ts test/suite/terminal-settings-notify.test.ts test/suite/shell-config-kind.test.ts
working-directory: packages/coding-agent
Loading
Loading