Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
d343aee
fix(chat): lay out user file reference chips in a horizontal scroll s…
XingYu-Zhong Aug 16, 2026
9f37114
fix(media): route provider media tools through the configured model p…
XingYu-Zhong Aug 16, 2026
6d70f22
fix(usage): show all recorded models
XingYu-Zhong Aug 16, 2026
565a2ef
fix(usage): avoid double-counting side thread usage
XingYu-Zhong Aug 16, 2026
ebee3f9
fix(threads): let the sidebar summarize a session
MohamedWaelBishr Aug 17, 2026
7e20d98
fix(chat): stop the plan checklist from faking Graph progress
MohamedWaelBishr Aug 17, 2026
0fc374d
fix(chat): gate the plan-outline demotion on Graph progress visibility
XingYu-Zhong Aug 17, 2026
f90c050
Merge pull request #1205 from MohamedWaelBishr/codex/fix-graph-plan-p…
XingYu-Zhong Aug 17, 2026
f40356d
fix(browser-use): fail closed when destination DNS vetting stalls
XingYu-Zhong Aug 16, 2026
44302e8
fix(providers): connect keyless gemini-cli-api providers and catalog …
XingYu-Zhong Aug 17, 2026
31e0cc2
fix(design): reuse locked profile on follow-up instead of 409
XingYu-Zhong Aug 17, 2026
9f23cf8
fix(delegation): settle child usage on the child thread ledger
XingYu-Zhong Aug 17, 2026
47a812f
fix(loop): surface empty model responses instead of persisting silent…
XingYu-Zhong Aug 17, 2026
e262577
fix(usage): hide zero-token models in the usage tab
XingYu-Zhong Aug 17, 2026
b2f1dff
fix(browser-use): align action argument contracts
XingYu-Zhong Aug 17, 2026
0c3add7
feat(plan): add scheduled builds
XingYu-Zhong Aug 17, 2026
3db6b8f
fix(plan): localize the scheduled build dialog
XingYu-Zhong Aug 17, 2026
35b844e
fix(schedule): reuse plan thread and correct default time
XingYu-Zhong Aug 17, 2026
61a3db3
fix(composer): remove permission background
XingYu-Zhong Aug 17, 2026
16aa777
feat(plan): add scheduled build status
XingYu-Zhong Aug 17, 2026
306ae76
fix(schedule): clarify peak pricing windows
XingYu-Zhong Aug 17, 2026
bd2b979
fix(plan): localize build action buttons
XingYu-Zhong Aug 17, 2026
0fad5c2
fix(plan): show confirmed schedule details
XingYu-Zhong Aug 18, 2026
2512bea
feat(runtime): harden daemons and long-running workflows
XingYu-Zhong Aug 18, 2026
7851e3e
fix(browser-use): surface bounded browser startup failures
XingYu-Zhong Aug 18, 2026
376759f
feat(usage): show subscription value estimates
XingYu-Zhong Aug 18, 2026
8e4eca5
feat(installer): add DMG and Windows installer artwork generation scr…
XingYu-Zhong Aug 18, 2026
cf30b06
feat(terminal): add SSH remote shell support
XingYu-Zhong Aug 18, 2026
a07c865
fix(usage): show current session price
XingYu-Zhong Aug 18, 2026
177b69b
feat(usage): paginate model usage list
XingYu-Zhong Aug 18, 2026
b31f302
fix(usage): attribute Codex subscription estimates
XingYu-Zhong Aug 18, 2026
fc34355
fix(design): restore historical generated images
XingYu-Zhong Aug 18, 2026
d4c4bba
fix(model): tolerate null streamed tool call ids
XingYu-Zhong Aug 18, 2026
a3a9e40
fix(chat): auto-send background queued messages
XingYu-Zhong Aug 18, 2026
0ba19d8
fix(sidebar): keep running threads visible across lazy batches
XingYu-Zhong Aug 18, 2026
9a5e8a1
feat(packaging): stamp macOS DMG volume name with artifact version
XingYu-Zhong Aug 18, 2026
d28d99b
fix(chat): keep usage footer on one line
XingYu-Zhong Aug 18, 2026
e13e5ca
fix(chat): hide shortcut hint while composing
XingYu-Zhong Aug 18, 2026
14a1910
fix(plan): bypass cached settings when loading card schedule
XingYu-Zhong Aug 18, 2026
29d4b34
fix(sidebar): detect completion for restored running threads
XingYu-Zhong Aug 18, 2026
fa9c12f
feat(providers): open settings config file
XingYu-Zhong Aug 18, 2026
7086bfc
fix(sidebar): keep workspace folders neutral during runs
XingYu-Zhong Aug 18, 2026
1406501
fix(sidebar): scope project expansion counts
XingYu-Zhong Aug 19, 2026
24d4ae3
feat(plan): enhance scheduling features and update translations
XingYu-Zhong Aug 19, 2026
c82a708
fix(sidebar): remove project header running indicator
XingYu-Zhong Aug 19, 2026
69d68b1
fix(chat): dedupe replayed timeline text
XingYu-Zhong Aug 19, 2026
92812ee
fix(model): tolerate empty streamed tool call ids
XingYu-Zhong Aug 19, 2026
67ba222
feat(plan): default to agent-managed worktrees
XingYu-Zhong Aug 19, 2026
58811ca
fix(usage): respect history ranges and paginate models
XingYu-Zhong Aug 18, 2026
a30fb1e
fix(providers): preserve imported shared models
XingYu-Zhong Aug 19, 2026
4392172
feat(chat): add lab conversation visualizations
XingYu-Zhong Aug 19, 2026
80a081f
feat(runtime): enhance turn duration tracking and metadata handling
XingYu-Zhong Aug 19, 2026
854244d
fix(settings): allow conversation visualization toggle
XingYu-Zhong Aug 19, 2026
4bd39bc
feat: add proactive retry mechanism for subagents
XingYu-Zhong Aug 19, 2026
46e99fb
fix(providers): classify multimodal chat imports
XingYu-Zhong Aug 19, 2026
0922f49
feat: add scheduled thread activity management and improve completion…
XingYu-Zhong Aug 19, 2026
92d360f
fix(chat): keep detached subagents running until settled
XingYu-Zhong Aug 19, 2026
e59c1f7
feat: Enhance turn usage details with popover and detailed breakdown
XingYu-Zhong Aug 19, 2026
85ec492
feat: Refactor FloatingComposer components for improved status manage…
XingYu-Zhong Aug 19, 2026
a66393c
fix(providers): preserve multi-account preset identity
XingYu-Zhong Aug 19, 2026
711271c
feat(composer): move persona into action menu
XingYu-Zhong Aug 19, 2026
1eff6db
feat(cli): harden non-interactive benchmark runs
XingYu-Zhong Aug 19, 2026
92def14
feat(benchmarks): add one-click agent evaluation harness
XingYu-Zhong Aug 19, 2026
1f77d7f
docs(benchmarks): document reproducible evaluation workflow
XingYu-Zhong Aug 19, 2026
ee713bc
docs(openspec): complete benchmark harness change
XingYu-Zhong Aug 19, 2026
f5f78e5
feat(service-manager): implement service manager handoff and compatib…
XingYu-Zhong Aug 19, 2026
f7ac7df
feat: add local cost estimation to ProviderQuotaPanel and related com…
XingYu-Zhong Aug 19, 2026
1b6d767
feat(benchmarks): support Windows WSL2 hosts
XingYu-Zhong Aug 19, 2026
21a8cb6
docs(benchmarks): add Windows WSL2 tutorial
XingYu-Zhong Aug 19, 2026
f4b951a
docs(openspec): complete Windows benchmark support
XingYu-Zhong Aug 19, 2026
2732090
Refactor image handling in canvas design
XingYu-Zhong Aug 19, 2026
572b5cd
feat: enhance WorkbenchTopActions with improved tooltip and restart f…
XingYu-Zhong Aug 20, 2026
1000597
feat(canvas): enhance image annotation handling and placement logic
XingYu-Zhong Aug 20, 2026
ad0aba7
feat(plan): flatten panel build actions into a compact split-button t…
XingYu-Zhong Aug 20, 2026
8ba121a
feat: migrate image handling to new Kun directory structure
XingYu-Zhong Aug 20, 2026
a923f49
feat(design): add focused canvas conversation
XingYu-Zhong Aug 20, 2026
e54e048
feat: add spreadsheet mutation handling and conversion actions
XingYu-Zhong Aug 20, 2026
1b723d2
fix(packaging): keep renderer-bundled preview deps out of production …
Aug 20, 2026
4dd324e
feat: implement external rebase for spreadsheet mutations
XingYu-Zhong Aug 20, 2026
c567a39
docs(release): add Kun v0.3.6 release notes
XingYu-Zhong Aug 20, 2026
b6afab2
feat: enhance spreadsheet selection handling and visibility of inline…
XingYu-Zhong Aug 20, 2026
6daa705
Merge pull request #1204 from MohamedWaelBishr/codex/fix-thread-summa…
XingYu-Zhong Aug 20, 2026
e38c4d2
fix(ci): raise macOS renderer build heap
XingYu-Zhong Aug 20, 2026
fef9c35
Merge pull request #1218 from KunAgent/codex/fix-macos-build-heap
XingYu-Zhong Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .claude/skills/source-command-opsx-apply
1 change: 1 addition & 0 deletions .claude/skills/source-command-opsx-archive
1 change: 1 addition & 0 deletions .claude/skills/source-command-opsx-explore
1 change: 1 addition & 0 deletions .claude/skills/source-command-opsx-propose
4 changes: 4 additions & 0 deletions .github/workflows/daily-dev-prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ jobs:
DEEPSEEK_GUI_ARTIFACT_VERSION: ${{ needs.prepare.outputs.dev_version }}
DEEPSEEK_GUI_UPDATE_CHANNEL: frontier
RELEASE_CHANNEL: frontier
# The renderer bundle can exceed Node's default ~2 GiB heap on the
# macOS ARM runner. Keep prerelease packaging consistent with PR and
# stable release builds.
NODE_OPTIONS: '--max-old-space-size=4096'
steps:
- name: Check out develop commit
uses: actions/checkout@v4
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/pr-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,9 @@ jobs:
# PR validation intentionally uses the afterPack ad-hoc signature only.
# It never consumes Developer ID or notarization secrets.
CSC_IDENTITY_AUTO_DISCOVERY: 'false'
# The renderer bundle can exceed Node's default ~2 GiB heap on the
# macOS ARM runner. Keep the PR build aligned with release packaging.
NODE_OPTIONS: '--max-old-space-size=4096'
steps:
- name: Check out repository
uses: actions/checkout@v4
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ jobs:
APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
CSC_FOR_PULL_REQUEST: 'true'
# The renderer bundle can exceed Node's default ~2 GiB heap on the
# macOS ARM runner; signed release packaging needs the same allowance
# that PR packaging uses.
NODE_OPTIONS: '--max-old-space-size=4096'
steps:
- name: Check out merge commit
uses: actions/checkout@v4
Expand Down
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,13 @@ resources/bundled-extensions/
*.log
.DS_Store

### Agent benchmark runs
artifacts/benchmarks/
benchmarks/agent-evals/.venv/
benchmarks/agent-evals/swebench/.venv/
__pycache__/
*.pyc

### Local environment
.env
.env.*
Expand Down Expand Up @@ -51,6 +58,8 @@ TestResults.xml
.workbuddy/
.kun-design/
.kun/images/
# Generated images from releases before the Kun directory migration.
.deepseekgui-images/
.kun-canvas/
.kun-whiteboards/
.kunsdd/
Expand Down
28 changes: 28 additions & 0 deletions THIRD_PARTY_NOTICES.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,31 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

## CodexBar provider icons

Kun includes a selected set of provider SVG icons copied from
[steipete/CodexBar](https://github.com/steipete/CodexBar), source revision
`453174fe13eebdf403cc0776268eb2b101fd9553`.

MIT License

Copyright (c) 2026 Peter Steinberger

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
1 change: 1 addition & 0 deletions benchmarks/agent-evals/.python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
6 changes: 6 additions & 0 deletions benchmarks/agent-evals/benchmark.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
KUN_BENCH_BASE_URL=https://provider.example/v1
KUN_BENCH_API_KEY=replace-me
KUN_BENCH_MODEL=provider-model-id
KUN_BENCH_ENDPOINT_FORMAT=openai-chat-completions
KUN_BENCH_REASONING_EFFORT=max
# KUN_BENCH_SERVICE_TIER=priority
10 changes: 10 additions & 0 deletions benchmarks/agent-evals/configs/full.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "full",
"attempts": 1,
"concurrency": 1,
"suites": {
"swebench": { "all": true },
"deepswe": { "all": true },
"terminal-bench": { "all": true }
}
}
23 changes: 23 additions & 0 deletions benchmarks/agent-evals/configs/pilot.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"name": "pilot",
"attempts": 1,
"concurrency": 1,
"suites": {
"swebench": { "limit": 10, "sample_seed": 0 },
"deepswe": { "limit": 10, "sample_seed": 0 },
"terminal-bench": {
"tasks": [
"adaptive-rejection-sampler",
"bn-fit-modify",
"break-filter-js-from-html",
"build-cython-ext",
"build-pmars",
"build-pov-ray",
"caffe-cifar-10",
"cancel-async-tasks",
"chess-best-move",
"circuit-fibsqrt"
]
}
}
}
10 changes: 10 additions & 0 deletions benchmarks/agent-evals/configs/smoke.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "smoke",
"attempts": 1,
"concurrency": 1,
"suites": {
"swebench": { "tasks": ["sympy__sympy-20590"] },
"deepswe": { "tasks": ["abs-module-cache-flags"] },
"terminal-bench": { "tasks": ["regex-log"] }
}
}
40 changes: 40 additions & 0 deletions benchmarks/agent-evals/docker/KunBenchmark.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
FROM --platform=linux/amd64 ubuntu:22.04 AS build

ARG KUN_APP_VERSION
ARG KUN_ARTIFACT_VERSION
ARG KUN_TAG
ARG KUN_COMMIT

ENV DEBIAN_FRONTEND=noninteractive
ENV KUN_APP_VERSION=${KUN_APP_VERSION}
ENV KUN_ARTIFACT_VERSION=${KUN_ARTIFACT_VERSION}
ENV KUN_UPDATE_CHANNEL=frontier
ENV RELEASE_CHANNEL=frontier

RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential ca-certificates curl git python3 tar xz-utils \
&& rm -rf /var/lib/apt/lists/*

RUN curl -fsSLO https://nodejs.org/dist/v22.23.1/node-v22.23.1-linux-x64.tar.xz \
&& echo "9749e988f437343b7fa832c69ded82a312e41a03116d766797ac14f6f9eee578 node-v22.23.1-linux-x64.tar.xz" | sha256sum -c - \
&& tar -xJf node-v22.23.1-linux-x64.tar.xz -C /usr/local --strip-components=1 \
&& rm node-v22.23.1-linux-x64.tar.xz \
&& node --version \
&& npm --version

WORKDIR /src
COPY . .
RUN npm ci \
&& npm --prefix kun ci \
&& npm run build:kun \
&& npm run package:tui -- \
--version "${KUN_APP_VERSION}" \
--artifact-version "${KUN_ARTIFACT_VERSION}" \
--tag "${KUN_TAG}" \
--channel frontier \
--commit "${KUN_COMMIT}" \
--target linux-x64 \
--output dist/benchmark-tui

FROM scratch AS export
COPY --from=build /src/dist/benchmark-tui/ /
10 changes: 10 additions & 0 deletions benchmarks/agent-evals/docker/KunBenchmark.Dockerfile.dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.git
.cache
artifacts
dist
kun/dist
node_modules
kun/node_modules
out
resources/bundled-extensions
*.log
40 changes: 40 additions & 0 deletions benchmarks/agent-evals/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[project]
name = "kun-agent-benchmarks"
version = "0.1.0"
description = "Pinned SWE-bench, DeepSWE, and Terminal-Bench orchestration for Kun"
requires-python = ">=3.12,<3.13"
dependencies = [
"datacurve-pier==0.3.0",
"harbor==0.21.0",
"pydantic==2.13.3",
"python-dotenv==1.2.3",
"PyYAML==6.0.3",
]

[project.scripts]
kun-bench = "kun_bench.cli:main"

[dependency-groups]
dev = [
"pytest==8.4.2",
"pytest-asyncio==1.2.0",
"ruff==0.15.4",
]

[build-system]
requires = ["hatchling==1.27.0"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
packages = ["src/kun_bench"]

[tool.pytest.ini_options]
testpaths = ["tests"]
asyncio_mode = "auto"

[tool.ruff]
line-length = 100
target-version = "py312"

[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B"]
5 changes: 5 additions & 0 deletions benchmarks/agent-evals/src/kun_bench/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
"""Kun external agent benchmark harness."""

from .constants import HARNESS_VERSION

__all__ = ["HARNESS_VERSION"]
Loading
Loading