Skip to content

Rebase the code in 615 - #96

Merged
SWangHash merged 265 commits into
mainfrom
rebase
Jun 17, 2026
Merged

SWangHash merged 265 commits into
mainfrom
rebase

Conversation

@SWangHash

Copy link
Copy Markdown
Owner

Summary

Fixes #

Type and Areas

Type:

Areas:

Motivation / Impact

Verification

Reviewer Notes

Checklist

  • This PR is focused and does not include secrets, temporary prompts, generated scratch files, or unrelated artifacts.
  • Relevant verification is recorded above, or skipped checks are explained.
  • User-facing strings, docs, and locales are updated where applicable.

limityan and others added 30 commits June 1, 2026 11:57
- split DeepSeek Anthropic reasoning handling from native Claude adaptive logic
- omit thinking and output_config in default mode
- send output_config.effort only when DeepSeek thinking is enabled
- drop budget_tokens for DeepSeek Anthropic requests
- fallback adaptive mode to enabled for DeepSeek Anthropic models
- add focused tests for default, disabled, enabled, and adaptive DeepSeek paths
fix(skills): fix deletion of user-level skills in remote workspace context
…fication

fix(web-ui): unify startup overlay
Replace verification-subagent goal mode with Codex-style /goal thread goals
managed via create_goal, update_goal, and get_goal tools, with UI strip,
dialogs, auto-continuation, and token budget tracking across core and web-ui.
Replace the PS C:\path example so check:repo-hygiene no longer flags
bash_tool.rs for a local absolute path pattern.
Change command_menu matching from prefix match (starts_with) to
substring match (contains), aligning the TUI with the existing Web UI
behavior. Strip the leading "/" before comparison so typing "/age"
matches "/usage", "/usa" matches "/usage", etc.

- Rename match_prefix_in → match_substring_in to reflect new behavior
- Strip "/" prefix before matching, case-insensitive
- Add 9 unit tests covering: empty query, exact match, prefix match,
  substring match, mid-string match, multi-match, no-match, "/" only,
  case insensitivity
Reuse shared terms for edit and complete labels, differentiate zh-TW
thread goal strings from zh-CN, and keep i18n governance budgets unchanged.
Avoid eager default tool-card payload previews, repair empty modern projections for ready restored sessions, and reuse stable completed-turn projections to reduce historical-session render churn.
Include get_goal, create_goal, and update_goal in the stable builtin
manifest expectations and get_goal in the readonly manifest list.
Allow /goal to accept objectives spanning multiple lines while keeping
single-line control verbs and rejecting /goalie-style false positives.
Use workspace-relative demo paths so check:repo-hygiene no longer flags
registry snapshot wrapper tests for local absolute path patterns.
…eanly

Pause active goals when the user stops a turn, abort in-flight goal
continuation submit retries on cancellation, and deliver resume steering
when paused/blocked/usage-limited goals become active again.
Ship the bitfun pet atlas, switch default companion selection from panda-pix,
and keep panda-pix available in the builtin pet catalog.
…rity

feat(agentic): refactor goal mode to persisted thread goals
- fix missed expansion when long single-line content exceeds capsule width
- prevent multiline/capsule oscillation while typing near wrap boundaries
- avoid transient collapse flicker when deleting boundary characters
- cache capsule input width and refresh it only on layout changes
- use offscreen clone measurement to avoid visible control flicker
- confirm collapse before switching back to capsule mode
limityan and others added 23 commits June 13, 2026 21:23
…egacy

Phase P1-P7 theme token system cleanup across Web UI, Mobile Web, and Installer:

P1: Fix Mobile Web sessions.scss referencing non-existent --color-error-* tokens
P2: Unify CodeReviewToolCard fallback values and fix --color-danger → --color-error
P3: Token-ize TurnHistoryPanel (~35 hardcoded Tailwind grays), remove @media dark block
P4: Complete Installer variables.css with 13 missing tokens, align fallbacks to bitfun-dark
P5: Align tokens.scss SCSS fallbacks with dark-theme.ts runtime values (34 properties)
P6: Token-ize ~130+ hardcoded colors across 20 component files (semantic colors → tokens)
P7: Remove unused legacy -gray-* series and orphaned -text-default

Additional fixes found during review:
- Fix --color-text-disabled misused as background (→ opacity-disabled)
- Fix --color-scrollbar-thumb wrong variable name (→ --scrollbar-thumb)
- Fix --shadow-sm fallback mismatch
- Fix --color-danger-600/--color-error-600/--color-error-alpha/--color-error-rgb references
- Fix InlineDiffPreview light theme gutter using dark-only hover variants

Verified: type-check 0 errors, lint 0 errors, 12 theme/layout tests passed
…vent viewport detaching from bottom

During streaming, when tool cards auto-collapse or the user toggles them,
the previous design injected footer compensation + anchor lock to freeze
the viewport on older content during the collapse animation, then relied
on a deferred follow path to resume bottom-tracking. That deferred path
had race conditions: if streaming ended during the 1000ms protection
window, the continuous follow loop stopped and the deferred follow was
never replayed, leaving the user stuck above the bottom.

Fix: in follow+streaming mode, skip all collapse compensation injection
entirely. The continuous follow RAF loop (60fps) naturally re-pins
scrollTop to the new physical bottom on the next frame (~16ms), making
the content shrink invisible. Since no compensation is injected, there
is nothing to accumulate or drain — issue GCWing#1176 (permanent whitespace)
cannot occur in this code path.

Changes in VirtualMessageList.tsx:
1. measureHeightChange shrink branch: early return when follow+streaming
2. handleToolCardCollapseIntent: early return when follow+streaming
3. handleScroll shrink-clamp restore: update refs without compensation
   injection when follow+streaming, and return early to prevent the
   follow controller from misclassifying the browser-clamp delta as a
   user upward scroll
4. Add effect to clear residual collapse intent + compensation when
   entering follow+streaming, preventing stale intent from a prior
   non-follow browsing session from blocking compensation consumption

Non-follow mode behavior is unchanged — compensation + anchor lock
still protect the visual anchor when the user is browsing history.
…eration

Drop the post-render repair loop and whole-deck audit phase so staged
generation finishes after planning and serial slide rendering, reducing
agent turns and failure modes without changing the core file protocol.
…audit-repair

refactor(ppt-live): remove final audit and slide repair from deck generation
… progress UX

Read property-panel style choices when generation starts instead of restyling on every control change, and reduce noisy internal tool events in the generation progress panel.
…ubagent progress

Deny interactive MiniApp agent tools (AskUserQuestion, ControlHub, etc.), forward Task subagent session events into PPT Live, and show subtask research steps in the generation progress panel.
…ph split

brotli-decompressor 5.0.2 resolves alloc-no-stdlib 3.x alongside brotli's 2.x dependency, which breaks workspace cargo check without a committed lockfile.
alloc-stdlib 0.2.3 resolves alloc-no-stdlib 3.x alongside brotli-decompressor 5.0.0's 2.x dependency, breaking workspace cargo check without a lockfile.
…-until-generation

feat(ppt-live): improve generation UX, headless agent safety, and subagent progress
fix(ui): @ file picker supports subdirectory navigation
…e semantics

- render compact turn-completion notices for abnormal completed turns in the transcript
- persist turn finish_reason and has_final_response through frontend restore and session history
- add has_final_response to dialog-turn completed events and persisted turn data
- make finalize report cause-oriented turn outcomes such as max_rounds and repeated_tool_failures

- remove the queued_user_message finalize path because it described an old interruption-oriented turn boundary that is no longer the normal flow: when a session is busy, the frontend now queues user messages locally, and explicit mid-turn intervention goes through steering at the next round boundary without ending the current turn
- keep tool definitions on finalize requests while denying tool execution at runtime, because removing the tools changes the provider request shape and breaks prompt/prefix cache reuse, turning finalize into a cache miss
…metadata

- add attempt_id/attempt_index to agent stream text, thinking, and tool events
- propagate attempt metadata through round execution, stream processing, transport, and session persistence
- rebuild model round attempts in FlowChatStore and fold previous same-round retries into retry history
- supersede older active attempts when a newer retry starts so stale items stop streaming
- preserve attempt and interruption metadata across refresh and session restore
- update retry history UI, i18n copy, and regression coverage for batching, persistence, and tool retry handling
- add round_group_id metadata for model rounds across events, transport, and session persistence
- fold consecutive finalize retry rounds into a single UI transcript group with collapsible history
- keep nested retry attempts in folded history collapsed by default
- preserve round group metadata through frontend restore and persistence paths
- stop marking locally synthesized finalize fallback text as an agent-provided final response
- add regression coverage for round-group folding and finalize fallback response semantics
When a dialog turn is cancelled, normalize interrupted items inside both
model round items and attempt item mirrors. This prevents ExecCommand cards
from staying in an active running state when the UI renders from the latest
attempt after session cancellation.

Add a regression test for transient tool state inside model round attempts.
Add shared background subagent activity derivation and use it in the flow chat
header and session nav. Show parent-session background subagent activity in the
left nav with an animated bot badge, and add header actions to cancel individual
or all background subagents and stop all background commands.

Also updates i18n strings and focused tests for activity derivation and session
row badge layout.
- add event-driven background subagent activity store with focused tests
- update flow chat header and sessions nav to consume shared activity state
- reconcile subagent activity from session, turn, and parent Task events
- keep targeted parent reconciliation for history/session restore paths
- simplify batched event merge keys to use session/tool attempt scope
Move provider-neutral session, turn, confirmation, question, cancellation, and background exec-output state into execution-layer owner crates.

Keep bitfun-core compatibility facades and add boundary guards so migrated owners do not regress into core.
@SWangHash
SWangHash force-pushed the rebase branch 3 times, most recently from 792073e to 45b66c6 Compare June 16, 2026 12:56
- Export CalendarTool from implementations module
- Add Calendar tool materialization mapping
- Create new core.openharmony provider group for Calendar
- Move Calendar from core.agent to core.openharmony

Fixes panic in create_product_tool_registry_from_plan when
Calendar tool name is requested but factory returns None.
@SWangHash
SWangHash merged commit b53b076 into main Jun 17, 2026
1 of 2 checks passed
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.

10 participants