Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
546 commits
Select commit Hold shift + click to select a range
13980fe
fix(taskmonitor): retry atomic snapshot publication on Windows
SivanCola Sep 8, 2026
87bedce
test(serve): close every model-switch recovery fixture
SivanCola Sep 8, 2026
57be6d7
test(workspacelease): select distinct stripes for parallel writes
SivanCola Sep 8, 2026
b2eb4ff
Merge main-v2 read evidence changes into model settings
SivanCola Sep 8, 2026
cfdf873
Merge verified release gate fixes into model settings
SivanCola Sep 8, 2026
c1b00bf
fix(settings): validate snapshot selectors at the runtime boundary
SivanCola Sep 8, 2026
4a96fa4
test(serve): close runtime fixtures before temporary storage cleanup
SivanCola Sep 8, 2026
c4d8ae5
style(serve): normalize spacing after fixture extraction
SivanCola Sep 8, 2026
ae2a461
Merge pull request #9974 from SivanCola/fix/windows-release-ci
SivanCola Sep 8, 2026
bfd4711
Merge completed release gate PR from main-v2
SivanCola Sep 8, 2026
7001d1f
fix(session): validate portable transcript filename components
SivanCola Sep 8, 2026
f7cce84
fix(mcp): retire subprocesses before cancelling their contexts
SivanCola Sep 8, 2026
e0572c8
fix(desktop): isolate metadata reads and prompt history identities
SivanCola Sep 8, 2026
65cce8c
test(workspacelease): select canonical noncolliding parallel fixtures
SivanCola Sep 8, 2026
6c58239
docs: record final native model settings qualification
SivanCola Sep 8, 2026
e9a7074
test(workspacelease): use integer range in stripe fixture
SivanCola Sep 8, 2026
9a2abb2
Merge pull request #9973 from SivanCola/fix/model-settings-runtime-sn…
SivanCola Sep 8, 2026
087ba4e
docs(release): prepare v1.38.3 notes
github-actions[bot] Sep 8, 2026
c7be28c
docs(release): review and ground v1.38.3 notes
SivanCola Sep 8, 2026
284239e
Merge pull request #9977 from esengine/release-notes/v1.38.3
SivanCola Sep 8, 2026
580caee
fix(control): join inbox scans during controller shutdown
SivanCola Sep 8, 2026
37b20ce
test(bot): close process catalogs before fixture cleanup
SivanCola Sep 8, 2026
27a4099
Merge pull request #9978 from SivanCola/fix/inbox-dispatch-shutdown
SivanCola Sep 8, 2026
640fc80
docs(release): prepare v1.38.3 notes
github-actions[bot] Sep 8, 2026
33e7259
docs(release): review refreshed 1.38.3 notes and qualification
SivanCola Sep 8, 2026
fa018e4
Merge pull request #9979 from esengine/release-notes/v1.38.3
SivanCola Sep 8, 2026
00fc205
feat(desktop)!: remove the retired Wails shell and its recovery machi…
SivanCola Sep 9, 2026
acefb89
feat(frontend)!: drop the Wails bridge; tests run on an Electron host…
SivanCola Sep 9, 2026
18c9e50
test(electron): promote the prototype renderer-crash fault cases
SivanCola Sep 9, 2026
62a20c1
ci(desktop): drop the WebKitGTK/WebView2 toolchain and native smoke h…
SivanCola Sep 9, 2026
b696020
test(desktop): record the Electron resource and leak measurements
SivanCola Sep 9, 2026
a998faa
fix(desktop): restore the compact composer default
SivanCola Sep 9, 2026
698ea9a
fix(desktop): close Electron migration ownership and installation gaps
SivanCola Sep 9, 2026
4cf1167
fix(desktop): repair migration CI and shell presentation
SivanCola Sep 9, 2026
aec747b
fix(desktop): enforce rooted file boundaries and stable CI shutdown
SivanCola Sep 9, 2026
88b7649
Merge pull request #9990 from SivanCola/fix/composer-default-height-104
SivanCola Sep 9, 2026
eac0bad
fix(desktop): preserve remote Windows relay path semantics
SivanCola Sep 9, 2026
6fe3290
fix(desktop): defer running effort changes to the next task turn
SivanCola Sep 9, 2026
70dfaa8
fix(desktop): handle tab persistence errors
SivanCola Sep 9, 2026
6c32b05
fix(desktop): close deferred effort selection review gaps
SivanCola Sep 9, 2026
4ff79df
Persist pending effort selections
SivanCola Sep 9, 2026
8c21552
fix(desktop): repair Electron browser action and download races
SivanCola Sep 9, 2026
674ebef
Merge pull request #9984 from SivanCola/fix/running-composer-controls
SivanCola Sep 9, 2026
9dcb027
fix(desktop): set the macOS Electron dock icon
SivanCola Sep 9, 2026
af77f54
Merge main-v2 while preserving Electron desktop migration
SivanCola Sep 9, 2026
4d59e1e
Merge pull request #9988 from SivanCola/feature/electron-desktop-shell
SivanCola Sep 9, 2026
9254c39
chore(deps): bump the go group across 1 directory with 3 updates
dependabot[bot] Sep 9, 2026
238be6e
chore(deps): bump qs from 6.15.3 to 6.16.0 in /desktop
dependabot[bot] Sep 9, 2026
536ed4a
fix(electron): restrict external URL protocols
SivanCola Sep 9, 2026
238e5d8
docs(electron): document external URL protocol boundary
SivanCola Sep 9, 2026
37dae71
fix(desktop): classify legacy Serve HTML answers as a capability reje…
XTLine Sep 9, 2026
7ef3d2d
fix(desktop): admit remote turns against serves without model settings
XTLine Sep 9, 2026
45a455d
Merge pull request #10002 from esengine/dependabot/go_modules/desktop…
SivanCola Sep 9, 2026
dcb39ec
Merge pull request #10003 from esengine/dependabot/npm_and_yarn/deskt…
SivanCola Sep 9, 2026
77b8f51
chore(deps): bump the npm group across 1 directory with 15 updates
dependabot[bot] Sep 9, 2026
9c955c0
chore(deps): bump hono from 4.13.0 to 4.13.5 in /workers/forum
dependabot[bot] Sep 8, 2026
825a5a2
chore(deps-dev): bump vitest from 3.2.7 to 4.1.11 in /workers/forum
dependabot[bot] Sep 8, 2026
621ef5b
fix(deps): restore pnpm overrides dropped from the regenerated lockfile
SivanCola Sep 9, 2026
9477f98
fix(deps): restore pnpm overrides dropped from the regenerated lockfile
SivanCola Sep 9, 2026
1e7720b
fix(deps): regenerate the workspace lockfile for the npm group bump
SivanCola Sep 9, 2026
6e200cc
chore: drop unreachable UI modules, dead locale keys, and migration l…
SivanCola Sep 9, 2026
08cd990
Merge pull request #10005 from SivanCola/fix/electron-external-url
SivanCola Sep 9, 2026
eeb05d5
Merge pull request #9975 from esengine/dependabot/npm_and_yarn/worker…
SivanCola Sep 9, 2026
609556a
Merge pull request #9976 from esengine/dependabot/npm_and_yarn/worker…
SivanCola Sep 9, 2026
dc55db0
chore(deps): bump @vitest/mocker and vitest in /workers/crash-report
dependabot[bot] Sep 9, 2026
a348d16
chore(deps): bump hono from 4.13.0 to 4.13.5 in /workers/accounts
dependabot[bot] Sep 9, 2026
c4add66
Merge pull request #9918 from esengine/dependabot/npm_and_yarn/deskto…
SivanCola Sep 9, 2026
1a270d1
chore: remove unreachable Go code from the kernel and the desktop host
SivanCola Sep 9, 2026
c7171be
fix(deps): restore pnpm overrides dropped from the regenerated lockfile
SivanCola Sep 9, 2026
32ca67c
fix(history): cancel status refresh during catalog shutdown
SivanCola Sep 9, 2026
59927a6
fix(deps): add the missing rolldown binding to the lockfile
SivanCola Sep 9, 2026
0683e05
fix(electron): own app zoom and migrate legacy settings
SivanCola Sep 9, 2026
beba58b
feat: integrate OpenCode Go v10 core with Electron shell
SivanCola Sep 9, 2026
c5e43f4
chore(deps): bump the npm group across 1 directory with 3 updates
dependabot[bot] Sep 9, 2026
5f56170
chore(deps): bump the actions group across 1 directory with 3 updates
dependabot[bot] Sep 9, 2026
3eae2e5
Merge pull request #10010 from esengine/dependabot/npm_and_yarn/worke…
SivanCola Sep 9, 2026
3bd7483
Merge pull request #10009 from esengine/dependabot/npm_and_yarn/worke…
SivanCola Sep 9, 2026
1c0a6ad
Merge pull request #10012 from SivanCola/chore/remove-dead-go-code
SivanCola Sep 9, 2026
200ff62
fix(deps): override sharp to 0.35.4 across worker lockfiles
SivanCola Sep 9, 2026
9267e61
chore(ci): streamline Electron desktop checks
SivanCola Sep 9, 2026
c7da816
docs: describe the Electron shell instead of the retired Wails host
SivanCola Sep 9, 2026
0301653
Merge pull request #10013 from SivanCola/fix/history-catalog-shutdown
SivanCola Sep 9, 2026
88170d9
Merge pull request #10014 from SivanCola/fix/electron-app-zoom
SivanCola Sep 9, 2026
e7e0473
chore: satisfy integration lint gates
SivanCola Sep 9, 2026
2916076
Merge pull request #10011 from SivanCola/chore/electron-ci-prune
SivanCola Sep 9, 2026
84bf5fc
Merge pull request #10017 from SivanCola/fix/sharp-advisory-workers
SivanCola Sep 9, 2026
cdd6901
Merge pull request #8045 from esengine/dependabot/github_actions/acti…
SivanCola Sep 9, 2026
7c6a51e
chore(deps-dev): bump vitest from 3.2.7 to 4.1.11 in /workers/accounts
dependabot[bot] Sep 9, 2026
518ca80
Merge pull request #9798 from esengine/dependabot/npm_and_yarn/site/n…
SivanCola Sep 9, 2026
4219f91
Merge remote-tracking branch 'origin/main-v2' into fix/pr10007-main-v2
SivanCola Sep 9, 2026
3007dd5
Merge pull request #10007 from SivanCola/chore/remove-dead-code
SivanCola Sep 9, 2026
4e0fc3d
Merge pull request #10019 from esengine/dependabot/npm_and_yarn/worke…
SivanCola Sep 9, 2026
2135a5c
fix(deps): restore overrides in the accounts lockfile after #10019
SivanCola Sep 9, 2026
534ed01
test: scope zoom refresh assertions to the mounted settings panel
SivanCola Sep 9, 2026
da87151
fix(desktop): re-probe a replaced connection before admitting legacy …
XTLine Sep 9, 2026
0dd63d1
fix(desktop): report legacy remote targets as not required in setting…
XTLine Sep 9, 2026
f88dac3
Merge pull request #10028 from SivanCola/fix/accounts-vitest-lockfile
SivanCola Sep 9, 2026
063dede
test: seed deterministic persisted display zoom
SivanCola Sep 9, 2026
9252e98
fix(desktop): route stub native zoom through the command table
SivanCola Sep 9, 2026
5b371e4
fix(desktop): fence cached unsupported admissions to the send target
XTLine Sep 9, 2026
8bcc041
fix(desktop): require a recorded verdict before legacy admission and …
XTLine Sep 9, 2026
9494b32
Merge pull request #10032 from SivanCola/fix/desktop-stub-zoom-routing
SivanCola Sep 9, 2026
d011454
test(desktop): move test-only helpers out of the shipped binary
SivanCola Sep 9, 2026
f305462
test: restore native zoom hydration regression coverage
SivanCola Sep 9, 2026
77fdba4
Merge main-v2 and adopt Electron native zoom stub routing
SivanCola Sep 9, 2026
b2820e1
chore(deps): bump the go group across 1 directory with 9 updates
dependabot[bot] Sep 9, 2026
92ffa7f
fix(deps): sync desktop module with the root go group bump
SivanCola Sep 9, 2026
f960cdc
chore(desktop): drop host commands superseded by their tab-scoped var…
SivanCola Sep 9, 2026
e56c508
Merge pull request #10018 from SivanCola/docs/electron-wording
SivanCola Sep 9, 2026
95e8000
Merge pull request #10022 from SivanCola/chore/remove-test-only-helpers
SivanCola Sep 9, 2026
2c76134
Merge pull request #10033 from SivanCola/chore/remove-superseded-host…
SivanCola Sep 9, 2026
d360429
Merge pull request #10016 from esengine/dependabot/go_modules/go-c6a6…
SivanCola Sep 9, 2026
44c92ff
Merge pull request #10015 from SivanCola/feature/opencode-go-v10-elec…
SivanCola Sep 9, 2026
330b0f8
feat(agent): persist stable tool action identity
SivanCola Sep 9, 2026
66f444d
fix(agent): preserve explicit tool lifecycle states
SivanCola Sep 9, 2026
04c6966
feat(agent): persist tool start barrier events
SivanCola Sep 9, 2026
5166a7c
feat(desktop): define tool recovery contract fields
SivanCola Sep 9, 2026
4588919
fix(agent): decouple read coverage from write evidence recovery
SivanCola Sep 9, 2026
8dda399
feat(agent): complete durable tool recovery across desktop and remote
SivanCola Sep 9, 2026
7acbffd
style: format recovery event helpers
SivanCola Sep 9, 2026
418209d
fix(agent): complete read recovery presentation and strategy fallback
SivanCola Sep 9, 2026
4a1da71
Add desktop hardware acceleration setting
SivanCola Sep 9, 2026
29e6533
Fix graphics preference recovery paths
SivanCola Sep 9, 2026
b3e8852
fix(agent): bind and bound default read strategy recovery
SivanCola Sep 9, 2026
3362200
fix(agent): carry orphan and unknown recovery evidence
SivanCola Sep 9, 2026
ca31744
Refine settings layout and group approval preference
SivanCola Sep 9, 2026
00fdaa1
fix(agent): guard strategy state before locking
SivanCola Sep 9, 2026
b5821f3
test(agent): cover multi-read strategy ownership
SivanCola Sep 9, 2026
20895f9
merge: integrate read evidence lifecycle with durable recovery
SivanCola Sep 9, 2026
651f85f
chore: refresh desktop migration inventory after read integration
SivanCola Sep 9, 2026
ff0cde1
Keep graphics status messages out of control column
SivanCola Sep 9, 2026
e4319c2
fix(agent): finalize targeted windows in default read strategy
SivanCola Sep 9, 2026
f098d0f
Merge pull request #10040 from SivanCola/feature/hardware-acceleration
SivanCola Sep 9, 2026
6a204cd
fix(ci): synchronize desktop inventory with current main-v2
SivanCola Sep 9, 2026
77650bd
test(settings): scope experience assertions to their radio group
SivanCola Sep 9, 2026
997c7e0
Merge pull request #10038 from SivanCola/fix/read-evidence-operation-…
SivanCola Sep 9, 2026
2f8dcff
Merge remote-tracking branch 'origin/main-v2' into SivanCola/feature/…
SivanCola Sep 10, 2026
7069604
fix: reconcile durable recovery with latest read guards
SivanCola Sep 10, 2026
8374eea
fix(control): preserve orphan recovery and read status semantics
SivanCola Sep 10, 2026
82a0d36
Merge pull request #10039 from SivanCola/feature/durable-tool-recovery
SivanCola Sep 10, 2026
91fcc27
feat(evidence): make operations host-owned and bound repeat rejections
SivanCola Sep 10, 2026
a34194c
feat(evidence): cite verification by receipt id instead of command text
SivanCola Sep 10, 2026
bb5467d
feat(evidence): issue source tokens so a write names the version it r…
SivanCola Sep 10, 2026
163dcc2
feat(evidence): settle ordinary work automatically, report delivery g…
SivanCola Sep 10, 2026
e30dd7c
docs: describe the operation lifecycle, receipt ids and source tokens
SivanCola Sep 10, 2026
64b82c8
feat(evidence): publish content-free operation lifecycle counters
SivanCola Sep 10, 2026
b4539b6
fix(evidence): bound the offered recovery actions at their own boundary
SivanCola Sep 10, 2026
499f20f
fix(agent): render delivery gap paths slash-canonically
SivanCola Sep 10, 2026
9a89f27
fix(ci): satisfy repolint comment budget
SivanCola Sep 10, 2026
fe32a3e
Merge remote-tracking branch 'origin/main-v2' into HEAD
SivanCola Sep 10, 2026
7009305
chore: refresh desktop inventory
SivanCola Sep 10, 2026
2330104
Merge pull request #10027 from XTLine/fix/remote-legacy-serve-model-s…
SivanCola Sep 10, 2026
c418ee7
feat(desktop): expose GitCreateBranch and working-tree diff totals
SivanCola Sep 9, 2026
ca7ea3d
feat(desktop): port the floating dock launcher and dock tab container
SivanCola Sep 9, 2026
d0afc16
fix(desktop): repair the dock test fixtures after the props cleanup
SivanCola Sep 9, 2026
7a54dc7
fix(desktop): keep the dock tab strip usable by the browser bench
SivanCola Sep 9, 2026
0b98af1
fix(desktop): restore the CSS blocks the dock port dropped
SivanCola Sep 10, 2026
b1a7863
refactor(desktop): remove the classic desktop style
SivanCola Sep 10, 2026
3f27c64
feat(desktop): make the shell bar a full-width row above the workspac…
SivanCola Sep 10, 2026
53513d6
feat(desktop): lead the shell bar with the platform's own window chrome
SivanCola Sep 10, 2026
ebb2d7e
fix(desktop): keep the workspace toggle clickable in the full-width s…
SivanCola Sep 10, 2026
4afcb83
feat(desktop): animate the workspace panel column
SivanCola Sep 10, 2026
4ab79f9
refactor(desktop): drop the layout flag that chose between two naviga…
SivanCola Sep 10, 2026
bef5d7e
fix(desktop): stop the right dock from swallowing and clipping its ow…
SivanCola Sep 10, 2026
c3f7920
refactor(desktop): keep right-dock tabs at their content width
SivanCola Sep 10, 2026
c14dbd5
fix(desktop): retire the classic layout style on the Go side too
SivanCola Sep 10, 2026
22d0799
refactor(desktop): drop the tab-opening ports the navigation owner ne…
SivanCola Sep 10, 2026
9c6f00b
chore(desktop): reconcile the generated contract with the rebased base
SivanCola Sep 10, 2026
4b5e3a7
fix(evidence): bind receipts to stable operations
SivanCola Sep 10, 2026
02423c5
Merge pull request #10049 from SivanCola/SivanCola/fix/operation-rece…
SivanCola Sep 10, 2026
2c56ed1
fix(desktop): isolate dock workspace operations and view state
SivanCola Sep 10, 2026
77746a4
test(desktop): wait for terminal collapse before checking visibility
SivanCola Sep 10, 2026
a69ea84
test(desktop): resolve dock browser cache from the frontend root
SivanCola Sep 10, 2026
bddb9c8
Merge pull request #10041 from SivanCola/feature/right-dock-launcher-…
SivanCola Sep 10, 2026
196dd3b
fix(desktop): correct turn metrics and surface them live above the co…
SivanCola Sep 10, 2026
e789ca4
fix(desktop): shed the run strip's rate whole instead of cutting a re…
SivanCola Sep 10, 2026
6b6b08c
Merge pull request #10059 from SivanCola/fix/turn-metrics-accuracy
SivanCola Sep 10, 2026
c1cec65
feat(provider,config,billing): adapt official DeepSeek to the V4.1 Fl…
SivanCola Sep 10, 2026
9a134e2
test(desktop): narrow the turn-metrics readings before reading their …
SivanCola Sep 10, 2026
e57339c
Merge pull request #10062 from SivanCola/fix/deepseek-v41-flash-image…
SivanCola Sep 10, 2026
d889813
test(boot,config,control,serve): clear the post-1.38.3 Windows and co…
SivanCola Sep 10, 2026
0fc53d3
Merge pull request #10063 from SivanCola/fix/main-v2-windows-and-cove…
SivanCola Sep 10, 2026
0826785
docs(release): prepare v1.38.4 notes
github-actions[bot] Sep 10, 2026
8056f29
docs(release): add the Electron shell migration and OpenCode Go to 1.…
SivanCola Sep 10, 2026
680e00e
Merge pull request #10066 from esengine/release-notes/v1.38.4
SivanCola Sep 10, 2026
a825ae3
fix(release): preserve Apple notarization diagnostics
SivanCola Sep 10, 2026
2dd48ca
fix(desktop): sign the complete Electron macOS bundle (#10072)
SivanCola Sep 10, 2026
727fdf0
ci(desktop): validate macOS signing before release tagging (#10073)
SivanCola Sep 10, 2026
645c156
fix(desktop): defer the main executable until the final app seal (#10…
SivanCola Sep 10, 2026
e9589ba
docs(release): prepare v1.38.5 from the last public release / 准备 v1.3…
github-actions[bot] Sep 10, 2026
5f1d8e9
test(release): confirm interrupted writes before continuation / 修正发布实…
SivanCola Sep 10, 2026
c50c2b3
fix(sidecar): release Windows handles once / 修复 Windows 扩展句柄重复释放 (#10…
SivanCola Sep 10, 2026
95d02e5
fix(ci): isolate Windows test resource ownership / 修复 Windows 测试资源争用与…
SivanCola Sep 10, 2026
5fccca5
fix(desktop): read packaged build identity for startup handshake (#10…
SivanCola Sep 10, 2026
e2145b0
docs(release): 准备 v1.38.6 中英更新日志 (#10090)
github-actions[bot] Sep 10, 2026
dd92f16
fix(release): converge npm uploads before advancing aliases (#10098)
SivanCola Sep 11, 2026
99efb70
fix(desktop): prevent Windows startup console flash / 修复 Windows 启动黑框…
SivanCola Sep 11, 2026
32664af
feat(desktop): add built-in browser control settings / 新增内置浏览器控制设置页 (…
SivanCola Sep 11, 2026
3578550
fix(provider): expose DeepSeek Flash reasoning effort / 修复 DeepSeek F…
SivanCola Sep 11, 2026
0c51e3a
refactor(jobs): group Job's scalar state by lifetime (#9915)
boscocp Sep 11, 2026
c8355ba
fix(agent): bill the turn phases that capability_phases reports / 修复 …
boscocp Sep 11, 2026
5fd5ca1
feat(checkpoints): make rewind retention configurable / 回溯快照保留策略可配置 (…
boscocp Sep 11, 2026
27a45a2
fix(transcript): unify history snapshot and live event projection / 统…
SivanCola Sep 11, 2026
35ed75b
fix(desktop): bound profiling and diagnose memory growth / 限时性能采样并诊断内…
SivanCola Sep 11, 2026
75727f2
fix(desktop): build a session switch from one durable read (#10120)
SivanCola Sep 11, 2026
20c6b86
Fix Windows shell lifecycle recovery / 修复 Windows 壳生命周期恢复 (#10115)
SivanCola Sep 11, 2026
f8758bb
fix(desktop): persist the restore rectangle instead of the maximized …
SivanCola Sep 11, 2026
87be999
fix(config): one definition of an empty model override / 模型覆盖的"空判断"统一…
boscocp Sep 11, 2026
e5a025c
fix(cli): preserve UTF-8 when copying from WSL (#10074)
lengxiaouser Sep 11, 2026
24aa37d
Fix transcript overflow and disclose complete shell commands / 修复聊天横向…
SivanCola Sep 11, 2026
0055038
fix(desktop): isolate Windows taskbar identity from Studio / 隔离 Reaso…
SivanCola Sep 11, 2026
fbc8a8f
fix(desktop): keep the /compact receipt visible outside the process f…
SivanCola Sep 11, 2026
910afcd
docs(release): 准备 v1.38.7 中英更新日志 (#10141)
github-actions[bot] Sep 11, 2026
0c35021
ci(desktop): give the Windows desktop job headroom over its own sprea…
SivanCola Sep 11, 2026
036c7c5
docs(release): 准备 v1.38.7 中英更新日志 (#10151)
github-actions[bot] Sep 11, 2026
b2155a7
fix(desktop): stop transcript no-drag from punching the Electron titl…
SivanCola Sep 11, 2026
31ec09b
test: wait on the asserted postcondition in two Windows-flaky tests (…
SivanCola Sep 12, 2026
765eaab
ci(desktop): run Windows packaging beside the tests instead of after …
SivanCola Sep 12, 2026
710e21b
ci(desktop): move the overhead benchmark off the critical path and sm…
SivanCola Sep 12, 2026
3e6eeb0
fix(desktop): preserve topicbar input clickability in Electron
SivanCola Sep 12, 2026
124c2ca
fix(desktop): narrow chrome selector suffix matching
SivanCola Sep 12, 2026
1cd6aa5
ci: run the Windows Go suite in parallel, auto-cancel superseded runs…
SivanCola Sep 12, 2026
5c73656
Merge pull request #10154 from SivanCola/fix/electron-titlebar-drag-r…
SivanCola Sep 12, 2026
411a92b
ci: skip the code matrix for release-notes-only pushes and drop the W…
SivanCola Sep 12, 2026
981620d
ci: refresh the Go build cache per push, skip the memory soak for unr…
SivanCola Sep 12, 2026
0e5319a
fix(desktop): let the packaged startup smoke survive the handshake wi…
SivanCola Sep 12, 2026
edf5b45
ci: keep the rolling Go cache off Windows and prune it to one per pre…
SivanCola Sep 12, 2026
33f7bf3
fix(desktop): delay the startup hint without flashing fast boots (#10…
SivanCola Sep 12, 2026
7249169
refactor(skill): streamline prompts and load references on demand (#1…
SivanCola Sep 12, 2026
257a929
Fix desktop updates and slim native packages / 修复桌面更新并精简原生安装包 (#10194)
SivanCola Sep 12, 2026
2580db2
Improve desktop model and workspace navigation / 优化桌面端模型与工作区导航 (#10196)
SivanCola Sep 12, 2026
e54fbe1
ci: 精简并分层前端验证 / streamline frontend validation (#10193)
SivanCola Sep 12, 2026
e36ef93
Simplify execution and completion semantics / 精简执行与完成语义 (#10198)
SivanCola Sep 12, 2026
986a6bc
Reduce CI runner overhead / 降低 CI Runner 开销 (#10199)
SivanCola Sep 12, 2026
bf5dede
fix(desktop): publish a world-readable app directory in Linux package…
SivanCola Sep 13, 2026
e361c6c
fix(migrator): find the flat CLI under its portable name / 修复便携包首启找不到…
SivanCola Sep 13, 2026
ff27bdf
fix(desktop): let a directly launched shell find its service beside a…
SivanCola Sep 13, 2026
11c87e5
ci(npm): publish packages with provenance attestations / npm 发布附带 pro…
SivanCola Sep 13, 2026
75bfbfa
fix(installer): retry scanner-locked files during activation and offe…
SivanCola Sep 13, 2026
193e070
docs(desktop): tell pre-Electron clients to install the full package …
SivanCola Sep 13, 2026
104792a
build(brew): emit postflight_steps for the quarantine hook / Homebrew…
SivanCola Sep 13, 2026
4daa815
Refactor chat, permissions, and Windows sandbox around Harness / 以 Ha…
SivanCola Sep 13, 2026
8d2259e
Replace evidence gates with live file observations / 以实时文件观察替换证据门禁 (#…
SivanCola Sep 13, 2026
36852da
refactor: align sessions with DSH ownership / 对齐 DSH 会话所有权与持久化机制 (#10…
SivanCola Sep 13, 2026
708956f
feat(i18n): add Spanish (es-419) locale to the CLI kernel
GuidoMaxier Sep 7, 2026
f2ce18e
feat(desktop): ship the Spanish UI dictionary and wire the es locale
GuidoMaxier Sep 7, 2026
451c9b8
docs: document adding a new locale in CONTRIBUTING.md
GuidoMaxier Sep 7, 2026
ea4cadf
fix(i18n): port upstream catalog keys to the es locales after rebase
GuidoMaxier Sep 7, 2026
9df960c
fix(i18n): finish the es rebase
GuidoMaxier Sep 13, 2026
da3a165
fix(desktop): raise the es locale chunk ceiling after the rebase
GuidoMaxier Sep 13, 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
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
87 changes: 87 additions & 0 deletions .github/CI_PERFORMANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# CI and release execution

[中文](CI_PERFORMANCE.zh-CN.md)

## Desktop PR checks

`scripts/ci-paths.mjs` is the shared path classifier for normal and memory CI.
It distinguishes frontend, Go, generated protocol, Electron, native and
packaging inputs. Explicit documentation such as `desktop/AGENTS.md` skips
build and soak work, while Markdown inside the frontend remains a build input.
Unknown paths and unavailable diffs fail closed. Pull requests use merge-base
diffs; pushes use `before..sha`; normal `main-v2` pushes keep the complete
qualification matrix after the existing release-notes-only exception.

`desktop-prepare` regenerates the desktop host contract (failing on drift) and
produces the required `electron/stable` and `electron/canary` frontend variants
once on Linux. Each artifact carries a versioned manifest with checkout,
workflow attempt, variant, build inputs, toolchain and every `dist` file hash.
Linux, macOS and Windows consumers verify it before compilation or packaging.
Explicit reuse fails on a missing, stale or damaged manifest and never falls
back to a hidden rebuild. Static frontend files are portable; dependencies,
native modules and Electron binaries are not shared. Build-input verification
streams every committed blob through one Git batch process instead of starting
one process per file; the version-one digest remains byte-for-byte compatible.

The protected `lint` job aggregates `lint-code` and, when selected, the
complete `desktop-frontend` result. Motion unit tests remain in that frontend
plan and run once. `desktop-browser-group` runs application/settings/motion and
Transcript as two groups with `max-parallel: 2`; the `desktop-browser` summary
rejects failed, cancelled or unexpected skips. Go-only changes retain protocol
and native validation without launching browser or memory work.

`node desktop/frontend/scripts/run-ci-tests.mjs --list` prints the unit test
plan. It expands the existing dedicated scripts and lifecycle hooks, discovers
new tests, and schedules each TypeScript suite once with its original loader.
Unsupported script syntax and conflicting explicit invocations fail closed.
CI runs two isolated processes at a time; the history performance benchmark
runs alone after them. Local dedicated `pnpm test:*` commands remain available.

## Timing reports

The CI and memory workflow summaries report stage execution without queue time,
workflow wall time, recorded job queue time and the sum of runner execution.
Frontend builds, dependency and browser installation, each browser group and
each memory shard are listed separately. These measurements describe a single
run; comparisons should use the same candidate and report the median and range
of three runs so runner variance is visible. The Windows Desktop Go step keeps
native non-verbose output because Go's JSON mode made Windows spend several
minutes finalizing verbose test-cache output; the central report records its
step execution time from the Actions API without wrapping the test process.

## Memory screening

Protocol v2 still requires three independent processes, each completing
128 full, 128 windowed, 128 safety and 512 mixed round trips, with the same
checkpoints, five heap snapshots, GC, frame settling and screening thresholds.
Only the explicit mock memory-soak URL removes the fixture's artificial
1.5-second hydration latency. Hydration still crosses an asynchronous timer
task. Default browser and native geometry fixtures retain the delayed path.

The pointer rests outside topic rows and the warmed baseline follows a complete
round trip after layout switching, avoiding samples of temporary menu state.
Reports declare the protocol, and aggregation rejects older protocols.
`timings.json` records host-side counts, total time and maximum time for
navigation, frame settling, GC and heap capture/analysis. Short profiling runs
are diagnostic only and cannot pass the complete screening gate. A green gate
still does not prove offline heap-retainer attribution.

## Signed release artifacts

The successful stable SignPath preflight hands its full native matrix to the
desktop publisher. The publisher revalidates authorization, candidate identity,
signing contract and cache/docs guards, then verifies and publishes the same
signed bytes without rebuilding or signing them again. CLI and npm publication
still wait for the entire preflight; no public surface starts early.

Each platform bundle binds file sizes and SHA-256 hashes to candidate/control
SHAs, version, tag, channel, signing fingerprint, run, invocation and producer
attempt. Missing/extra platforms, conflicting identities, symlinks, duplicate
filenames or modified bytes stop publication. These transport hashes supplement
the existing Authenticode/minisign checks; they are not signature verification.

A failed-job retry may reuse earlier successful platforms from the same run
and invocation. A rebuilt platform replaces only its own fully verified bundle.
New workflow runs prepare a new artifact set. Standalone recovery still builds
and validates its own full matrix. pnpm dependencies are cached by lockfile;
signed release artifacts are transported as artifacts, never dependency caches.
71 changes: 71 additions & 0 deletions .github/CI_PERFORMANCE.zh-CN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# CI 与发版执行

[English](CI_PERFORMANCE.md)

## Desktop PR 检查

`scripts/ci-paths.mjs` 是普通 CI 与内存 CI 共用的路径判定器,分别识别前端、
Go、生成协议、Electron、原生平台和打包输入。`desktop/AGENTS.md` 等明确的说明
文档不会启动构建和长测;前端目录中会进入产品的 Markdown 仍属于构建输入。
未知路径或无法获得可靠 diff 时保守失败。PR 使用 merge-base 差异,push 使用
`before..sha`;保留纯 release-notes 例外后,普通 `main-v2` push 仍运行完整验证矩阵。

`desktop-prepare` 重新生成桌面宿主契约(有漂移即失败),并在 Linux 上分别生成一次
`electron/stable` 与 `electron/canary` 前端。每份产物都带版本化 manifest,记录
checkout、workflow attempt、变体、构建输入、工具链以及每个 `dist` 文件的摘要。
Linux、macOS 和 Windows 消费者在编译或打包前校验。显式复用遇到 manifest 缺失、
过期、身份不符或文件损坏会直接失败,不会暗中重建。跨平台只共享静态前端文件,
不共享依赖目录、原生模块或 Electron 二进制。构建输入校验通过一个 Git 批处理进程
读取全部已提交 blob,不再为每个文件单独启动进程;版本 1 摘要保持逐字节兼容。

required `lint` 汇总 `lint-code` 和路径要求执行时的完整 `desktop-frontend` 结果。
动画单测保留在统一前端计划中且只执行一次。`desktop-browser-group` 将应用、设置与动画
合为一组,Transcript 独立为另一组,`max-parallel: 2`;`desktop-browser` 汇总拒绝失败、
取消和意外跳过。仅修改 Go 时继续执行协议和原生验证,不启动浏览器或内存长测。

`node desktop/frontend/scripts/run-ci-tests.mjs --list` 可以查看单测清单。
它展开原有专用脚本和生命周期钩子,自动发现新增测试,并保留每个 TypeScript
测试原有的 loader,每个套件只执行一次。未知命令语法或冲突调用会直接失败。
CI 同时运行两个隔离进程,历史性能基准在它们结束后单独运行。
本地仍可使用原有的 `pnpm test:*` 专用命令。

## 耗时报告

普通 CI 与内存工作流的 Summary 会分别显示不含排队的阶段执行时间、工作流总等待、
已记录的 job 排队时间之和及 runner 执行时长之和。前端构建、依赖与浏览器安装、
各浏览器分组和每个内存 shard 单独列出。单次数据只描述该次运行;对比应针对同一
候选各重复三次,并报告中位数和范围,避免把 runner 波动当作收益。Windows Desktop
Go 步骤保留原生非 verbose 输出,因为 Go JSON 模式会让 Windows 花费数分钟收尾
verbose 测试缓存;统一耗时报告直接从 Actions API 记录该步骤的执行时间,不再包装
测试进程。

## 内存筛查

协议 v2 仍要求三个独立进程,每个完成 128 轮 full、128 轮 windowed、
128 轮 safety 和 512 轮 mixed 往返,保持相同检查点、五份堆快照、GC、
稳定帧等待与判定阈值。只有明确启用 mock 内存 soak 的 URL 会去掉夹具人为
设置的 1.5 秒 hydration 延迟;加载仍经过异步定时器任务。
普通浏览器和原生几何测试继续使用原来的延迟路径。

采样时鼠标停在会话行之外;布局切换后先完成一次会话往返,再记录预热基线,
避免采到菜单的临时状态。报告声明协议版本,汇总拒绝旧协议。
`timings.json` 在测试宿主侧记录导航、稳定帧等待、GC、堆快照与解析的次数、
总耗时和最大耗时。短程 profiling 仅用于诊断,不能通过完整筛查门禁。
筛查通过仍不等于完成离线堆引用归因。

## 签名发版产物

Stable 的 SignPath 预检成功后,将完整原生平台矩阵的产物交给 desktop
publisher。后者重新验证授权、候选身份、签名契约及缓存和文档校验,再校验
并发布同一批签名字节,不重复构建和签名。CLI 与 npm 仍等待完整预检通过,
不会提前开始公开发布。

每个平台的 bundle 将文件大小、SHA-256 与候选及控制流程 SHA、版本、tag、
channel、签名契约指纹、run、调用和生产 attempt 绑定。
平台缺失或多余、身份冲突、符号链接、重复文件名及字节变化都会阻止发布。
这些传输哈希补充既有 Authenticode/minisign 校验,不能代替签名验证。

只重跑失败 job 时,可复用同一 run 和调用中此前成功的平台;重建的平台只
替换自身已重新验证的 bundle。新的 workflow run 重新准备整套产物。
独立恢复发版仍自行构建并验证完整矩阵。pnpm 下载依赖按锁文件缓存;签名
产物通过 artifact 交接,不放入依赖缓存。
49 changes: 49 additions & 0 deletions .github/actions/go-build-cache/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Go build cache
description: >-
Restore the newest Go build and module cache for this runner and module.
setup-go keys its cache on go.sum alone and GitHub never rewrites an existing
key, so that snapshot freezes at the last dependency change and every package
touched since misses. This cache is keyed per run and restored by prefix; a
main-v2 push saves it from one job per OS and module (actions/cache/save with
the outputs below), pull requests only restore. Windows jobs do not use it:
restoring it there measured slower than setup-go's frozen cache.

inputs:
module:
description: Cache namespace, e.g. root, root-race, desktop, desktop-race
required: true

outputs:
key:
description: Exact key for this run's save step
value: ${{ steps.key.outputs.key }}
paths:
description: GOCACHE and GOMODCACHE, one per line
value: ${{ steps.key.outputs.paths }}

runs:
using: composite
steps:
- id: key
shell: bash
run: |
set -euo pipefail
sums="$(git hash-object go.sum desktop/go.sum | git hash-object --stdin)"
base="go-${{ runner.os }}-${{ runner.arch }}-${{ inputs.module }}"
{
echo "key=${base}-${sums:0:16}-${{ github.run_id }}-${{ github.run_attempt }}"
echo "sums=${base}-${sums:0:16}-"
echo "base=${base}-"
echo "paths<<EOF"
go env GOCACHE
go env GOMODCACHE
echo "EOF"
} >> "$GITHUB_OUTPUT"

- uses: actions/cache/restore@v4
with:
path: ${{ steps.key.outputs.paths }}
key: ${{ steps.key.outputs.key }}
restore-keys: |
${{ steps.key.outputs.sums }}
${{ steps.key.outputs.base }}
Loading
Loading