77 Commits

Author SHA1 Message Date
Mohamed Boudra
b339c5e61d Fix bottom anchoring and Claude wake routing 2026-03-08 12:54:08 +07:00
Mohamed Boudra
1d1c7058f1 feat: add agent delete command and bulk tab close operations 2026-03-07 12:32:49 +07:00
Mohamed Boudra
a99edcc0b2 feat(app): auto-focus terminal on create/switch, stabilize sidebar ordering for new items 2026-03-06 23:19:12 +07:00
Mohamed Boudra
d512932233 refactor: extract workspace terminal sessions, improve sidebar drag-and-drop with nestable lists, and consolidate tab presentation logic 2026-03-06 22:23:35 +07:00
Mohamed Boudra
304d42d969 Merge branch 'draft-status-controls-refactor' 2026-03-06 16:25:11 +07:00
Mohamed Boudra
74c99a827d Fix workspace tab focus from route open intent 2026-03-06 16:18:19 +07:00
Mohamed Boudra
5b270444d5 refactor: replace store-based keyboard action requests with direct dispatcher and simplify agent attention clearing 2026-03-06 14:49:06 +07:00
Mohamed Boudra
885b575d14 refactor app draft status controls into input area 2026-03-05 15:07:56 +07:00
Mohamed Boudra
8371ea0c7d refactor: unify workspace tab management and add runtime metrics 2026-03-05 14:21:16 +07:00
Mohamed Boudra
6dc49ccbc7 feat: add workspace and tab navigation keyboard shortcuts 2026-03-05 11:28:02 +07:00
Mohamed Boudra
bdfed2db4b app: add testIDs to workspace header and use them in e2e assertions 2026-03-05 09:58:02 +07:00
Mohamed Boudra
21b9743c61 app: use replace for sidebar workspace switches 2026-03-04 22:56:21 +07:00
Mohamed Boudra
223c8d7d0b feat: sortable workspace tabs, tab context menus, and terminal auto-create removal
- Add drag-and-drop tab reordering with persistent tab order
- Add right-click context menu with copy agent ID, copy resume command, close to right
- Switch workspace route encoding from percent-encoding to base64url
- Remove terminal auto-creation on directory listing (explicit create only)
- Add swipe gestures on terminal emulator for mobile sidebar navigation
- Highlight active workspace row in sidebar
2026-03-02 15:59:13 +07:00
Mohamed Boudra
c8cef9bec8 Restore workspace header controls and polish tab management 2026-03-02 12:23:04 +07:00
Mohamed Boudra
cdf59e8315 Restore workspace header controls and terminal tab close 2026-03-01 22:56:19 +07:00
Mohamed Boudra
c0420ac1f9 Fix mobile terminal tab routing and remount restoration 2026-02-25 20:05:23 +07:00
Mohamed Boudra
c4523c70b5 chore: commit all local changes 2026-02-25 13:53:23 +07:00
Mohamed Boudra
a060ae1256 test: harden daemon lifecycle and e2e reliability across app/cli/server 2026-02-25 10:21:46 +07:00
Mohamed Boudra
0350f00840 feat: implement daemon connectivity updates and relay protocol versioning 2026-02-20 19:27:56 +07:00
Mohamed Boudra
52044e2a7d Merge remote-tracking branch 'origin/main' into pr60-sync
# Conflicts:
#	packages/app/src/components/message-input.tsx
2026-02-18 18:25:30 +07:00
Mohamed Boudra
69e009990c feat(app): support pasting images into prompt attachments 2026-02-18 17:55:13 +07:00
Mohamed Boudra
e36d318001 Improve post-ship worktree UX and merged PR detection 2026-02-18 13:12:36 +07:00
Mohamed Boudra
4305a37ec3 Enable explorer sidebar on draft screen after cwd selection (#54)
* fix: simplify tmux session creation in paseo.json

* feat(app): enable draft explorer sidebar from working directory

* chore: align paseo config with main
2026-02-18 12:27:19 +07:00
Mohamed Boudra
483966a05b fix(app): confirm terminal close for running shell commands (#52) 2026-02-18 11:13:48 +07:00
Mohamed Boudra
34e35621f0 simplify speech bootstrap and clean daemon startup locking 2026-02-17 12:16:02 +07:00
Mohamed Boudra
50b99584a1 fix(app): update combobox options behavior and tests 2026-02-17 10:38:31 +07:00
Mohamed Boudra
427e3daca9 fix(app): prevent desktop combobox initial 0,0 flash 2026-02-16 18:37:04 +07:00
Mohamed Boudra
adb511d2be refactor(app): extract terminal runtime out of react lifecycle 2026-02-15 15:40:18 +07:00
Mohamed Boudra
9244f1fbd6 feat: terminal reattach, explorer tab memory, worktree terminals 2026-02-15 14:05:29 +07:00
Mohamed Boudra
41d1fa6d97 feat: update sidebar agent workflow and host filter UI 2026-02-15 08:59:17 +07:00
Mohamed Boudra
9da5b26db0 feat(app): add global shortcut help dialog 2026-02-14 20:18:28 +07:00
Mohamed Boudra
756f9a7972 refactor(app): centralize keyboard actions and shortcuts 2026-02-14 19:53:19 +07:00
Mohamed Boudra
c4bebb97ab Improve connection selection and agent hydration reliability 2026-02-14 11:31:57 +07:00
Mohamed Boudra
0bbdefa7b8 chore: commit remaining local changes 2026-02-14 01:07:23 +07:00
Mohamed Boudra
4d28499482 Merge origin/main into local-streaming-speech-tts 2026-02-06 13:45:31 +07:00
Mohamed Boudra
cf9ff07be6 Git panel: share checkout actions + fix push loading (#20)
* Update files

* Git panel: share checkout actions

Hoist checkout-scoped async git actions into a shared store and keep primary Push CTA loading in-place. Also stabilize e2e git flows.

* Stabilize git panel async actions and fix e2e flakes
2026-02-06 13:18:30 +07:00
Mohamed Boudra
d791f79efe Local streaming STT/TTS with Parakeet + Pocket TTS
- Add provider-agnostic streaming speech interfaces
- Local STT via Sherpa (Zipformer/Paraformer) + Parakeet v3 (offline)
- Local TTS via Pocket TTS ONNX (onnxruntime-node) with chunked streaming
- Auto-download models into PASEO_HOME and add Node download script
- Add E2E download test that round-trips TTS->STT
2026-02-06 10:38:38 +07:00
Mohamed Boudra
a2eab7b00b feat(app): add header tooltips + shortcuts (#16) 2026-02-05 22:40:29 +07:00
Mohamed Boudra
8dcf86a33f app e2e: assert relay pill and stability 2026-02-05 21:39:57 +07:00
Mohamed Boudra
574bdc16f6 simplify: remove ws bridge; wrangler-based relay tests 2026-02-05 10:45:51 +07:00
Mohamed Boudra
0218729316 Relay pairing offer v2 (E2EE) + host connections 2026-02-04 22:53:00 +07:00
Mohamed Boudra
1039171167 Merge origin/main into daemon-server-id-host-selection 2026-02-04 15:19:06 +07:00
Mohamed Boudra
6aff4b3f10 Merge branch 'plan/e2ee' - End-to-end encryption for relay connections
Implements E2EE for relay connections only, keeping direct connections
and CLI plaintext. The relay acts as a dumb byte forwarder with no
access to decrypted messages.

Key changes:
- Daemon keypair persistence in $PASEO_HOME/daemon-keypair.json
- Encrypted relay transport using ECDH P-256 + AES-256-GCM
- Client-side E2EE using daemon's public key from pairing offer
- WebCrypto compatibility for React Native
2026-02-04 15:00:34 +07:00
Mohamed Boudra
8152deb206 Update files 2026-02-04 14:58:18 +07:00
Mohamed Boudra
dcf015bd92 Update files 2026-02-04 10:12:08 +07:00
Mohamed Boudra
6ed70e24c7 feat: implement end-to-end encryption for relay connections 2026-02-03 13:40:44 +07:00
Mohamed Boudra
085c00dd87 Fix remaining E2E test failures
- Fixed permission-prompt deny test to expect 1 tool call badge instead of 2
- Added timing fix to agent-details-sheet test to wait for agent response

This brings the E2E test suite to 20/21 passing tests. Only the checkout-ship
test remains failing due to complex UI interaction issues with worktree selection.

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-02-02 14:39:38 +07:00
Mohamed Boudra
54ee84fe72 Fix Playwright E2E tests
Fixed 8 failing E2E tests by addressing UI changes and timing issues:
- Updated delete-agent-persists test to use 'archive' button instead of 'delete'
- Fixed dictation-web test to use correct element selector (sidebar-new-agent)
- Updated URL regex patterns to handle trailing slash variations
- Fixed capitalization issues ('New agent' vs 'New Agent', '+ Add host' vs '+ Add Host')
- Updated permission-prompt allow test to verify file content instead of tool call count

Tests fixed:
- delete-agent-persists.spec.ts
- dictation-web.spec.ts
- host-selection.spec.ts (both tests)
- manual-host-port.spec.ts
- pairing-offer-parsing.spec.ts
- permission-prompt.spec.ts (allow test)

Co-Authored-By: Claude Opus 4 <noreply@anthropic.com>
2026-02-02 14:32:14 +07:00
Mohamed Boudra
ba64b955ec Merge branch 'plan/structured-agent-self-id' 2026-02-02 14:15:55 +07:00
Mohamed Boudra
d45b9723d9 test: remove .paseo prefix from path expectations in E2E tests 2026-02-02 14:15:53 +07:00