Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
543 commits
Select commit Hold shift + click to select a range
b8e8dea
feat(chat): add a setting to turn off chat-area animations
sumanx Oct 9, 2026
22c6578
feat(chat): let the chat column width be dragged and set in Settings
sumanx Oct 9, 2026
f1096ba
fix(layout): slide the tab strips' corner reserves with the side panels
sumanx Oct 9, 2026
ff511a4
Merge pull request #830 from dawNotPoi/fix/terminal-refresh-recovery
xintaofei Oct 9, 2026
546605d
fix(acp): keep the turns a custom agent runs on its own in its history
xintaofei Oct 9, 2026
fd135c8
fix(acp): stop doubling .exe for Windows binary agents from the registry
xintaofei Oct 9, 2026
d595d8e
fix(chat): keep the chat width in step with zoom and with what the co…
xintaofei Oct 9, 2026
595afb7
fix(chat): give only the conversation tab the chat width handles
xintaofei Oct 9, 2026
c6b7cda
fix(chat): stop the message jumps gliding when chat animations are off
xintaofei Oct 9, 2026
532dd81
docs(chat): name chat-content-w where a comment still said max-w-3xl
xintaofei Oct 9, 2026
0688154
fix(layout): slide the route band's reserve and snap reserves on layo…
xintaofei Oct 9, 2026
587f4de
fix(chat): restore the chat width as stored now, and hold it at half-…
xintaofei Oct 9, 2026
6b59034
test(chat): pin the handles opt-in to the shorthand and test the jump…
xintaofei Oct 9, 2026
22e70a0
feat(acp): adapt to claude-agent-acp 0.88.0 and Claude Haiku 5.5
xintaofei Oct 9, 2026
187651d
fix(computer): press return after typing into Chromium and Electron apps
xintaofei Oct 10, 2026
fa38e53
fix(acp): keep mid-turn messages, steer custom claude-agent-acp agents
xintaofei Oct 10, 2026
62aee00
perf(conversations): fetch a tab's detail only when it is visible
Flyneen Oct 10, 2026
467f17d
feat(genui): render json-render UI in assistant replies behind a switch
xintaofei Oct 10, 2026
7c9c675
Merge pull request #911 from sumanx/feat/chat-animation-toggle-and-width
xintaofei Oct 10, 2026
5908e4c
Merge pull request #912 from sumanx/fix/tab-strip-reserve-slide
xintaofei Oct 10, 2026
7c322eb
Merge remote-tracking branch 'origin/main'
xintaofei Oct 10, 2026
6ac1ed2
fix(conversations): keep a newly shown tab from connecting before its…
xintaofei Oct 10, 2026
05905cc
fix(genui): check out the bundled json-render skill with LF everywhere
xintaofei Oct 10, 2026
3f64610
fix(conversations): stop re-requesting a conversation's detail as fas…
xintaofei Oct 10, 2026
a679097
docs(tabs): say what the child-summary seed's one-turn window returns
xintaofei Oct 10, 2026
7fdc207
fix(conversations): keep retrying a failed detail fetch every 30 seconds
xintaofei Oct 10, 2026
a184bc0
test(conversations): cover every turn that skips a fetch, and the chi…
xintaofei Oct 10, 2026
c515056
fix(conversations): keep a loaded hidden tab refetching its detail
xintaofei Oct 10, 2026
afecd5f
fix(conversations): never leave a detail load stranded by a backgroun…
xintaofei Oct 10, 2026
8b95fc1
feat(acp): adapt to claude-agent-acp 0.89.0 and codex-acp 2.2.2
xintaofei Oct 10, 2026
23d745a
feat(layout): maximize the conversation column from its tab strip
xintaofei Oct 10, 2026
28b6ded
Merge pull request #913 from Flyneen/perf/lazy-hidden-tab-detail
xintaofei Oct 10, 2026
a1a4ccf
Merge remote-tracking branch 'origin/main'
xintaofei Oct 10, 2026
8c23817
fix(qoder): session model follows the last turn; sub-agent usage from…
Liang-HZ Oct 10, 2026
4401ab5
feat(qoder): bridge native AskUserQuestion over ACP form elicitation
Liang-HZ Oct 10, 2026
ae4f7ef
feat(acp): bump five agent pins and follow their transcript changes
xintaofei Oct 10, 2026
e86fd9b
feat(acp): adapt to claude-agent-acp 0.89.1
xintaofei Oct 10, 2026
602590f
# Release version 0.35.0
xintaofei Oct 10, 2026
07d27a9
feat(genui): draw charts in json-render cards with shadcn's chart com…
xintaofei Oct 11, 2026
7f839cc
fix(genui): fit round charts in their cards on WebKit and drop card s…
xintaofei Oct 11, 2026
d70706e
fix(settings): stop a late skill pack load from overwriting a newer one
xintaofei Oct 11, 2026
aaeb3b4
feat(genui): enable ui-render per agent on the Skill Packs UI tab
xintaofei Oct 11, 2026
e21eb6b
# Release version 0.35.1
xintaofei Oct 11, 2026
dd9d964
fix(subagent): fold live reasoning; keep child tool calls in arrival …
Liang-HZ Oct 10, 2026
d2f44e7
feat(usage): estimate token costs from catalog API list rates
Adam-Dalloul Oct 11, 2026
27baee5
feat(subagent): parse the child's mixed timeline, duration and orphan…
Liang-HZ Oct 11, 2026
53d94fa
fix(ask): parse the answered/declined sentence tool results
Liang-HZ Oct 11, 2026
8a1959b
feat(subagent): settled capsule keeps the interleaved timeline, folded
Liang-HZ Oct 11, 2026
3991581
fix(acp): stop empty check_user_feedback calls from looping
Frank-zhu2000 Oct 11, 2026
9e40a3b
feat(pwa): serve build assets and route shells from a service worker
leehom0123 Oct 11, 2026
1d223cc
docs(readme): pull the Docker image from ghcr.io/spacering-net/codeg
xintaofei Oct 12, 2026
acf7531
ci(release): label release images with their source repository
xintaofei Oct 12, 2026
69f7cf2
fix(qoder): count id-less sub-agent records and drop blank models at …
xintaofei Oct 12, 2026
d3e6144
test(qoder): pin id-less sub-agent records per record and keep the me…
xintaofei Oct 12, 2026
07d04ce
fix(i18n): pluralize the sub-agent activity step count
xintaofei Oct 12, 2026
ff18e03
fix(subagent): keep every child call and each entry's identity in the…
xintaofei Oct 12, 2026
66f0ec6
refactor(subagent): drop the attachAgentTranscripts switch nothing tu…
xintaofei Oct 12, 2026
611fc80
fix(subagent): count only non-blank prose as a timeline
xintaofei Oct 12, 2026
66ef57d
docs(subagent): note the live transcript stays on the settled card
xintaofei Oct 12, 2026
54c1cd0
test(subagent): assert no step count beside the pill's duration
xintaofei Oct 12, 2026
840fde9
chore(qoder): leave the summary-model change to #914
xintaofei Oct 12, 2026
3613c4e
fix(acp): count sub-agent timelines in the background-activity size e…
xintaofei Oct 12, 2026
08e7229
fix(qoder): read the task-file fields Qoder writes; parse only runs i…
xintaofei Oct 12, 2026
e3c23e0
docs(claude): say what the sub-agent timeline entry cap actually trims
xintaofei Oct 12, 2026
e5a91ed
fix(chat): keep a jump to a message from snapping back to the bottom
xintaofei Oct 12, 2026
dd1f4dc
fix(chat): make the message navigator cover the whole conversation
xintaofei Oct 12, 2026
f3c4e88
docs(upload): name the docs page that states the attachment cap
xintaofei Oct 12, 2026
5d68c5e
test(qoder): pin 1.1.67's usage-on-the-last-fragment shape
xintaofei Oct 12, 2026
46214e4
test(acp): pin each agent_stats field in the size estimate on its own
xintaofei Oct 12, 2026
b403dff
fix(usage): price each model at its maker's list rate
xintaofei Oct 12, 2026
3516050
fix(acp): ship cache rates in the bundled models.dev snapshot
xintaofei Oct 12, 2026
b12dbdb
fix(usage): keep partial coverage below 100% and tighten rate tests
xintaofei Oct 12, 2026
3eecf59
fix(acp): retry the terminal shell fallback when exec reports ETXTBSY
xintaofei Oct 12, 2026
4ebd0e4
test(process): write fixture scripts without holding a write descriptor
xintaofei Oct 12, 2026
f4b4410
Merge pull request #914 from Liang-HZ/fix/qoder-session-display
xintaofei Oct 12, 2026
1103069
fix(desktop): reach a remote server past an address that never answers
xintaofei Oct 12, 2026
6270fa2
fix(ask): read the CLI answer sentence by the asked questions
xintaofei Oct 13, 2026
d10b844
test(ask): pin multi-part and overlapping labels in a multi-select an…
xintaofei Oct 13, 2026
43d722d
fix(qoder): show the answers of a native AskUserQuestion on its card
xintaofei Oct 13, 2026
9a0807c
fix(pwa): stop the service worker looping offline or hiding real resp…
xintaofei Oct 13, 2026
d3d583d
fix(pwa): register the worker per release and cache what loaded befor…
xintaofei Oct 13, 2026
21c6cbd
fix(pwa): keep each release's offline boot self-contained
xintaofei Oct 13, 2026
29c19cd
fix(pwa): never install over the active worker's caches
xintaofei Oct 13, 2026
1214473
test(pwa): check the refused install leaves the active asset cache in…
xintaofei Oct 13, 2026
c104f35
Merge origin/main into feat/subagent-live-timeline
Liang-HZ Oct 13, 2026
66f5864
style(acp): rustfmt the repeated-empty feedback spawn test
xintaofei Oct 13, 2026
128a0a7
fix(acp): only count back-to-back empty feedback checks toward stop-p…
xintaofei Oct 13, 2026
fba9639
fix(acp): carry ask and steering instructions in structuredContent
xintaofei Oct 13, 2026
214fc91
fix(acp): forbid back-to-back check_user_feedback calls, not repeat c…
xintaofei Oct 13, 2026
8016ad1
test(acp): pin the feedback and ask parsers to the hinted result shapes
xintaofei Oct 13, 2026
9de1a6b
test(acp): check the feedback window bounds each gap, not the whole run
xintaofei Oct 13, 2026
53fb871
Merge pull request #917 from Liang-HZ/feat/subagent-live-timeline
xintaofei Oct 13, 2026
aff1e6c
Merge pull request #503 from Adam-Dalloul/feat/token-usage-api-list-cost
xintaofei Oct 13, 2026
99424ab
perf(chat): stop forcing a layout for every mutation in live scrollers
xintaofei Oct 13, 2026
caec647
fix(mobile): make the back gesture close overlays instead of unloadin…
leehom0123 Oct 13, 2026
775340e
fix(work-task): fail an empty end_turn that reported an agent error
Frank-zhu2000 Oct 13, 2026
610b2a3
feat(zcode): add built-in ACP bridge integration
jackie-cqz Oct 13, 2026
ccf863e
fix(work-task): record a session failure on an empty end_turn
Frank-zhu2000 Oct 13, 2026
67d257f
fix(zcode): preserve legacy custom registrations and history
jackie-cqz Oct 13, 2026
add220c
Merge pull request #927 from Liang-HZ/fix/ask-answer-sentence-parse
xintaofei Oct 13, 2026
8bb2153
Merge pull request #915 from Liang-HZ/feat/qoder-ask-elicitation
xintaofei Oct 13, 2026
792cff6
Merge pull request #924 from leehom0123/feat/pwa-offline-cache
xintaofei Oct 13, 2026
08baa41
Merge pull request #926 from Frank-zhu2000/fix/861-check-user-feedbac…
xintaofei Oct 13, 2026
cf7dfc0
Merge remote-tracking branch 'origin/main'
xintaofei Oct 13, 2026
1812751
fix(mobile): unwind stacked overlays one per back and reuse leftover …
xintaofei Oct 13, 2026
9371541
fix(mobile): let back close the delegation viewer
xintaofei Oct 13, 2026
4f5d681
fix(delegation): group the agent-defaults model select by provider
Liang-HZ Oct 13, 2026
3f72c4d
feat(files): preview PDF files in file tabs
xintaofei Oct 13, 2026
5caa79d
feat(forge): auto-process issues and PRs and judge issue reports first
xintaofei Oct 14, 2026
8131bc1
fix(parsers): read agent history from the dirs its settings relocate
xintaofei Oct 14, 2026
67d28ae
fix(files): keep office previews open across tab switches
xintaofei Oct 14, 2026
4cf8a55
fix(work-task): fail a turn only on the error it ended in
xintaofei Oct 14, 2026
e9c5785
fix(work-task): cap the agent error kept for a failed turn
xintaofei Oct 14, 2026
fbaeb93
fix(work-task): show what a turn reported when it stops on a failure
xintaofei Oct 14, 2026
449b8ba
test(work-task): cover an answer alone clearing a recovered turn error
xintaofei Oct 14, 2026
15a0ab4
feat(files): add a download button to the file preview header
ker2xu Oct 14, 2026
bd30df7
feat(acp): adapt to claude-agent-acp 0.90.0
xintaofei Oct 14, 2026
0381623
fix(delegation): name the provider in the agent-default hint
xintaofei Oct 14, 2026
ae11385
fix(files): download files outside registered folders from the previe…
xintaofei Oct 14, 2026
e8a244d
fix(office): allow cold-start preview servers to become ready
ker2xu Oct 14, 2026
5aa469e
fix(office): leave headroom for slow preview initialization
ker2xu Oct 14, 2026
7603f93
fix(office): count a queued preview start against its own budget
xintaofei Oct 14, 2026
1bafdac
fix(office): kill preview servers still starting when the app quits
xintaofei Oct 14, 2026
c22cc6e
test(office): cover a queued start sharing the watch and a start afte…
xintaofei Oct 14, 2026
70d7fe5
fix(acp): keep a large image read from rendering the rest of the repl…
nnnmdzz Oct 14, 2026
d5250aa
fix(browser): embed Linux tabs in the workspace window via a GTK overlay
bigFish0124 Oct 14, 2026
6495ac1
test(acp): pin the turnCompanion rule for autonomous turns and recove…
xintaofei Oct 14, 2026
4360598
fix(browser): give each Linux surface its own process and keep GTK focus
xintaofei Oct 14, 2026
155fc9f
fix(browser): finish the download a transfer reports, not the oldest …
xintaofei Oct 14, 2026
dfd070c
feat(notifications): flash the taskbar or bounce the Dock when an age…
xintaofei Oct 14, 2026
2550d73
Merge pull request #940 from leehom0123/fix/mobile-file-back
xintaofei Oct 14, 2026
4406bf2
Merge pull request #945 from Frank-zhu2000/fix/538-turn-error-fail
xintaofei Oct 14, 2026
5c511fb
Merge pull request #953 from ker2xu/feat/file-preview-download-button
xintaofei Oct 14, 2026
f61bbc3
Merge pull request #947 from Liang-HZ/fix/delegation-defaults-model-g…
xintaofei Oct 14, 2026
deaf9d1
Merge pull request #954 from ker2xu/fix/office-watch-startup-timeout
xintaofei Oct 14, 2026
913e5f2
Merge pull request #956 from nnnmdzz/fix/image-note-overlay-duplicate
xintaofei Oct 14, 2026
4b5f942
Merge pull request #961 from bigFish0124/fix/linux-embedded-browser
xintaofei Oct 14, 2026
0f993c9
Merge remote-tracking branch 'origin/main'
xintaofei Oct 14, 2026
a1998f3
test(files): arm the office preview's renewal timer before moving the…
xintaofei Oct 14, 2026
001ee72
feat(acp): bump six agent pins and keep saved Antigravity model picks
xintaofei Oct 14, 2026
47970b1
fix: allow switching harnesses during draft startup
ker2xu Oct 14, 2026
3b722dd
fix(acp): name the agent actually connecting in the status-bar row
xintaofei Oct 14, 2026
2329bf1
docs(acp): describe parked requests in the pending-connect contract
xintaofei Oct 14, 2026
b56b41f
fix(canvas): keep a draft card off a connection bound to another agent
xintaofei Oct 14, 2026
f2c8ad2
fix(acp): show a parked connect's failure in the composer banner
xintaofei Oct 14, 2026
7ca5ee6
test(chat): pin the draft agent pickers' lock rule
xintaofei Oct 14, 2026
809efc7
fix(acp): keep config edits off a connection bound to another agent
xintaofei Oct 15, 2026
6cd52fd
test(chat): pin the canvas card's transcript commands like the tab vi…
xintaofei Oct 15, 2026
00fe3cb
docs(readme): retire LQ router and rebrand Fluxion AI as Sidrune AI
xintaofei Oct 15, 2026
b062cbb
feat(acp): bump Kimi Code to 2.2.0 and show prompts as the user sent …
xintaofei Oct 15, 2026
e9806e3
feat(composer): choose which @ mention panel tabs show and in what order
xintaofei Oct 15, 2026
6bf1aed
fix(acp): stop a connection's handshake when it is disconnected
xintaofei Oct 15, 2026
68c13c9
fix(acp): end a connection's terminals when its handshake stops early
xintaofei Oct 15, 2026
8214e7a
fix(acp): end a terminal whose creation is dropped before registering it
xintaofei Oct 15, 2026
ec1e5e0
Merge branch 'main' into fix/harness-switch-while-connecting
xintaofei Oct 15, 2026
fc6bd66
Merge pull request #963 from ker2xu/fix/harness-switch-while-connecting
xintaofei Oct 15, 2026
e2a7d3d
# Release version 0.35.2
xintaofei Oct 15, 2026
92349d5
fix(chat): show each reply's full working time in a tab left open
xintaofei Oct 15, 2026
391f6ab
fix(delegation): keep the broker socket out of the scratch sweep scope
Liang-HZ Oct 15, 2026
d505a07
Merge main into fix/zcode-acp and preserve cancellable ZCode startup
jackie-cqz Oct 15, 2026
7653488
docs(readme): cover the 0.34.0 through 0.35.2 releases
xintaofei Oct 15, 2026
5ac34b6
fix(i18n): translate the remote workspace strings in seven locales
xintaofei Oct 15, 2026
e97268d
fix(remote): say so when a connection search matches nothing
xintaofei Oct 15, 2026
8c305c8
docs(readme): use the app's German name for remote workspaces
xintaofei Oct 15, 2026
dd38d16
test(genui): give the chart test the time its own wait allows
xintaofei Oct 15, 2026
9303918
feat(markdown): draw PlantUML fences as diagrams
xintaofei Oct 15, 2026
96ba53f
chore(deps): upgrade Tauri to 2.12.4 and harden the update paths
xintaofei Oct 15, 2026
5cce9bf
fix(chat): list Antigravity's skills in its slash menu
xintaofei Oct 15, 2026
b65cfd1
fix(delegation): treat every codeg scratch root as the socket's sweep…
xintaofei Oct 15, 2026
a3147f8
fix(acp): never sweep the launch dir this process uses as its temp dir
xintaofei Oct 15, 2026
fc20062
fix(delegation): see through aliases when scoping the broker socket
xintaofei Oct 15, 2026
dbe2019
test(acp): probe a pid no process can hold in the sweep tests
xintaofei Oct 15, 2026
8ad262a
fix(kiro): rewrite an approval card only from the built-in's own argu…
xintaofei Sep 30, 2026
7b45d5e
fix(kiro): replay saved reasoning after a model restore, and edit sel…
xintaofei Sep 30, 2026
fae6ed1
fix(kiro): keep MCP entries codeg cannot represent when removing a se…
xintaofei Sep 30, 2026
14684e9
fix(acp): treat Kiro's pending registry id as a built-in alias
xintaofei Sep 30, 2026
5db7d6b
fix(kiro): let a web upgrade run as long as the backend allows
xintaofei Sep 30, 2026
96eeb71
fix(kiro): keep the settings page's env draft and install state truthful
xintaofei Sep 30, 2026
85525b6
fix(kiro): keep Kiro's own MCP settings for fields a save left unchanged
xintaofei Sep 30, 2026
44fb673
fix(kiro): judge untouched MCP fields against the spec the editor loaded
xintaofei Sep 30, 2026
33606ab
fix(kiro): fall back to the scanned spec when a save sends no baseline
xintaofei Sep 30, 2026
e4fadce
Merge remote-tracking branch 'origin/main' into task/360
xintaofei Oct 15, 2026
721eae3
fix(kiro): date the built-in migration after main's newest
xintaofei Oct 15, 2026
fe7142e
Merge main and retain ZCode support in translated README updates
jackie-cqz Oct 15, 2026
d9ef448
fix(kiro): carry delegation defaults and tags into the built-in
xintaofei Oct 15, 2026
30b23b7
fix(kiro): read history from the KIRO_HOME the agent's settings set
xintaofei Oct 15, 2026
3d0afbf
fix(kiro): record Kiro's own selector picks for the options probe
xintaofei Oct 15, 2026
2c0e5a7
fix(kiro): keep prompts named like a hidden built-in out of the slash…
xintaofei Oct 15, 2026
7da7ef2
feat(tasks): let a task that needs you be handled later
xintaofei Oct 15, 2026
d1618bb
docs(delegation): retire the stale 72-byte per-session TMPDIR figure
xintaofei Oct 15, 2026
a71e06c
fix(zcode): launch on a Node and bridge entry that can run ZCode
xintaofei Oct 16, 2026
2d2d85a
fix(zcode): send a new session's saved mode once
xintaofei Oct 16, 2026
1517ac9
fix(mcp): read ZCode's servers before the scan-only pi source
xintaofei Oct 16, 2026
be8b564
docs(zcode): cover Node discovery, the bridge runtime and its limits
xintaofei Oct 16, 2026
6abcbe1
fix(kiro): keep $-named prompts out of the slash menu
xintaofei Oct 16, 2026
53835d6
fix(kiro): start the built-in from the retired custom agent's compose…
xintaofei Oct 16, 2026
80269fa
feat(acp): adapt to claude-agent-acp 0.91.0
xintaofei Oct 16, 2026
f1d8d47
feat(assistants): add assistants as @-mentionable delegation presets
xintaofei Oct 16, 2026
d08c488
fix(zcode): refuse a relative ZCODE_BIN or ZCODE_NODE
xintaofei Oct 16, 2026
96f2453
Merge branch 'fix/zcode-acp' of https://github.com/jackie-cqz/codeg i…
xintaofei Oct 16, 2026
6c2fffe
Merge pull request #966 from Liang-HZ/fix/broker-socket-sweep-scope
xintaofei Oct 16, 2026
c1a6d64
Merge pull request #851 from keh4l/feat/kiro-builtin-agent
xintaofei Oct 16, 2026
4f22798
Merge branch 'main' into fix/zcode-acp
xintaofei Oct 16, 2026
a9a788e
Merge pull request #941 from jackie-cqz/fix/zcode-acp
xintaofei Oct 16, 2026
366e7f4
Merge remote-tracking branch 'origin/main'
xintaofei Oct 16, 2026
ac56f45
feat(settings): polish the assistants tab and the agent defaults editor
xintaofei Oct 16, 2026
55ed789
feat(acp): bump eight agent pins and adapt to what they change
xintaofei Oct 16, 2026
f795fcb
feat(workspace): move the right sidebar tabs to a draggable vertical …
xintaofei Oct 16, 2026
34df4cb
fix(chat): show the image in an expanded Read card
xintaofei Oct 16, 2026
b260371
fix(deps): patch the packages pnpm audit flags
xintaofei Oct 16, 2026
3392415
style(workspace): give the tab rail the panel body's background
xintaofei Oct 16, 2026
92cfc93
fix(file-tree): keep the selected root row off the title strip
xintaofei Oct 16, 2026
6fcc018
fix(icon): use the official ZCode mark and show it in the README
xintaofei Oct 16, 2026
c8f9213
# Release version 0.36.0
xintaofei Oct 16, 2026
efdce2c
feat(acp): pin claude-agent-acp 0.92.0 and offer its predicted prompt
xintaofei Oct 16, 2026
8408ab5
feat(acp): pin OpenCode 1.19.3, Cursor 2026.10.14-941492e and Qoder 1…
xintaofei Oct 16, 2026
e59fe02
feat(trae): add TRAE CLI as a built-in agent
xintaofei Oct 16, 2026
c824816
feat(computer): run cua-driver 0.36.0
xintaofei Oct 16, 2026
0e84156
feat(aux-panel): add automations, to-dos, issues and pull request tabs
xintaofei Oct 17, 2026
931c4fa
chore(update): note why the macOS relaunch must not be a plain child
xintaofei Oct 17, 2026
a08e1fd
style(aux-panel): mark the Open full page buttons with an outward arrow
xintaofei Oct 17, 2026
1d07ad1
feat(composer): merge the agent settings into one chip and popover
xintaofei Oct 17, 2026
992e5ef
feat(composer): give the automation and task editors the settings chip
xintaofei Oct 17, 2026
3ac3fd7
fix(composer): show the full model list when the settings popover opens
xintaofei Oct 17, 2026
8646ec2
feat(sidebar): add Clone Repository and Open Folder to folder group rows
xintaofei Oct 17, 2026
63f36b0
feat(aux-panel): hide the panel when its selected tab is clicked again
xintaofei Oct 17, 2026
c9e6329
feat(acp): pin claude-agent-acp 0.93.0 and show Claude Code's Remote …
xintaofei Oct 17, 2026
5640117
feat(command-code): add Command Code as a built-in agent
xintaofei Oct 17, 2026
26857e0
fix(chat): show Markdown images from outside the conversation folder
xintaofei Oct 17, 2026
7a66537
feat(acp): pin Cline 3.0.73, CodeBuddy 2.168.2 and Grok 1.0.62
xintaofei Oct 17, 2026
2e657fa
docs: refresh WeChat group QR codes for light and dark themes
xintaofei Oct 17, 2026
e767978
feat(session-details): show the plan, sub-agents and message navigato…
xintaofei Oct 17, 2026
02ba43b
feat(session-details): redesign the side panel's summary, plan and me…
xintaofei Oct 17, 2026
5e53121
feat(sidebar): move the tag filter into View options
xintaofei Oct 17, 2026
f9cd29b
feat(session-details): give the title its own row and lead headers wi…
xintaofei Oct 18, 2026
2795399
feat(delegation): answer a parked sub-agent from its status row
xintaofei Oct 18, 2026
fa63c79
fix(tasks): expand a progress report to its full text, not {"recorded…
xintaofei Oct 18, 2026
08513b5
feat(acp): pin Cursor 2026.10.16-e3cb207 and Antigravity 1.4.1, keep …
xintaofei Oct 18, 2026
2ae6eaf
# Release version 0.37.0
xintaofei Oct 18, 2026
4e73008
feat(cli): add codeg-cli to run agents through Codeg from a shell
xintaofei Oct 18, 2026
ec932f2
test(acp): disconnect the handshake prompt test only after its turn ends
xintaofei Oct 18, 2026
c3f73bd
fix(web): bring browsers onto the server's release, show local images…
xintaofei Oct 18, 2026
7df15f8
fix(cli): codeg-cli runs skip Claude Code's predicted next prompt
xintaofei Oct 18, 2026
8879c85
fix(cli): status names a refused runtime access_denied, as its JSON does
xintaofei Oct 18, 2026
7756455
fix(update): single Dock icon after macOS restarts, no WMI hang in Wi…
xintaofei Oct 18, 2026
950659f
fix(markdown): one border around tables and code blocks, syntax colou…
xintaofei Oct 18, 2026
2a6d390
# Release version 0.38.0-rc.1
xintaofei Oct 18, 2026
abe909d
docs(cli): the x64 release has an AppImage, and 0.37.0's in-place upd…
xintaofei Oct 18, 2026
3f83b02
# Release version 0.38.0
xintaofei Oct 18, 2026
25cc516
合并最新主线并解决额度监控 PR 冲突
ana52070 Oct 18, 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
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# The bundled ui-render skill is compiled into the binary (`include_str!` in
# src-tauri/src/commands/generative_ui.rs), installed for agents byte for byte,
# and must equal what src/lib/json-render/skill.ts generates, which is LF.
# Windows checkouts convert text to CRLF by default (core.autocrlf), so pin it.
src-tauri/genui/** text eol=lf
259 changes: 229 additions & 30 deletions .github/workflows/release.yml

Large diffs are not rendered by default.

95 changes: 92 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-latest, windows-latest]
mode: [desktop, server]
mode: [desktop, server, cli]
include:
- mode: desktop
# `test-utils` exposes test scaffolding (AppState::new_for_test,
Expand All @@ -86,14 +86,22 @@ jobs:
# need for webkit/appindicator system libs. `--lib` skips
# integration tests for `cargo test`, so `test-utils` is not
# required here.
cargo_args: "--no-default-features --bin codeg-server --lib"
cargo_args: "--no-default-features --features server-bin --bin codeg-server --lib"
# Server clippy intentionally skips `--all-targets`: integration
# tests are already linted in the desktop cells, and pulling
# them in here would force `test-utils` (a test-only feature)
# into the server build matrix. Lint scope here is lib + the
# codeg-server binary, which is exactly the cfg-gated surface
# that this cell exists to verify.
clippy_args: "--no-default-features --bin codeg-server --lib"
clippy_args: "--no-default-features --features server-bin --bin codeg-server --lib"
- mode: cli
# The `codeg-cli` client (`src/cli/`), which only `cli-bin`
# compiles: the server cells leave it out, and the Windows
# desktop cell only builds its tests (`--no-run`), so without
# this cell they would never run on Windows. The runtime side
# (`cli_run`) is in the lib, which the server cells test already.
cargo_args: "--no-default-features --features cli-bin --lib cli::"
clippy_args: "--no-default-features --features cli-bin --bin codeg-cli --lib"
steps:
- uses: actions/checkout@v4

Expand Down Expand Up @@ -160,3 +168,84 @@ jobs:
echo "::error::Web handlers must call commands/*_core, not services directly."
exit 1
fi

install-sh:
# install.sh stops what runs the files it replaces, and nothing else: on
# Linux `cp` onto a running program fails, but the desktop app, other
# users, other directories and containers run a codeg-server or codeg-mcp
# of their own. The test runs the script's stop section against fake
# programs; the installer itself downloads a release and writes to
# /usr/local/bin, so it is not run. /bin/bash: on macOS that is 3.2, what
# `curl … | bash` gets there. Linux runs it once more as root, for
# processes of other mount namespaces.
name: install.sh on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-latest]
steps:
- uses: actions/checkout@v4

- name: install.sh parses
run: /bin/bash -n install.sh

- name: install.sh stops only what runs the files it replaces
env:
CODEG_INSTALL_TEST_STRICT: "1"
run: /bin/bash scripts/test-install-stop.sh install.sh

- name: The same, as root
if: runner.os == 'Linux'
run: sudo CODEG_INSTALL_TEST_STRICT=1 /bin/bash scripts/test-install-stop.sh install.sh

install-ps1:
# Two Windows PowerShell 5.1 traps that PowerShell 7 never hits. First,
# `.\install.ps1` reads a script without a BOM in the ANSI code page,
# where a UTF-8 em-dash ends in a curly quote that closes the string it is
# in — and then the whole script fails to parse (`irm … | iex` decodes
# UTF-8, so it is spared this one). Second, Join-Path takes two paths: a
# third fails when its line runs, however the script was loaded — the
# README's `irm … | iex` included.
name: install.ps1 in Windows PowerShell 5.1
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Check install.ps1 as Windows PowerShell 5.1 reads and runs it
shell: powershell
run: |
$bytes = [System.IO.File]::ReadAllBytes((Join-Path $PWD "install.ps1"))
if ($bytes.Length -ge 3 -and $bytes[0] -eq 0xEF -and $bytes[1] -eq 0xBB -and $bytes[2] -eq 0xBF) {
$text = [System.Text.Encoding]::UTF8.GetString($bytes, 3, $bytes.Length - 3)
} else {
$text = [System.Text.Encoding]::Default.GetString($bytes)
}
$tokens = $null
$errors = $null
$ast = [System.Management.Automation.Language.Parser]::ParseInput($text, [ref]$tokens, [ref]$errors)
if ($errors) {
foreach ($e in $errors) {
Write-Host "::error file=install.ps1,line=$($e.Extent.StartLineNumber)::$($e.Message)"
}
exit 1
}
# Windows PowerShell 5.1's Join-Path takes two paths (it has no
# -AdditionalChildPath): a third fails when the line runs, not when
# the script parses.
$bad = $false
$calls = $ast.FindAll({
param($node)
$node -is [System.Management.Automation.Language.CommandAst] -and
$node.GetCommandName() -eq "Join-Path"
}, $true)
foreach ($call in $calls) {
$paths = @($call.CommandElements | Select-Object -Skip 1 | Where-Object {
$_ -isnot [System.Management.Automation.Language.CommandParameterAst]
})
if ($paths.Count -gt 2) {
Write-Host "::error file=install.ps1,line=$($call.Extent.StartLineNumber)::Join-Path with $($paths.Count) paths fails in Windows PowerShell 5.1"
$bad = $true
}
}
if ($bad) { exit 1 }
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ next-env.d.ts
# Monaco editor local files (copied from node_modules)
public/vs

# PDF.js runtime files: worker, CMaps, standard fonts, wasm decoders, ICC
# profiles (copied from node_modules by postinstall; see src/lib/pdfjs.ts)
public/pdfjs

# Editor directories and files
.vscode/*
!.vscode/extensions.json
Expand Down
16 changes: 9 additions & 7 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ cargo test --features test-utils
cargo clippy --all-targets --features test-utils -- -D warnings

# 服务器模式
cargo check --no-default-features --bin codeg-server
cargo test --no-default-features --bin codeg-server --lib
cargo clippy --no-default-features --bin codeg-server --lib -- -D warnings
cargo check --no-default-features --features server-bin --bin codeg-server
cargo test --no-default-features --features server-bin --bin codeg-server --lib
cargo clippy --no-default-features --features server-bin --bin codeg-server --lib -- -D warnings

# codeg-mcp 协作伴生进程(多智能体委托)
cargo check --no-default-features --bin codeg-mcp
cargo clippy --no-default-features --bin codeg-mcp -- -D warnings
cargo check --no-default-features --features mcp-bin --bin codeg-mcp
cargo clippy --no-default-features --features mcp-bin --bin codeg-mcp -- -D warnings

# 解析器快照评审(输出变化时)
cargo insta review
Expand All @@ -57,8 +57,10 @@ INSTA_UPDATE=auto cargo test --features test-utils # 自动写新 .snap
项目通过 Cargo feature flags 支持三种二进制:

- **`codeg`**(`tauri-runtime`,默认):完整桌面应用,包含 Tauri 窗口管理、系统通知、自动更新等
- **`codeg-server`**(无 feature,`--no-default-features`):独立服务器模式,仅编译 Axum HTTP API + WebSocket
- **`codeg-mcp`**(无 feature):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。
- **`codeg-server`**(`--no-default-features --features server-bin`):独立服务器模式,仅编译 Axum HTTP API + WebSocket
- **`codeg-mcp`**(`--no-default-features --features mcp-bin`):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。

后两个(以及 `codeg-computer-helper` 的 `computer-helper`)各要一个默认不开的 feature:Tauri CLI 会把所有 feature 已开的二进制目标打进桌面安装包,不开就不进包。

### 共享核心

Expand Down
16 changes: 9 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,13 +37,13 @@ cargo test --features test-utils
cargo clippy --all-targets --features test-utils -- -D warnings

# 服务器模式
cargo check --no-default-features --bin codeg-server
cargo test --no-default-features --bin codeg-server --lib
cargo clippy --no-default-features --bin codeg-server --lib -- -D warnings
cargo check --no-default-features --features server-bin --bin codeg-server
cargo test --no-default-features --features server-bin --bin codeg-server --lib
cargo clippy --no-default-features --features server-bin --bin codeg-server --lib -- -D warnings

# codeg-mcp 协作伴生进程(多智能体委托)
cargo check --no-default-features --bin codeg-mcp
cargo clippy --no-default-features --bin codeg-mcp -- -D warnings
cargo check --no-default-features --features mcp-bin --bin codeg-mcp
cargo clippy --no-default-features --features mcp-bin --bin codeg-mcp -- -D warnings

# 解析器快照评审(输出变化时)
cargo insta review
Expand All @@ -57,8 +57,10 @@ INSTA_UPDATE=auto cargo test --features test-utils # 自动写新 .snap
项目通过 Cargo feature flags 支持三种二进制:

- **`codeg`**(`tauri-runtime`,默认):完整桌面应用,包含 Tauri 窗口管理、系统通知、自动更新等
- **`codeg-server`**(无 feature,`--no-default-features`):独立服务器模式,仅编译 Axum HTTP API + WebSocket
- **`codeg-mcp`**(无 feature):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。
- **`codeg-server`**(`--no-default-features --features server-bin`):独立服务器模式,仅编译 Axum HTTP API + WebSocket
- **`codeg-mcp`**(`--no-default-features --features mcp-bin`):per-launch stdio MCP 伴生进程,被注入到代理 CLI 的 MCP 配置中,向 LLM 暴露**异步**子智能体委托工具。

后两个(以及 `codeg-computer-helper` 的 `computer-helper`)各要一个默认不开的 feature:Tauri CLI 会把所有 feature 已开的二进制目标打进桌面安装包,不开就不进包。

### 共享核心

Expand Down
10 changes: 7 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@ COPY public/ ./public/
COPY next.config.ts tsconfig.json postcss.config.mjs components.json ./
RUN pnpm build

# Stage 2: Build Rust server binary + codeg-mcp companion
# Stage 2: Build Rust server binary + codeg-mcp companion + codeg-cli
FROM rust:slim-bookworm AS backend
RUN apt-get update && apt-get install -y pkg-config libssl-dev && rm -rf /var/lib/apt/lists/*
WORKDIR /app/src-tauri
COPY src-tauri/ ./
# codeg-mcp is the stdio MCP companion the runtime injects per session
# (see acp/delegation/companion.rs). It must ship next to codeg-server so
# `locate_codeg_mcp_binary()` finds it via the exe-sibling lookup.
RUN cargo build --release --bin codeg-server --no-default-features \
&& cargo build --release --bin codeg-mcp --no-default-features
RUN cargo build --release --bin codeg-server --no-default-features --features server-bin \
&& cargo build --release --bin codeg-mcp --no-default-features --features mcp-bin \
&& cargo build --release --bin codeg-cli --no-default-features --features cli-bin

# Stage 3: Runtime
FROM node:24-bookworm-slim
Expand All @@ -42,6 +43,9 @@ RUN apt-get update && apt-get install -y \

COPY --from=backend /app/src-tauri/target/release/codeg-server /usr/local/bin/codeg-server
COPY --from=backend /app/src-tauri/target/release/codeg-mcp /usr/local/bin/codeg-mcp
# codeg-cli: `docker exec <container> codeg-cli run …` finds this server through
# its discovery file under CODEG_DATA_DIR (/data/cli).
COPY --from=backend /app/src-tauri/target/release/codeg-cli /usr/local/bin/codeg-cli
COPY --from=frontend /app/out /app/web

ENV CODEG_STATIC_DIR=/app/web
Expand Down
3 changes: 3 additions & 0 deletions Dockerfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ COPY dist/${TARGETARCH}/codeg-server /usr/local/bin/codeg-server
# (see acp/delegation/companion.rs). It must ship next to codeg-server so
# `locate_codeg_mcp_binary()` finds it via the exe-sibling lookup.
COPY dist/${TARGETARCH}/codeg-mcp /usr/local/bin/codeg-mcp
# codeg-cli: `docker exec <container> codeg-cli run …` finds this server through
# its discovery file under CODEG_DATA_DIR (/data/cli).
COPY dist/${TARGETARCH}/codeg-cli /usr/local/bin/codeg-cli
COPY dist/web /app/web

ENV CODEG_STATIC_DIR=/app/web
Expand Down
Loading