Commit graph

41 commits

Author SHA1 Message Date
Jinwoo Hong
7a9bc4ef6d
feat: computer use via agent-browser CDP bridge (#856) 2026-04-20 20:56:14 -07:00
Jinwoo Hong
ff16ab1565
feat(stats): add share button to usage panes (#874) 2026-04-20 18:54:16 -07:00
Jinjing
3a0fa521be
feat(editor): support clicking anchor links to jump to headings (#879)
Anchor-only links (#heading) now scroll to the matching heading in both
the markdown preview and rich editor. Preview uses rehype-slug to stamp
heading ids; the rich editor walks headings with the same stateful
GithubSlugger for parity (including duplicate-heading suffixes).
2026-04-20 18:35:28 -07:00
Brennan Benson
222d70e063
feat: add idempotent E2E test suite with headless Electron support (#671) 2026-04-19 12:09:32 -07:00
dependabot[bot]
45aadd5556
build(deps): bump dompurify from 3.3.3 to 3.4.0 (#720)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-18 22:55:28 -07:00
Neil
aa75adedf7
feat(settings): gate persistent terminal daemon behind experimental toggle (#774) 2026-04-17 16:00:16 -07:00
Jinwoo Hong
7c6d408f16
fix: resolve posix_spawnp failure in daemon's node-pty spawn (#762) 2026-04-17 10:37:56 -07:00
Jinwoo Hong
fd4f986c59
feat: terminal persistence via out-of-process daemon (#729) 2026-04-17 01:42:41 -04:00
dependabot[bot]
0f0a237e69
build(deps-dev): bump electron from 41.0.3 to 41.1.0 (#721)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-16 16:39:34 -07:00
Jinwoo Hong
cc66e120eb
feat: Add SSH remote support (beta) (#590) 2026-04-13 19:23:09 -07:00
Jinwoo Hong
3793125319
fix: resolve Codex spawn failures on Windows (#562)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:49:44 -07:00
Jinjing
696590918c
feat: Quick Jump to Worktree palette (Cmd+J) (#469)
* wip in the design doc

* fix: use Ctrl+Shift+J for worktree palette on non-darwin platforms

To avoid colliding with Ctrl+J (Line Feed) on Windows/Linux, we now
use Ctrl+Shift+J for the worktree jump palette on those platforms,
leaving Cmd+J for macOS.

* refactor: migrate QuickOpen to cmdk and unify overlay state

- Migrated `QuickOpen.tsx` to use `cmdk` (`CommandDialog`) for visual and
  behavioral consistency with the new worktree jump palette, while keeping
  the existing custom fuzzy match algorithm.
- Unified the overlay state systems (`activeModal`, `quickOpenVisible`,
  `worktreePaletteVisible`) into a single `activeModal` union type.
- This automatically handles mutual exclusion without boilerplate
  toggle logic spread across components.

* fix: forward QuickOpen and worktree shortcuts from browser guests

Added main-process interceptors for `Cmd/Ctrl+P` and `Cmd/Ctrl+1-9`
so that QuickOpen and numeric worktree jumping continue to work
even when an embedded browser guest (webview) has keyboard focus.

* fix: address review findings

- Set spawnEnv.SHELL before pty.spawn() in the fallback loop so the
  child process inherits the correct SHELL value instead of the stale
  original.
- Remove dead Cmd+P and Cmd+1-9 renderer keydown handlers from App.tsx;
  these are now handled via IPC from createMainWindow.ts before-input-event
  (the IPC handlers in useIpcEvents.ts have the same view-state guards).
2026-04-10 23:37:23 -07:00
Jinjing
0f819032a0
feat: auto-refresh File Explorer via filesystem watcher (#456)
* fix: address review findings

* feat: add filesystem watcher for auto-refreshing File Explorer

Adds @parcel/watcher-based filesystem watching so the File Explorer
automatically reflects external changes (creates, deletes, renames)
without manual refresh.
2026-04-10 19:50:14 -07:00
Jinjing
c726878a27
feat: render markdown in worktree comment cards (#452)
Add CommentMarkdown component using react-markdown + remark-gfm +
remark-breaks to render rich formatting (bold, lists, code, links) in
sidebar worktree comment cards. Update height estimation to account for
markdown block elements and capped code block height.
2026-04-10 14:11:55 -07:00
Jinjing
bced9b5308
refactor: reorganize project structure for build assets and scripts (#419)
Move build resources to resources/build/, icon source files to
resources/icon-source/, scripts to config/scripts/, and patches
to config/patches/ for a cleaner top-level directory layout.
2026-04-09 12:28:52 -07:00
Jinjing
e5f75564af
feat: add mermaid diagram rendering and code block copy button (#418)
* feat: add mermaid diagram rendering and code block copy button

- Add mermaid library for rendering mermaid diagrams in markdown preview
- Create MermaidBlock component for diagram rendering
- Create CodeBlockCopyButton component for copying code blocks
- Extract CSS into separate files for better organization

* fix: address review findings

- Sanitize mermaid SVG output with DOMPurify before innerHTML assignment
- Remove dead `initialized` flag in MermaidBlock
- Serialize concurrent mermaid.render() calls with a promise queue
- Add .catch() handlers for clipboard write promises
- Skip CodeBlockCopyButton wrapper for mermaid diagram blocks
2026-04-09 12:21:11 -07:00
Jinjing
0204c36c0f
fix: xterm fit refresh, notification timing, and lint-staged config (#410)
- Move xterm FitAddon refresh() outside the resize conditional so
  sub-cell-width container shrinks don't leave blank content
- Defer startup notification to window 'show' event so the macOS
  permission dialog appears after the window is visible
- Add click handler on startup notification to open System Preferences
- Prevent GC of startup notification via activeNotifications set
- Fix lint-staged config: remove yaml/html/md from oxfmt pattern
  since oxfmt only supports json and css beyond JS/TS
2026-04-08 22:15:54 -07:00
Jinjing
8836bc5a6d
fix: prevent terminal scroll position corruption during resize (#398)
Patch @xterm/addon-fit to refresh the full viewport and restore scroll
position after reflow, batch ResizeObserver through requestAnimationFrame
to coalesce rapid-fire reflows, and recover terminal rendering after
WebGL context loss.
2026-04-08 20:17:02 -07:00
Neil
165502121b
feat: polish markdown preview and rich editor (#369)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-07 13:03:43 -07:00
Neil
03a7077597
feat: add pn tc command using typescript-native (tsgo) (#363)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 23:27:29 -07:00
Jinjing
a3a0ba24d2
fix: preserve rich markdown round-trips (#267) 2026-04-03 09:57:54 -07:00
Jinjing
22f916e421
feat: add rich markdown editor mode (#264)
* feat: add rich markdown editor mode

* fix: preserve rich search navigation focus
2026-04-02 22:53:47 -07:00
Matheus Nogueira
2ec433f6df
feat: add copy remote URL to line number context menu (#253)
* feat: add copy remote URL to line number context menu

Add 'Copy Remote URL' option to the line number gutter right-click menu,
allowing users to quickly copy a shareable link to a file and line on
GitHub, GitLab, Bitbucket, or other hosted git providers.

- Install hosted-git-info to parse remote URLs and generate browse URLs
- Add getRemoteFileUrl() to resolve file URLs using default branch
- Wire up IPC handler, preload bridge, and renderer UI
- Use ExternalLink icon to distinguish from path copy options

* refactor: use @types/hosted-git-info instead of custom type declarations

Replace the custom hosted-git-info.d.ts with the @types package from
DefinitelyTyped. Use a targeted cast for browseFile() which the @types
package doesn't include yet (stuck on v3 API).

* refactor: revert to local type declarations for hosted-git-info

The @types/hosted-git-info package is stuck on the v3 API and lacks
browseFile(). A local .d.ts is cleaner than casting around stale types.
2026-04-01 20:02:05 -03:00
Jinwoo Hong
831b65fe65
feat: restore terminal scrollback on app restart (#224)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-30 20:11:35 -07:00
Jinjing
e699bec46e
WIP: uncommitted changes before rebase (#168) 2026-03-28 11:59:55 -07:00
Jinjing
9c5a1f48bb
Add PR checks workflow and Vitest coverage (#97) 2026-03-24 20:53:38 -07:00
Neil
c0eaf328b2
Add right sidebar with file explorer, source control, and Monaco editor (#21)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 11:47:22 -07:00
Neil
234c422225
Improve update experience: toasts, graceful restart, sidebar indicator (#14)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 18:42:49 -07:00
Neil
9de1eb4318 Terminal fixes, sort fixes, flashbang fix 2026-03-21 14:44:45 -07:00
Neil
03ffdbde4a bump packages 2026-03-21 13:37:24 -07:00
Neil
2c89a02741 menu fix 2026-03-21 13:36:41 -07:00
Neil
b093a5ab96 terminal improvements 2026-03-21 13:18:13 -07:00
Neil
a3ef3a59d5 xterm 2026-03-21 11:34:11 -07:00
Neil
0cd33818f0
Fix PTY listener leak, use local restty with selection support (#5)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-20 10:14:20 -07:00
Neil
93996ddb09 some fixes 2026-03-17 11:10:39 -07:00
Neil
7f29249d48 Major features 2026-03-17 01:40:24 -07:00
Neil
8f5f07b221 Shadcn 2026-03-16 22:27:51 -07:00
Neil
2b8a543eff Basic terminal support 2026-03-16 21:53:49 -07:00
Neil
2d9df606c6 Replace eslint/prettier with oxlint/oxfmt, add pre-commit hooks
Swap out eslint + 6 plugins for oxlint and prettier for oxfmt (oxc toolchain).
Set up husky + lint-staged to run linter and formatter on pre-commit.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 20:38:27 -07:00
Neil
846a4dc380 bump 2026-03-16 20:32:48 -07:00
Neil
224ab0b140 Initial commit
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16 20:29:24 -07:00