Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
284 commits
Select commit Hold shift + click to select a range
87644c7
docs(agent): clarify branch query start requirement
vegarsti Aug 7, 2026
10474bd
fix(agent): refactor jsonl codec
davidbrai Aug 7, 2026
e0900a6
docs(agent): clarify record query semantics
vegarsti Aug 7, 2026
709aa03
docs(agent): add j6 typebox validation (#7768)
davidbrai Aug 7, 2026
f0feecd
fix(ai): update OpenCode completions fixture
badlogic Aug 7, 2026
958c13f
docs(agent): restart checkpoint after auto-compaction
badlogic Aug 7, 2026
4bf1bba
docs(agent): reserve I2
vegarsti Aug 7, 2026
14ad980
feat(agent): add harness events subscription interface
vegarsti Aug 7, 2026
4a0e2f1
fix(agent): complete JSONL crash and corruption handling
davidbrai Aug 7, 2026
fe10558
fix(ai): retry upstream request buffer failures
badlogic Aug 7, 2026
7aca0d7
fix(agent): make JSONL decode errors explicit
davidbrai Aug 7, 2026
1dd2354
feat(agent): add buffered harness event watches
vegarsti Aug 7, 2026
d1a3056
feat(agent): add direct harness event listeners
vegarsti Aug 7, 2026
e7fb8eb
fix: no ctes in sqlite, delete indexes
cristinaponcela Aug 7, 2026
541ed48
docs(agent): remove legacy leaf entry requirements
davidbrai Aug 7, 2026
c3e7bc6
feat(ai): preserve Codex end_turn for debugging (#7766)
davidbrai Aug 7, 2026
ac4ac9e
feat(coding-agent): configure fullscreen exit output
mitsuhiko Aug 7, 2026
5cfa30c
docs(agent): add required fromHook to v4 summary entries
davidbrai Aug 7, 2026
4fbdc63
docs: require clear concrete explanations
badlogic Aug 7, 2026
02bd2d1
fix(ai): preserve Responses tool-call namespaces
mitsuhiko Aug 7, 2026
e47b8e3
feat(ai): use additional_tools for deferred tools
mitsuhiko Aug 7, 2026
9dd90a4
fix(ai): replace Mistral SDK with native transport
badlogic Aug 8, 2026
18dee5f
fix(tui): stop recompositing full-width rows in the alt-screen painter
badlogic Aug 8, 2026
f874676
fix: handle npm 12 pack --json object output in local release script
badlogic Aug 8, 2026
5ac9133
fix: refresh nanoid to 3.3.17 in root lockfile
badlogic Aug 8, 2026
6809fab
docs(agent): allow clearing session names
davidbrai Aug 8, 2026
368e013
chore(docs): fix ascii alignment in compaction docs
vegarsti Aug 8, 2026
c185d41
fix(ai): send max_tokens to DeepSeek APIs
davidbrai Aug 8, 2026
7bdb16c
feat(agent): support clearing session names
davidbrai Aug 8, 2026
025957c
docs(agent): reconcile durable harness design
badlogic Aug 8, 2026
4181f66
docs(agent): tighten durable harness design
badlogic Aug 8, 2026
45fac5b
docs(agent): add explicit-state harness redesign
badlogic Aug 8, 2026
157aa19
docs(agent): clarify explicit operation records
badlogic Aug 8, 2026
936aff0
docs(agent): complete explicit-state harness design
badlogic Aug 9, 2026
4761021
chore(docs): change 'reloads' phrasing in compaction docs
vegarsti Aug 10, 2026
31b513e
chore(docs): change a bullet point in compaction docs
vegarsti Aug 10, 2026
3059b81
docs(agent): add durable harness implementation spec
badlogic Aug 10, 2026
afae6a1
fix(ai): update stale Gemini test model
davidbrai Aug 10, 2026
6a214fa
chore: approve contributors from issue #7748
github-actions[bot] Aug 10, 2026
3709bef
docs(agent): clarify durable storage terminology
badlogic Aug 10, 2026
caf8fa6
chore: approve contributors from issue #7828
github-actions[bot] Aug 10, 2026
0db3d38
chore: approve contributors from issue #7830
github-actions[bot] Aug 10, 2026
c1a4e86
chore: approve contributors from issue #7838
github-actions[bot] Aug 10, 2026
85b1efa
chore: approve contributors from issue #7847
github-actions[bot] Aug 10, 2026
f858ae3
chore: approve contributors from issue #7867
github-actions[bot] Aug 10, 2026
52771a0
chore: approve contributors from issue #7876
github-actions[bot] Aug 10, 2026
c2b06f0
chore: approve contributors from issue #7886
github-actions[bot] Aug 10, 2026
3dd4623
Fix prompt formatting for current working directory (#7887)
distributedlock Aug 10, 2026
24c3b5e
docs(agent): add storage and retention redesign proposal
badlogic Aug 10, 2026
98145a6
fix(ai): sanitize empty Bedrock tool argument keys (#7882)
muyiyr Aug 10, 2026
7a6a1c2
docs(agent): add harness-v3 skeleton merging spec and storage redesign
badlogic Aug 10, 2026
87142a8
docs(agent): write harness-v3 parts 0-2
badlogic Aug 10, 2026
dea1b24
docs(agent): write harness-v3 part 3
badlogic Aug 10, 2026
28657a2
docs(agent): write harness-v3 parts 4-5
badlogic Aug 10, 2026
ec317e4
docs(agent): write harness-v3 parts 6-7
badlogic Aug 10, 2026
cd6852a
docs(agent): complete harness-v3 parts 8-9 and appendices
badlogic Aug 10, 2026
2f9e929
docs(agent): remove superseded harness design documents
badlogic Aug 11, 2026
8431bfb
docs(agent): fix harness-v3 cold-read audit findings
badlogic Aug 11, 2026
cf5f352
docs(agent): record open harness-v3 audit findings
badlogic Aug 11, 2026
9cb7f49
docs(coding-agent): document AI_AGENT process marker
vegarsti Aug 11, 2026
75c7fd6
fix(ai): declare Cloudflare Responses strict tools (#7934)
muyiyr Aug 11, 2026
a4453b7
fix: sqlite time to number
cristinaponcela Aug 11, 2026
b647d18
fix(ai): detect DeepSeek base URLs case-insensitively (#7933)
yearth Aug 11, 2026
00121ed
feat(tui): add fullscreen transcript search (#7913)
mitsuhiko Aug 11, 2026
24047f5
docs(agent): strip partitioning to informative section, finish audit …
badlogic Aug 11, 2026
1279952
feat(tui): add unbound single-line transcript scrolling actions (#7903)
midastruth Aug 11, 2026
2300290
feat(ai): AI Gateway transport over the Cloudflare AI binding (#7901)
Maximo-Guk Aug 11, 2026
06ed871
fix(tui): prevent split Alt+Enter from interrupting (#7899)
powerfooI Aug 11, 2026
e3798ca
fix(coding-agent): inherit subagent session config (#7897)
virtuald Aug 11, 2026
4a879dd
fix(tui): avoid repainting idle fullscreen sessions on focus loss (#7…
terrorobe Aug 11, 2026
b987ead
feat(agent): expose `expandPromptTemplates` in `sendUserMessage` (#7857)
mrexodia Aug 11, 2026
2f8b4b4
fix(ai): expose low reasoning effort for native DeepSeek V4 Flash (#7…
yzhg1983 Aug 11, 2026
c0468b9
chore: approve contributors from issue #7908
github-actions[bot] Aug 11, 2026
536eb71
chore: approve contributors from issue #7912
github-actions[bot] Aug 11, 2026
00eb2d1
chore: approve contributors from issue #7919
github-actions[bot] Aug 11, 2026
f8c71c6
docs: fix security policy typos
badlogic Aug 11, 2026
9c53c47
fix indent
davidbrai Aug 11, 2026
7915cda
feat(ai): add strict tool schema conversion
mitsuhiko Aug 11, 2026
452923b
fix(tui): parse multiline LaTeX arguments
vegarsti Aug 11, 2026
2a95ef7
fix(tui): apply PI_TUI_ESC_TIMEOUT only to lone ESC
davidbrai Aug 11, 2026
43b4e05
docs(agent): fix implementation-readiness review findings
badlogic Aug 11, 2026
9c75cd2
docs(agent): add transaction traces to orientation examples
badlogic Aug 11, 2026
f132845
docs(agent): introduce the three stores before the worked examples
badlogic Aug 11, 2026
b75be04
refactor: search (#7797)
cristinaponcela Aug 11, 2026
f98629b
docs(agent): fix broken code fence in crash example
badlogic Aug 11, 2026
638ac11
docs(agent): resolve providers and tools at dispatch, drop lease mach…
badlogic Aug 11, 2026
bcd056a
docs(agent): drop historical placement-payload rationale
badlogic Aug 11, 2026
01701fd
docs(agent): clarify register references vs immutable snapshots
badlogic Aug 11, 2026
b8349db
docs(agent): re-mint legacy ids at import, drop redundant register pa…
badlogic Aug 11, 2026
e1b444b
docs(agent): tighten identity section
badlogic Aug 11, 2026
2862eb4
docs(agent): reword cancellation triage note
badlogic Aug 11, 2026
a348560
docs(agent): drop historical changes appendix
badlogic Aug 11, 2026
e33e744
docs(agent): replace historical rationale with direct statements
badlogic Aug 11, 2026
b3edf01
fix(ai): bound Copilot policy update concurrency
vegarsti Aug 11, 2026
2545585
docs(agent): one sqlite file per session, search becomes external
badlogic Aug 11, 2026
47b021a
docs(agent): add seq-ranged usage ledger scan
badlogic Aug 11, 2026
8d8c60d
docs(agent): specify optional pull-based search service
badlogic Aug 11, 2026
b6557f4
docs(agent): make search a standalone service, open metadata-filter q…
badlogic Aug 11, 2026
51b45bc
docs(agent): restructure build order into parallel storage and runtim…
badlogic Aug 11, 2026
85a2060
docs(agent): consolidate harness spec into harness.md
badlogic Aug 11, 2026
40a3d85
docs(agent): add table of contents
badlogic Aug 11, 2026
2a9b4eb
docs: document terminal-specific fullscreen mouse behavior (#7965)
terrorobe Aug 11, 2026
534bcbf
fix(tui): handle LaTeX control spaces across line endings
mitsuhiko Aug 11, 2026
2e4d239
fix(tui): give focused fullscreen overlays wheel and viewport keys
davidbrai Aug 12, 2026
6d520c5
chore(docs): fix ascii alignment in compaction docs
vegarsti Aug 12, 2026
47b5119
fix: trigger turn false should not start turn (#8022)
cristinaponcela Aug 12, 2026
4d9aa83
feat(coding-agent): add configurable default tools
mitsuhiko Aug 12, 2026
541045a
fix(coding-agent): preserve extension tools with defaults
mitsuhiko Aug 12, 2026
9795d60
feat(coding-agent): add per-run theme selection (#7722)
rwachtler Aug 12, 2026
c93ea6c
fix(coding-agent): preserve usage in streaming events (#7982)
christianklotz Aug 12, 2026
581d75a
docs(coding-agent): document model catalog refresh
badlogic Aug 12, 2026
7d8c11d
fix(coding-agent): share concurrent model catalog refreshes
mitsuhiko Aug 13, 2026
46bb9a2
docs(coding-agent): clarify Windows paths in settings
vegarsti Aug 13, 2026
6f707eb
fix(coding-agent): show managed-tool startup status in TUI
vegarsti Aug 13, 2026
9d2ec7f
fix(ai): use pi user agent for Kimi Coding requests
davidbrai Aug 13, 2026
5f7195c
fix(coding-agent): update Cloudflare compat test model
davidbrai Aug 14, 2026
d268454
fix(examples): accept array-form `tools` in the subagent example (#7598)
alexsavio Aug 14, 2026
721e276
chore: approve contributors from issue #7973
github-actions[bot] Aug 14, 2026
6633618
fix(coding-agent): update vulnerable nanoid dependency
badlogic Aug 14, 2026
83aed2b
fix(tui): handle generic SGR mouse releases
badlogic Aug 14, 2026
e14afc6
fix(coding-agent): collapse fallback tool output closes #7979
badlogic Aug 14, 2026
0589435
chore: approve contributors from issue #8007
github-actions[bot] Aug 14, 2026
f3c406a
chore: approve contributors from issue #8018
github-actions[bot] Aug 14, 2026
c5b7cd2
chore: approve contributors from issue #8063
github-actions[bot] Aug 14, 2026
5093641
fix(ai): preserve Google length stops with tool calls
badlogic Aug 14, 2026
ab0dc51
fix(coding-agent): use APP_NAME in user-facing messages (#8067)
mellson Aug 14, 2026
48bd3f4
chore: approve contributors from issue #8092
github-actions[bot] Aug 14, 2026
4caa3c4
fix(tui): route selection copy through the host clipboard (#8110)
Panoplos Aug 14, 2026
d10c974
docs: audit changelogs since v0.84.1
davidbrai Aug 14, 2026
9b4adc8
docs: audit changelogs since v0.84.1
davidbrai Aug 14, 2026
914cf14
Release v0.84.2
davidbrai Aug 14, 2026
0e0021f
Add [Unreleased] section for next cycle
davidbrai Aug 14, 2026
c365522
agents: Adjust rules for changelog entries
mitsuhiko Aug 14, 2026
e429d90
fix(coding-agent): update Z.AI Coding Plan defaults
badlogic Aug 14, 2026
b1efcf7
chore: approve contributors from issue #8124
github-actions[bot] Aug 14, 2026
d5278ea
fix(ai): enable Copilot model policies sequentially during login
vegarsti Aug 15, 2026
086c32e
fix(ai): retry Copilot GET /models once on 429 during login
vegarsti Aug 15, 2026
70e878d
feat(ai): route xAI models through Responses and default to Grok 4.6 …
Jaaneek Aug 16, 2026
d3ab2af
fix: track kimi cached tokens (#8119)
cristinaponcela Aug 16, 2026
47bf47f
docs(coding-agent): clarify compaction paths
vegarsti Aug 17, 2026
58302d3
feat(coding-agent): support compaction routing sessions
vegarsti Aug 17, 2026
ca21c16
fix: single edit input (#8011)
cristinaponcela Aug 17, 2026
8c2529d
fix: dont load root mds as skills in settings (#8012)
cristinaponcela Aug 17, 2026
f47faf4
fix: register flag type mismatch (#8123)
cristinaponcela Aug 17, 2026
86d001d
fix(ai): expose low thinking level for DeepSeek V4 Flash on opencode/…
tianshuang Aug 17, 2026
c7c763f
fix(coding-agent): clarify truncated recovery failure
vegarsti Aug 17, 2026
955a543
fix: expose sleeping llama.cpp models (#8235)
cristinaponcela Aug 17, 2026
374e56e
fix(tui): avoid duplicate VS Code right-click paste
mitsuhiko Aug 17, 2026
a1bc0ec
fix: llama.cpp guidance as no default (#8236)
cristinaponcela Aug 17, 2026
d3e3bbc
fix: llama.cpp allow network for model discovery (#8238)
cristinaponcela Aug 17, 2026
080932e
fix(package-manager): use semver.gt for version comparison (#8239)
cristinaponcela Aug 17, 2026
df018b6
fix(coding-agent): retry hung model catalog requests
mitsuhiko Aug 17, 2026
a6b1dbc
fix(extensions): emit compaction failed for extensions (#8241)
cristinaponcela Aug 17, 2026
1d08508
fix(extension-examples): use agent_settled instead of end (#8242)
cristinaponcela Aug 17, 2026
af2c352
fix(ai): honor Google thinking level maps
vegarsti Aug 17, 2026
10acee6
fix(ai): bedrock response to include smithy headers (#8243)
cristinaponcela Aug 17, 2026
0e4d495
fix(ai,coding-agent): remove deprecated Xiaomi models
vegarsti Aug 17, 2026
8720548
fix(ai): use Chinese ZAI Coding Plan catalog
davidbrai Aug 17, 2026
6db110e
fix(ai): add Qwen Token Plan Individual DeepSeek V4 Pro 0813
davidbrai Aug 17, 2026
1c28f30
fix(ai): update cloudflare gateway sonnet test id (#8260)
cristinaponcela Aug 17, 2026
5e11f65
fix(coding-agent): load nested markdown skills (#8255)
cristinaponcela Aug 17, 2026
eb1f87f
fix(coding-agent/ai): anthropic refusal error and fallbacks (#8258)
cristinaponcela Aug 17, 2026
54d22b7
fix(coding-agent): reduce redundant git update tests
mitsuhiko Aug 17, 2026
b82a374
fix(coding-agent): reduce redundant slow tests
mitsuhiko Aug 17, 2026
209bc7b
fix(ai): remove unused opentelemetry dependency
mitsuhiko Aug 17, 2026
9117326
fix(ai): forward Azure Responses tool choice
vegarsti Aug 17, 2026
ad58801
fix(ai): update Baseten GLM input modalities
vegarsti Aug 18, 2026
e5dde9a
feat(ai): add simple tool choice option
vegarsti Aug 18, 2026
90305d9
fix(coding-agent): disable tools during summarization
vegarsti Aug 17, 2026
8af7690
fix(coding-agent): skip trusted subagent prompts
vegarsti Aug 18, 2026
2509b5c
feat(agent): expose provider context construction
vegarsti Aug 17, 2026
836aee6
feat(coding-agent): show compaction usage notices
vegarsti Aug 18, 2026
ef8dc73
feat(coding-agent): centralize compaction summary requests
vegarsti Aug 18, 2026
cff1cf5
feat(coding-agent): add cache-friendly compaction primitives
vegarsti Aug 18, 2026
a6c6f80
fix(ai): anthropic fallback usage (#8308)
cristinaponcela Aug 18, 2026
b237412
feat(ai): generalize openai-completions thinking token budget fields …
bnsd55 Aug 18, 2026
c061328
fix(coding-agent): load extensions in Node SEA hosts, closes #8237
badlogic Aug 18, 2026
f0c5d86
fix(tui): fit text padding to narrow widths, closes #8252
badlogic Aug 18, 2026
59a71b2
Revert "fix(ai): anthropic fallback usage (#8308)" (#8313)
cristinaponcela Aug 18, 2026
4809c2a
fix(ai): anthropic fallback usage (#8319)
cristinaponcela Aug 19, 2026
55b0db4
fix(ai): prevent copilot policy login rate limits (#8254)
rwachtler Aug 19, 2026
8dab702
Revert "feat(coding-agent): add cache-friendly compaction primitives"
vegarsti Aug 19, 2026
3a0b9a3
Revert "feat(agent): expose provider context construction"
vegarsti Aug 19, 2026
ed867e9
fix(ai): fallback cost not via stream options (#8352)
cristinaponcela Aug 19, 2026
d711bd5
fix(coding-agent): preserve branch summary source leaf
davidbrai Aug 19, 2026
830a0a5
fix(coding-agent): expose tool metadata at stream start (#7953)
christianklotz Aug 19, 2026
d57e531
fix(ai): round-trip Bedrock redacted reasoning (#8314)
seiji Aug 19, 2026
1e1a6e2
feat(coding-agent): include paths in settings errors
vegarsti Aug 19, 2026
913bcf3
fix(coding-agent): report settings diagnostic paths
vegarsti Aug 19, 2026
678f0af
fix(coding-agent): show startup diagnostics in TUI
vegarsti Aug 19, 2026
3de0033
fix(ai): derive Z.AI reasoning effort metadata
davidbrai Aug 19, 2026
4495469
fix(coding-agent): compact without provider usage
vegarsti Aug 19, 2026
1355cd3
fix(coding-agent): normalize UTF-8 BOMs in text inputs
mitsuhiko Aug 19, 2026
87af49d
Add pi user-agent to most api adapters (#8361)
davidbrai Aug 19, 2026
4ca636c
feat(ai): opeani completions reasoning details (#8246)
cristinaponcela Aug 19, 2026
2ff8ba6
fix(coding-agent): keep model and thinking level changes session scop…
cristinaponcela Aug 19, 2026
98767a2
fix(settings-selector): remove token estimates
cristinaponcela Aug 19, 2026
ee29aa1
feat(settings-selector): make default model and thinking level search…
cristinaponcela Aug 19, 2026
a669db3
fix(settings-selector): show modelid [provider] like /model
cristinaponcela Aug 19, 2026
f0a2880
fix(settings-selector): revert token estimate removal
cristinaponcela Aug 19, 2026
9c8070f
feat(settings-selector): ctrl + s persists /model
cristinaponcela Aug 19, 2026
496185f
feat(coding-agent): /thinking command
cristinaponcela Aug 19, 2026
b7bb00b
fix(ai): retain reasoning details in thinking signature
mitsuhiko Aug 19, 2026
5133c92
chore(settings-selector): get rid of --default and global model
cristinaponcela Aug 20, 2026
5b3caaf
chore(settings-selector): get rid of default thinking in settings, ct…
cristinaponcela Aug 20, 2026
1d3503f
feat(settings-selector): show default, make default searchable for mo…
cristinaponcela Aug 20, 2026
7681849
fix(settings-selector): nit spacing
cristinaponcela Aug 20, 2026
cffe4d7
fix(settings-selector): nit ordering in default t.l. per model
cristinaponcela Aug 20, 2026
8f2ae3f
fix(tui): prevent wrapped table link color leaks (#8363)
rwachtler Aug 20, 2026
5cd93f6
feat(coding-agent): add development pi wrapper
mitsuhiko Aug 20, 2026
686f348
feat(interactive-mode): share via radius artifacts under experimental…
cristinaponcela Aug 21, 2026
a2f369d
fix(slash-commands): order tree above thinking
cristinaponcela Aug 21, 2026
77f2d12
chore(interactive-mode): get rid of theme, only share via radius if l…
cristinaponcela Aug 21, 2026
f4585b8
fix(coding-agent): simplify session sharing links
mitsuhiko Aug 21, 2026
c49906e
fix(coding-agent): preserve managed state file permissions
mitsuhiko Aug 21, 2026
7d4c0e0
feat(coding-agent): bundle Node runtime (#8474)
mitsuhiko Aug 22, 2026
39d869f
fix: publish installer artifacts
mitsuhiko Aug 22, 2026
cec3a91
feat(coding-agent): defer uncommon syntax grammars
mitsuhiko Aug 22, 2026
74786a7
fix(coding-agent): support -- end-of-options, closes #7269
mitsuhiko Aug 22, 2026
62bcbf6
docs(coding-agent): document -- end-of-options delimiter
mitsuhiko Aug 22, 2026
faecac2
feat(coding-agent): reduce bundled startup work
mitsuhiko Aug 22, 2026
77c5407
meta(changelog): Add missing changelog entry
mitsuhiko Aug 22, 2026
a1f955e
fix(coding-agent): remove redundant development dependencies
mitsuhiko Aug 22, 2026
f8f0346
fix: reduce workspace dependency tree
mitsuhiko Aug 23, 2026
309b524
fix(coding-agent): avoid duplicate clipboard binaries
mitsuhiko Aug 23, 2026
c1279a6
feat(coding-agent): defer jiti until extension loading
mitsuhiko Aug 23, 2026
bcad846
fix(coding-agent): update end-of-options CLI test
mitsuhiko Aug 23, 2026
a69bef7
fix(coding-agent): discard failed extension factory state (#8424)
acmerfight Aug 23, 2026
460191c
feat(coding-agent): include context in Radius session shares
mitsuhiko Aug 23, 2026
27b7a62
fix(coding-agent): use Windows-friendly keybinding defaults
mitsuhiko Aug 23, 2026
81152d8
docs(coding-agent): clarify custom footer usage APIs (#8482)
petrroll Aug 23, 2026
a470b12
fix(coding-agent): expose finish reason compatibility override (#8487)
petrroll Aug 23, 2026
4af9d21
feat(coding-agent): update managed installations in place
mitsuhiko Aug 24, 2026
80e6276
feat(coding-agent): add optional PowerShell tool (#8512)
mitsuhiko Aug 24, 2026
7623e8a
docs: audit unreleased changelogs
mitsuhiko Aug 24, 2026
4e58f32
Release v0.84.3
mitsuhiko Aug 24, 2026
31d4ed5
Add [Unreleased] section for next cycle
mitsuhiko Aug 24, 2026
bfb004d
fix: extract Windows release ZIPs in CI
mitsuhiko Aug 24, 2026
97fa14e
fix(coding-agent): reject truncated compaction summaries closes #7048
vegarsti Aug 24, 2026
dcd4619
feat: show llama presets if autoload enabled (#8558)
cristinaponcela Aug 24, 2026
b7170b8
chore: approve contributors from issue #8388
github-actions[bot] Aug 25, 2026
c5de2cc
chore: approve contributors from issue #8409
github-actions[bot] Aug 25, 2026
e8c632e
fix(ai): cloudflare gateway type, include workers
cristinaponcela Aug 25, 2026
5cd6a2a
fix(ai-test): update glm 5.3 price
cristinaponcela Aug 25, 2026
c5ad7c1
fix(ai): concatenate openai completions reasoning deltas (#8605)
cristinaponcela Aug 25, 2026
de82e53
feat(coding-agent): export image MIME detector (#8600)
xl0 Aug 25, 2026
cacb591
fix: export ToolExecution*Event types from public API (#6847)
PiedPiper911 Aug 25, 2026
4520786
chore: approve contributors from issue #8574
github-actions[bot] Aug 25, 2026
c1729a0
chore: approve contributors from issue #8594
github-actions[bot] Aug 25, 2026
0c03bc9
Add AI/ML API (aimlapi.com) as a built-in provider
Lookoff-AIMLAPI Aug 25, 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
  •  
  •  
  •  
44 changes: 44 additions & 0 deletions .github/APPROVED_CONTRIBUTORS
Original file line number Diff line number Diff line change
Expand Up @@ -339,3 +339,47 @@ skkdevcraft pr
PierrunoYT pr

zhichli pr

wesleyzhangwq pr

dgokeeffe pr

vipentti pr

midastruth pr

Maximo-Guk pr

bigoldcat123 pr

johnatbasicas pr

powerfooI pr

yearth pr

pablasso pr

bilby91 pr

giannisCKS pr

Panoplos pr

haoyongchun1125-maker pr

gwokhou pr

gaoyk19 pr

cad0p pr

Jaaneek pr

CaiJichang212 pr

Mallikarjun-0 pr

wutongyuonce pr

Terminator666666 pr
120 changes: 118 additions & 2 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,82 @@ jobs:
if-no-files-found: error
retention-days: 14

smoke-test-binaries:
runs-on: ${{ matrix.runner }}
needs: build
strategy:
fail-fast: false
matrix:
runner:
- ubuntu-latest
- macos-latest
- windows-latest
permissions:
actions: read
env:
RELEASE_TAG: ${{ github.event.inputs.tag || github.ref_name }}
steps:
- name: Download binary archives
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
with:
name: release-assets-${{ env.RELEASE_TAG }}
path: release-assets

- name: Extract current-platform binary
id: binary
shell: bash
run: |
set -euo pipefail

runtime_platform="$(node -p '`${process.platform}-${process.arch}`')"
case "${runtime_platform}" in
darwin-arm64|darwin-x64|linux-arm64|linux-x64)
platform="${runtime_platform}"
archive="release-assets/pi-${platform}.tar.gz"
root="extracted/pi"
binary="${root}/pi"
;;
win32-arm64)
platform="windows-arm64"
archive="release-assets/pi-${platform}.zip"
root="extracted"
binary="${root}/pi.exe"
;;
win32-x64)
platform="windows-x64"
archive="release-assets/pi-${platform}.zip"
root="extracted"
binary="${root}/pi.exe"
;;
*)
echo "::error::Unsupported runner platform ${runtime_platform}"
exit 1
;;
esac

mkdir -p extracted
if [[ "${archive}" == *.zip ]]; then
export ARCHIVE_PATH="$(cygpath -w "${archive}")"
export DESTINATION_PATH="$(cygpath -w extracted)"
powershell.exe -NoProfile -NonInteractive -Command \
'Expand-Archive -LiteralPath $env:ARCHIVE_PATH -DestinationPath $env:DESTINATION_PATH -Force'
else
tar -xf "${archive}" -C extracted
fi
echo "root=${root}" >> "${GITHUB_OUTPUT}"
echo "binary=${binary}" >> "${GITHUB_OUTPUT}"

- name: Smoke-test binary
shell: bash
run: |
"${{ steps.binary.outputs.binary }}" --help
"${{ steps.binary.outputs.binary }}" --version

stage-github-release:
runs-on: ubuntu-latest
needs: build
needs:
- build
- smoke-test-binaries
permissions:
actions: read
contents: write
Expand Down Expand Up @@ -270,11 +343,53 @@ jobs:
- name: Publish npm packages
run: node scripts/publish.mjs

announce-pi-dev-release:
runs-on: ubuntu-latest
needs: publish-npm
environment: pi-model-upload
concurrency:
group: announce-pi-dev-release
cancel-in-progress: false
permissions:
contents: read
env:
RELEASE_TAG: ${{ github.event.inputs.tag || github.ref_name }}
SOURCE_REF: ${{ github.event.inputs.source_ref || github.event.inputs.tag || github.ref_name }}
AWS_ACCESS_KEY_ID: ${{ secrets.PI_ARTIFACTS_R2_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.PI_ARTIFACTS_R2_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: auto
AWS_EC2_METADATA_DISABLED: 'true'
R2_ENDPOINT: https://67c0d357268b0fca6e0b465bb9d01b84.r2.cloudflarestorage.com
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: ${{ env.SOURCE_REF }}
persist-credentials: false

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

- name: Verify AWS CLI
run: aws --version

- name: Announce verified release on pi.dev
run: |
node scripts/publish-release-announcement.mjs \
--version "${RELEASE_TAG#v}" \
--bucket pi-artifacts \
--endpoint "$R2_ENDPOINT" \
--installer-package-json packages/coding-agent/install-lock/package.json \
--installer-package-lock packages/coding-agent/install-lock/package-lock.json

publish-github-release:
runs-on: ubuntu-latest
needs:
- stage-github-release
- publish-npm
- announce-pi-dev-release
permissions:
contents: write
env:
Expand Down Expand Up @@ -305,8 +420,9 @@ jobs:
- build
- stage-github-release
- publish-npm
- announce-pi-dev-release
- publish-github-release
if: ${{ always() && needs.stage-github-release.result != 'skipped' && (needs.stage-github-release.result != 'success' || needs.publish-npm.result != 'success' || needs.publish-github-release.result != 'success') }}
if: ${{ always() && needs.stage-github-release.result != 'skipped' && (needs.stage-github-release.result != 'success' || needs.publish-npm.result != 'success' || needs.announce-pi-dev-release.result != 'success' || needs.publish-github-release.result != 'success') }}
permissions:
contents: write
env:
Expand Down
1 change: 1 addition & 0 deletions .pi/prompts/wr.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,4 @@ Constraints:
- Do not open a PR unless I explicitly ask.
- If this is not GitHub issue or PR work, do not post a GitHub comment.
- If a final issue or PR comment was already posted in this session, do not post another one unless I explicitly ask.
- When working against a branch other than `main`, skip the changelog.
12 changes: 9 additions & 3 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@
- No emojis in commits, issues, PR comments, or code
- No fluff or cheerful filler text (e.g., "Thanks @user" not "Thanks so much @user!")
- Technical prose only, be direct
- Use concise, clear, simple language. Define unavoidable jargon before using it.
- Explain non-trivial designs and problems as: problem, concrete example or short trace, then solution. State why the solution is necessary and distinguish it from optional complexity.
- Prefer concrete behavior and small illustrations over abstract summaries, dense terminology, or unexplained lists of changes.
- When the user asks a question, answer it first before making edits or running implementation commands.
- When responding to user feedback or an analysis, explicitly say whether you agree or disagree before saying what you changed.

Expand All @@ -27,7 +30,9 @@

- After code changes (not docs): `npm run check` (full output, no tail). Fix all errors, warnings, and infos before committing. Does not run tests.
- Never run `npm run build` or `npm test` unless requested by the user.
- Never run the full vitest suite directly: it includes e2e tests that activate when endpoint/auth env vars are present. For all non-e2e tests, run `./test.sh` from the repo root. Otherwise run specific tests from the package root: `node ../../node_modules/vitest/dist/cli.js --run test/specific.test.ts`.
- Never run the full vitest suite directly: it includes e2e tests that activate when endpoint/auth env vars are present. For all non-e2e tests, run `./test.sh` from the repo root. Otherwise run specific tests from the package root:
- Vitest: `node "$(git rev-parse --show-toplevel)/node_modules/vitest/dist/cli.js" --run test/specific.test.ts`
- `packages/tui` (`node:test`): `node --test test/specific.test.ts`
- If you create or modify a test file, run it and iterate on test or implementation until it passes.
- For `packages/coding-agent/test/suite/`, use `test/suite/harness.ts` + the faux provider. No real provider APIs, keys, or paid tokens.
- Put issue-specific regressions under `packages/coding-agent/test/suite/regressions/` named `<issue-number>-<short-slug>.test.ts`.
Expand Down Expand Up @@ -112,6 +117,7 @@ Rules:

- All new entries go under `## [Unreleased]`. Read the full section first and append to existing subsections; never duplicate them.
- Released version sections (e.g. `## [0.12.2]`) are immutable; never modify them.
- Do not create changelog entries when working on a branch other than `main` or pull request

Attribution:

Expand Down Expand Up @@ -154,9 +160,9 @@ Attribution:

The release script bumps all package versions, updates changelogs, regenerates release artifacts, runs `npm run check`, commits `Release vX.Y.Z`, tags `vX.Y.Z`, adds fresh `## [Unreleased]` changelog sections, commits `Add [Unreleased] section for next cycle`, then pushes `main` and the tag. Do not rerun the release script after a tag was pushed.

4. **CI publishes npm packages**: pushing the `vX.Y.Z` tag triggers `.github/workflows/build-binaries.yml`. The `publish-npm` job uses npm trusted publishing through GitHub Actions OIDC with environment `npm-publish`; no local `npm publish`, `npm whoami`, OTP, or WebAuthn flow is required.
4. **CI verifies and announces the npm release**: pushing the `vX.Y.Z` tag triggers `.github/workflows/build-binaries.yml`. The `publish-npm` job uses npm trusted publishing through GitHub Actions OIDC with environment `npm-publish`; no local `npm publish`, `npm whoami`, OTP, or WebAuthn flow is required. After publishing, `announce-pi-dev-release` verifies every public workspace package resolves at the exact release version and that its npm tarball is available, then writes the verified release marker to R2. `pi.dev/api/latest-version` reads that marker; it must never announce a release from npm before this job succeeds.

5. **If CI publish fails**: inspect the failed `publish-npm` job. The publish helper is idempotent and skips package versions already present on npm, so rerun the tag workflow after fixing CI or transient npm issues. Do not rerun `npm run release:patch` or `npm run release:minor` for the same version.
5. **If CI publish or announcement fails**: inspect the failed job. The publish helper is idempotent and skips package versions already present on npm; the announcement job rechecks availability before updating the R2 marker. Rerun the failed job or workflow after fixing CI or transient npm issues. Do not rerun `npm run release:patch` or `npm run release:minor` for the same version.

## User Override

Expand Down
4 changes: 2 additions & 2 deletions SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This document should guide you about understanding the security concept behind
Pi and also where the boundaries are.

In general Pi is a coding agent that runs locally within the security boundary
of the user that is running it. It's the responsibiltiy of the user to monitor
of the user that is running it. It's the responsibility of the user to monitor
its operations or to contain it within a container, virtual machine or other
Sandbox solution.

Expand Down Expand Up @@ -42,7 +42,7 @@ reports and coordinate disclosure as appropriate.
## Scope

Security issues in the distributed packages, command-line tools, APIs, and
repository code are in scope as well as earendil operated infrastricture
repository code are in scope as well as earendil operated infrastructure
on `pi.dev`.

## Out Of Scope
Expand Down
Loading
Loading