Commit graph

469 commits

Author SHA1 Message Date
Nico Bailon
9771fa1e44 Add AbortSignal support to extension UI dialogs
Closes #474
2026-01-06 15:01:15 -08:00
Mario Zechner
a00322175f Add [Unreleased] section for next cycle 2026-01-06 23:25:53 +01:00
Mario Zechner
fe95983dcf Release v0.37.5 2026-01-06 23:25:12 +01:00
Mario Zechner
59d8b7948c Add ExtensionAPI methods, preset example, and TUI documentation improvements
- ExtensionAPI: setModel(), getThinkingLevel(), setThinkingLevel() methods
- New preset.ts example with plan/implement presets for model/thinking/tools switching
- Export all UI components from pi-coding-agent for extension use
- docs/tui.md: Common Patterns section with copy-paste code for SelectList, BorderedLoader, SettingsList, setStatus, setWidget, setFooter
- docs/tui.md: Key Rules section for extension UI development
- docs/extensions.md: Exhaustive example links for all ExtensionAPI methods and events
- System prompt now references docs/tui.md for TUI development

Fixes #509, relates to #347
2026-01-06 23:24:23 +01:00
Mario Zechner
c35a18b2b3 Export all UI components for extensions 2026-01-06 23:09:58 +01:00
Mario Zechner
7c99ea54bf Export truncation utilities for custom tools, add truncated-tool example
- Export truncateHead, truncateTail, truncateLine, formatSize, DEFAULT_MAX_BYTES, DEFAULT_MAX_LINES from package
- Add examples/extensions/truncated-tool.ts showing proper output truncation with custom rendering
- Document output truncation best practices in docs/extensions.md
2026-01-06 22:13:08 +01:00
Mario Zechner
f87fb0a38a Add [Unreleased] section for next cycle 2026-01-06 21:29:03 +01:00
Mario Zechner
b08a6b22ce Release v0.37.4 2026-01-06 21:28:24 +01:00
Mario Zechner
999f97cd49 fix(coding-agent): update help text for ctrl+k and add !! shortcut 2026-01-06 21:27:35 +01:00
Tudor Oancea
f755f69e0a added custom header support and example extension 2026-01-06 21:20:19 +01:00
Mario Zechner
512ae4b4c0 fix: OAuth token refresh failure returns undefined instead of throwing
When OAuth refresh fails during model discovery, getApiKey() now returns
undefined instead of throwing. This allows the app to start and fall back
to other providers, so the user can /login to re-authenticate.

fixes #498

feat(coding-agent): support searching/resuming sessions by ID

- Session picker (pi -r) now searches session IDs in addition to message content
- --session flag accepts UUID prefix (e.g., pi --session a8ec1c2a)
- Documented in README.md

fixes #495
2026-01-06 21:09:11 +01:00
Mario Zechner
d2f3b42deb fix: OAuth token refresh failure returns undefined instead of throwing
When OAuth refresh fails during model discovery, getApiKey() now returns
undefined instead of throwing. This allows the app to start and fall back
to other providers, so the user can /login to re-authenticate.

fixes #498
2026-01-06 20:57:42 +01:00
Mario Zechner
cd797cc407 docs(coding-agent): add changelog entry for #503 2026-01-06 20:06:40 +01:00
Mario Zechner
a236e62025 Add [Unreleased] section for next cycle 2026-01-06 13:44:28 +01:00
Mario Zechner
86fea6379c Release v0.37.3 2026-01-06 13:43:47 +01:00
Mario Zechner
7210086677 Extensions: add pi.sendUserMessage() for sending user messages
Adds sendUserMessage() to the extension API, allowing extensions to send
actual user messages (role: user) rather than custom messages. Unlike
sendMessage(), this always triggers a turn and behaves as if the user
typed the message.

- Add SendUserMessageHandler type and sendUserMessage() to ExtensionAPI
- Wire handler through loader, runner, and all modes
- Implement via prompt() with expandPromptTemplates: false
- Add send-user-message.ts example with /ask, /steer, /followup commands
- Document in extensions.md

fixes #483
2026-01-06 13:40:24 +01:00
Mario Zechner
f023af0dab Add ctx.ui.setFooter() for extensions to replace footer component
Extensions can now replace the built-in footer with a custom component:
- setFooter(factory) replaces with custom component
- setFooter(undefined) restores built-in footer

Includes example extension demonstrating context usage display.

Closes #481
2026-01-06 12:39:45 +01:00
Mario Zechner
90e0b95c81 Merge branch 'fix/image-paste-in-wayland'
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-01-06 12:12:17 +01:00
Zhou Rui
538ae6a083 fix(coding-agent): paste clipboard images on Wayland via wl-paste/xclip 2026-01-06 12:11:43 +01:00
Mario Zechner
a1d0b1c151 Merge PR #492: Add blockImages setting
- Setting controls filtering at convertToLlm layer
- Images are always stored in session, filtered dynamically based on current setting
- Toggle mid-session works: LLM sees/doesn't see images already in session
- Fixed SettingsManager.save() to handle inMemory mode for all setters

Closes #492
2026-01-06 12:00:15 +01:00
Mario Zechner
1fc2a912d4 Add blockImages setting to prevent images from being sent to LLM providers
- Setting controls filtering at convertToLlm layer (defense-in-depth)
- Images are always stored in session, filtered dynamically based on current setting
- Toggle mid-session works: LLM sees/doesn't see images already in session
- Fixed SettingsManager.save() to handle inMemory mode for all setters

Closes #492
2026-01-06 11:59:09 +01:00
Mario Zechner
0761356684 Merge branch 'worktree-statusbar'
# Conflicts:
#	packages/coding-agent/CHANGELOG.md
2026-01-06 11:13:44 +01:00
Kevin
6cb3135695 Fix status bar git branch detection in worktrees and submodules 2026-01-06 11:13:22 +01:00
Mario Zechner
edb0da9611 feat(ai,agent,coding-agent): add sessionId for provider session-based caching
- Add sessionId to StreamOptions for providers that support session-based caching
- OpenAI Codex provider uses sessionId for prompt_cache_key and routing headers
- Agent class now accepts and forwards sessionId to stream functions
- coding-agent passes session ID from SessionManager and updates on session changes
- Update ai package README with table of contents, OpenAI Codex OAuth docs, and env vars table
- Increase Codex instructions cache TTL from 15 minutes to 24 hours
- Add tests for sessionId forwarding in ai and agent packages
2026-01-06 11:08:42 +01:00
Mario Zechner
b04ce9fe95 Add minimatch dependency to coding-agent 2026-01-06 09:29:05 +01:00
Josh
b582a6b70d
feat(coding-agent): add blockImages setting to prevent image uploads 2026-01-06 00:34:23 -06:00
Mario Zechner
9063a71fe6 Add [Unreleased] section for next cycle 2026-01-06 00:54:00 +01:00
Mario Zechner
6f4d16d76f Release v0.37.2 2026-01-06 00:53:18 +01:00
Mario Zechner
cfa2ba544f docs: add changelog entry for #479 2026-01-06 00:48:32 +01:00
Mario Zechner
c6aa0407e7 docs: add changelog entry for share deep link fix 2026-01-06 00:43:25 +01:00
Mario Zechner
58a77f3b70 docs: update changelog for #480 2026-01-06 00:42:51 +01:00
Prateek Sunal
132ff1e7e4
Expand configured extension directories from settings.json (#480)
* Expand configured extension directories

* Extract resolveExtensionEntries helper for directory resolution

* Update CHANGELOG for extension directory resolution
2026-01-06 00:42:02 +01:00
Mario Zechner
2da853e9d6 Add [Unreleased] section for next cycle 2026-01-06 00:32:56 +01:00
Mario Zechner
a20112f45f Release v0.37.1 2026-01-06 00:32:09 +01:00
Mario Zechner
0b39e21f30 docs: add changelog entry for share link fix 2026-01-06 00:31:13 +01:00
Mario Zechner
0c712659b3 Add [Unreleased] section for next cycle 2026-01-06 00:07:57 +01:00
Mario Zechner
d3d53392e8 Release v0.37.0 2026-01-06 00:07:15 +01:00
Mario Zechner
38eb4f7aa6 docs: add changelog entry for #477 2026-01-06 00:00:54 +01:00
Mario Zechner
e182b123a9 feat(coding-agent): queue compaction submissions, closes #475
Messages submitted during compaction are queued and delivered after
compaction completes, preserving steer vs follow-up behavior. Extension
commands execute immediately during compaction.

Co-authored-by: Thomas Mustier <tmustier@users.noreply.github.com>
2026-01-05 23:47:40 +01:00
Mario Zechner
0b9e3ada0c fix: clean up Codex thinking level handling
- Remove per-thinking-level model variants (gpt-5.2-codex-high, etc.)
- Remove thinkingLevels from Model type
- Provider clamps reasoning effort internally
- Omit reasoning field when thinking is off

fixes #472
2026-01-05 21:58:26 +01:00
Ben Vargas
02b72b49d5 fix: codex thinking handling 2026-01-05 21:55:47 +01:00
Mario Zechner
22870ae0c2 chore: remove deprecation comment from getToolsDir, add changelog entry for #470 2026-01-05 20:26:48 +01:00
Mario Zechner
168d114750 Add changelog entries for headless OAuth and truecolor detection 2026-01-05 20:16:59 +01:00
Mario Zechner
4a7e8672af Merge main into fix/settings-extensions-loading, resolve CHANGELOG conflict 2026-01-05 17:58:13 +01:00
Mario Zechner
7e2ebdd78e fix: mark with-deps example as private, update changelog 2026-01-05 17:55:15 +01:00
Aliou Diallo
042d3fa310
fix(sdk): extensions: [] now disables discovery as documented (#465) 2026-01-05 16:55:51 +01:00
Melih Mucuk
7e829273b0 docs(coding-agent): add changelog entry for #463 2026-01-05 13:53:18 +03:00
Mario Zechner
74d5f5523e Add [Unreleased] section for next cycle 2026-01-05 06:17:05 +01:00
Mario Zechner
435cd5d61f Release v0.36.0 2026-01-05 06:16:25 +01:00
Mario Zechner
467670024c docs: mark Codex experimental 2026-01-05 06:15:11 +01:00