Repository navigation
feat: 2.5.1 file search & actions, search remediation (C3/C7), and browser workspace foundation - #2121
Merged
Conversation
chore(release): 2.4.15-beta.5
…ster chore: catch up stage with master
…-labels-stage feat(tuffex): gradient thinking orb, shared image viewer and localisable icon-button labels
chore: catch up stage with master
chore(release): 2.4.15-beta.6
chore(release): 2.4.15-beta.7
…dows A transparent Electron window shows the desktop through its own system material (vibrancy on macOS, Mica on Windows), which lies under the page where no backdrop-filter can reach it. A filter there samples only the surface's own veil and lays that copy back over it, so a 75% veil turns nearly opaque and the desktop stops showing through. With systemBackdrop the surface runs no backdrop filter: the glass layer is not rendered and the filter layer keeps only its tint, leaving the blur to the system. The veil, mask, flow light and rim draw as before. As the surface no longer samples the page, moving and autoDetect have nothing to guard and are ignored.
Both panels now draw their background with TxBaseSurface (card preset, fake veil) and take the refraction default, with surface, surfaceColor and surfaceOpacity to choose another material. The veil sits at 0.96 under mask and 0.5 otherwise; TxDrawer's panelTransparent thins it to 0.78 and 0.3 instead of adding a blur of its own. An element that fades through opacity, or carries a filter or a backdrop filter, is the backdrop root of every backdrop filter inside it. So the modal's dim and frost move from the overlay to its ::before, and the panel no longer fades as a whole: it scales while its header, body, footer, shadow and each layer of the material fade on their own, and the material samples the page from the first frame to the last. High contrast and materials without a backdrop filter fade whole. Reduced motion keeps the fades and drops the travel, which the modal did not handle before. The drawer counts its panel's transform transitions and holds the surface in its motion fallback while one runs, as a sliding backdrop filter samples where the panel was a frame ago.
The smart-wrapping guide promised text-wrap: pretty for .tx-help-text and for finished streaming text, and the styles had neither. A finished TxStreamText or TxStreamElement paragraph now breaks with text-wrap-style: pretty, while the one still being written keeps auto, so each arriving word does not rerun its line breaking. The longhand leaves a host's nowrap alone.
…aterial CoreBox's backing was a plain div at 75% of the fill colour, outside the refraction default every other surface follows. It is now TxBaseSurface with systemBackdrop: CoreBox is a transparent window whose blur is the system's (vibrancy on macOS, Mica on Windows), and a backdrop filter in it would only re-sample its own veil and turn it opaque over that material. The surface lays the same 75% veil with its tint and rim, and the system blurs.
The home menus, the shell conversation list, the plugin log and runtime cards and the language setup named blur, mask or pure explicitly. They now take the default refraction surface, as surfaces in the app are to unless a material is confirmed for them.
The site's pages and component demos named mask (121 times), glass (34) or pure (4) on cards, select panels and anchors, the admin analytics page alone on 50 cards. They now take the default refraction surface. Demos whose subject is the material keep choosing it: the surface modes, fallback and motion comparisons, the card backgrounds and the anchor surface playground.
Where a concept article described a recommendation or an app excerpt, it now describes what TuffEx ships: type scale points at the style entry's .tx-prose and .tx-inline-code, smart wrapping at .tx-heading, .tx-description and .tx-help-text, and irradiation tuning at the dark theme's 460/560/660 weight tokens, with its demo set at those weights. The surface taxonomy and deduction articles match the eight materials, the power-saving transitions and the components that default to refraction, CoreBox's system backdrop among them. Component pages follow the code: base-surface documents every mode, the environment-sensing API and systemBackdrop, and its demo shows all the modes; modal and drawer document surface, surfaceColor and surfaceOpacity and how their panels move; the anchor family's panelBackground and flip-overlay's surface list every material; and card, foundations, theming, tooltip and the stream pages match what ships.
Manual 02 lists the eight materials and the surfaces that default to refraction, CoreBox's included, and describes the deduction autoDetect actually runs (pointer speed, window drags, frame-budget probes, power saving), the 120Hz drag fallback with its 140ms hysteresis, acrylic alongside blur and glass, and the card's specular light. 03 gives the dark theme's 460/560/660 weight tokens and their static-font guard; 04 the inline code style and text utilities in the style entry and the streaming exception to pretty wrapping. The CoreBox overlay contract describes its refraction surface over the system material.
9a8d8d7 added apps/nexus/.nuxt, a worktree's symlink to a local checkout's build directory; `.nuxt/` in .gitignore matches directories only. On CI it dangles, `nuxt prepare` cannot create the directory, and every job that installs dependencies failed in that step.
…s fade Under high contrast a host fades its surface whole, yet the fade it hands the fake backdrop of a glass or filter surface still applied, so the two opacities multiplied: at a frame where the content stood at 0.88, the solid base under it stood at 0.77. The backdrop is solid at full strength there and now takes no animation of its own, which is what TxModal's changelog entry already describes.
TxCommandPalette, TxPopperDialog, TxBlowDialog, TxBottomDialog and TxTouchTip draw their panels with TxBaseSurface, refraction by default, and take TxModal's surface, surfaceColor and surfaceOpacity; the dialogs' set is exported as DialogSurfaceProps. The panels' own blur and solid backgrounds go. Dims and rims move to pseudo-elements, and the panels only move while their parts fade, so no ancestor becomes the material's backdrop root and refraction samples the page through every transition. Reduced motion keeps the fades and drops the travel, and TxTouchTip's close, which had no transition, grows and fades over 220ms. Nexus's GlobalSearch follows the palette onto the material and fades its parts the same way. The dialog and command-palette pages, the material lists in foundations, theming, the surface taxonomy and design manual 02, and the changelog describe the change.
…and learning curve
…core-app UnoCSS safelist - TxIcon supports classGlyph SVG path resolution; TxIconPicker adds 12 shapes and lazy chunk loading for AI/brand/emoji - Strip full ICON_CATALOG_CLASSES safelist from CoreApp uno.config.ts, saving 183.9 KiB bundle size - Remove transition: all from TxSwitch track to eliminate ghosting on anchor popover dismissal - Fix dual focus outline defect on TxSearchInput under high-contrast mode - Sync Nexus component documentation and showcase demos
…, and accessibility contrast - Bind useKeyboardNavigation to KeepAlive lifecycle, passing through unconfigured native keystrokes - Add profileId override to WorkspaceForkRequest to prevent parent session config contamination and persistence bleed - Adjust HomePermissionMenu dark-mode small warning text contrast to 5.44:1 - Add modelName to HomeTopBar model pill aria-label to satisfy label-in-name requirement - Align packaged acceptance script and test suites with current audit mode and model selectors
… architecture cleanup (C3/C7) - CoreBox ⌘K gains copy-to, move-to, and move-to-trash file actions with atomic exclusive hard links and source dev/ino verification - AI module adds file.search tool supporting text and regex content retrieval, 2MB size cap, and path traversal blocking - search-core-utils filters ephemeral keys and introduces stable JSON parsing to prevent cache key bypass (C3) - conversation-store limits message search window to recent sessions and uses indexed SQLite queries to eliminate full-table scans (C7)
…omplete production scenes - Infer vendor, authType, and adapter capabilities from protocol declarations instead of manual capability list maintenance - Support secure API key rotation in edit view with isolated UUID authRef references, preventing secret leaks in list views - Support incremental candidate selection for upstream model fetches with fixed product feature scene bindings - Avoid pinning provider default model in seeds, preserve existing manual routing, and add corebox.selection.translate and corebox.fx.* scenes
…r prototype - Add 2.5.2 browser workspace PRD and feasibility report, defining WebContentsView native shell architecture - Introduce betaFeatures.browserWorkspace setting flag and settings management component - Build BrowserPage viewport management, navigation guards, and tab interaction state machine - Integrate browser-connector extension protocol, native-browser-bridge layer, and permission management
…nd annotations - Refactor ScreenshotOverlay and SessionManager lifecycle, improving cross-platform selection geometry and canvas rendering - Add screenshot annotation document model and geometry renderer - Define window roles and add corresponding unit test coverage - Integrate screenshot-acceptance standalone test fixture and native screenshot service capabilities
…itive data - Add OIDC signature attestation, release validation, and production workflow hardening to GitHub Actions - Enforce native addon and unpacked asar validation in electron-builder and target-build - Support TUFF_DEV_NICE priority control in dev wrapper to protect local shared machine load - Refine sensitive data inventory governance script and release testing rules
…elog - Update main TODO.md with 2.5.1 file action progress and benchmark comparison data - Check off Nexus provider config simplification in TODO-AI.md with 92 unit test validations - Close out dynamic execution sandbox, icon asset merge, and accessibility fixes in TODO-BACKLOG-LONG-TERM.md - Mark C3 cache key filtering and C7 message scan window index optimization as resolved in search-crossplatform-audit.md - Update CHANGES.md with full production implementation details and runtime boundaries for 2026-10-18
Contributor
|
Important Review skippedToo many files! This PR contains 594 files, which is 494 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. Usage-priced reviews support at most 300 files. ⚙️ Run configuration
⛔ Files ignored due to path filters: 11
📒 Files selected for processing: 594
You can disable this status message by setting the
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…upling report - Add file-provider-architecture-refactoring-analysis-2026-10-18.md report - Analyze 20+ extracted subservices and attribute 4,073 lines of bloat (560 lines DI glue, scan persistence, incremental build) - Establish four-role decoupling model (SearchProvider facade, IndexedSource backend, IndexCoordinator, ServiceContainer factory) - Define 4-step non-breaking evolution path with AIMD backoff, mutationLease barriers, and split-DB ID collision prevention - Update reports/README.md index and link from TODO-BACKLOG-LONG-TERM.md
- Extend BrowserConnection protocol and IPC handling to securely extract Chrome cookies by domain - Upgrade main browser session to an isolated persistent partition (persist:tuff-browser) - Add ChromeCookieDialog and Chrome library panel cookie import support - Complete bilingual i18n locales and comprehensive unit and boundary tests
…opmost pinning - Make toolbar position adapt to selection geometry, auto-flipping above when space is tight and scoping to display bounds - Adopt 9-point rule-of-thirds composition and translucent mask to eliminate oppressive dark visuals - Add 8x pixel cursor magnifier with real-time HEX/RGB color sampling, coordinate, and selection size previews - Fix renderer crash when overlay first frame is unready, and reinforce main-process window with screen-saver level topmost pinning
- Fix workingDirectory fallback and root path resolution in file tools - Align screenshot session hit test candidate and createEditor contracts with single-window architecture - Correct annotation shape geometry construction and translation calls in ScreenshotOverlay
TalexDreamSoul
force-pushed
the
task/chore/preserve-main-1017
branch
5 times, most recently
from
October 19, 2026 02:50
3920279 to
3b7e7af
Compare
TalexDreamSoul
force-pushed
the
task/chore/preserve-main-1017
branch
from
October 19, 2026 03:12
3b7e7af to
da5eb24
Compare
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.
Summary
Consolidates production-ready remediation and foundation work across Search, CoreApp, Nexus, TuffEx, and the Browser Workspace:
copy-to,move-to, andmove-to-trashfile operations. Main process executes single-file atomic hard-link commits to prevent overwrite races, verifies sourcedev/inoidentity on cross-volumeEXDEVmoves before unlinking, and routes trashing via authoritativeshell.trashItem.file.searchAI tool for in-workspace text and regex source code retrieval with boundary containment, 2MB size gating, and traversal blocking.buildSearchCacheKeysanitizes ephemeral session/request keys (sessionId,requestId,timestamp,_traceId, etc.) and performs stable structural parsing on stringified JSON content, eliminating silent cache hit-rate drops.searchConversationsmessage-body scans to recent threads (CONVERSATION_CONTENT_MAX_SEARCH_THREADS = 150), migrating the query plan from an unboundedSCAN conversation_messagesto indexed lookups viaidx_conversations_updatedandidx_conversation_messages_thread. Whole-history title search remains unconstrained.useKeyboardNavigationintegrates KeepAlive lifecycle hooks (onActivated/onDeactivated) to unbind and rebind idempotently, letting unconfigured key combinations pass through natively.WorkspaceForkRequestsupports explicitprofileIdoverride, writing solely to the child session settings to prevent mutating or dirtying the parent conversation.HomePermissionMenu(5.44:1) and alignsHomeTopBarmodel capsulearia-labelwith label-in-name requirements.ICON_CATALOG_CLASSESfull-whitelist bundle from CoreAppuno.config.ts(-183.9 KiB).TxIconwith priority SVG path parsing (classGlyph) and integratesTxIconPickerchunked asset catalogs and 12 shapes.TxSwitchghosting on modal dismiss by removingtransition: all, and cleans up high-contrast dual focus rings onTxSearchInput.authRefs without exposing credentials on read boundaries.corebox.selection.translate,corebox.fx.*) with explicit degraded readiness feedback.WebContentsView-based native browser workspace.betaFeatures.browserWorkspacefeature toggle, settings management, andBrowserPageviewport state machines.browser-connectorextension protocol and native bridge specifications.TUFF_DEV_NICEsupport to local dev wrappers.PR Type
Quality Checklist
TODO.md,TODO-AI.md,TODO-BACKLOG-LONG-TERM.md,CHANGES.md, andsearch-crossplatform-audit.md.