Commit Graph
2284 Commits
Author SHA1 Message Date
Mario Zechner 2f4b510c12 Add [Unreleased] section for next cycle 2026-01-19 16:14:47 +01:00
Mario Zechner 17a37bd174 Release v0.49.2 v0.49.2 2026-01-19 16:14:07 +01:00
Mario Zechner d772a09161 docs(coding-agent): add missing changelog entries for v0.49.1..HEAD 2026-01-19 16:13:15 +01:00
Mario Zechner 2b04aefa6d feat(ai): add AWS ECS/IRSA credential detection for Bedrock, fixes #848
Added support for additional AWS credential environment variables:
- AWS_CONTAINER_CREDENTIALS_RELATIVE_URI (ECS task roles)
- AWS_CONTAINER_CREDENTIALS_FULL_URI (ECS task roles)
- AWS_WEB_IDENTITY_TOKEN_FILE (IRSA for Kubernetes)

Also fixed undefined currentModel variable in OAuth error handling.
2026-01-19 16:10:10 +01:00
github-actions[bot] cd0df4c0dd chore: approve contributor mrud 2026-01-19 15:04:11 +00:00
github-actions[bot] 60674908ea chore: approve contributor zedrdave 2026-01-19 15:00:27 +00:00
d6bb66a494 fix(coding-agent): prevent crash on OAuth authentication failure (#849)
Detect OAuth authentication failures (expired credentials, offline) and provide helpful error message instead of crashing with generic 'No API key found' error.

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-01-19 15:59:45 +01:00
Armin RonacherandGitHub 98fb9f378c Improves the HTML export (#853)
- Added jsonl download button

Jump to last message on click

Fix missing labels
2026-01-19 15:57:44 +01:00
Mario Zechner 3e68744cae docs(coding-agent): add changelog entry for #838 2026-01-19 15:56:08 +01:00
Mario Zechner 2d27a2c728 fix(ai): skip errored/aborted assistant messages in transform-messages
Fixes OpenAI Responses 400 error 'reasoning without following item' by
skipping errored/aborted assistant messages entirely rather than filtering
at the provider level. This covers openai-responses, openai-codex-responses,
and future providers.

Removes strictResponsesPairing compat option (no longer needed).

Closes #838
2026-01-19 15:55:29 +01:00
Marc KrennandGitHub abb1775ff7 feat(coding-agent): Add widget placement option (#850)
* Add widget placement for extension widgets

* Remove changelog entry for widget placement

* Keep no-op widget signature

* Move widget render before attach
2026-01-19 15:54:24 +01:00
Mario Zechner 6327bfd3dc docs(coding-agent): add changelog entry for model scope toggle 2026-01-19 15:02:57 +01:00
Burak VarlıandGitHub 25e7e2d08a feat(coding-agent): Add quietStartup setting to /settings (#847)
* feat(coding-agent): Add `quietStartup` setting to `/settings`

* chore(coding-agent): Add CHANGELOG entry for "quiet startup" in `/settings`
2026-01-19 15:02:24 +01:00
Mario Zechner 2217cde74c fix(coding-agent): improve model scope toggle 2026-01-19 15:00:46 +01:00
TedandGitHub f711340136 fix question option schema (#846) 2026-01-19 14:57:23 +01:00
Mario Zechner 4cc1c96495 fix(coding-agent): exit on resume cancel 2026-01-19 14:01:03 +01:00
Mario Zechner 0e5977ad39 Add [Unreleased] section for next cycle 2026-01-19 00:23:57 +01:00
Mario Zechner 15a04c585a Release v0.49.1 v0.49.1 2026-01-19 00:23:11 +01:00
Mario Zechner 83adb15dbb docs: add missing changelog entries for v0.50.0
- ai: tool call ID normalization for cross-provider handoffs (#821)
- coding-agent: photon WASM loading in standalone binaries
- coding-agent: fix attributions for #762 (@cv) and #829 (@terrorobe)
2026-01-19 00:22:15 +01:00
Mario Zechner 037cc9c3f0 docs: add changelog entries for undo feature 2026-01-19 00:19:00 +01:00
Sviatoslav AbakumovandMario Zechner fb1242829d feat(tui): add legacy terminal support for Ctrl+symbol keys
Ctrl+\ sends ASCII 28 (File Separator) in legacy terminals. This is
commonly used as SIGQUIT in Unix.

Ctrl+] sends ASCII 29 (Group Separator) in legacy terminals. This is
commonly used as the telnet escape character.

Ctrl+_ sends ASCII 31 (Unit Separator) in legacy terminals. On US
keyboards, - and _ are on the same physical key, so this also functions
as an alias for Ctrl+-.
2026-01-19 00:18:47 +01:00
Sviatoslav AbakumovandMario Zechner 6bde679a5f fix(tui): use the non-null assertion operator instead of assert() 2026-01-19 00:18:47 +01:00
Sviatoslav AbakumovandMario Zechner bacf334bc4 feat(tui): add undo support to Editor with the Ctrl+- hotkey
Undo snapshots are captured for all edit operations:

- Word insertion, backspace, forward delete
- Word/line deletion (Ctrl+W, Ctrl+U, Ctrl+K, Alt+D)
- Yank/yank-pop, paste, autocomplete completion
- Cursor movement starts a new undo unit
- setText() pushes snapshot when content changes

Additionally, history browsing captures the undo state on first entry.
2026-01-19 00:18:47 +01:00
Mario Zechner c8db8e613f docs(ai): note handoff coverage for new providers 2026-01-19 00:15:46 +01:00
Mario Zechner 0ce59236dc test(ai): remove handoff test closes #258 2026-01-19 00:14:24 +01:00
Mario Zechner 023f6e2fa4 docs(ai): document onPayload callback 2026-01-19 00:12:43 +01:00
Mario Zechner ea02243a18 chore(ai): remove gemini cli session id test 2026-01-19 00:11:43 +01:00
Mario Zechner 2c7c23b865 fix(ai): normalize tool call ids and handoff tests fixes #821 2026-01-19 00:10:49 +01:00
Mario Zechner 298af5c1c2 style(coding-agent): move border above header, use keyHint for consistency 2026-01-18 20:27:11 +01:00
warrenandMario Zechner e32c486c34 fix(coding-agent): init theme in session selector tests 2026-01-18 20:25:00 +01:00
warrenandMario Zechner 26fe048314 feat(coding-agent): add session path toggle and deletion to /resume 2026-01-18 20:25:00 +01:00
Mario Zechner d43930c818 feat(ai): add strictResponsesPairing for Azure OpenAI Responses API
Split OpenAICompat into OpenAICompletionsCompat and OpenAIResponsesCompat
for type-safe API-specific compat settings. Added strictResponsesPairing
option to suppress orphaned reasoning/tool calls on incomplete turns,
fixing 400 errors on Azure's Responses API which requires strict pairing.

Closes #768
2026-01-18 20:15:33 +01:00
def9e4e9a9 Support shell command execution for API key resolution in models.json (#762)
* Support shell command execution for API key resolution in models.json

Add ! prefix support to apiKey field in models.json to execute shell commands
and use stdout as the API key. This allows users to store API keys in secure
credential managers like macOS Keychain, 1Password, Bitwarden, or HashiCorp Vault.

Example: "apiKey": "!security find-generic-password -ws 'anthropic'"

The apiKey field now supports three formats:
- !command - executes shell command, uses trimmed stdout
- ENV_VAR_NAME - uses environment variable value
- literal - uses value directly

fixes #697

* feat(coding-agent): cache API key command results for process lifetime

Shell commands (! prefix) are now executed once and cached. Environment
variables and literal values are not cached, so changes are picked up.

Addresses review feedback on #762.

---------

Co-authored-by: Mario Zechner <badlogicgames@gmail.com>
2026-01-18 19:48:06 +01:00
Mario Zechner a67f6f9916 chore(coding-agent): add changelog entry for shortcuts 2026-01-18 19:37:57 +01:00
Richard GillandMario Zechner c36010880f Reserve copy action during extension conflicts 2026-01-18 19:37:52 +01:00
Richard GillandMario Zechner 5353dd4b7e Normalize builtin keybinding keys to lowercase 2026-01-18 19:37:52 +01:00
Richard GillandMario Zechner 7cacb49af9 Clarify comment about reserved extension keybindings 2026-01-18 19:37:52 +01:00
Richard GillandMario Zechner 54c33f2ade Respect reserved keybindings when registering extensions 2026-01-18 19:37:52 +01:00
Mario Zechner c63f33d83b docs(agent): update steering and options 2026-01-18 19:21:52 +01:00
Mario Zechner ad337e30be docs: document Focusable interface propagation pattern for IME support
Container components with embedded Input/Editor children must implement
Focusable and propagate focus state to enable correct IME candidate
window positioning.

Related to #827
2026-01-18 17:27:16 +01:00
Mario Zechner b4f833c259 fix(coding-agent): fix IME candidate window positioning in menu selectors
Components with search inputs now implement Focusable interface and
propagate focus state to their child Input components. This allows
the hardware cursor to be positioned correctly for IME candidate
window placement.

Affected components:
- ModelSelectorComponent
- ScopedModelsSelectorComponent
- SessionSelectorComponent (and SessionList)
- ExtensionInputComponent
- LoginDialogComponent
- TreeSelectorComponent (and LabelInput)

fixes #827
2026-01-18 17:23:04 +01:00
Michael RennerandGitHub 8b23c0a45e feat(coding-agent): use hash fragments for share URLs (#829)
Fixes #828
2026-01-18 17:18:17 +01:00
Mario Zechner 964f17b8d1 fix(coding-agent): load photon wasm in compiled binaries 2026-01-18 17:11:49 +01:00
github-actions[bot] 61833b3dc9 chore: approve contributor terrorobe 2026-01-18 16:03:12 +00:00
Mario Zechner 55769e7580 chore: add issue templates for contributions and bugs 2026-01-18 13:20:52 +01:00
github-actions[bot] d22c4c239f chore: approve contributor badlogictest 2026-01-18 12:07:26 +00:00
Mario Zechner 97673461eb fix: allow additional text after lgtm in approval comments 2026-01-18 13:06:55 +01:00
Mario Zechner 64a8b64b52 fix: remove duplicate core import in approve-contributor workflow
actions/github-script already provides core as a global
2026-01-18 13:05:17 +01:00
Mario Zechner 8b02aff629 fix: fix YAML parsing issues in PR gate workflows
- Wrap if condition in ${{ }} to avoid YAML tag interpretation
- Use array.join for multiline message to avoid block scalar issues
2026-01-18 12:31:25 +01:00
Mario Zechner 3eded2c146 chore: add PR approval gate for new contributors
- Add APPROVED_CONTRIBUTORS file with existing contributors
- Add pr-gate.yml workflow to close PRs from unapproved contributors
- Add approve-contributor.yml workflow to approve via lgtm on issues
- Add CONTRIBUTING.md with guidelines
- Update README.md to point to CONTRIBUTING.md
2026-01-18 12:26:45 +01:00