fix(web): improve sessions sidebar resizing, accessibility, and persistence - #1
Open
yzs981130 wants to merge 26 commits into
Open
fix(web): improve sessions sidebar resizing, accessibility, and persistence#1yzs981130 wants to merge 26 commits into
yzs981130 wants to merge 26 commits into
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Co-authored-by: Lihengwannafly <Lihengwannafly@users.noreply.github.com>
On iPadOS with a hardware keyboard, `isTouch` is true (via pointer:coarse) so submitOnEnter is disabled and there's no keyboard-based way to send. Add Shift+Enter as a send shortcut that works on all platforms without changing existing behavior — desktop Enter-to-send is preserved. Closes tiann#175 via [HAPI](https://hapi.run) Co-authored-by: HAPI <noreply@hapi.run> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Replace hardcoded 'claude' string with getDefaultClaudeCodePath() to ensure the correct Claude Code executable path is resolved, consistent with claudeLocal.ts. This respects HAPI_CLAUDE_PATH env var and finds the global claude installation path properly.
Extract platform detection and error reporting logic into reusable functions to improve testability and reduce code duplication in the binary launcher. Adds comprehensive test coverage for platform validation and error messages.
…inary launcher Refactor platform detection and error reporting logic into dedicated, testable functions. This improves code organization and enables better error handling for unsupported platforms and missing platform packages. - Add SUPPORTED_PLATFORMS constant with platform labels - Extract getPlatformKey() utility function - Extract isSupportedPlatform() validation function - Extract reportUnsupportedPlatform() error reporting function - Extract reportMissingPlatformPackage() error reporting function - Update main() to use new functions for clearer error handling
Update installation guides to specify the official npm registry and add a recommendation to use it for global installs, as some mirrors may not sync platform packages in time.
* feat(cursor): add support for Cursor Agent CLI integration - Introduced new command `hapi cursor` to start Cursor Agent sessions. - Added functionality for resuming sessions and managing permission modes. - Updated documentation to include Cursor Agent usage and installation instructions. - Enhanced existing codebase to accommodate Cursor as a recognized agent flavor. - Implemented local and remote session handling for Cursor Agent. This update expands HAPI's capabilities by integrating support for the Cursor Agent, allowing users to leverage its features alongside existing agents. * Remove TODO.md file as it is no longer needed following the integration of Cursor Agent CLI support. This cleanup helps streamline project documentation and reflects the completion of the associated tasks. * feat(cursor): implement remote mode and fix --hapi-starting-mode - Consume --hapi-starting-mode in cursor command (do not forward to agent) - Implement cursorRemoteLauncher: spawn agent -p with stream-json, --trust - Add cursorEventConverter for NDJSON parsing (system/assistant/tool_call/result) - Multi-turn via --resume session_id - Update docs: cursor supports both local and remote modes Made-with: Cursor * fix: type error * fix(cursor): address PR review - model UI, sessionId metadata, duplicate flags - HappyComposer: use isClaudeFlavor for model mode (cursor has no model modes) - cursorLocalLauncher: call onSessionFound for resume so cursorSessionId in metadata - cursorCommand: do not forward parsed flags to cursorArgs (avoid duplicates) Made-with: Cursor
Add project-level slash command discovery with recursive nested command scanning, pass workingDirectory through slash-command handlers, and align hub/web source unions to include project commands.
…tiann#259) Replace hardcoded English strings with translation function calls in SpawnSession.tsx and router.tsx. Add newSession.title key for the NewSessionPage header to match the newSession.* namespace.
…nn#253) * feat(web): add appearance setting (follow system / dark / light) Add user-facing appearance preference to the settings page, allowing users to choose between Follow System, Dark, and Light themes. The preference is persisted to localStorage and takes priority over automatic detection in the existing theme pipeline. * fix(web): update theme on cross-tab appearance change The storage event handler only updated React state without calling updateScheme(), leaving data-theme and useTheme subscribers stale. * fix(web): move cross-tab appearance sync to global initializeTheme The storage event listener was inside useAppearance(), which is only mounted on the settings page. Other pages never received cross-tab theme updates. Move the listener into initializeTheme() so all pages respond to appearance changes from other tabs.
tiann
force-pushed
the
codex/make-left-column-width-adjustable
branch
from
March 8, 2026 03:23
e3cbda7 to
7050c9b
Compare
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
Motivation
Description
sidebarWidth,sidebarWidthRef,isDraggingSidebar) and a keyboard step constantSIDEBAR_KEYBOARD_STEPto manage size and keyboard adjustments.updateSidebarWidthhelper and used it for pointer drag, resize-reclamp, and keyboard actions.buttondrag handle with an accessiblerole="separator"element that supportsArrowLeft/ArrowRightkeyboard resizing, larger hit area (w-2), and focus styling.--sessions-sidebar-width) and ensured the component reclamps on windowresizeevents.Testing
bun install, which failed due to npm registry HTTP 403 errors in this environment, preventing dependency installation.bun run typecheck:web(which runstsc --noEmit), which failed becausevite/clienttype definitions are unavailable without dependencies.bun run dev:web(startsvite), which failed because thevitebinary is not present due to missing dependencies.Codex Task