Skip to content

Dev#46

Merged
xlorne merged 35 commits intomainfrom
dev
Feb 28, 2026
Merged

Dev#46
xlorne merged 35 commits intomainfrom
dev

Conversation

@xlorne
Copy link
Contributor

@xlorne xlorne commented Feb 28, 2026

#14

xlorne and others added 30 commits February 26, 2026 20:46
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add frontend TitleSyntaxConverter unit tests
- Add backend NodeTitleScript integration test
- Fix TitleSyntaxConverter.toGroovySyntax to properly handle variable interpolation
- Fix TitleSyntaxConverter.toLabelExpression to parse Groovy expressions
- Add NodeTitleScript.execute(TitleGroovyRequest) overload for testing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Expand TitleGroovyRequest documentation in backend CLAUDE.md with detailed field descriptions
- Frontend CLAUDE.md already has complete Node Title Configuration section
- Mark title-expression-ui design doc as implemented

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add userModifiedModeRef to prevent useEffect from overriding user mode changes
- Detect legacy default script format and treat as normal mode
- Fix flickering issue when clicking reset button

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite toLabelExpression to use placeholder-based approach:
- Replace all expressions with placeholders first
- Remove string concatenation and quotes
- Restore placeholders as ${label}

This handles cases like: expression + "text" + expression2

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…trategy

- Remove local Form component that was causing conflicts
- Use onChangeRef to save Field's onChange callback
- Call onChange when modal confirms to update editor state
- Use displayScript state to sync with editor value
- Remove unnecessary Form wrapper

This fixes:
1. Display not updating after modal save
2. Data lost when switching between nodes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix toGroovySyntax to generate complete function format: def run(request){// @title\nreturn ...}
- Fix toLabelExpression to parse new function wrapper format
- Fix isAdvancedMode to correctly identify new script format with // @title and def run() wrapper
- Simplify node-title component to avoid render loop issues

The backend expects the full Groovy function format, not just the return statement.
This fix ensures the title script is correctly saved and loaded from backend.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Popover mode for variable picker with cursor position insertion
- Change // @title to // @CUSTOM_SCRIPT for advanced mode identification
- Add support for switching back from advanced to normal mode
- Add reset button at bottom of config modal
- Fix variable sorting to put form fields at the end
- Fix Groovy syntax converter for consecutive variables
- Add form fields support in node title strategy
- Fix advanced mode display to show "(自定义配置)" instead of raw code

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add comprehensive execution steps, safety precautions, and output
requirements for git push operations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reduce CLAUDE.md from 304 lines to ~100 lines, focusing on
high-level overview and key commands while removing detailed
architecture specifics that may change frequently.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Translate CLAUDE.md content to Chinese
- Add development rules: TDD, code style compliance, plan storage format
- Update frontend module structure (flow-core, flow-types, flow-pc)
- Reorganize plan files to time+title folder format

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 完善 CLAUDE.md 模块结构,添加前端模块划分规范
- 添加前端文件命名规范(小写字母+下划线)
- 新增 Groovy 脚本处理架构统一优化计划

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 使用 useState 替代 useRef 避免 React 警告
- 通过参数传递 onChange 回调而非在渲染时赋值
- 修复预览区显示"(自定义配置)"而非实际内容的问题

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 新增 BaseGroovyRequest 基类,统一获取 FlowSession 的方式
- 新增 TitleGroovyRequest、ConditionGroovyRequest、OperatorLoadGroovyRequest
- 删除旧的 TitleGroovyRequest 类(从 runtime 目录移至 request 目录)
- 修改脚本节点使用新的 Request 类

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 新增 Groovy 脚本类型定义 (groovy-script.ts)
- 新增脚本服务层 (groovy-syntax-converter, groovy-variable-service)
- 新增脚本适配器 (TitleAdapter 等)
- 新增测试文件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 删除旧的 VariablePicker 组件
- 更新 package.json 依赖配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
xlorne and others added 5 commits February 28, 2026 18:00
- 新增前端导入规范:使用 @/ 路径别名
- 新增面向对象开发规范:Service/工具类使用 class 定义

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 调整导入规范:同目录使用 ./ 相对路径,其他模块使用 @/ 别名
- 调整面向对象规范:Hooks 使用函数式,简单工具函数可用函数式

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 移除重复的 services 和 utils 目录,统一使用 script/service
- 合并 TitleConfigModal 到 node-title-config-modal
- 将变量选择器样式从 less 迁移到 scss
- 添加样式规范到 CLAUDE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@xlorne xlorne merged commit 177d6b1 into main Feb 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant