Skip to content

rebase into main from upstream#14

Open
SWangHash wants to merge 107 commits intomainfrom
Swing
Open

rebase into main from upstream#14
SWangHash wants to merge 107 commits intomainfrom
Swing

Conversation

@SWangHash
Copy link
Copy Markdown
Owner

rebase into main from upstream

limityan and others added 30 commits May 8, 2026 11:05
Increase chat content max-width from 900px to 1200px with a new
1400px breakpoint (1000px) for better utilization on high-resolution
displays. Also widen input (700px -> 900px) and empty state
(650px -> 800px) to stay proportional.

Generated with BitFun

Co-Authored-By: BitFun
Unify Chinese terminology by replacing all occurrences of 审查 with 审核
in both Simplified and Traditional Chinese locale files, plus related
model copy strings, README, and component registry examples.

# Conflicts:
#	src/web-ui/src/flow_chat/store/FlowChatStore.ts
…and ask-user questions

Add high-priority attention indicator for sessions waiting for user input while not active. This complements the existing hasUnreadCompletion for finished sessions.

Changes:

* Add needsUserAttention field ('ask_user' | 'tool_confirm') to Session

* Show pulsing dot + attention badge in sidebar for non-active sessions

* Persist needsUserAttention in backend SessionMetadata

* Clear attention state when user switches to session or tool resolves

* Add i18n labels for all three locales

The three session notification states are now treated as peers:

* hasUnreadCompletion (completed/error): weak hint, small dot

* needsUserAttention (ask_user/tool_confirm): strong hint, pulsing dot + badge

* none: no indicator
When a user manually aborts a session and then switches to another session before the DialogTurnCancelled event arrives, the aborted session was incorrectly marked as unread.

Track explicitly user-cancelled session IDs in FlowChatContext and skip the unread-completion mark in handleDialogTurnCancelled for those sessions.

Generated with BitFun

Co-Authored-By: BitFun
- Remove TerminalGroupRenderer; route terminal through TerminalToolCard
- Update Markdown, explore region, typewriter, and task/detail panels
- Add FileOperationToolCard test; adjust compact/generative tool cards
- Update flow-chat locales and related store/event wiring
…NG.md

- Rewrite root AGENTS.md as Table of Contents (Module Index, Global Rules, Architecture, Verification)
- Strip agent-specific content from CONTRIBUTING.md (commands, verification, Tauri conventions)
- Trim sub-module AGENTS.md: desktop, core, web-ui
- Sync all Chinese translations
- Root AGENTS.md: add Fast builds section with 4 commands
- Desktop AGENTS.md: add Fast builds table with usage guidance and release-fast profile explanation
…essage

Include lastActiveAt in session sort priority so that sending a message
moves the session to the top of the workspace session list.

Priority: lastActiveAt > lastFinishedAt > createdAt
Add a `devtools` Cargo feature to the desktop app that enables:
- Native webview DevTools (Ctrl/Cmd+Shift+J)
- Interactive element inspector (Ctrl/Cmd+Shift+I) with hover highlight,
  tooltip, and click-to-capture for computed styles, CSS variables,
  box model, colors, and attributes

The feature is automatically enabled in dev builds and release-fast
profile builds, but never in release profile builds intended for end
users. All debug code is conditionally compiled via `#[cfg]` to ensure
zero overhead in production.

New files:
- src/apps/desktop/src/api/debug_api.rs
- src/web-ui/src/infrastructure/debug/mainWindowInspector.ts
- src/web-ui/src/infrastructure/debug/useDebugInspector.ts

Updated:
- Cargo.toml, package.json, theme.rs, lib.rs, App.tsx, AGENTS.md
…ynamic layout

- Group remediation items by priority (must_fix/should_improve/needs_decision/verification)
- Add per-group select-all toggle with colored headers
- Add hint text explaining read-only default behavior
- Increase overall size for better high-DPI visibility
- Use ResizeObserver to dynamically adjust body padding and prevent content overlap
- Add ungrouped locale key for fallback items

Generated with BitFun

Co-Authored-By: BitFun
…ards and detail panel

- In TaskToolDisplay, show reviewer role name, description, and responsibilities
  instead of the raw prompt for built-in review-team subagents.
- In TaskDetailPanel, add a reviewer context section with role info, falling back
  to the raw prompt only for non-reviewer tasks.
- Add ReviewerContext interface and getReviewerContextBySubagentId() helper in
  reviewTeamService (already committed in previous change).
- Add locale keys: reviewerContextLabel (en/zh-CN/zh-TW).
- Add corresponding SCSS styles for both card and panel views.

Generated with BitFun

Co-Authored-By: BitFun
…Wing#538)

- Add structured error results, transient-error retries, and timing in tool pipeline
- Extend execution engine and round executor for failure/round coordination
- Align file/generative/mermaid/task tools with pipeline behavior
- Improve ai-adapters SSE client robustness
- Separate open full code from card expand; add canOpenFullCode and handleOpenFullCodeClick

- Update diff pill / rail click handling and tool card styles

- Add i18n strings for flow-chat tool card actions
- ShortcutManager and settings: active editor / diff target shortcuts and locales
- Monaco CodeEditor/DiffEditor register with ActiveEditTargetService
- Flow chat: tool card styles, file operation card, Deep Review consent dialog
- Session ordering helper and SessionsSection wiring
- Frontend (PersistenceModule.ts): When saving in-progress turns during app close,
  mark non-active sessions as having unread completion and persist to disk
- Backend (session_manager.rs): When restoring sessions, detect if previous state
  was not Idle (indicating abnormal close/crash) and automatically set
  unread_completion to 'completed'

This dual protection ensures sessions are marked as unread after IDE restart,
whether the close was normal or abnormal (crash, kill, power loss).
When the model stream is interrupted mid-way and recovers partially, the
session now shows a red unread dot instead of green, indicating that
the output is incomplete and user input is needed to continue.

- Add 'interrupted' to unreadCompletion type (red dot, same as 'error')
- Add is-interrupted CSS class with red styling
- Add i18n keys for interrupted state (en-US, zh-CN, zh-TW)
- Backend partial recovery retry logic (in previous commit)

Requires: PR #63fca72d (Rust side) for complete feature.
When a subagent task starts but has no items yet, the
subagent-items-container was still rendered with padding
and background, causing a white/empty area above the
content. Now returns null when items.length === 0.

Generated with BitFun

Co-Authored-By: BitFun
- Replace '__TAURI__' in window check with isTauriRuntime() from
  @/infrastructure/runtime for correct Tauri v2 detection
- Remove enabled: available condition from useShortcut registration;
  shortcuts are always registered but callbacks no-op when not in
  Tauri desktop environment. This avoids race conditions where
  Tauri runtime detection happens after component mount.

Generated with BitFun
Co-Authored-By: BitFun
Re-read getState() after set(); align remediation id and selection assertions with current remediation helpers.
Add --tool-card-header-pad-right and use it for header padding and overlay extents so open-in-panel controls align with the icon rail.
…prompt (GCWing#544)

- Condense and align bundled gstack SKILL.md files for consistency
- Update docx and writing-skills skill docs
- Expand team_mode.md guidance for multi-agent coordination
Use the official agent-client-protocol crate from a new bitfun-acp crate and keep bitfun-cli as the startup host only.

Also move shared AgenticSystem assembly into core and fix UTF-8 cursor handling in the CLI startup workspace input.
…ing#549)

- Only emit OptimizedContent::Reference when the content file still exists on disk

- Build compressed row with empty data for Reference instead of unreachable

- Add async test covering empty-baseline dedup without panic

- Apply rustfmt to touched agentic modules and stream processor test
…ng#550)

Use header icon slot and right padding so nested subagent content lines up
with the header content column.
Add confirmation before replacing chat input, fix overlay/scroll issues, remove minimize button and hint text, add i18n
The buildSessionMetadata function used ?? to fall back to existingMetadata for unreadCompletion and needsUserAttention. When the store cleared these fields (setting them to undefined), undefined ?? existingMetadata.unreadCompletion would restore the old persisted value, preventing the clear from reaching disk. On next app launch, initializeFromDisk would restore the stale value, causing green dots to reappear on old sessions.

Now the in-memory session value is used directly as the source of truth, so clears propagate correctly through JSON.stringify (which omits undefined properties) to the backend.

Generated with BitFun

Co-Authored-By: BitFun
wgqqqqq and others added 29 commits May 8, 2026 11:22
- Add summary rendering in WebSearchCard when results are empty
- Add i18n keys for summary availability in en-US, zh-CN, zh-TW
- Refactor expandable logic to include summary-only state
- Increase default max_rounds from 50 to 200 in ExecutionEngineConfig
- Add max_rounds field to AIConfig (user-configurable)
- Read max_rounds from config in all execution entry points
  (desktop, server, core system)
- Frontend: add 'Continue' button when max_rounds is reached
- Add continueDialogTurn to FlowChatManager
- Update i18n strings for en-US, zh-CN, zh-TW

Generated with BitFun

Co-Authored-By: BitFun
When model passes args like '-- file1 file2' (no leading space before
--), the previous parser failed to find ' -- ' separator and treated
all file paths as a single commit ref, causing 'unknown revision' error.

Add an explicit branch to handle this case by detecting '-- ' prefix
directly.
Replace hardcoded English strings in ContextCompressionDisplay with i18n
keys for en-US, zh-CN, and zh-TW locales. Add missing translations for
trigger types, token stats, savings info, and compression status messages.
Increase Read tool limits to reduce file read round-trips, especially
for models that tend to use small limit values:

- default_max_lines_to_read: 250 -> 2000
- max_line_chars: 300 -> 2000
- max_total_chars: 32_000 -> 50_000

Add anti-fragmentation hint to tool description to discourage models
from making tiny repeated slices (e.g. 30-100 line chunks).

Improve result formatting to always show continuation guidance when
there are more lines to read, not just on truncation.

Generated with BitFun

Co-Authored-By: BitFun
Replace the Tooltip-based error icon in TaskDetailPanel header with a
persistent error banner below the header. The banner displays the full
error message as selectable text, making it copyable and always visible.

- Remove Tooltip import and header-failed icon
- Add error-banner element with AlertCircle icon + error text
- Add SCSS styles with error-themed background and border
- Text supports user-select for easy copying

Generated with BitFun

Co-Authored-By: BitFun
…ntext, and persistent state

- Add clickable remediation links in action bar that scroll to matching issues
- Add issue-to-remediation matching via file/category/title keywords
- Add structured decision context for needs_decision items (question/options)
- Add decision option selection UI with expandable toggle
- Persist action bar across all user actions (fill input, fix, re-review)
- Replace dismiss with fix_completed phase when no more remediation needed
- Add fix_completed success message in action bar
- Compact action bar layout: smaller padding, tighter gaps, reduced max-height
- Replace close (X) button with minimize (-) icon
- Move export actions (copy/open/save markdown) into top-right controls group
- Simplify link hover style from accent color to muted text
- Remove hyperlink effect from verification group items
- Shorten fixAndReview labels to \
…uncation

- Reduce explore region font-size, line-height, and margins for tighter layout

- Reduce task prompt area max-height and gap/padding for compactness

- Remove subagent-compact max-height overflow:hidden that clipped content

- Add SubagentTextBlock component with line-based truncation (50 lines) to reduce DOM nodes for long subagent output

- Fix auto-scroll not reaching bottom with double requestAnimationFrame

- Add streaming content area bottom padding to prevent text obscuring

- Add i18n strings for truncation hint (en-US, zh-CN, zh-TW)
…ete (GCWing#587)

Desktop: import Petdex zip packages into user data, list user packages, delete with path sandboxing (zip crate). Web UI: builtin preset pets under public/agent-companion-pets, SessionConfig picker with import/refresh/delete, AI experience settings for enable flag and selected pet, ChatInput pixel pet reads selection with async settings load.

Also fixes chat rollback restoring the input when the draft was non-empty (UserMessageItem fill-chat-input).
… file UI (GCWing#593)

- Extend core snapshot service, desktop bridge, and SnapshotAPI surface.

- Refresh agent companion pets (capy, hachiware, jiyi, panda-pix) and pet/window services.

- Tweak session file modifications bar, badge, chat pixel pet styling, SSH dialog, theme, and locales.
# Conflicts:
#	src/crates/core/src/service/config/types.rs
#	src/web-ui/src/infrastructure/config/services/AIExperienceConfigService.ts
#	src/web-ui/src/infrastructure/config/types/index.ts
#	src/web-ui/src/locales/en-US/settings/session-config.json
#	src/web-ui/src/locales/zh-CN/settings/session-config.json
#	src/web-ui/src/locales/zh-TW/settings/session-config.json
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.

6 participants