Commit graph

1348 commits

Author SHA1 Message Date
Kayshen-X d738978dff fix(git): match TS metrics — chip/arrow 12px, full-strength colors, merge header
git_panel_ready: branch chip GitBranch 14→12, label 13→12, chevron 10→12;
pull/push arrows 14→12 with full foreground (enabled) / muted-foreground
(disabled) instead of 0.80/0.50 alpha; milestone button font 12→11, gap 5→4,
icon stroke 1.8→2.0. git_panel_menus: merge header now 合并到 {branch}
(git.branch.mergeHeading) not the generic action label, and merge rows use a
ChevronRight glyph (TS branch-row) instead of GitBranch.
2026-05-31 23:51:19 +08:00
Kayshen-X 6ea10cccf9 fix(git): match TS panel chrome — width 420, drop shadow, 6px radius
The panel read flat / cramped vs TS because of container-level gaps, not the
widgets: width 320→420 (TS w-[420px]), add a shadow-md drop shadow (two soft
black rects) so it lifts off the canvas, and corner radius 10→6 (TS
rounded-md). Placement tests still pass (caret anchoring relative to width).
2026-05-31 23:51:18 +08:00
Fini 38156111dd fix(ai): render tool calls as cards 2026-05-31 23:37:34 +08:00
Fini 1c94dcb548 fix(ai): expand write tool progress 2026-05-31 23:10:05 +08:00
Fini 132985a7cd fix(ai): align design block affordance 2026-05-31 23:05:50 +08:00
Fini ebd2f25e2c fix(ai): pass image aspect to desktop search 2026-05-31 22:49:20 +08:00
Fini e5c93bbe8a fix(ai): collapse design json in chat transcript 2026-05-31 22:39:59 +08:00
Fini 048a786fa5 fix(agent): keep pure provider base urls read-only 2026-05-31 22:30:29 +08:00
Kayshen-X 21a92e5740 fix(editor): wire web boolean toolbar 2026-05-31 22:04:19 +08:00
Kayshen-X e5f22c0397 fix(mcp): accept page id operations 2026-05-31 22:04:18 +08:00
Kayshen-X e323ee49ab fix(git): scope Enter swallow to a visible ready Git popover
The Enter guard keyed off branch_picker_open/overflow_open alone, so a
stale flag while the panel was closed / loading / merging / showing a diff
would wrongly eat the global Enter. Add git_ready_popover_open() (panel
open + ready view + a popover flag) and guard on it instead.
2026-05-31 22:04:17 +08:00
Kayshen-X 20a6327546 fix(git): blink the create-branch input caret
The inline 新建分支 name input painted a static '|' and the host never woke
the loop for branch_create_focused, so the caret sat frozen. Blink it on the
shared commit-caret cadence (paint_menu_input), wake next_animation_deadline
for branch_create_focused, and seed/reset commit_caret_anchor_ms on focus +
keypress so it starts solid then blinks.
2026-05-31 22:03:59 +08:00
Kayshen-X 609e7910fa fix(git): swallow Enter while branch-picker / overflow popover is open
In list / merge mode (and the overflow menu) no input is focused, so Enter
skipped every input handler and fell through to the global chat send. Guard
it: while either ready-state popover is open, Enter is consumed (focused
inputs still submit via the handlers above).
2026-05-31 22:00:43 +08:00
Kayshen-X 86168ce866 fix(git): suspend commit/remote/https inputs while branch picker is open
A stale commit/remote/https focus could still route text + Enter to the
hidden input while the branch-picker dropdown was open (firing a hidden
commit / set-remote / login). Gate the three focus helpers on
!branch_picker_open so those inputs are inactive whenever the dropdown is
showing; focus resumes when it closes.
2026-05-31 22:00:42 +08:00
Kayshen-X e3ae058b29 fix(cli): align rust op with live mcp 2026-05-31 22:00:41 +08:00
Fini 2bae44417e fix(agent): parse ACP args like web settings 2026-05-31 21:48:50 +08:00
Fini 60e7d0c3be fix(editor): seed blank frame on new pages 2026-05-31 21:22:11 +08:00
Fini 867ae4b6ea fix(ai): group model picker rows by provider 2026-05-31 21:13:16 +08:00
Kayshen-X ccf0278ee5 fix(git): give branch-picker sub-mode Escape priority over input focus
A stale focused Git input (commit / remote / https) could intercept the
merge-mode Escape, because the sub-mode handler ran after the input
defocus handlers. Move the sub-mode Escape ahead of them so create/merge
always exits to the branch list on the first Escape.
2026-05-31 21:05:30 +08:00
Kayshen-X 2aebc714ae fix(web): handle chat stop hits 2026-05-31 21:05:29 +08:00
Kayshen-X 83fd78f293 fix(editor): complete boolean toolbar ops 2026-05-31 21:05:28 +08:00
Kayshen-X 1a2e97c2bd fix(mcp): make live server startup usable 2026-05-31 21:05:27 +08:00
Kayshen-X a0a1f4da04 fix(git): cover branch picker submode wiring 2026-05-31 21:05:26 +08:00
Kayshen-X 1ef8c45f37 fix(git): wire branch-picker merge-mode cancel + Escape
Merge mode had no exit: Escape was gated on branch_create_focused (false
in merge mode) and the painted 取消 hint was inert. Now:

- Escape is mode-based (branch_picker_open && mode != List → List), so it
  steps both create AND merge sub-modes back to the branch list
- new GitPanelHit::BranchPickerCancel: in merge mode a click anywhere but a
  branch row (incl. the 取消 hint) returns to the list
2026-05-31 21:05:25 +08:00
Kayshen-X c81c36da8e feat(git): wire branch-picker create + merge footer actions
The 新建分支 / 合并分支 footer buttons were visual-only; this makes them
functional (TS GitPanelBranchPicker list/create/merge state machine):

- GitBranchPickerMode { List, Create, Merge } drives the dropdown body
- 新建分支 → inline name input (paint_menu_input) + Create button; typing
  routes to branch_create_draft, Enter/Submit runs CreateBranch
  (create_and_switch_branch); Escape returns to the list
- 合并分支 → merge mode listing non-current branches; a row merges it
- paint↔hit-test lockstep via shared branch_footer_rects / branch_create_rects
  + a backend-free label_px width heuristic
- input_active() now counts the branch-create field so shortcuts don't leak

All labels resolve through op-i18n (createAction/mergeAction/createPlaceholder
/createSubmit/cancel — present in all 15 locales).
2026-05-31 21:05:24 +08:00
Fini 28dab69245 fix(ai): wrap chat quick action cards 2026-05-31 20:57:15 +08:00
Fini c80491b4ed fix(ai): show image profile test action 2026-05-31 20:43:51 +08:00
Kayshen-X e763bff0f0 Improve git panel parity and macOS bundle identity 2026-05-31 20:23:28 +08:00
Kayshen-X ebd855bc92 feat(editor): add boolean actions to selection toolbar 2026-05-31 20:23:27 +08:00
Kayshen-X 4ce5040f3d fix(renderer): sync theme cache from editor ui 2026-05-31 20:23:26 +08:00
Kayshen-X c21e9160fd feat(mcp): enable live desktop server 2026-05-31 20:23:25 +08:00
Fini 1610a01da0 fix(ai): keep image search ready without oauth 2026-05-31 20:03:30 +08:00
Fini a4948736d6 fix(ai): disable chat actions without models 2026-05-31 19:52:08 +08:00
Fini fb6bb18934 fix(ai): align model discovery order 2026-05-31 19:16:29 +08:00
Fini 683074960b fix(ai): avoid duplicate chat progress rows 2026-05-31 19:12:56 +08:00
Fini ba471ef012 fix(ai): clip chat quick action cards 2026-05-31 19:04:10 +08:00
Fini 59a830b5c8 fix(editor): fit starter frame to actual window 2026-05-31 18:49:11 +08:00
Fini bd9459feba fix(ai): stop streaming chat turns 2026-05-31 18:34:37 +08:00
Kayshen-X 2278e8377d fix(ci): silence platform-specific figma import accessor 2026-05-31 18:04:26 +08:00
Fini 762953fdfd fix(ai): uppercase dynamic model group labels 2026-05-31 18:02:43 +08:00
Kayshen-X 43e6bedcfb fix(ci): vendor openssl for macos cross checks 2026-05-31 17:53:17 +08:00
Fini 1ed2cc9171 fix(agent): hide settings card actions until hover 2026-05-31 17:46:23 +08:00
Kayshen-X d0ae18f920 fix(git): normalize staged document paths 2026-05-31 17:43:36 +08:00
Kayshen-X 22305a29d4 fix(ci): address native action failures 2026-05-31 17:30:30 +08:00
Kayshen-X 5974b2f55e fix(git): migrate repo operations to libgit2 2026-05-31 17:04:56 +08:00
Kayshen-X 2ab2105f9c fix(git): blink remote input carets 2026-05-31 17:04:55 +08:00
Kayshen-X 9ca7cace20 fix(agent): preserve provider toggle slots 2026-05-31 17:04:54 +08:00
Kayshen-X 5e719a8bd2 fix(agent): hide unsupported provider formats 2026-05-31 17:04:53 +08:00
Fini c1c0780360 fix(ai): embed auto image search results 2026-05-31 17:03:53 +08:00
Fini 662c99da00 fix(ai): route acp agents from chat picker 2026-05-31 16:50:20 +08:00