Commit graph

1329 commits

Author SHA1 Message Date
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
Fini de4c2c90b0 fix(ai): toggle image generation settings rows 2026-05-31 16:21:33 +08:00
Fini 9b1a33265e fix(ai): preserve providers across documents 2026-05-31 15:34:13 +08:00
Kayshen-X 44e88c2c3a fix(agent): refine provider and acp settings forms 2026-05-31 15:27:47 +08:00
Kayshen-X ea7a10a922 fix(editor): stop editor shortcuts mutating selection while model picker open
The AI chat model-picker search captured typed chars but Delete (native
+ web), and on web also nudge/duplicate/reorder via input_active, still
reached the canvas and mutated/deleted the selection. Add the
chat_model_picker_open guard to native apply_delete and to web
apply_delete / input_active / apply_escape so the search field owns the
keyboard while open. Regression tests cover delete/backspace/nudge/
duplicate/reorder under an open picker.

Also clears the workspace clippy/fmt gate: allow should_implement_trait
on BuiltinAgentPresetKey::from_str (one call site, matches existing
op-ai-skills convention) and cargo fmt --all.
2026-05-31 14:56:47 +08:00
Kayshen-X 9e553e2e9f fix(agent): support provider drafts and input carets 2026-05-31 14:56:46 +08:00
Fini 5a4cf7552c fix(schema): accept drop-shadow effects 2026-05-31 14:33:53 +08:00
Fini 767d710448 fix(ai): dedupe built-in providers 2026-05-31 14:20:25 +08:00
Fini ec8fdc19ba fix(ai): show completed action placeholder 2026-05-31 13:51:58 +08:00
Fini fdf0147dbf fix(ai): show design checklist details 2026-05-31 13:46:42 +08:00
Fini af706c27ca fix(ai): collapse design checklist 2026-05-31 13:36:31 +08:00
Fini fdddde518a fix(desktop): retry generated image placeholders 2026-05-31 13:12:51 +08:00
Kayshen-X e25e495430 chore(i18n,settings): align locales, resolve stash-pop conflict, clear clippy
- op-i18n: align all 14 non-EN locales to the EN key set across both the
  main and git chrome tables — translate ~1050 untranslated values, add
  missing keys (dialog.dropToOpen, text.weight.extralight/extrabold,
  git.empty.openNotARepo, git.empty.cloneComingSoon), drop the zh_cn
  stray and the orphan git.commit.amendLabel; brand/protocol/placeholder
  tokens kept English. English reference tables unchanged.
- agent-settings: resolve stash-pop conflict (kept draft-API side:
  begin/save/cancel_builtin_agent_draft), remove the now-dead
  empty_builtin_agent_draft_index helper.
- silence clippy::too_many_arguments on the 8-arg paint helpers in
  agent_settings_{acp,builtin,images}.rs (matches existing convention).
2026-05-31 13:02:38 +08:00
Fini 81d2825d53 fix(desktop): fill rectangle image placeholders 2026-05-31 12:30:00 +08:00
Fini 7416077869 fix(settings): reuse empty builtin provider draft 2026-05-31 12:05:35 +08:00
Kayshen-X d2f901380a fix(editor): guard flex children on drag + property-panel and desktop chrome fixes
Canvas / layout:
- Guard flex flow-children from free-drag and add a 4px drag threshold,
  so a first click no longer materializes x/y on a flow child and
  collapses the auto-layout frame.

Property panel:
- Gap/justify radios disable the gap input on space-between/around;
  compact gap rows with vertically-centered input text.
- Padding-mode gear popover hover; the pin is anchor-scoped so it no
  longer leaks into the next selection.
- Font-weight dropdown: full 100-900 numeric options + row hover.
- Stroke hex seeds the displayed swatch colour (not #000000); stroke
  width now persists on commit.

Desktop:
- Traffic-light inset now applies on launch (casement windowDidBecomeKey).
- File-drop overlay; git commit caret blink.

Refactor:
- Split property_dispatch / git_panel / property-panel tests under the
  800-line cap; reorganise panel tests by topic.
2026-05-31 09:18:04 +08:00
Fini d02d34c57d fix(ai): align model picker filtering 2026-05-31 03:23:14 +08:00
Fini 9620d94bc2 fix(ai): align streaming thinking pill 2026-05-31 03:23:13 +08:00
Kayshen-X 86d8e7d352 fix(editor): guard flex children on drag + property-panel and desktop chrome fixes
Canvas / layout:
- Guard flex flow-children from free-drag and add a 4px drag threshold,
  so a first click no longer materializes x/y on a flow child and
  collapses the auto-layout frame.

Property panel:
- Gap/justify radios disable the gap input on space-between/around;
  compact gap rows with vertically-centered input text.
- Padding-mode gear popover hover; the pin is anchor-scoped so it no
  longer leaks into the next selection.
- Font-weight dropdown: full 100-900 numeric options + row hover.
- Stroke hex seeds the displayed swatch colour (not #000000); stroke
  width now persists on commit.

Desktop:
- Traffic-light inset now applies on launch (casement windowDidBecomeKey).
- File-drop overlay; git commit caret blink.

Refactor:
- Split property_dispatch / git_panel / property-panel tests under the
  800-line cap; reorganise panel tests by topic.
2026-05-31 01:04:12 +08:00
Fini 5d99bc3b49 fix(desktop): fit new document viewport 2026-05-31 00:56:57 +08:00