Commit Graph
100 Commits
Author SHA1 Message Date
Mario Zechner 925ed89af1 Merge pull request #625 from nicobailon/feat/set-working-message
feat: add ctx.ui.setWorkingMessage() extension API
2026-01-11 12:36:50 +01:00
Mario Zechner 016a24e9a1 Add [Unreleased] section for next cycle 2026-01-11 04:11:34 +01:00
Mario Zechner 31fe16f2e7 Release v0.42.5 2026-01-11 04:10:49 +01:00
Mario Zechner fa8076bb3d docs(coding-agent): add tui fixes to changelog 2026-01-11 04:07:03 +01:00
Mario Zechner 178a3a563f fix(tui): handle split Shift+Enter in VS Code 2026-01-11 04:03:42 +01:00
Mario Zechner f0fd0a7d6a fix(mom): use coding-agent SessionManager instead of custom MomSessionManager
Removes MomSessionManager which was missing methods expected by AgentSession
(appendMessage, getBranch, etc.), causing runtime crashes.

Now uses the standard SessionManager from coding-agent with a fixed context.jsonl
path per channel. The syncLogToSessionManager function handles syncing messages
from log.jsonl using SessionManager's public API.

Ref #595
2026-01-11 04:03:42 +01:00
Mario Zechner 6db2d0770a Merge pull request #621 from kaofelix/fix-register-flag-docs
fix(coding-agent): remove -- from registerFlag calls
2026-01-11 03:19:29 +01:00
Mario Zechner 3bb115a39c fix(tui): cursor position tracking when content shrinks with unchanged lines 2026-01-11 03:00:23 +01:00
Mario Zechner d7394eb109 Fix TUI rendering with wrong dimensions after suspend/resume
- Send SIGWINCH to self on terminal start to refresh stale dimensions (Unix only)
- Change requestRender(true) to set previousWidth = -1 to trigger widthChanged
- Update first render condition to skip when widthChanged is true

Fixes #599
2026-01-11 02:47:28 +01:00
Mario Zechner 019ad0ec11 Fix /changelog adding 'What's New' to footer permanently
fixes #613
2026-01-11 02:23:04 +01:00
Mario Zechner 0d2731cf6b Remove built-in tool override warning, closes #615 2026-01-11 02:20:32 +01:00
Mario Zechner 2787638561 Remove built-in tool override warning, closes #615 2026-01-11 02:20:32 +01:00
Mario Zechner 65b72cc514 Merge pull request #618 from tmustier/fix-codex-stream-originator
fix(ai): update codex stream originator test
2026-01-11 01:58:54 +01:00
Mario Zechner bd82d06de2 Merge pull request #614 from mitsuhiko/auto-complete-model
Add support for /model autocomplete
2026-01-10 22:07:49 +01:00
Mario Zechner c95b132fcc Add [Unreleased] section for next cycle 2026-01-10 13:56:55 +01:00
Mario Zechner 345de59833 Release v0.42.4 2026-01-10 13:56:11 +01:00
Mario Zechner 7293d7cb82 fix(coding-agent): UTF-8 corruption in remote bash execution
Applied streaming TextDecoder fix to executeBashWithOperations(), matching
the fix in executeBash() from PR #433. Remote execution (SSH, containers)
was still using Buffer.toString() which corrupts multi-byte UTF-8 sequences
split across chunk boundaries.

fixes #608
2026-01-10 13:55:02 +01:00
Mario Zechner ec83d91473 fix(ai): resolve OAuth tool names via context 2026-01-10 13:45:08 +01:00
Mario Zechner 79ed50e0db chore(coding-agent): add changelog for bash hint 2026-01-10 13:36:13 +01:00
Mario Zechner 52e2b4e780 Merge pull request #610 from tallshort/fix/expand-hint
fix(coding-agent): show '(ctrl+o to collapse)' hint for bash output when expanded
2026-01-10 13:34:30 +01:00
Mario Zechner 3743ebc03d Add [Unreleased] section for next cycle 2026-01-10 13:28:10 +01:00
Mario Zechner 2a04b0fb28 Release v0.42.3 2026-01-10 13:27:28 +01:00
Mario Zechner 232749ee52 Remove copy-assets.js build step (prompt now bundled in .ts) 2026-01-10 13:26:46 +01:00
Mario Zechner 6dcb64565a Prepare for alternative Codex harness certification 2026-01-10 13:22:10 +01:00
Mario Zechner 11dd2f476b Add [Unreleased] section for next cycle 2026-01-10 01:43:32 +01:00
Mario Zechner 0c02f5c053 Release v0.42.2 2026-01-10 01:42:46 +01:00
Mario Zechner cf922b01b4 docs: update changelogs and clarify lockstep versioning in AGENTS.md 2026-01-10 01:41:48 +01:00
Mario Zechner d82df76222 docs: add supportsUsageInStreaming to compat table 2026-01-10 01:16:52 +01:00
Mario Zechner 14be8efba8 Merge PR #596: Add supportsUsageInStreaming compat flag 2026-01-10 00:34:29 +01:00
Mario Zechner 52ce113754 Add supportsUsageInStreaming compat flag for OpenAI-compatible providers
Renamed from supportsStreamOptions to clarify this controls stream_options: { include_usage: true }.
Defaults to true (no behavioral change for existing providers).
Providers like gatewayz.ai that reject this parameter can set supportsUsageInStreaming: false in model config.

Based on #596 by @XesGaDeus
2026-01-10 00:34:06 +01:00
Mario Zechner a613306e11 fix(ai): disable strict mode for OpenAI completions tool schemas
OpenRouter with models like openai/gpt-5.2 enforces strict mode which
requires all properties in the required array. Setting strict: false
allows optional parameters without null unions, matching the approach
already used in openai-responses.ts.
2026-01-10 00:19:02 +01:00
Mario Zechner fe98895706 Better error messages on OpenRouter via openai-completions 2026-01-10 00:09:51 +01:00
Mario Zechner c84f2f25de Fix lint warnings: use literal keys instead of bracket notation 2026-01-09 23:54:50 +01:00
Mario Zechner c39250d0df Fix Google Cloud Code Assist OAuth for paid subscriptions
- Properly handle long-running operations for project provisioning
- Support GOOGLE_CLOUD_PROJECT / GOOGLE_CLOUD_PROJECT_ID env vars for paid tiers
- Handle VPC-SC affected users
- Update docs for paid subscription requirements

Closes #582
2026-01-09 23:32:46 +01:00
Mario Zechner 498958a92a Updated AGENTS.md 2026-01-09 23:15:14 +01:00
Mario Zechner dbd82df5af docs: add PR workflow rules 2026-01-09 23:11:19 +01:00
Mario Zechner 63f3e609e7 Merge pull request #606 from badlogic/chore/changelog-footer-data-provider
chore(coding-agent): add footer data provider changelog
2026-01-09 23:08:03 +01:00
Mario Zechner 4afbf4291f chore(coding-agent): add footer data provider changelog 2026-01-09 23:04:20 +01:00
Mario Zechner e8eb4c254a feat: add search parameter and auto-select to /model command
- /model <search> pre-filters selector or auto-selects on exact match
- Support provider/model syntax for disambiguation (e.g., /model openai/gpt-4)
- Auto-select logic moved to InteractiveMode to avoid selector UI flicker

Closes #587
2026-01-09 22:39:26 +01:00
Mario Zechner b4b9cc2a80 Rebuild prompt widget on resume 2026-01-09 22:19:55 +01:00
Mario Zechner 35690f6d1a Merge branch 'fix/lazy-homedir-env-first' 2026-01-09 22:09:27 +01:00
Mario Zechner 4c68ab6eab chore: update prompt-url widget 2026-01-09 22:09:05 +01:00
Mario Zechner e2d14cdc23 Add spacing before aborted messages 2026-01-09 21:48:43 +01:00
Mario Zechner 62a423a218 Adjust widget spacing with empty state 2026-01-09 21:42:44 +01:00
Mario Zechner b95cb7503e Add PR/issue widget metadata and spacing 2026-01-09 21:40:29 +01:00
Mario Zechner 32dd0d3cc4 Add changelog entries for PR 598 2026-01-09 20:50:23 +01:00
Mario Zechner 60f5a03576 Add [Unreleased] section for next cycle 2026-01-09 20:24:50 +01:00
Mario Zechner d856bb097c Release v0.42.1 2026-01-09 20:24:10 +01:00
Mario Zechner 5eb53cdb9e Add [Unreleased] section for next cycle 2026-01-09 07:00:09 +01:00
Mario Zechner 0752995424 Release v0.42.0 2026-01-09 06:59:26 +01:00
Mario Zechner 97d0189eae Add OpenCode Zen provider support 2026-01-09 06:58:20 +01:00
Mario Zechner 98b25baf4d Add [Unreleased] section for next cycle 2026-01-09 06:07:35 +01:00
Mario Zechner ec9def84ef Release v0.41.0 2026-01-09 06:06:54 +01:00
Mario Zechner 342d896881 Add changelog entry for Anthropic OAuth restoration 2026-01-09 06:02:20 +01:00
Mario Zechner 19b5663340 Revert "Remove Anthropic OAuth support"
This reverts commit f5e6bcac1b.
2026-01-09 06:00:20 +01:00
Mario Zechner f745321169 Clean-up. 2026-01-09 05:23:08 +01:00
Mario Zechner 439385afbc Add [Unreleased] section for next cycle 2026-01-09 05:12:52 +01:00
Mario Zechner ebd661fe13 Release v0.40.1 2026-01-09 05:11:49 +01:00
Mario Zechner f5e6bcac1b Remove Anthropic OAuth support 2026-01-09 05:10:33 +01:00
Mario Zechner 2e362fbfd2 Make mac-system-theme extension async to avoid blocking keyboard input 2026-01-09 00:49:31 +01:00
Mario Zechner 0cf4e1dbf9 Add [Unreleased] section for next cycle 2026-01-09 00:44:14 +01:00
Mario Zechner 070ef9c771 Release v0.40.0 2026-01-09 00:43:32 +01:00
Mario Zechner e0e66a3054 Add documentation on component invalidation and theme changes 2026-01-09 00:42:33 +01:00
Mario Zechner 45a6c394ca Fix components not rebuilding content on theme change 2026-01-09 00:40:57 +01:00
Mario Zechner 36fbce85c2 Add [Unreleased] section for next cycle 2026-01-09 00:34:20 +01:00
Mario Zechner 39bfbb125c Release v0.39.1 2026-01-09 00:33:39 +01:00
Mario Zechner 37378fb346 Fix setTheme not triggering rerender, improve mac-system-theme example 2026-01-09 00:32:41 +01:00
Mario Zechner e5e944475d Poll macOS system theme every 2 seconds in mac-system-theme extension 2026-01-09 00:18:59 +01:00
Mario Zechner 307f9b4169 Add [Unreleased] section for next cycle 2026-01-09 00:10:41 +01:00
Mario Zechner c25f1eab64 Release v0.39.0 2026-01-09 00:10:00 +01:00
Mario Zechner c5b97d7a2f feat(coding-agent): add interactive-shell.ts extension example
Demonstrates running interactive commands (vim, git rebase, htop, etc.)
with full terminal access using user_bash event and ctx.ui.custom().

- Auto-detects interactive commands from built-in list
- !i prefix to force interactive mode
- Configurable via INTERACTIVE_COMMANDS/INTERACTIVE_EXCLUDE env vars

closes #532
2026-01-09 00:08:52 +01:00
Mario Zechner ef7c52ffa1 chore: fix template literal lint, update AGENTS.md to require fixing all check output 2026-01-08 23:44:26 +01:00
Mario Zechner 2dfc13e455 chore: format 2026-01-08 23:41:58 +01:00
Mario Zechner a9ab7be92f chore(coding-agent): update shx to 0.4.0 to fix deprecated glob/inflight warnings 2026-01-08 23:41:58 +01:00
Mario Zechner af2d8509e6 Fix --no-skills flag not preventing skills from loading
The --no-skills flag set options.skills = [] in main.ts, but the
interactive mode UI would rediscover skills anyway because it called
loadSkills() directly instead of using the already-loaded skills.

Changes:
- Add AgentSession.skills and AgentSession.skillWarnings properties
- discoverSkills() now returns { skills, warnings } instead of Skill[]
- Interactive mode uses session.skills instead of calling loadSkills()
- Update SDK docs and examples for new return type

Fixes #577
2026-01-08 23:41:54 +01:00
Mario Zechner ec1ee7ddc6 docs: add overlay documentation, mark as experimental 2026-01-08 22:44:12 +01:00
Mario ZechnerandNico Bailon f9064c2f69 feat(tui): add overlay compositing for ctx.ui.custom() (#558)
Adds overlay rendering capability to the TUI, enabling floating modal
components that render on top of existing content without clearing the screen.

- Add showOverlay(), hideOverlay(), hasOverlay() methods to TUI
- Implement ANSI-aware line compositing via extractSegments()
- Support overlay stack (multiple overlays, later on top)
- Add { overlay: true } option to ctx.ui.custom()
- Add overlay-test.ts example extension

Also fixes pre-existing bug where bash tool output cached visual lines
at fixed terminal width, causing crashes on terminal resize.

Co-authored-by: Nico Bailon <nico.bailon@gmail.com>
2026-01-08 22:40:42 +01:00
Mario Zechner 121823c74d feat(coding-agent): add user_bash event and theme API extensions
- user_bash event for intercepting ! and !! commands (#528)
- Extensions can return { operations } or { result } to redirect/replace
- executeBashWithOperations() for custom BashOperations execution
- session.recordBashResult() for extensions handling bash themselves
- Theme API: getAllThemes(), getTheme(), setTheme() on ctx.ui
- mac-system-theme.ts example: sync with macOS dark/light mode
- Updated ssh.ts to use user_bash event
2026-01-08 21:50:56 +01:00
Mario Zechner 16e142ef7d fix(ai): remove <thinking> tag wrapping, convert to plain text on cross-model handoff
- Remove <thinking> tag generation from google-shared.ts, transorm-messages.ts, openai-completions.ts
- Thinking blocks now convert to plain text when switching models (prevents models mimicking tags)
- Skip empty thinking blocks to avoid API errors
- Keep thinking blocks only when same provider AND same model

fixes #561
2026-01-08 21:19:16 +01:00
Mario Zechner 8fda948866 fix(coding-agent): string systemPrompt now works as full replacement
When passing a string systemPrompt to createAgentSession(), it is now
used as-is without appending context files and skills. This matches the
documented behavior: 'String replaces default, function receives default
and returns final.'

Previously, string systemPrompt would have context files and skills
appended, causing duplication if they were already in the string.

fixes #543
2026-01-08 20:47:52 +01:00
Mario Zechner dc54c308a9 SSH extension: evaluate pwd on remote when no path given, use accent color for status 2026-01-08 20:37:56 +01:00
Mario Zechner b0e5954cf8 feat(coding-agent): default ssh extension remote cwd to ~ 2026-01-08 20:27:09 +01:00
Mario Zechner aa89080ea0 fix(ai): add bridge prompt to override Antigravity behavior with Pi defaults 2026-01-08 20:20:24 +01:00
Mario Zechner aa91864715 chore: add changelog for #571, init theme with watcher in interactive mode 2026-01-08 20:10:39 +01:00
Mario Zechner 17cb328ca1 Allow extensions to modify system prompt in before_agent_start
- Add systemPrompt to BeforeAgentStartEvent so extensions can see current prompt
- Change systemPromptAppend to systemPrompt in BeforeAgentStartEventResult for full replacement
- Extensions can now chain modifications (each sees the result of previous)
- Update ssh.ts to replace local cwd with remote cwd in system prompt
- Update pirate.ts, claude-rules.ts, preset.ts to use new API

fixes #575
2026-01-08 19:54:34 +01:00
Mario ZechnerandOgulcan Celik 0774db2e5a feat: add wayland clipboard support for /copy command
- Use wl-copy for Wayland sessions with xclip/xsel fallback
- Reuse isWaylandSession() from clipboard-image.ts for consistent detection
- Handle spawn stdin errors gracefully

Closes #570

Co-authored-by: Ogulcan Celik <ogulcancelik@gmail.com>
2026-01-08 19:38:35 +01:00
Mario Zechner 9ed88646a8 feat(coding-agent): add pluggable operations for remote tool execution
Adds optional operations parameter to create*Tool functions enabling
delegation to remote systems (SSH, containers, etc.):

- ReadOperations: readFile, access, detectImageMimeType
- WriteOperations: writeFile, mkdir
- EditOperations: readFile, writeFile, access
- BashOperations: exec (with streaming, signal, timeout)

Add ssh.ts example demonstrating --ssh flag for remote execution.
Built-in renderers used automatically for overrides without custom renderers.

fixes #564
2026-01-08 19:32:25 +01:00
Mario Zechner ba46a52415 docs: add changelog entries for #568 2026-01-08 18:54:21 +01:00
Mario Zechner 550742ca98 docs(coding-agent): simplify tool-override example to use built-in renderer 2026-01-08 18:52:33 +01:00
Mario Zechner bbf0d92e8c feat(coding-agent): use built-in renderers for tool overrides without custom renderers
When overriding a built-in tool (read, bash, edit, write, grep, find, ls)
without providing renderCall/renderResult, the built-in renderer is now
used automatically. This allows wrapping built-in tools for logging or
access control without reimplementing the UI (syntax highlighting, diffs, etc.).
2026-01-08 18:52:33 +01:00
Mario Zechner 66cbcee347 docs(coding-agent): simplify --no-tools description 2026-01-08 18:52:33 +01:00
Mario Zechner 4a6c32c142 docs(coding-agent): clarify tool override doesn't require --no-tools 2026-01-08 18:52:33 +01:00
Mario Zechner e3dd4f21d1 feat(coding-agent): add tool override support via extensions
- Add setActiveTools() to ExtensionAPI for dynamic tool management
- Extensions can now override, wrap, or disable built-in tools
- Add tool-override.ts example demonstrating the pattern
- Update documentation for tool override capabilities
2026-01-08 18:52:33 +01:00
Mario Zechner 7a2c19cdf0 Merge pull request #568 from tmustier/gemini-raw-stream
fix: restore ESC interrupt after auto-retry and correct retry abort messaging
2026-01-08 18:50:47 +01:00
Mario Zechner 2d4fa997bc Merge pull request #567 from ferologics/feat/bun-update-notification
fix(coding-agent): show release URL for bun binary updates
2026-01-08 14:51:29 +01:00
Mario Zechner 6c3f82a696 fix(ci): update clipboard bindings to @mariozechner/clipboard fork
fixes #556
2026-01-08 12:21:26 +01:00
Mario Zechner cfa63c255d Add [Unreleased] section for next cycle 2026-01-08 04:53:51 +01:00
Mario Zechner 4b084d0f9d Release v0.38.0 2026-01-08 04:52:55 +01:00
Mario Zechner bf9a415541 Switch to @mariozechner/clipboard fork with musl support
fixes #533
2026-01-08 04:50:37 +01:00
Mario Zechner b1fb910625 refactor(coding-agent): unify tool and event handler context creation
Tools now use ExtensionRunner.createContext() instead of a separate
inline context factory. This ensures tools and event handlers share
the same context, fixing ctx.shutdown() and other context methods.

- Made ExtensionRunner.createContext() public
- Changed wrapRegisteredTools to accept ExtensionRunner instead of getContext callback
- Create ExtensionRunner when SDK custom tools are present (not just extensions)
- Removed redundant inline context factory from sdk.ts
2026-01-08 03:45:39 +01:00