Commit Graph

2099 Commits

Author SHA1 Message Date
Joel Hooks
a4f4d91fa5 Prevent stale pre-compaction assistant usage from retriggering auto-compaction after session recovery payloads and prove it with a regression test 2026-03-06 16:17:13 +01:00
Mario Zechner
58f8fcd8f1 fix(coding-agent): retry sync lockfile acquisition to prevent false auth errors during parallel startup
Add manual retry loop (10 attempts, 20ms delay) around lockfile.lockSync()
in FileAuthStorageBackend and FileSettingsStorage. Previously, concurrent
pi processes would fail immediately on ELOCKED, causing auth.json to load
as empty and surfacing misleading 'No API key found' errors.

fixes #1871
2026-03-06 16:04:01 +01:00
Mario Zechner
bdf482cefc fix(tui): add modifyOtherKeys fallback for modified enter keys in tmux
When Kitty keyboard protocol is not available (e.g. inside tmux), fall
back to xterm modifyOtherKeys mode 2 so that Shift+Enter, Ctrl+Enter,
and other modified keys are distinguishable from plain Enter.

tmux users need to add to ~/.tmux.conf:
  set -g extended-keys on
  set -g extended-keys-format csi-u

closes #1872
2026-03-06 16:02:17 +01:00
Mario Zechner
cb6aef2ffb fix(coding-agent): preserve thinking defaults across model switches closes #1864 2026-03-06 15:14:53 +01:00
Mario Zechner
b079003cf6 docs(coding-agent): clarify that tool errors must be thrown, not returned
Returning { isError: true } from a tool's execute function was silently
ignored - the agent loop only sets isError via the catch block. Fix the
with-deps example to throw instead, add a clear note in the Tool Definition
docs section, and update the Error Handling summary.

closes #1881
2026-03-06 14:36:27 +01:00
Mario Zechner
e4172e68d0 feat(ai): add claude-sonnet-4-6 to Antigravity, fix Claude thinking header detection, bump UA to 1.18.4
closes #1859
2026-03-06 13:27:35 +01:00
Mario Zechner
b13e080113 fix(coding-agent): clear header on /new closes #1880 2026-03-06 12:52:02 +01:00
Mario Zechner
b14c359289 Add [Unreleased] section for next cycle 2026-03-06 00:42:35 +01:00
Mario Zechner
45a8499c8f Release v0.56.2 2026-03-06 00:41:33 +01:00
Mario Zechner
4110d93369 docs(changelog): audit unreleased entries 2026-03-06 00:39:41 +01:00
Mario Zechner
84655e814c fix(coding-agent): prefer workspace dist files for extension aliases 2026-03-06 00:39:13 +01:00
Mario Zechner
9bcf06c056 fix(tui): add Kitty CSI-u printable decoding to Input component, closes #1857 2026-03-06 00:33:58 +01:00
Mario Zechner
863135d429 fix(ai): keep mistral browser-safe 2026-03-06 00:16:18 +01:00
Mario Zechner
a31065166d Merge branch 'feat/use-mistral-sdk' 2026-03-05 23:49:29 +01:00
Mario Zechner
0573612a89 fix(ai,coding-agent): simplify oauth subpath exports closes #1856 2026-03-05 23:28:56 +01:00
Mario Zechner
a74b18ca5a docs(changelog): add gpt-5.4 entries 2026-03-05 23:07:43 +01:00
Markus Ylisiurunen
f8d731a134 fix codex context window and add a few tests 2026-03-05 22:54:16 +01:00
Markus Ylisiurunen
8a6384a925 add support for gpt-5.4 2026-03-05 22:53:08 +01:00
Mario Zechner
7aed39063b docs(coding-agent): add changelog entry for CRLF write preview fix (#1854) 2026-03-05 22:37:28 +01:00
Mario Zechner
daaabbeac5 fix(coding-agent): normalize CRLF in write preview rendering (fixes #1854) 2026-03-05 22:35:26 +01:00
lajarre
1f39cc776a feat(coding-agent): add treeFilterMode setting for /tree default filter (#1852)
Add configurable initial filter mode for the session tree navigator.
Users who always switch to a specific filter (e.g. no-tools via Ctrl+T)
can now set it as default in settings.

Same pattern as doubleEscapeAction (#404). Filter infra from #747.
2026-03-05 22:25:58 +01:00
Mario Zechner
a0d839ce84 fix(ai): use skip_thought_signature_validator for unsigned Gemini 3 tool calls
Replace text fallback with the official sentinel value so unsigned function
calls retain structured context in multi-turn conversations.

closes #1829
2026-03-05 22:04:00 +01:00
Mario Zechner
cfbb15876a fix(ai): antigravity endpoint cascade on 403/404, add autopush fallback, strip extra headers
closes #1830
2026-03-05 21:59:43 +01:00
Mario Zechner
87d71380e2 fix(ai): preserve OpenAI Responses assistant phase across turns closes #1819 2026-03-05 21:13:06 +01:00
Mario Zechner
3de8c48692 fix(coding-agent): make footer truncation width-aware
Use visibleWidth/truncateToWidth for footer path and stats truncation so wide Unicode text cannot overflow terminal width.

Add regression tests for wide session/model/provider names and document the fix in changelog.

closes #1833
2026-03-05 20:45:04 +01:00
Mario Zechner
dabcda0db3 fix(tui): full redraw on terminal width/height resize\n\ncloses #1844 2026-03-05 20:27:37 +01:00
Mario Zechner
3daf72d720 docs(coding-agent): clarify models.json name behavior (fixes #1840) 2026-03-05 20:16:28 +01:00
Mario Zechner
708ce9d4ce Add [Unreleased] section for next cycle 2026-03-05 07:14:13 +01:00
Mario Zechner
ab00c80892 Release v0.56.1 2026-03-05 07:13:27 +01:00
Mario Zechner
da915ddb99 chore(changelog): add unreleased entries for post-v0.56.0 fixes 2026-03-05 07:12:35 +01:00
Sviatoslav Abakumov
1ce870db1b fix(coding-agent): use ESM resolution for extension alias fallback (#1821)
The previous fix (83b57924) replaced require.resolve() with bare
specifier fallbacks to avoid ERR_PACKAGE_PATH_NOT_EXPORTED for ESM-only
packages like pi-ai. However, bare specifiers are not valid jiti alias
targets, breaking extension loading in global npm installs.

Use import.meta.resolve() as the fallback instead. It respects the
"import" exports condition and returns a real file path.
2026-03-05 07:08:30 +01:00
Mario Zechner
3e611c135b Add [Unreleased] section for next cycle 2026-03-04 21:24:33 +01:00
Mario Zechner
e39c7d163b Release v0.56.0 2026-03-04 21:23:47 +01:00
Mario Zechner
cefb17dbd7 docs(changelog): add missing unreleased entries after v0.55.4 2026-03-04 21:19:14 +01:00
Mario Zechner
83b57924a0 fix(coding-agent): resolve extension aliases without require.resolve 2026-03-04 21:18:45 +01:00
Mario Zechner
0199abfd11 fix(binary): preload Bedrock provider module for Bun bundle
refs #1814
2026-03-04 20:47:41 +01:00
Mario Zechner
12cec4f162 fix(coding-agent): build binary with freshly built workspace deps 2026-03-04 20:36:27 +01:00
Mario Zechner
c0d706bf32 fix(extensions): alias pi-ai oauth subpath in jiti loader 2026-03-04 20:31:57 +01:00
Mario Zechner
e0754fdbb3 fix(ai,coding-agent): make pi-ai browser-safe and move OAuth runtime exports
- add browser smoke bundling check to root check + pre-commit

- lazy-load Bedrock provider registration to avoid browser graph traversal

- remove top-level OAuth runtime exports from @mariozechner/pi-ai

- add @mariozechner/pi-ai/oauth subpath export and update coding-agent imports

- move proxy dispatcher init to coding-agent CLI (Node-only)

- document Bedrock/OAuth browser limitations

closes #1814
2026-03-04 20:21:25 +01:00
Mario Zechner
e64cd15c25 fix(coding-agent): preserve session thinking for scoped model cycling
closes #1789
2026-03-04 19:51:55 +01:00
Mario Zechner
4cb1a56b53 fix(tui,coding-agent): add OSC 133 user message markers support closes #1805 2026-03-04 18:33:22 +01:00
Cody Bontecou
f710c2705d feat: add branchSummary.skipPrompt setting to skip summarization prompt (#1792)
When enabled, /tree navigation skips the 'Summarize branch?' prompt and
defaults to no summary, reducing friction for users who never want branch
summaries.

Closes #1791
2026-03-04 17:54:36 +01:00
waldner
b4f9986d23 fix(coding-agent): detect GNU screen TERM values and downgrade to 256color (#1809)
GNU screen does not support truecolor escape sequences. When pi emits
truecolor SGR sequences (e.g. \x1b[38;2;102;102;102m for the dim color
#666666), screen misparses the semicolon-separated parameters as
individual SGR codes. The RGB value 102;102;102 maps directly to
SGR 102 (bright green background), which then bleeds into every
subsequent \x1b[2K line-erase, producing a bright green background
on most info/status messages.

detectColorMode() now returns '256color' for any TERM value that is
'screen', starts with 'screen-' (e.g. screen-256color), or starts
with 'screen.' (e.g. screen.xterm-256color). The existing COLORTERM
check at the top of the function already handles the opt-in case for
users who have configured screen's truecolor passthrough.
2026-03-04 17:50:39 +01:00
Sviatoslav Abakumov
5c61d6bc92 fix(coding-agent): queue messages during branch summarization (#1803)
Messages submitted while a branch summary was being generated were
processed immediately instead of being queued. This happened because
isCompacting only checked compaction abort controllers, not the branch
summary abort controller.

Include _branchSummaryAbortController in the isCompacting getter so all
existing guards (message queueing, reload blocking) also apply during
branch summarization.
2026-03-04 08:55:30 +01:00
Matteo Collina
d35935200f fix(coding-agent): avoid compaction reasoning for non-reasoning models (#1793) 2026-03-04 08:53:33 +01:00
Zhou Rui
d4084a7ad6 fix(coding-agent): propagate focus in extension editor for cursor positioning (#1784) 2026-03-03 21:58:45 +01:00
Abdeslam Yassine Agmar
eb9f1183ad refactor(ai): migrate mistral provider to conversations sdk 2026-03-03 17:25:50 +00:00
Mario Zechner
6b4b920425 fix(coding-agent): stop overflow auto-compaction cascades
fixes #1319
2026-03-03 17:19:42 +01:00
Mario Zechner
7b96041068 fix(ai): map groq qwen3 reasoning effort values closes #1745 2026-03-03 16:44:42 +01:00
Mario Zechner
42579dd923 feat(ai,coding-agent): add OpenCode Go provider support closes #1757 2026-03-03 16:02:29 +01:00