Skip to content

release: v0.2.0#6

Draft
mnzsss wants to merge 105 commits into
masterfrom
release/v0.2.0
Draft

release: v0.2.0#6
mnzsss wants to merge 105 commits into
masterfrom
release/v0.2.0

Conversation

@mnzsss
Copy link
Copy Markdown
Owner

@mnzsss mnzsss commented Mar 21, 2026

No description provided.

mnzsss added 30 commits March 8, 2026 02:21
Add @base-ui/react collapsible, tabs, tooltip, hover-card dependencies
and nanoid for ID generation in prompt-input.
Remove 'use client' directives (not needed in Tauri), reorder Tailwind
classes, and simplify dialog overlay/popup event handling.
…tton-group components

New base-ui wrapper components for the settings redesign and AI chat
interface.
Add conversation, message, prompt-input, reasoning, and shimmer
components for building AI chat interfaces. Export new UI and AI
element components from package index.
Integrate OpenAI Codex CLI as an AI assistant accessible via the
command palette slash commands. Includes Rust backend for tool
detection, model listing, and streaming message execution; React chat
view with reasoning, command execution display, and token usage;
model/reasoning preferences in settings; and i18n for en/pt-BR.
Add CLAUDE.md with project conventions (i18n, UI components, code
style), .cgcignore for code graph indexing, and ai-elements skill
for building AI chat interfaces.
Comprehensive skill covering IPC, commands, events, plugins,
permissions, capabilities, configuration, and distribution.
Includes reference docs for all major Tauri v2 topics.
Long-running AI agent script that runs in background with support
for multiple tools (amp, claude, copilot) and configurable iterations.
Require using context7 MCP server to look up library docs before
implementing or troubleshooting, instead of relying on memory.
Base UI v1.0.0 uses data-active (not data-selected) for the active tab
indicator. Update Tailwind classes to match.
Base UI v1.0.0 SelectValue has no native placeholder prop. Use a
children function that shows placeholder for empty state and raw value
for selected state, while preserving auto-resolution when neither
placeholder nor children are provided.
Replace dropdown provider selector with clickable radio cards that show
the active provider with a check icon. Nest model and reasoning
selectors inside the active card. Add per-provider icon field and fix
command palette to use it.
Set up tauri-plugin-log with Stdout, Webview, and LogDir targets.
Replace all println!/console.* calls with structured log macros (Rust)
and createLogger utility (JS) across the entire codebase. Add
attachConsole() for Sentry integration via Webview target.
Only native OS dialogs (file pickers) should prevent blur-to-hide, not
web-rendered overlays like settings sheet or bookmark dialogs. Expose
nativeDialogCount from dialog manager and use it for the window manager
blur guard instead of the full activeDialogs count.
Create apps/renderer/src/lib/config-file.ts with getConfigFilePath,
ensureConfigDir, readConfigFile<T>, and writeConfigFile<T> to eliminate
duplicated file I/O logic from useShortcutsSettings and useFolderSettings.
Converts between MRunner Hotkey objects and TanStack string format.
Meta/Super both collapse to Mod; Mod resolves back to Super (Linux)
or Meta (macOS) based on platform.
mnzsss added 30 commits March 9, 2026 15:36
# Conflicts:
#	apps/launcher/src/lib.rs
#	apps/renderer/src/App.tsx
#	apps/renderer/src/components/settings/settings-sheet.tsx
#	apps/renderer/src/core/types/command.ts
#	apps/renderer/src/hooks/use-plugins.ts
#	apps/renderer/src/locales/en.json
#	apps/renderer/src/locales/pt-BR.json
#	pnpm-lock.yaml
#	scripts/ralph/CLAUDE.md
#	scripts/ralph/prd.json
#	scripts/ralph/progress.txt
#	scripts/ralph/ralph.sh
Apply 88% opacity to dark theme background/popover/card tokens for
frosted glass effect. Brighten muted-foreground (L=0.65→0.72), darken
primary/accent (L=0.65→0.50), strengthen border (8%→14%), and add
backdrop-filter fallback for unsupported compositors.

Fix accessibility: bump 11px text to 12px minimum in group headings
and footer, replace all muted-foreground/50 with /70, remove
unnecessary /70 opacity from group headings and footer text.
Match Raycast-style launcher activation. Only affects new installs;
existing users keep their persisted preference.
gh CLI uses different field names: stargazerCount for repo list,
stargazersCount for search repos. Use separate struct field names to
match each command's API.

When searching repos, fetch the authenticated username in parallel
and sort results so the user's own repositories appear first.
Register /gr (repos), /gp (PRs), /gi (issues), /ga (actions) as
slash shortcuts that navigate directly to GitHub plugin views.

Shortcuts appear in the slash picker alongside AI tools, with Tab
to activate and auto-activation when space is typed after the
command (e.g. "/gr " immediately opens repo search).
Claude requires a working directory to execute commands. Show a
DirectoryPicker card before starting the chat when using the Claude
provider, and pass the selected path via --directory flag.
…d loadJsonPlugins

Break out inline JSX into dedicated components for readability and
extract the JSON plugin loading logic into a standalone async function.
Move bookmark selection logic into its own useCallback to keep the
command-palette onSelect handler clean.
The noImportantStyles lint rule needs suppression here because
!important is required for accessibility media queries.
Set up vitest with jsdom, testing-library, and Tauri API mocks.
Add tests for useAIChat hook (events, streaming, provider filtering)
and DirectoryPicker component (input validation, keyboard handling).
Cover register(), relative_time(), serde deserialization for github,
and list_ai_models(), extract_item_event() for tools. Add Debug
derives needed by test assertions and enable tokio macros feature.
Add input validation to the plugin install system to prevent three
attack vectors:

- Git URL injection via ext:: transport or argument injection: allowlist
  safe URL schemes (https, http, ssh, git) and add -- separator
- Arbitrary directory deletion via cancel/complete_plugin_install:
  canonicalize temp_path and verify it resides within the plugins
  directory with the expected .installing-* prefix
- Path traversal via malicious plugin manifest id: restrict plugin IDs
  to alphanumeric characters, hyphens, and underscores
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