diff --git a/MERGE_LOG.md b/MERGE_LOG.md deleted file mode 100644 index 42f4207458..0000000000 --- a/MERGE_LOG.md +++ /dev/null @@ -1,120 +0,0 @@ -# Merge Log: sandboxed-agent-rebase ← main - -## Overview - -| Segment | Target Commit | Commits | Description | Status | -|---------|--------------|---------|-------------|--------| -| 1 | `657eeb65` | 50 | Early changes: deps, Switch组件, 基础重构 | ✅ | -| 2 | `9c339239` | 129 | Mid refactors: model_runtime, prompt, storage | ✅ | -| 3 | `92bde350` | 56 | dify_graph 大迁移 | ✅ | -| 4 | `fb41b215` | 165 | Post-backend refactors | ✅ | -| 5 | `main HEAD` | 153 | Final changes | ✅ | - -- **Base commit**: `98466e2d` -- **Branch**: `sandboxed-agent-rebase` -- **Total main commits**: 503 - ---- - -## Segment 1: Early Changes (50 commits → `657eeb65`) ✅ - -### Conflicts: 33 files -- 2 modify/delete (agent runners → keep deletion) -- 10 backend content (memory, segments, file_manager, agent_node, llm_utils, etc.) -- 19 frontend content (Switch defaultValue→value, UnoCSS icons, data-testid) -- 2 lock files (pyproject.toml, uv.lock → regenerated) - -### Post-merge fixes -- Fixed `core.file` → `core.workflow.file` imports (18 files) -- Updated Switch `defaultValue` → `value` in 5 files -- Updated `ACCOUNT_SETTING_TAB.PROVIDER` → `SANDBOX_PROVIDER`/`MODEL_PROVIDER` -- Regenerated eslint-suppressions.json, added `--pass-on-unpruned-suppressions` - -### Test Results: ✅ All passed - ---- - -## Segment 2: Mid Refactors (129 commits → `9c339239`) ✅ - -### Conflicts: 43 files -- 2 modify/delete (agent runners → keep deletion) -- 14 backend content (advanced_chat, prompt, llm node, storage, variable_factory, etc.) -- 22 frontend content (chat components, citation, oauth, account-setting, hitl-input-block) -- 5 lock/config files (pyproject.toml, uv.lock, pnpm-lock, package.json, eslint-suppressions) - -### Post-merge fixes -- Rewrote `post-login-redirect.spec.ts` for new in-memory API -- Added `nodeOutputVars` parameter to hitl-input-block tests -- Updated `UpdateWorkflowNodesMapPayload` usage in tests -- Added `enable_collaboration_mode`/`enable_creators_platform` to SystemFeatures mocks -- Fixed `UPDATE_WORKFLOW_NODES_MAP` import path - -### Test Results: ✅ All passed - ---- - -## Segment 3: dify_graph 大迁移 (56 commits → `92bde350`) ✅ - -### Conflicts: 47 files -- 5 modify/delete (4 agent runners → keep deletion, app-info.tsx → keep ours) -- 26 backend content (dify_graph modules, workflow_entry, queue_entities, etc.) -- 13 frontend content (app-card, list, account-dropdown, contract/router, etc.) -- 3 lock/config files (uv.lock, pnpm-lock, eslint-suppressions) - -### Post-merge fixes (major migration) -- **core.model_runtime → dify_graph.model_runtime**: 20+ files (imports + mock paths) -- **core.workflow.file → dify_graph.file**: 15+ files (imports + mock/patch paths) -- **core.workflow.enums → dify_graph.enums**: skill_service, nested_node_graph_service -- **core.workflow.graph_engine/graph_events/node_events/nodes.base → dify_graph.\***: 10+ files -- Fixed SandboxContext phantom import in dify_graph/context/__init__.py -- Fixed core.app.workflow.node_factory → core.workflow.node_factory -- Fixed toast import paths (useToastContext from toast/context) -- Fixed 15 frontend test files: QueryClientProvider wrapping, i18n key renames (importDSL→importApp), emoji rendering assertions, controlMode default, missing mock exports - -### Test Results: ✅ Backend 6222 passed, Frontend 25031+ passed - ---- - -## Segment 4: Post-backend Refactors (165 commits → `fb41b215`) ✅ - -### Conflicts: 44 files -- 3 modify/delete (commands.py, cot/fc agent runners → keep deletion) -- 16 backend content (enums, base_node_data, graph, llm/node, tool_node, etc.) -- 19 frontend content (avatar, text-generation, block-selector, edge interactions, etc.) -- 6 lock/config files (pyproject.toml, uv.lock, package.json, pnpm-lock, eslint-suppressions) - -### Post-merge fixes -- Updated `BaseNodeData` import: `dify_graph.nodes.base` → `dify_graph.entities.base_node_data` -- Changed `NodeType.COMMAND/FILE_UPLOAD` → `BuiltinNodeTypes.COMMAND/FILE_UPLOAD` -- Fixed `system_oauth_encryption` → `system_encryption` rename in commands/plugin.py -- Removed tests for deleted agent runner modules (4 files) -- Fixed Avatar: default → named import + numeric → string size API in 5 collaboration files -- Added missing skill deps: @monaco-editor/react, react-arborist, @tanstack/react-virtual -- Fixed frontend test mocks: useUserProfile, useLeaderRestoreListener, next/navigation - -### Test Results: ✅ Backend 11608 passed, Frontend skipped (vitest hang issue with forks pool) - ---- - -## Segment 5: Final Changes (153 commits → `main HEAD`) ✅ - -### Conflicts: 83 files -- 10 backend content (app_factory, enums, llm_utils, llm/node, workflow model, etc.) -- 62 frontend content (model-provider pages, workflow nodes, plugins, etc.) -- 11 lock/config files (uv.lock, pnpm-lock, eslint-suppressions, docker, i18n, etc.) - -### Post-merge fixes -- Added `login_manager` mock to 6 controller test fixture files -- Removed duplicate `MemoryConfig` import in llm_utils.py -- Added missing branch deps back to package.json (fflate, loro-crdt, etc.) -- Restored lint-staged `--no-warn-ignored` flag - -### Test Results: ✅ Backend 12234 passed, Frontend skipped - ---- - -## Final Summary - -All 5 segments merged successfully. Total: 553 commits from main integrated. -- **Backend**: 12234 tests passing -- **Frontend**: vitest has a hang issue with forks pool; tests pass individually but full suite hangs diff --git a/run_tests.sh b/run_tests.sh deleted file mode 100755 index 7290d4254e..0000000000 --- a/run_tests.sh +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash -set -e - -ROOT_DIR="$(cd "$(dirname "$0")" && pwd)" -cd "$ROOT_DIR" - -RED='\033[0;31m' -GREEN='\033[0;32m' -YELLOW='\033[1;33m' -NC='\033[0m' - -usage() { - echo "Usage: $0 [backend|frontend|all]" - echo "" - echo " backend - Run backend unit tests (pytest)" - echo " frontend - Run frontend unit tests (vitest)" - echo " all - Run both (default)" - exit 1 -} - -run_backend() { - echo -e "${YELLOW}====== Backend Unit Tests ======${NC}" - echo "Start: $(date '+%H:%M:%S')" - - uv run --project api pytest api/tests/unit_tests/ \ - -q \ - --timeout=30 \ - --tb=short \ - -p no:cacheprovider \ - "$@" - - local exit_code=$? - echo "End: $(date '+%H:%M:%S')" - - if [ $exit_code -eq 0 ]; then - echo -e "${GREEN}✓ Backend tests PASSED${NC}" - else - echo -e "${RED}✗ Backend tests FAILED (exit code: $exit_code)${NC}" - fi - return $exit_code -} - -run_frontend() { - echo -e "${YELLOW}====== Frontend Unit Tests ======${NC}" - echo "Start: $(date '+%H:%M:%S')" - - cd "$ROOT_DIR/web" - pnpm test -- --run "$@" - - local exit_code=$? - cd "$ROOT_DIR" - echo "End: $(date '+%H:%M:%S')" - - if [ $exit_code -eq 0 ]; then - echo -e "${GREEN}✓ Frontend tests PASSED${NC}" - else - echo -e "${RED}✗ Frontend tests FAILED (exit code: $exit_code)${NC}" - fi - return $exit_code -} - -TARGET="${1:-all}" -shift 2>/dev/null || true - -case "$TARGET" in - backend) - run_backend "$@" - ;; - frontend) - run_frontend "$@" - ;; - all) - backend_ok=0 - frontend_ok=0 - - run_backend "$@" || backend_ok=1 - echo "" - run_frontend "$@" || frontend_ok=1 - - echo "" - echo -e "${YELLOW}====== Summary ======${NC}" - [ $backend_ok -eq 0 ] && echo -e " Backend: ${GREEN}PASSED${NC}" || echo -e " Backend: ${RED}FAILED${NC}" - [ $frontend_ok -eq 0 ] && echo -e " Frontend: ${GREEN}PASSED${NC}" || echo -e " Frontend: ${RED}FAILED${NC}" - - [ $backend_ok -eq 0 ] && [ $frontend_ok -eq 0 ] && exit 0 || exit 1 - ;; - *) - usage - ;; -esac