kon-coding-agent 0.2.7__tar.gz → 0.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/.kon/skills/kon-release-publish/SKILL.md +6 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/.kon/skills/kon-tmux-test/run-e2e-tests.sh +12 -11
- kon_coding_agent-0.3.1/CHANGELOG.md +107 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/LICENSE +1 -1
- kon_coding_agent-0.3.1/PKG-INFO +550 -0
- kon_coding_agent-0.3.1/README.md +532 -0
- kon_coding_agent-0.3.1/docs/architecture-review.md +306 -0
- kon_coding_agent-0.3.1/docs/images/kon-screenshot.png +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/pyproject.toml +3 -1
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/__init__.py +3 -1
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/config.py +148 -42
- kon_coding_agent-0.3.1/src/kon/context/__init__.py +15 -0
- kon_coding_agent-0.2.7/src/kon/shared.py → kon_coding_agent-0.3.1/src/kon/context/_xml.py +0 -10
- kon_coding_agent-0.2.7/src/kon/context/agents.py → kon_coding_agent-0.3.1/src/kon/context/agent_mds.py +4 -3
- kon_coding_agent-0.3.1/src/kon/context/git.py +64 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/context/loader.py +3 -3
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/context/skills.py +12 -3
- kon_coding_agent-0.3.1/src/kon/core/handoff.py +51 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/core/types.py +38 -2
- kon_coding_agent-0.3.1/src/kon/defaults/config.toml +61 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/events.py +18 -3
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/base.py +5 -1
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/models.py +20 -18
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/__init__.py +4 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/anthropic.py +57 -12
- kon_coding_agent-0.3.1/src/kon/llm/providers/azure_ai_foundry.py +30 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/copilot_anthropic.py +7 -15
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/mock.py +41 -8
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/loop.py +26 -18
- kon_coding_agent-0.3.1/src/kon/metrics.py +37 -0
- kon_coding_agent-0.3.1/src/kon/permissions.py +114 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/session.py +87 -8
- kon_coding_agent-0.3.1/src/kon/themes.py +503 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/__init__.py +19 -6
- kon_coding_agent-0.3.1/src/kon/tools/_tool_utils.py +101 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/base.py +11 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/bash.py +24 -12
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/edit.py +32 -11
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/find.py +22 -33
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/grep.py +22 -35
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/read.py +17 -13
- kon_coding_agent-0.3.1/src/kon/tools/web_fetch.py +80 -0
- kon_coding_agent-0.3.1/src/kon/tools/web_search.py +61 -0
- kon_coding_agent-0.3.1/src/kon/tools/write.py +80 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools_manager.py +8 -2
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/turn.py +144 -32
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/app.py +319 -37
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/autocomplete.py +3 -0
- kon_coding_agent-0.3.1/src/kon/ui/blocks.py +483 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/chat.py +120 -9
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/commands.py +237 -55
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/export.py +2 -2
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/floating_list.py +90 -9
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/formatting.py +22 -1
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/input.py +90 -13
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/prompt_history.py +4 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/selection_mode.py +1 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/session_ui.py +94 -12
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/styles.py +101 -25
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/widgets.py +160 -9
- kon_coding_agent-0.3.1/src/kon/update_check.py +49 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/conftest.py +19 -1
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/context/test_agents.py +18 -18
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/context/test_skills.py +12 -6
- kon_coding_agent-0.3.1/tests/llm/test_anthropic_provider.py +203 -0
- kon_coding_agent-0.3.1/tests/llm/test_azure_ai_foundry_provider.py +54 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_agentic_loop.py +86 -17
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_compaction.py +10 -13
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_config_injection.py +4 -4
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_config_migration.py +48 -8
- kon_coding_agent-0.3.1/tests/test_handoff.py +284 -0
- kon_coding_agent-0.3.1/tests/test_launch_warnings.py +64 -0
- kon_coding_agent-0.3.1/tests/test_metrics.py +50 -0
- kon_coding_agent-0.3.1/tests/test_permissions.py +90 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_session_persistence.py +100 -1
- kon_coding_agent-0.3.1/tests/test_session_resume.py +144 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_system_prompt.py +24 -0
- kon_coding_agent-0.3.1/tests/test_system_prompt_git_context.py +31 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_update_check.py +3 -3
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/tools/test_edit.py +4 -2
- kon_coding_agent-0.3.1/tests/tools/test_edit_display.py +31 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/tools/test_read.py +25 -1
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/tools/test_read_image_integration.py +2 -1
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/ui/test_autocomplete.py +2 -1
- kon_coding_agent-0.3.1/tests/ui/test_input_handoff.py +53 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/ui/test_input_paste.py +8 -0
- kon_coding_agent-0.3.1/tests/ui/test_status_line.py +24 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/uv.lock +398 -1
- kon_coding_agent-0.2.7/CHANGELOG.md +0 -52
- kon_coding_agent-0.2.7/PKG-INFO +0 -326
- kon_coding_agent-0.2.7/README.md +0 -310
- kon_coding_agent-0.2.7/TODO.md +0 -5
- kon_coding_agent-0.2.7/src/kon/context/__init__.py +0 -13
- kon_coding_agent-0.2.7/src/kon/defaults/config.toml +0 -55
- kon_coding_agent-0.2.7/src/kon/tools/write.py +0 -54
- kon_coding_agent-0.2.7/src/kon/ui/blocks.py +0 -253
- kon_coding_agent-0.2.7/src/kon/update_check.py +0 -68
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/.gitignore +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/.kon/skills/kon-tmux-test/SKILL.md +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/.kon/skills/kon-tmux-test/setup-test-project.sh +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/.python-version +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/AGENTS.md +0 -0
- /kon_coding_agent-0.2.7/LOCAL.md → /kon_coding_agent-0.3.1/docs/local-models.md +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/core/__init__.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/core/compaction.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/defaults/__init__.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/__init__.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/oauth/__init__.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/oauth/copilot.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/oauth/openai.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/copilot.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/github_copilot_headers.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/openai_codex_responses.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/openai_compat.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/openai_completions.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/openai_responses.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/llm/providers/sanitize.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/py.typed +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/tools/_read_image.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/__init__.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/app_protocol.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/clipboard.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/src/kon/ui/path_complete.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/llm/__init__.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/llm/test_mock_provider.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/llm/test_openai_codex_provider_errors.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_cli_provider_resolution.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_config_binaries.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_config_error_fallback.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_model_provider_resolution.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_openai_compat.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/test_update_notice_behavior.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/tools/test_diff.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/tools/test_read_image.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/tools/test_write.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/ui/test_floating_list.py +0 -0
- {kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/tests/ui/test_prompt_history.py +0 -0
|
@@ -15,6 +15,12 @@ Use this skill when the user asks to cut a new Kon version, tag it, publish to P
|
|
|
15
15
|
- Whether to publish to PyPI now
|
|
16
16
|
- Whether to create GitHub release now
|
|
17
17
|
|
|
18
|
+
## Versioning requirement
|
|
19
|
+
|
|
20
|
+
- Kon's update check only supports strict numeric `MAJOR.MINOR.PATCH` versions such as `0.2.7` and `0.3.0`.
|
|
21
|
+
- Do **not** cut releases with PyPI/PEP 440 prerelease or suffix forms like `0.3.0rc1`, `0.3.0b1`, `0.3.0.post1`, or `0.3.0.dev1` unless the update-check logic is updated first.
|
|
22
|
+
- Even though PyPI commonly allows those formats, Kon releases should continue following plain `X.Y.Z` so update detection stays correct.
|
|
23
|
+
|
|
18
24
|
## Files to bump
|
|
19
25
|
|
|
20
26
|
- `pyproject.toml` → `[project].version`
|
{kon_coding_agent-0.2.7 → kon_coding_agent-0.3.1}/.kon/skills/kon-tmux-test/run-e2e-tests.sh
RENAMED
|
@@ -104,10 +104,10 @@ capture /tmp/kon-test-4-new.txt
|
|
|
104
104
|
|
|
105
105
|
# =============================================================================
|
|
106
106
|
# Test 5: Tab completion - unique match
|
|
107
|
-
# Verify: typing "
|
|
107
|
+
# Verify: typing "pypr" then Tab completes to "pyproject.toml"
|
|
108
108
|
# =============================================================================
|
|
109
109
|
echo "Test 5: Tab completion - unique match..."
|
|
110
|
-
tmux send-keys -t "$SESSION_NAME" '
|
|
110
|
+
tmux send-keys -t "$SESSION_NAME" 'pypr'
|
|
111
111
|
sleep 1
|
|
112
112
|
tmux send-keys -t "$SESSION_NAME" Tab
|
|
113
113
|
sleep 2
|
|
@@ -116,10 +116,11 @@ clear_input
|
|
|
116
116
|
|
|
117
117
|
# =============================================================================
|
|
118
118
|
# Test 6: Tab completion - multiple alternatives (floating list)
|
|
119
|
-
# Verify: typing "s" then Tab shows
|
|
119
|
+
# Verify: typing "src/kon/ui/s" then Tab shows a list including:
|
|
120
|
+
# selection_mode.py, session_ui.py, styles.py
|
|
120
121
|
# =============================================================================
|
|
121
122
|
echo "Test 6: Tab completion - multiple alternatives..."
|
|
122
|
-
tmux send-keys -t "$SESSION_NAME" 's'
|
|
123
|
+
tmux send-keys -t "$SESSION_NAME" 'src/kon/ui/s'
|
|
123
124
|
sleep 1
|
|
124
125
|
tmux send-keys -t "$SESSION_NAME" Tab
|
|
125
126
|
sleep 2
|
|
@@ -127,11 +128,11 @@ capture /tmp/kon-test-6-tab-multiple.txt
|
|
|
127
128
|
clear_input
|
|
128
129
|
|
|
129
130
|
# =============================================================================
|
|
130
|
-
# Test 7: Tab completion -
|
|
131
|
-
# Verify: typing "
|
|
131
|
+
# Test 7: Tab completion - nested unique file
|
|
132
|
+
# Verify: typing "src/kon/ui/widg" then Tab completes to "src/kon/ui/widgets.py"
|
|
132
133
|
# =============================================================================
|
|
133
|
-
echo "Test 7: Tab completion -
|
|
134
|
-
tmux send-keys -t "$SESSION_NAME" '
|
|
134
|
+
echo "Test 7: Tab completion - nested unique file..."
|
|
135
|
+
tmux send-keys -t "$SESSION_NAME" 'src/kon/ui/widg'
|
|
135
136
|
sleep 1
|
|
136
137
|
tmux send-keys -t "$SESSION_NAME" Tab
|
|
137
138
|
sleep 2
|
|
@@ -140,14 +141,14 @@ clear_input
|
|
|
140
141
|
|
|
141
142
|
# =============================================================================
|
|
142
143
|
# Test 8: Tab completion - select from list
|
|
143
|
-
# Verify: typing "s" Tab shows list, then
|
|
144
|
+
# Verify: typing "src/kon/ui/s" Tab shows list, then Enter applies first completion
|
|
144
145
|
# =============================================================================
|
|
145
146
|
echo "Test 8: Tab completion - select from list..."
|
|
146
|
-
tmux send-keys -t "$SESSION_NAME" 's'
|
|
147
|
+
tmux send-keys -t "$SESSION_NAME" 'src/kon/ui/s'
|
|
147
148
|
sleep 1
|
|
148
149
|
tmux send-keys -t "$SESSION_NAME" Tab
|
|
149
150
|
sleep 2
|
|
150
|
-
# Select first item
|
|
151
|
+
# Select first item from floating list with Enter
|
|
151
152
|
tmux send-keys -t "$SESSION_NAME" Enter
|
|
152
153
|
sleep 1
|
|
153
154
|
capture /tmp/kon-test-8-tab-select.txt
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [Unreleased]
|
|
6
|
+
|
|
7
|
+
- No changes yet.
|
|
8
|
+
|
|
9
|
+
## 0.3.1 - 2026-03-21
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- Added optional built-in web tools (`web_search`, `web_fetch`) configurable via `--extra-tools` and config - @Meltedd.
|
|
14
|
+
- Added tool permission controls with bash safety analysis - @Meltedd.
|
|
15
|
+
- Added popular built-in themes.
|
|
16
|
+
- Added tool previews in approval prompts.
|
|
17
|
+
- Added run token throughput metrics.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- Updated the default config shape to use `ui.theme`, add `tools` and `permissions` sections, and simplify agent loop defaults.
|
|
22
|
+
- Refreshed README/config/local-model docs and clarified custom skill slash commands.
|
|
23
|
+
- Improved plain-text tool call displays, approval UI presentation, and thinking/input styling.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- Fixed session loading to rebuild the agent and persist the session system prompt.
|
|
28
|
+
- Fixed session file handling by tightening session directory permissions and tarfile path filtering.
|
|
29
|
+
- Fixed update-version check behavior and shortened web fetch extraction errors.
|
|
30
|
+
- Fixed collapsed thinking block rendering, exit summary theming, and summary formatting polish.
|
|
31
|
+
- Fixed skill collision warning path formatting to display consistently.
|
|
32
|
+
|
|
33
|
+
## 0.3.0 - 2026-03-15
|
|
34
|
+
|
|
35
|
+
### Added
|
|
36
|
+
|
|
37
|
+
- Added `/handoff` to start a focused handoff in a new session, including handoff links between sessions.
|
|
38
|
+
- Added Azure AI Foundry provider support for Anthropic models.
|
|
39
|
+
- Added configurable Git context controls in the system prompt.
|
|
40
|
+
- Added startup launch warnings for provider/config/skill initialization issues.
|
|
41
|
+
- Added dotted spinner statuses for handoff and auto-compaction.
|
|
42
|
+
- Added resume-list improvements for skill-trigger sessions and session deletion.
|
|
43
|
+
- Added file change tracking from edit/write tools, including InfoBar counters and details modal.
|
|
44
|
+
- Added incremental markdown rendering during streaming with heading color support.
|
|
45
|
+
- Added adaptive thinking support for Claude 4.6 models.
|
|
46
|
+
- Added richer exit summary with KON logo, elapsed duration, and file-change totals.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- Improved model picker ordering by provider and model id.
|
|
51
|
+
- Improved status line token display to show raw streaming token counts.
|
|
52
|
+
- Improved handoff marker/link rendering for cleaner output.
|
|
53
|
+
- Updated README intro/config guidance and model/provider documentation.
|
|
54
|
+
|
|
55
|
+
### Fixed
|
|
56
|
+
|
|
57
|
+
- Fixed Anthropic stream handling by dropping unsigned thinking blocks, leading empty text chunks, and empty assistant messages.
|
|
58
|
+
- Fixed tool error propagation so failures are sent back to the model in tool result content.
|
|
59
|
+
- Fixed file change stats reset behavior on `/new` and `/clear`.
|
|
60
|
+
- Fixed markdown finalization to preserve block-level structure after streaming.
|
|
61
|
+
- Fixed editor/input UX regressions (newline border flicker and truncation/history cycling conflicts).
|
|
62
|
+
- Fixed git-status prompt spacing and reduced git-context prompt cap for stability.
|
|
63
|
+
|
|
64
|
+
## 0.2.7 - 2026-03-14
|
|
65
|
+
|
|
66
|
+
### Added
|
|
67
|
+
|
|
68
|
+
- Added automatic user config migration with schema versioning and backup creation (`~/.kon/config.toml.bak.<timestamp>`).
|
|
69
|
+
- Added migration tests for legacy config key upgrades and no-op behavior on current schema versions.
|
|
70
|
+
- Added provider error-format tests to ensure empty upstream exceptions render with readable fallback text.
|
|
71
|
+
|
|
72
|
+
### Fixed
|
|
73
|
+
|
|
74
|
+
- Fixed blank error notifications (`✗` with no message) by normalizing empty provider/UI error messages.
|
|
75
|
+
|
|
76
|
+
## 0.2.6 - 2026-03-14
|
|
77
|
+
|
|
78
|
+
### New Features
|
|
79
|
+
|
|
80
|
+
- Added slash-triggered skill workflow in the TUI.
|
|
81
|
+
|
|
82
|
+
### Added
|
|
83
|
+
|
|
84
|
+
- Added clearer UI highlighting for informational/system notices.
|
|
85
|
+
- Added regression tests for compaction behavior and update notice behavior.
|
|
86
|
+
- Added a direct changelog link in update-available notices.
|
|
87
|
+
|
|
88
|
+
### Changed
|
|
89
|
+
|
|
90
|
+
- Improved tool output presentation, including truncated output labels and bash previews.
|
|
91
|
+
- Refined loaded resource headers in chat (`[Context]` and `[Skills]`) for better scanning.
|
|
92
|
+
- Renamed warning color usage to `notice` in UI color configuration for consistency.
|
|
93
|
+
- Simplified update notifications to always show the repository changelog URL.
|
|
94
|
+
- Updated README skills docs with `register_cmd` and `cmd_info` front matter fields and validation rules.
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
97
|
+
|
|
98
|
+
- Fixed compaction usage accounting by backtracking token usage correctly.
|
|
99
|
+
- Fixed markdown heading rendering by sanitizing inline code ticks.
|
|
100
|
+
- Fixed skill-trigger prompt formatting edge cases in UI messages.
|
|
101
|
+
- Removed italic styling from thinking blocks in both TUI and exported transcripts.
|
|
102
|
+
|
|
103
|
+
## 0.2.5 - 2026-03-14
|
|
104
|
+
|
|
105
|
+
- Added update-available notice in TUI.
|
|
106
|
+
- Improved configuration and context loading behavior.
|
|
107
|
+
- Added tests for update notice behavior.
|