Commit Graph

1554 Commits

Author SHA1 Message Date
68f7f2f19b feat: Unify sandbox detection and apply Agent icon override 2026-02-08 02:59:58 +08:00
yyh
d23a94982d Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox 2026-02-08 01:30:21 +08:00
yyh
724700acc4 test(workflow): add regression coverage for artifacts download query reset
Add a component-level regression test for variable inspect artifacts tab:\n- verifies selected file path is used before reset\n- verifies stale selected path is dropped after files are cleared\n- verifies download url query call keeps retry disabled in this component
2026-02-07 22:50:47 +08:00
yyh
2b848d7e93 fix(workflow): prevent redundant sandbox download refetch after reset
Problem:\n- In variable inspect artifacts view, clicking Reset All invalidates sandbox download query keys.\n- If a previously selected file has been removed, the download-url query may still refetch with stale path and return 400.\n- Default query retry amplifies this into repeated failed requests in this scenario.\n\nSolution:\n- Extend sandbox file invalidation with an option to skip download query refetch.\n- Use that option in Reset All flow so download-url queries are marked stale without immediate refetch.\n- Derive selected file path from latest sandbox flat data and disable download-url query when file no longer exists.\n- Disable retry only for artifacts-tab download-url query to avoid repeated 400 retries in this path.\n- Align tree selectedPath with derived selectedFilePath and add hook tests for invalidation behavior.\n\nValidation:\n- pnpm vitest --run service/use-sandbox-file.spec.tsx
2026-02-07 22:43:13 +08:00
yyh
a761ab5cee test(skill): add comprehensive unit tests for file-tree domain 2026-02-07 16:53:58 +08:00
yyh
11d5efc13e refactor(skill): regroup skill body, file tree, and tree hooks 2026-02-07 14:20:01 +08:00
e10996c368 chore: log 20 recent crdt import changes 2026-02-07 10:12:47 +08:00
c5439a3739 fix: tool icon hover 2026-02-06 18:35:01 +08:00
dae2e3b6fb feat: support choose var in tool config in sandbox prompt editor 2026-02-06 17:52:35 +08:00
yyh
3bc574234f feat(web): use terminal-square icon for bash tool calls 2026-02-06 17:34:29 +08:00
81715426d2 chore: plugin in sandbox auto set to true 2026-02-06 17:23:30 +08:00
fef42a05ee chore: max interatons default to 100 2026-02-06 16:13:22 +08:00
yyh
287c1bbc35 fix(skill): use nuqs query state for fileId param 2026-02-06 16:03:32 +08:00
yyh
d3b32645f4 feat(skill-editor): add opacity style to dragged node's original position
Apply the same opacity-50 visual feedback used for cut nodes to nodes
being dragged, so the source position is visually dimmed during drag.
2026-02-06 15:50:04 +08:00
yyh
3bfa495795 refactor(skill-editor): add single/double click and optimize re-renders in search results
Extract SearchResultRow component with useDelayedClick to match file
tree behavior (single-click preview, double-click pin). Subscribe to
derived boolean instead of raw activeTabId to avoid unnecessary
re-renders across all rows.
2026-02-06 15:39:00 +08:00
yyh
dc213ca76c refactor(skill)!: add file node view-state flow and mode-based file data hook
- introduce resolving/ready/missing node view-state to avoid unsupported flicker

- switch useSkillFileData to explicit mode: none/content/download

- add hook tests for view-state transitions and mode query gating

BREAKING CHANGE: useSkillFileData signature changed from (appId, nodeId, isEditable) to (appId, nodeId, mode).
2026-02-06 15:39:00 +08:00
yyh
f1100b82f9 feat(skill-editor): render flat search result list in file tree
Replace the tree-filtered search with a flat list that shows icon + name
on the left and parent path on the right, matching the Figma design.
Clicking a file opens its tab; clicking a folder clears the search and
reveals the folder in the tree.
2026-02-06 15:39:00 +08:00
ad3a5ad473 fix: placehoder pos 2026-02-06 14:59:23 +08:00
c5d1b2a02e fix: fold not exist not same with file 2026-02-06 14:52:03 +08:00
768bfa8a7e chore: hover show tool icon 2026-02-06 14:42:51 +08:00
yyh
871ec3b0ca Merge remote-tracking branch 'origin/main' into feat/support-agent-sandbox
# Conflicts:
#	api/controllers/console/app/app.py
#	web/eslint-suppressions.json
#	web/eslint.config.mjs
2026-02-06 14:40:44 +08:00
a297b06aac fix: fix tool type is miss (#32042) 2026-02-06 14:38:15 +08:00
yyh
44fd58853c fix(skill-editor): remove redundant focus ring and suppress row outline
Remove isFocused ring style from TreeNode since focus-visible already
handles keyboard focus indication. Add rowClassName="outline-none" to
suppress the default browser outline on react-arborist row containers.
2026-02-06 14:31:56 +08:00
yyh
4d1d83b509 test(skill-editor): add tests for TreeEditInput filename stem selection 2026-02-06 14:31:38 +08:00
yyh
f0ba739e44 fix(skill-editor): select only filename stem when renaming files
Use setSelectionRange to exclude the file extension from the initial
selection, matching the behavior of VS Code and Finder.
2026-02-06 14:27:52 +08:00
yyh
799d0c0d0b feat(skill-editor): auto-focus editor on file creation and improve tree-tab sync
Add editorAutoFocusFileId state to automatically focus the editor when
a new text file is created. Improve tree-tab synchronization by adding
syncSignal/isTreeLoading guards, deduplicating rAF calls, and skipping
redundant select/openParents operations when the node is already active.
2026-02-06 14:21:33 +08:00
yyh
92c3656fe5 fix: vertically center empty search state to match Figma design 2026-02-06 14:21:33 +08:00
yyh
ecbcd5803b fix(workflow): avoid nested button in skill file tree menu 2026-02-06 14:21:32 +08:00
yyh
30981dfa7c feat: add empty state for skill template search with no results 2026-02-06 14:21:32 +08:00
3eba0c561e feat: support show deleted file and folds 2026-02-06 14:20:25 +08:00
a0984a779f feat: support file and fold not find 2026-02-06 11:13:07 +08:00
yyh
c9c826d0d2 fix: render pdf preview in skill file panel 2026-02-05 18:12:35 +08:00
yyh
7161c3dd80 fix(web): exclude PDF from text-like file detection
PDF files were incorrectly parsed as text because isTextLikeFile
did not exclude PDF after removing it from BINARY_EXTENSIONS.
2026-02-05 17:45:38 +08:00
yyh
94c354e36d feat(web): add inline PDF preview support for skill file viewer
Enable PDF files to be previewed directly in the file content panel
instead of showing as unsupported files requiring download. Uses the
existing react-pdf-highlighter library with zoom controls and keyboard
shortcuts (up/down arrows).
2026-02-05 17:21:01 +08:00
7446779198 perf: Update agent extraction UI styling and labels 2026-02-05 16:57:20 +08:00
8235ad9e62 fix: Fix variable availability resolution for child nodes in workflow 2026-02-05 16:57:19 +08:00
yyh
b60f9c7703 refactor(web): use FileAdd and FolderAdd icons in skill menus
Replace RiFileAddLine and RiFolderAddLine with custom FileAdd and
FolderAdd icons for new file/folder menu items in skill sidebar.
2026-02-05 16:56:27 +08:00
yyh
9893bf267e feat(web): add import skills menu item with tooltip to skill file tree
Add "Import skills(.zip)" option to root-level context menu and sidebar
add menu with a question mark tooltip showing usage hint. Update menu
item labels and icons for consistency with design.
2026-02-05 16:56:27 +08:00
6913d5b88c chore: fold support preivew 2026-02-05 16:42:18 +08:00
9e08f5827b fix: can editor in disabled skill editor 2026-02-05 16:26:19 +08:00
befefb04b4 chore: open in editor tooltip 2026-02-05 16:26:18 +08:00
yyh
3c214f762a chore: update skills 2026-02-05 16:05:36 +08:00
ce3d2b581b feat: support open file in new tab 2026-02-05 16:04:06 +08:00
882ad92c24 feat: can show file preview 2026-02-05 15:44:10 +08:00
yyh
eb87512122 fix: scope Reset All button visibility to current tab's data
Show the button only when the active tab has data, preventing
the empty-list-with-button scenario on the Variables tab when
only artifacts exist.
2026-02-05 11:43:54 +08:00
yyh
aad15a0777 fix: return invalidate promises and parallelize invalidations 2026-02-05 11:42:59 +08:00
yyh
740fafc926 feat: show Reset All button on both variable inspect tabs
- Change Reset All button visibility from Variables-tab-only to both tabs,
  displaying when either variables or artifacts have data
- Invalidate sandbox files cache in deleteAllInspectorVars alongside
  existing conversation/system var invalidations
2026-02-05 11:30:53 +08:00
b2df9ba9d3 fix: expand status display different icon 2026-02-05 10:10:04 +08:00
a2380c4fd3 fix: ensure sub-graph modal syncs immediately when
applying generated code.
2026-02-05 06:07:15 +08:00
52b34b1fdb fix: Handle format for context generate outputs 2026-02-05 06:07:13 +08:00