Conversation
feat(cli): add mode-aware skill & subagent management menu
feat(cli): redesign built-in themes and startup theme switching
Add startup phase tracing across desktop and web startup, reduce pre-render initialization work, and dedupe concurrent config reads. Track historical session hydrate state explicitly so saved sessions show a loading or retry surface instead of briefly looking like a new empty session. Add focused tests for startup tracing, config read dedupe, historical session state transitions, retry UI, pending hydrate reuse, ACP restore skip, and Modern store sync.
* fix edit tool * fix edit tool hide status * fix code block demonstration
Add a bounded background task scheduler and move editor config/Monaco warmup off the awaited after-render startup path. Reduce early Git and session metadata pressure by using basic-only startup refresh, forcing fresh state before dangerous Git operations, and batching persisted-session model config reads. Keep docs and baseline artifacts out of the PR; high-risk session paging, worker conversion, native splash, and threshold changes remain out of scope.
* font size update * fix(core): align Git tool schema copy with git_schema test assertions Capitalize “Do not omit this field” in the operation property description so the unit test substring check matches reliably.
…ng#759) Align follow mode with collapse compensation and anchor lock so tool-card collapses no longer jitter the viewport; gate continuous auto-follow during layout transitions and restore unsignaled shrink clamps near the tail.
Load historical session views with smaller UI payloads, defer stale snapshot refreshes until session history is ready, and aggregate startup/session diagnostics without logging normal optional-config misses. Also keeps remote workspace identity in the measured paths so startup and session hydration traces stay actionable without adding extra frontend/backend round trips.
Batch startup config reads with legacy fallbacks to reduce cold-start IPC overhead. Update dialog-turn metadata incrementally on the normal save path while serializing per-session metadata writes and retaining full-scan fallback for inconsistent storage. Defer snapshot refresh work while historical session context restore is pending, bound session response trace estimation, and preserve compatibility fallbacks across mixed remote identities.
- add a shared session workspace resolver in the coordinator and session manager - let cron, session control, and session history infer workspace from session_id when possible - allow SessionMessage to create a new target session when session_id is omitted - tighten tool input validation and add regression tests for the new session workflows
- isolate session and subagent test temp workspaces with Drop cleanup - clean up temp repos used by function agent port adapter tests - clean up miniapp runtime and storage temp roots after tests - keep bitfun-core test runs from leaving bitfun-* directories in Temp
- persist agent_type on user dialog turns and cache the last surviving dialog mode in session state - restore and clear previous mode correctly during session reload and rollback so reminders reflect real mode transitions - share coding mode prompt/tool defaults and expose plan/debug helpers consistently across modes - add test coverage for persisted turn mode recovery and rollback-to-empty behavior
- add `run_in_background` support to Task tool and return a background task handle - generalize round steering into round injection for current-turn and exact-turn delivery - deliver background subagent results via steering when parent is running - start a new parent turn automatically when background results arrive while idle - wire scheduler/coordinator/execution engine to the new background delivery flow
…ult delivery - add builtin Multitask mode with agentic-equivalent tooling and multitask-specific reminders - surface Multitask across mode registry, model defaults, skill policy, remote mapping, and localized frontend mode pickers - fix chat input mode filtering and persisted agent-type validation so Multitask can be selected in the UI - move agent system reminders ahead of user_query when wrapping turn input - correct background subagent result delivery semantics so result turns display the actual returned result instead of the original delegated task
Align the core boundary script with current GetToolSpec prompt stubs and anchor latest-main CLI subagent, Web startup, and built-in MiniApp seed surfaces. Update decomposition docs so future runtime moves keep these product-surface behaviors explicit and do not imply owner migration completion.
Move MiniApp draft/storage/runtime search-plan helpers, customization update metadata policy, and pure function-agent diff truncation into product-domains while keeping core-owned IO, worker execution, host dispatch, built-in source lookup, and Git/AI calls unchanged.
…solution Fix ACP file path resolution for completed tool cards
Move pure MiniApp lifecycle/import file-shape helpers and Git function-agent prompt preparation into the product-domain owner crate while keeping IO, worker runtime, prompt templates, AI calls, JSON extraction, and error mapping in core.
Add migration-before snapshots for MiniApp manager runtime paths and function-agent Git/AI boundaries while keeping runtime ownership in core.
Adds `cache_hit_rate: Option<f64>` to UsageTokenBreakdown and UsageModelBreakdown, computed in build_token_breakdown / build_model_breakdown via a shared helper that: - only counts records with `cached_tokens_available == true` in BOTH numerator (cached_tokens) and denominator (input_tokens), so a partially reporting provider does not get its hit rate artificially deflated by unreported input - returns None when no record reports cache, or when the filtered input sum is zero (avoids divide-by-zero on tool-only turns) Renderers (terminal + markdown) append a ` (NN%)` suffix to the "Cached" cell when hit rate is available. When coverage is Unavailable the existing "not reported" fallback is preserved regardless of hit_rate state. PartialEq-only on the affected breakdown structs (and their parent SessionUsageReport) because Option<f64> precludes total equality. Five compute-layer tests cover: all-reported normal case, no-record reports, partial coverage (the bug-prone case), input_sum=0 edge, per-model isolation. Two render tests lock the cell format and the "not reported" fallback.
fix(flow-chat): fix code block jitter in historical messages during streaming output
Mirrors Claude Code's Tab-based mode switching: pressing Shift+Tab cycles the agent mode forward through the switchable set. Desktop (web-ui): cycles through all switchable modes in the current session. Uses stable refs to keep the handleKeyDown dependency array lean. Mobile (mobile-web): cycles agentic → Plan → debug → agentic. Works from both the expanded textarea and the collapsed placeholder via a document-level listener with deduplication.
Renders the new backend `cacheHitRate` field across the three UI surfaces that show cached tokens: - Session report card: appends ` (NN%)` inline to the "Cached" cell when coverage is available/partial, preserves the existing "Cache not reported" fallback when unavailable - Session detail panel: adds a dedicated "Hit rate" column to the per-model table; falls back to "-" when a model has no reported cache data - Markdown export builder (`buildSessionUsageExportMarkdown`): same inline ` (NN%)` suffix so the exported markdown matches the Rust-side terminal/markdown renderer output Two helpers in usageReportUtils: - formatHitRateSuffix(rate, t) - ` (NN%)` for inline append - formatHitRatePercent(rate, t) - bare `NN%` for table cells i18n adds `usage.table.hitRate` to en-US/zh-CN/zh-TW. Tests: 5 helper unit tests (round-trip / NaN / Infinity / rounding) and 2 card behaviour tests (inline rendering + unavailable fallback).
feat(usage): cache hit rate
Delegate static-provider assembly, decorator references, snapshot decorator adapter, and readonly filtering to bitfun-agent-tools. Keep product provider groups, snapshot wrapper integration, ToolUseContext, and GetToolSpec execution owned by core.
…-mode-cycle feat(flow-chat): add Shift+Tab shortcut for agent mode cycling
…und subagent state - persist internal subagent sessions with relationship metadata instead of treating them as non-persisted hidden sessions - add include_internal restore flows and dedicated subagent-session-linked events across desktop, transport, and service APIs - simplify agent stream and event handling by removing per-event subagent parent payloads and linking child sessions through session metadata - add flow chat background subagent projection UI, session metadata support, and localized labels for subagent status - update store, websocket handling, and tests to cover internal session restore paths and subagent projection behavior
…tionship - add structured session relationship contract across core, desktop API, and web UI - stop persisting /btw child sessions by introducing EphemeralChild session kind - persist review, deep review, and subagent lineage via relationship and deep review manifest payloads - remove frontend legacy relationship writes from session metadata persistence - clear legacy child lineage when branching sessions and keep fallback reads for old data - add regression tests for child session restore, lineage persistence, and metadata compatibility
- reuse existing text and thinking items for late chunks on closed rounds - add round_id to tool events across core, transport, and frontend handling - attach late tool Started/EarlyDetected events to their original round - reject tool events missing round context instead of falling back to the latest round - add regression coverage for late text, thinking, and tool event scenarios
Move provider-backed tool catalog and GetToolSpec facade entrypoints into bitfun-agent-tools while keeping product registry snapshots, ToolUseContext, unlock state, and concrete tool behavior owned by core. Update boundary guards and decomposition docs to reflect the remaining H1 owner work.
Move product tool provider group planning into bitfun-tool-packs while keeping concrete tool materialization, ToolUseContext, GetToolSpec execution, and runtime service handles core-owned. Update boundary guards and docs, and fix remote-connect subagent link routing exposed by full workspace verification.
Move function-agent prompt templates and AI response extraction/error mapping into product-domains while keeping Git/AI service calls in core. Update boundary guards and docs for the H2 closure.
Collaborator
|
close |
Collaborator
|
reopen the issue |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.