Skip to content

Dev#924

Open
JegernOUTT wants to merge 182 commits intomainfrom
dev
Open

Dev#924
JegernOUTT wants to merge 182 commits intomainfrom
dev

Conversation

@JegernOUTT
Copy link
Copy Markdown
Member

No description provided.

- Implement `/v1/model-catalog` API endpoint for Refact cloud
- Add `startup_refresh_and_sync` trait for providers to fetch live model lists and persist config
- RefactProvider: fetch running models/pricing from catalog, save to `providers.d/refact.yaml`
- ClaudeCode/OpenAICodex: auto-refresh OAuth tokens near expiry, persist to YAML
- Update model configs for new Gemini 3.x models and GPT-5.3-codex
- Switch providers to `ModelSource::Api`, remove static caps fallback logic
- Add YAML config loading for refact provider overrides during registry init
feat(markdown): add Mermaid and SVG diagram rendering with toggle/copy UI

fix(sse): distinguish buffered vs total bytes for accurate flush caps

fix(sse): fix lagged recovery seq monotonicity with re-subscribe-before-snapshot

feat(queued): add full content to QueuedItem for editing workflows

perf(sse): improve stream delta merging with precise pending byte tracking

fix(cef): improve JCEF render process crash recovery and health checks

refactor(chat): add closed_flag atomic for efficient SSE heartbeat checks

style(chat): make queued messages editable with click/keyboard support

chore(deps): add mermaid, dompurify for diagram support
Introduce `%RICH_CONTENT_INSTRUCTIONS%` snippet explaining rich fenced code
blocks and update all default modes to schema v8+ with instructions included.

Add frontend support for:
- `html` blocks → interactive ArtifactBlock with live preview, source toggle,
  error handling, auto-resize, download/open-in-tab
- Pass `isStreaming` prop through Markdown components
- Update ShikiCodeBlock to route special blocks correctly

BREAKING CHANGE: Mode schema versions incremented (7→8, 8→9, etc.)
- Add hierarchical tree view with expand/collapse chevrons in RecentItem
- Support nested rendering with dynamic indentation based on depth
- Improve loading states with initial skeleton placeholders
- Replace emoji icons with Radix UI icons in navbar and open section
- Enhance stats strip with better compact loading and success rate display
- Fix minor CSS layout issues and scroll behavior
- Add hierarchical tree view with expand/collapse chevrons in RecentItem
- Implement nested rendering with dynamic indentation based on depth
- Add Virtuoso virtualization for performant scrolling of large histories
- Enhance StatsStrip with responsive layouts, project pulse, and provider stats
- Add TasksSection for active task monitoring with click-to-open support
- Improve loading states with skeleton placeholders throughout
- Replace emoji icons with Radix UI icons in navbar and action buttons
- Add new chat/task quick actions and DotTrail hover tooltips
- Fix CSS layout issues and scroll behavior across components
- Add hierarchical tree view with expand/collapse chevrons in RecentItem
- Implement nested rendering with dynamic indentation based on depth
- Add Virtuoso virtualization for performant scrolling of large histories
- Enhance StatsStrip with responsive layouts, project pulse, and provider stats
- Add TasksSection for active task monitoring with click-to-open support
- Improve loading states with skeleton placeholders throughout
- Replace emoji icons with Radix UI icons in navbar and action buttons
- Add new chat/task quick actions and DotTrail hover tooltips
- Fix CSS layout issues and scroll behavior across components
- Add hierarchical tree view with expand/collapse chevrons in RecentItem
- Implement nested rendering with dynamic indentation based on depth
- Add Virtuoso virtualization for performant scrolling of large histories
- Enhance StatsStrip with responsive layouts, project pulse, and provider stats
- Add TasksSection for active task monitoring with click-to-open support
- Add ModelsSection showing default model configuration
- Improve loading states with skeleton placeholders throughout
- Replace emoji icons with Radix UI icons in navbar and action buttons
- Add new chat/task quick actions and DotTrail hover tooltips
- Fix CSS layout issues and scroll behavior across components
- Add hierarchical tree view with expand/collapse chevrons in RecentItem
- Implement nested rendering with dynamic indentation based on depth
- Add Virtuoso virtualization for performant scrolling of large histories
- Enhance StatsStrip with responsive layouts, project pulse, and provider stats
- Add TasksSection for active task monitoring with click-to-open support
- Add ModelsSection showing default model configuration
- Improve loading states with skeleton placeholders throughout
- Replace emoji icons with Radix UI icons in navbar and action buttons
- Add new chat/task quick actions and DotTrail hover tooltips
- Fix CSS layout issues and scroll behavior across components
- Filter providers to count only enabled ones in StatsStrip
- Update UI labels from "providers" to "active providers"
- Move TasksSection after CollapsibleSection with divider for better layout flow
- Replace IconButton + Tooltip with styled button showing "New Task" label
- Add hover, focus, and disabled states via CSS
- Remove unused Chevron icons import

The diff shows TasksSection button improvements, not provider counting or reordering.
- Add MiniDonut component for compact circular data visualization
- Replace text-based stats with MiniDonut + list layout in PROJECT PULSE
- Improve TasksSection: remove expand/collapse, show all tasks, simplify header
- Add failed cards and base branch display in task list
- Enhance scrolling with virtualization and thin scrollbar
- Remove unused Chevron icons import
- Update MCP integration to new rmcp SDK (streamable HTTP transport, new param types)
- Replace message_id-based skill compaction with index-based (more reliable after restarts)
- Add SkillActivatedCard UI for skill context display (name, tools, model, body)
- Skip pure activate_skill tool_calls in chat rendering
- Add provider quota monitoring (Claude Code 5h/weekly, OpenAI Codex rate limits)
- Dashboard: collapsible sections + resizable chats/tasks split
- MCP tool responses: truncate to 200KB to prevent context explosion
- Various MCP API updates (GetPromptRequestParams, ReadResourceRequestParams, etc)

Includes extensive tests for skill compaction, auth flows, and MCP handlers.
Replace inefficient shutdown polling loops with direct flag checks at
loop starts and integrate into tokio::select! patterns for proper
stream termination in VecDB, AST indexer, and HTTP streaming endpoints.
Introduce `compress_chat_probe/apply` tools for selective chat history
compression (context files, tool outputs, memories, dedup) and
`handoff_to_mode` for creating specialized child chats.

Add token budget warnings every 6 exchanges when approaching context
limit. Enhance dashboard with setup actions for project skills/agents/
commands/MCPs/subagents. Improve SSE subscription prioritization and
Mermaid diagram zoom/pan.

Fixes #chat-compression #mode-handoff #token-budget
- Return shutdown flag Arc instead of false in MCP reconnect when context unavailable
- Replace `starts_with("http")` with `contains("://")` for robust URL detection
- Add `args_from_env: vec![]` to all InstallRecipe initializations
- Increase Node.js memory limit in GUI build workflow

Fixes incomplete struct initialization and improves URL parsing reliability.
Update version across all components:
- IntelliJ plugin (gradle.properties)
- refact-chat-js (package.json, package-lock.json)
- VSCode extension (package.json + dependency)
- refact-lsp engine (Cargo.toml)

Add update-dependencies.sh script for IntelliJ plugin to automate GUI
build and LSP binary bundling.
Move unix::fs::PermissionsExt import inside #[cfg(unix)] block and add
no-op #[cfg(windows)] implementation since Windows doesn't require
explicit execute permissions.

Also add skipLibCheck to VSCode tsconfig for build compatibility.
… resolution

- Move unix::fs::PermissionsExt import inside #[cfg(unix)] block
- Add no-op #[cfg(windows)] implementation for make_executable
- Use which::which for cross-platform claude binary detection
- Add Windows-specific claude.exe path in claude_code provider
- Update tests with platform-specific .exe extensions and skip case-sensitive test on Windows
- Improve is_local_source with Path::is_absolute check
- Add skipLibCheck to VSCode tsconfig for build compatibility
…sage

- Add 8GB swap space for Linux cross-compilation to handle LTO memory needs
- Limit CARGO_BUILD_JOBS to 2 to reduce peak RAM usage during whisper-rs LTO builds
- Applied to both agent_engine_build.yml and agent_engine_release.yml workflows
Replace `fallocate` with `dd if=/dev/zero` (8GB total) and add cleanup
steps to ensure consistent swap file creation across CI runs.

Applied to both agent_engine_build.yml and agent_engine_release.yml.
Add `skill_md_exists_case_sensitive` helper to properly check for
"SKILL.md" (uppercase) instead of case-insensitive filesystem check.

build(gui): increase Node.js memory limit to 8GB

Prevent build OOM errors during TypeScript compilation and Vite builds
by setting NODE_OPTIONS=--max-old-space-size=8192.
Improve skill deactivation cleanup to preserve activation tool messages
while compacting skill conversation history. Add `activation_tool_call_id`
to `ActiveCommandContext` and `PendingSkillDeactivation` for exact matching.

Enhance OpenAI/Anthropic adapters to use top-level `cache_control`
for OpenRouter Anthropic models (avoids block-level churn).

Simplify UI badges by removing explicit colors (use theme defaults).
Update setup mode YAMLs with refined principles/workflows.
Add comprehensive skill compaction tests.

Includes minor CSS/UX polish (SkillActivatedCard border, MCPOAuth expiry).
Remove linearize.rs module and its usage from chat preparation pipeline.

The linearization logic (merging consecutive user-like messages,
folding tool-appendable content into tool/diff messages) is no longer
needed as the underlying message processing has evolved. This
simplifies the chat preparation flow while preserving cache hits
through other mechanisms.

Includes minor fixes:
- gui: fix coin display logic in UsageCounter
- queue: handle null boost_reasoning in patches
- caps: add Default impl for CodeAssistantCaps
- session: improve skill deactivation compaction
- cache_guard: strict tools array equality for cache invalidation
- other: snapshot param handling, tool sorting, vecdb scope filtering
…ed rendering

Add `render_extra` module with canonical text rendering for context_file,
plain_text, and cd_instruction roles. Update OpenAI, Anthropic, Refact, and
Responses adapters to:

- Fold context into matching tool results by tool_call_id (with fallback)
- Buffer unmatched context + tool images for next user message
- Preserve message ordering without extra user turns
- Support images in tool results (deferred to user content)

Fixes server-executed tool filtering logic.
Introduce MCP lazy mode when >15 MCP tools are available:
- Replace all individual MCP schemas with 2 fixed proxy tools
  - `mcp_tool_search`: regex search MCP tools, returns schema text
  - `mcp_call`: execute any MCP tool by exact name + args
- Inject session hint with MCP tool index (name:description)
- Cache-safe: tool list fixed for entire session lifetime

Update marketplace index to 120 tools. Minor fixes to Mermaid error handling.
…e lazy loading

- Add `match_against_confirm_deny` to `ToolMcpCall` to proxy confirmation checks
  to underlying MCP tools before execution, enabling normal pause/deny flow
- Disable parallel execution for `mcp_call` and add input validation for `args`
- Filter disabled MCP tools from `mcp_search` results
- Enhance MCP lazy loading with `is_integration_mcp_tool` helper to exclude
  proxy builtins (`mcp_call`, `mcp_search`) from filtering logic, making it
  idempotent and cache-safe
- Apply lazy filter consistently in chat tool handling
…olution

- Convert resolve_path_with_workdir to return Result, fail fast on unresolvable paths
- Add expected_preimage validation to write_file to detect concurrent modifications
- Enhance strip_line_number_prefixes with conservative matching (all lines must match)
- Guard empty patterns/old_str and fix find_match_lines advancement
- Support empty-file line ranges (allow 1:1 on 0-line files)
- Add literal replacement mode to regex tool
- Add comprehensive tests for new validation logic
- Update all write_file callsites with expected_preimage where available

gui: implement handoff_to_mode chat switching

Auto-switch to new chat_id from tool messages when active, preserving task context.
Bounded processed handoff tracking prevents memory growth on SSE reconnects.
- Bump schema_version across all default modes (7→8, 8→9, 10→11, 11→12, 12→13)
- Normalize legacy modes in chat queue (NO_TOOLS→explore, TASK_AGENT→task_agent, EXPLORE→explore)
- Add canonicalize_mode_for_stats() for consistent stats reporting
- Update task agent spawning to use "task_agent" canonical id
- Enhance git shadow cleanup: prune old refact-* branches + git gc --auto
- Improve subchat param normalization for model context limits
- UI: task card badges/titles, LSP usage timeout, sticky usage counters
- Expand setup mode prompts with detailed workflows and tool guides
feat(chat): improve JCEF browser health monitoring

- Add constants for timeouts (10s unresponsive, 5s healthy window)
- Extract `isJcefRendererUnresponsive()` and `hasRecentJcefPong()` utilities
- Reduce health check interval from 30s to 10s
- Simplify unresponsive detection logic (pong-only instead of ping+pong)
- Add comprehensive unit tests for edge cases

refactor(notifications): replace invokeLater with AppExecutorUtil
chore(middleware): remove unused forceReloadProjectTreeFiles listener
…ility

refactor: format long method chain calls across multiple lines for better readability
- Format long `baseQuery` calls with try/finally blocks in providers.ts
- Restructure hook destructuring and replace manual ref updates with useEffect in ProviderUsageIndicator.tsx
- Minor formatting fix in stats reader (to_lowercase)
…heck

Use has_root() instead of is_absolute() to more accurately detect paths
with root components, improving cross-platform path handling.
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