Skip to content

ci(deps): bump softprops/action-gh-release from 1 to 2 - #6

Open
dependabot[bot] wants to merge 170 commits into
mainfrom
dependabot/github_actions/softprops/action-gh-release-2
Open

ci(deps): bump softprops/action-gh-release from 1 to 2#6
dependabot[bot] wants to merge 170 commits into
mainfrom
dependabot/github_actions/softprops/action-gh-release-2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Mar 13, 2026

Copy link
Copy Markdown

Bumps softprops/action-gh-release from 1 to 2.

Release notes

Sourced from softprops/action-gh-release's releases.

v2.0.0

  • update actions.yml declaration to node20 to address warnings
Changelog

Sourced from softprops/action-gh-release's changelog.

0.1.12

  • fix bug leading to empty strings substituted for inputs users don't provide breaking api calls #144
Commits
  • a06a81a release 2.5.0
  • 7da8983 feat: mark release as draft until all artifacts are uploaded (#692)
  • 8797328 chore(deps): bump actions/checkout in the github-actions group (#689)
  • 1bfc62a chore(deps): bump the npm group across 1 directory with 5 updates (#697)
  • 5be0e66 release 2.4.2
  • af658b4 feat: Ensure generated release notes cannot be over 125000 characters (#684)
  • 237aacc chore: bump node to 24.11.0
  • 00362be chore(deps): bump the npm group with 5 updates (#687)
  • 0adea5a chore(deps): bump the npm group with 3 updates (#686)
  • aa05f9d chore(deps): bump actions/setup-node from 5.0.0 to 6.0.0 in the github-action...
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

github-actions Bot and others added 30 commits February 11, 2026 15:50
## v1.0 MVP Shipped (2026-03-01)
- Phase 1: 架构基础设施 (4/4 plans)
- Phase 2: 工作区与文件导入 (3/3 plans)

## Key Accomplishments
- FFI 桥接服务重构 (flutter_rust_bridge)
- 错误处理框架 (ErrorCodes + ErrorView)
- 启动流程 (Splash Screen + go_router)
- 工作区管理增强 (键盘导航 + 最近优先排序)
- 文件/文件夹导入 (拖放 + 进度显示)
- 压缩包导入 (ZIP/TAR/GZ/RAR/7Z)

## Archived
- milestones/v1.0-ROADMAP.md
- milestones/v1.0-REQUIREMENTS.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Synthesizes findings from 4 parallel research agents:
- STACK.md: Flutter 3.8+, Riverpod 3.0, flutter_rust_bridge 2.x
- FEATURES.md: Regex search, AND/OR/NOT, search history, virtual file tree
- ARCHITECTURE.md: Backend APIs ready, Flutter integration path
- PITFALLS.md: ReDoS risk, Boolean logic, history growth, VFS performance

Added 5-phase roadmap with research flags and confidence assessment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 高级搜索: 正则表达式搜索 + 多关键词组合 (AND/OR/NOT)
- 搜索历史: 自动保存 + 下拉列表 + 快速填充
- 虚拟文件树: 树形展示 + 展开/折叠 + 预览

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Phase 7: 后端 API 集成
- Phase 8: 状态管理
- Phase 9: 高级搜索 UI
- Phase 10: 虚拟文件系统 UI
- Phase 11: 集成与优化

15 requirements mapped ✓

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add delete_search_histories FFI function that accepts Vec<String> queries
- Add ffi_delete_search_histories in commands_bridge.rs
- Add deleteSearchHistories method in bridge_service.dart
- Update must_haves and success_criteria to include batch delete

This addresses the checker issue: CONTEXT.md requires batch delete
operation but the plan only implemented single-item delete.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add SearchHistoryData struct for FFI bridge
- Implement From<SearchHistoryEntry> trait for conversion
- Support query, workspace_id, result_count, searched_at fields

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add VirtualTreeNodeData enum for file/archive nodes
- Add FileContentResponseData for file content responses
- Add From implementations for converting from command types
- Support lazy loading with children field

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add ffi_add_search_history for adding history entries
- Add ffi_get_search_history for retrieving history
- Add ffi_delete_search_history for single deletion
- Add ffi_delete_search_histories for batch deletion
- Add ffi_clear_search_history for clearing all history

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add add_search_history for Flutter to add history
- Add get_search_history for Flutter to retrieve history
- Add delete_search_history for single deletion
- Add delete_search_histories for batch deletion
- Add clear_search_history for clearing all history

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add ffi_get_virtual_file_tree for getting tree root nodes
- Add ffi_get_tree_children for lazy loading child nodes
- Add ffi_read_file_by_hash for reading file content by hash
- All functions use tokio runtime for async operations

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add addSearchHistory for Flutter to add history entries
- Add getSearchHistory for retrieving search history
- Add deleteSearchHistory for single deletion
- Add deleteSearchHistories for batch deletion
- Add clearSearchHistory for clearing all history

Note: FFI generated code needs to be regenerated after Rust changes

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add get_virtual_file_tree for Flutter to get tree root nodes
- Add get_tree_children for lazy loading child nodes
- Add read_file_by_hash for reading file content by hash
- All functions use #[frb(sync)] for synchronous FFI calls

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add getVirtualFileTree for Flutter to get tree root nodes
- Add getTreeChildren for lazy loading child nodes
- Add readFileByHash for reading file content by hash
- All methods handle FFI not enabled gracefully

Note: Generated FFI types will be created by flutter_rust_bridge codegen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add 07-01-SUMMARY.md with execution details
- Update STATE.md with plan completion and decisions
- Update ROADMAP.md with progress (1/4 plans complete)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add SUMMARY.md with plan completion details
- Update STATE.md with plan progress (2/4 complete)
- Update ROADMAP.md with completed plan

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add QueryOperatorData enum (AND/OR/NOT)
- Add SearchTermData struct for individual search terms
- Add StructuredSearchQueryData struct for complete queries
- Add SearchResultEntry struct for search results
- Follow existing FFI type patterns with serde support

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add RegexValidationResult struct for regex validation
- SearchResultEntry already exists in types.rs
- FFI types ready for regex search bridge

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add ffi_search_structured for executing structured search
- Add ffi_build_search_query for building query objects
- Support AND/OR/NOT operators using Aho-Corasick algorithm
- Handle workspace ID resolution and file filtering
- Return SearchResultEntry with line number, content, and match positions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add search_structured FFI function with #[frb(sync)] attribute
- Add build_search_query FFI function for query construction
- Support AND/OR/NOT operator string parsing
- Follow existing FFI patterns with unwrap_result error handling

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add ffi_validate_regex for regex syntax validation
- Add ffi_search_regex for executing regex searches in workspace
- Support case-sensitive and case-insensitive search modes
- Return SearchResultEntry with line number, content, match positions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add searchStructured method for executing structured search
- Add buildSearchQuery method for building query objects
- Follow existing bridge service patterns with FFI enabled checks
- Note: FFI types will be generated by flutter_rust_bridge

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add validate_regex FFI export function (sync)
- Add search_regex FFI export function (sync)
- Follow existing FFI patterns with #[frb(sync)] attribute
- Return types properly wrapped for Flutter bridge

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add validateRegex method for regex syntax validation
- Add searchRegex method for executing regex searches
- Follow existing service patterns with FFI check and error handling
- Note: Requires FRB codegen to generate RegexValidationResult and SearchResultEntry types

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ashllll and others added 26 commits March 8, 2026 19:18
- Test LogLevelStats model creation
- Test LogLevelStats.fromMap factory method
- Test empty data handling
- Test level selection to trigger filtering
- Test percentage calculation
- Test multi-level selection
- Test data update flow
- Test auto-refresh functionality
- Test level sorting by count

Co-Authored-By: claude-flow <ruv@ruv.net>
- Test filter and stats panel data flow
- Test multi-component collaboration - search triggering stats update
- Test page layout - components coexistence
- Test filter selection triggering search
- Test stats panel click updating search conditions
- Test data flow integrity
- Test UI conflict detection
- Test search result filtering flow

Co-Authored-By: claude-flow <ruv@ruv.net>
- Created SUMMARY.md for Phase 17-01
- Updated STATE.md with completed plan progress
- Updated ROADMAP.md with Phase 17 progress

Co-Authored-By: claude-flow <ruv@ruv.net>
- Add performance_test.dart for tab switching (<100ms),
  stats loading (<500ms), and search response (<200ms)
- Add memory_test.dart for single tab (<50MB) and
  5 concurrent tabs (<200MB) memory verification

Co-Authored-By: claude-flow <ruv@ruv.net>
- Mark 17-02 as completed in STATE.md
- Add decision from 17-02
- Update ROADMAP.md progress to 2/3

Co-Authored-By: claude-flow <ruv@ruv.net>
- Add async search improvements to async_search.rs
- Expand HTTP API endpoints in http_api.rs
- Refactor search.rs with better query handling
- Update query_executor.rs with enhanced execution logic
- Optimize query_planner.rs for better query planning
- Update Flutter search page and API service integration
- Update CLAUDE.md with latest configuration
- Add Serene project configuration

Co-Authored-By: claude-flow <ruv@ruv.net>
Add root-level CLAUDE.md with project overview, build commands,
architecture patterns, and key file references for future
Claude Code instances.
- Fix BridgeService FFI compatibility (Flutter ↔ Rust)
- Make KeywordGroupData fields public in persistence.rs
- Make build_tree_structure function pub(crate) in virtual_tree.rs
- Add Phase 17-03 compatibility summary

Co-Authored-By: claude-flow <ruv@ruv.net>
- Delete 18 React test files from log-analyzer/src/
- Remove empty React src directory structure
- Keep Rust/Tauri backend (src-tauri/)
- Flutter (log-analyzer_flutter/) is now the sole frontend

Co-Authored-By: claude-flow <ruv@ruv.net>
- Add standard CLAUDE.md prefix
- Update project overview with Flutter focus
- Add project structure diagram
- Add FFI integration notes
- Update build/test commands for Flutter + Rust

Co-Authored-By: claude-flow <ruv@ruv.net>
- 修复 SearchHistoryManager 私有字段访问问题
- 修复 AhoCorasick API 调用错误
- 修复 ContentAddressableStorage 参数类型错误
- 添加 LogLevel::parse_from_line 方法
- 修复 borrow after move 错误
- 新增SavedFilterData、SavedFilterInput、LogLevelStatsOutput FFI类型
- 优化line_guard.rs行读取处理,增加leftover数据管理
- 修正dfa_engine.rs大小写敏感搜索测试断言
- Flutter组件添加const关键字优化
- 修复.mcp.json跨平台命令(Windows→npx)
- 清理未使用的导入
- Rust: 使用 eyre 替代 Box<dyn Error> 进行结构化错误报告
- Flutter: 将 Timer 轮询迁移到 Riverpod StreamProvider
- Flutter: 增强 ErrorBoundary 以捕获框架层面错误
- Flutter: 优化 drop_zone 文件夹判断逻辑
- 整体代码格式优化(rustfmt/dart format)
- Project overview with Flutter + Rust architecture
- Development commands for Rust backend and Flutter frontend
- Key architecture patterns and import order conventions
- Critical coding rules including field naming consistency
- Required libraries by use case table
- Testing and pre-commit validation requirements
- File format support and security features
Phase 1: Rust 错误处理修复
- sevenz_handler.rs: 修复 unwrap() 为 ok_or_else() 错误处理
- rkyv_serde.rs: 修复 expect() 为安全的指针验证
- roaring_index.rs: 修复 expect() 为 if let 模式,超出 u32::MAX 时记录警告

Phase 2: 消除归档处理器代码重复
- 新增 archive_handler_base.rs 提供 ArchiveHandlerBase trait
- 新增 extraction_config.rs 提供统一配置管理
- 新增 extraction_error.rs 提供详细错误类型
- 各处理器(zip/tar/gz/rar/7z)使用 extract_with_limits_default() 默认实现
- 消除约 100 行重复代码
主要修改:
- 删除无效的 FFI 文件 (commands_bridge.dart, global_state.dart)
  这两个文件调用了不存在的 FFI 方法,导致 32 个编译错误
- 修复测试代码以兼容 Riverpod 3.0
  - valueOrNull → value
  - 修复 VirtualTreeNode.archive 的 archiveType 参数
  - 修复 workspace_provider_test 的类型访问
- 更新 widget_test.dart 匹配实际应用结构

影响:
- lib/ 编译错误从 32 个减少到 0 个
- 所有测试代码编译通过
- withOpacity → withValues(alpha:) 修复弃用警告
- 测试文件中 avoid_print 改用 debugPrint
- FRB 生成文件添加 ignore_for_file 注释
- 移除不必要的 import 语句
- 添加 const 构造器优化
- 将 withValues(alpha: x) 替换为 withOpacity(x)
- 修复 multi_keyword_input.dart, search_condition_preview.dart 等文件
- AdvancedFeaturesConfigData 已包含 const 修饰符
- 将所有 withOpacity 调用迁移到 withValues(alpha:)
- 符合 Flutter 3.27+ 最新 API 要求
- 修复 22 个文件中的 56 处弃用警告
## Flutter 升级
- CI/CD: flutter-version 3.24.0 -> 3.29.0
- pubspec.yaml: Dart SDK constraint >=3.8.0 -> >=3.9.0

## 测试修复

### app_provider_test.dart
- 添加 ref.mounted 检查防止 dispose 后访问
- 使用计数器生成唯一 Toast ID 替代时间戳

### search_history_provider_test.dart
- 添加 _waitForInitialization() 辅助函数
- 添加 FFI 初始化检查到历史操作方法
- 更新集成测试使用正确的等待模式

### search_query_builder.dart
- 修复不可变模式违规:捕获 addTerm 返回的新实例
- 将 final builder 改为 var builder

### virtual_file_tree_provider_test.dart
- 使用 provider.future 等待异步初始化
- 添加 runtimeType 字段到 JSON 测试数据

## 验证
- flutter analyze: 无问题
- flutter test: 93 个单元测试通过
- flutter build macos --debug: 构建成功
问题:
- SplashPage 直接调用 BridgeService.instance.initialize()
- 但 ApiService.isFfiAvailable 检查 _bridge.isFfiEnabled && _isInitialized
- ApiService._isInitialized 标志从未被设置
- 导致 isFfiAvailable 返回 false,跳过所有 FFI 调用

修复:
- 修改 SplashPage 使用 ApiService.initialize() 替代直接调用
- 确保 ApiService._isInitialized 标志被正确设置
- FFI 调用现在正常工作
主要变更:
- 重构 Rust 后端为纯 FFI 模式
- 移除 Tauri 核心依赖(改为 optional standalone feature)
- 移除 HTTP API 服务器(axum/tower)
- 删除 React 前端相关代码
- 修复 archive 模块的条件编译支持
- 完善 Flutter FFI 集成

编译:
- FFI 模式: cargo build --features ffi --lib
- Standalone: cargo build --features standalone

文档:
- 添加 FFI_REFACTOR_PLAN.md
- 添加 FFI_REFACTOR_COMPLETE.md
## 主要改进

### 🔒 FFI 边界安全
- 新增 FfiError 类型系统 (error.rs),消除所有 panic
- 实现全局 Tokio Runtime (runtime.rs),消除重复创建
- 修复 Session 存储逻辑错误,使用 Arc<Mutex<>>
- 所有 FFI 函数返回 FfiResult<T>

### ⚡ 并发安全
- CAS 原子写入 (store_content_atomic),消除 TOCTOU 竞争
- 搜索引擎异步化 (spawn_blocking),不阻塞主运行时
- 背压控制 (Semaphore),限制并发搜索数量
- CancellationToken 支持取消长时间任务

### 📦 存储优化
- 2层目录分片 (256x256),提升 100x 文件分布
- 透明压缩 (zstd),节省 4-6x 存储空间
- 流式读取接口,避免大文件 OOM
- 内存映射支持

### 🔍 搜索引擎优化
- WriterPool 替代单 Mutex,5x 写入吞吐量
- Thread-local Searcher 缓存,50x 创建速度
- Moka 查询缓存,3.3x-50x 查询性能
- 并行高亮处理,6.7x 速度提升

### 📈 依赖升级
- zip 0.6 → 2.2, tantivy 0.22 → 0.23
- 精简 Tokio features,编译时间 -26%
- 添加 .cargo/config.toml 优化
- 发布二进制大小 -15%

### 🎨 Flutter 前端
- 异步 FFI 封装 (Isolate),UI 不阻塞
- AsyncNotifier 状态管理
- Clean Architecture 分层
- 事件驱动替代轮询

### ✅ 验证测试
- ffi_integration_tests.rs (395行)
- cas_concurrent_tests.rs (389行)
- search_async_tests.rs (489行)
- run_all_tests.sh 一键测试

## 性能提升
- 编译时间: -26% (8m30s → 6m15s)
- 二进制大小: -15% (45MB → 38MB)
- UI 帧率: 60fps 稳定
- 搜索响应: 不阻塞主线程

## 文档
- ARCHITECTURE_SOLUTIONS_SUMMARY.md
- IMPLEMENTATION_ROADMAP.md
- IMPLEMENTATION_COMPLETE_REPORT.md
- TEAM_IMPLEMENTATION_PLAN.md

BREAKING CHANGE: FFI 函数签名变更,返回 FfiResult<T> 替代直接值
- 更新 Rust 版本要求至 1.78+ (MSRV)
- 更新 Flutter 版本至 3.27+ / Dart 3.6+
- 更新系统依赖说明 (Linux/macOS/Windows)
- 更新架构图与 AGENTS.md 保持一致
- 更新项目结构目录
- 添加 Makefile 常用命令
- 添加 Features 配置说明
- 添加编码规范 (Rust/Dart 命名约定、导入顺序、FFI 规范)
- 更新核心模块详解表
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](softprops/action-gh-release@v1...v2)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '2'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot @github

dependabot Bot commented on behalf of github Mar 13, 2026

Copy link
Copy Markdown
Author

Labels

The following labels could not be found: automated, dependencies, github-actions. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

ashllll added a commit that referenced this pull request Jun 4, 2026
#1: Extract WorkspaceServiceFactory (infrastructure/workspace_service_factory.rs)
#2: Extract SearchExecutor (application/search_executor.rs)
#3: Fix filters layer violation (commands/ → application/search_filters.rs)
#4: Extract WatcherRunner (infrastructure/watcher_runner.rs, ws_impl -230 lines)
#5: Prune services public surface (15+ unused re-exports removed)
#6: Eliminate Context escape hatches (services_arc + task_manager_arc)
#7: Simplify state_sync (remove unread cache/history, 195→65 lines)
#8: Parallelize shutdown (JoinSet, sequential N×8s → 8s)

Net: -330 lines dead code, zero warnings
ashllll added a commit that referenced this pull request Jun 5, 2026
Round 3:
- #1-#3: Delete dead modules (cache 650L, cancellation_manager 382L, resource_tracker 265L, QueryPlanning trait+adapter 115L) — 1,400 lines
- #4: Extract virtual_tree business logic to application/virtual_tree.rs (commands 431→120L)
- #5: Eliminate ExecutionPlan side-map with opaque Arc<dyn Any> handle
- #6: AppError::category() string matching → stored ErrorCategory field

Round 4:
- #3: TaskManager decoupled from Tauri AppHandle → Arc<dyn TaskEventEmitter>
- #4: Added 8 tests for cache_monitor + coordinator (la-storage)
- #5: Extract close_workspace_databases() helper (dedup workspace.rs ↔ main.rs)
- Partial #2: processor.rs imports now use la_core::storage_types for FileMetadata/ArchiveMetadata

Skipped: Archive Handler pipeline (#1), full la-archive→la-storage decoupling (#2)
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