71 Commits
Author SHA1 Message Date
Kuddev bf2ed9af9b feat(mobile): integrate remote terminal, SSH and reader workflows (#343)
Integrate the Android client with native desktop pairing, remote terminal and SSH/SFTP sessions, keyboard controls, file reading and Agent conversations. Preserve authenticated connection ownership and per-device input permissions.

Validation: all ten required GitHub checks passed, including five native test platforms and both macOS release workspace checks.
2026-09-29 20:09:00 +08:00
WilliamWang1721 840252fc19 fix(windows): initialize color emoji compositing target 2026-09-27 22:05:18 +08:00
WilliamWang1721 a5536427b7 fix: keep component dependencies on the same GPUI revision 2026-09-27 17:32:13 +08:00
WilliamWang1721 cd8bf1fe0e fix(windows): pin GPUI color emoji enumeration fix 2026-09-27 17:30:27 +08:00
kuddev 4e4c27ca33 release: prepare 1.9.1 versions and bilingual notes 2026-09-24 11:15:10 +08:00
kuddev e0e180c2ac Merge current main into the 1.9.0 installation candidate
Retain the merged Markdown caret, selection and popup fixes and their pinned component revision alongside the session and highlight repairs. Update bilingual release notes for the integrated changes.
2026-09-21 16:04:07 +08:00
kuddev 7f195e809c chore(release): prepare Pebrel 1.9.0 for installation testing
Synchronize product crate versions, local dependency constraints, lockfiles, Windows resources and installer defaults. Add bilingual changes and verified contributor credits before CI packaging.
2026-09-21 15:08:43 +08:00
kuddev f91c88261c Stabilize Markdown editing, selection and popup geometry 2026-09-21 10:25:00 +08:00
kuddev 9d26aa9971 refactor(renderer): retire the unused legacy backend experiment
Remove the unconnected optional renderer, its feature and exclusive dependencies.
Retain the GPUI renderer graph and shared terminal/input models.
2026-09-19 20:14:06 +08:00
kuddev 65e67bbc0f release: integrate reviewed shell selection and prepare Pebrel 1.8.2 2026-09-17 22:13:47 +08:00
kuddev a8e64baf21 chore(release): prepare 1.8.1 metadata and release contracts
Synchronize package versions and bilingual notes with verified issue references.
Allow releases without PR contributors to omit that section, with positive and
negative format coverage as requested by the maintainer.

Keep native update process operations and default-shell resolution inside the
platform boundary. Preserve transaction authority in the updater and tighten
the platform condition budget to the measured 484.
2026-09-15 23:38:21 +08:00
kuddev 2229de571a merge: integrate saved workspace fixes after 1.8.0
Combine custom themes, updater proxies and native resource fixes with the published release source. Preserve independent interface and CJK fonts, selection visibility, saved-session startup and all existing release checks. Remove the retired terminal-view size exception after the capability extraction brought it below the standard limit.
2026-09-15 10:06:03 +08:00
kuddev edc79ce7f3 fix(updater): honor proxies for release checks and downloads
Resolve Windows system and environment proxies consistently for each update request, including redirects and exclusions. Support HTTP and SOCKS5 proxies and show actionable localized download failures.
2026-09-15 09:46:25 +08:00
kuddev 96d4cf0179 fix(windows): reclaim terminal resources and retain font owners
Persist the pending ConPTY lifetime, process snapshot and native font ownership fixes. Keep lifecycle regression tests and the Windows memory stress tool together with the ownership contracts.
2026-09-15 09:44:00 +08:00
kuddev 792771a938 release: prepare 1.8.0 and parallel native validation 2026-09-14 20:23:56 +08:00
kuddev 5a4d5a1908 merge: integrate PRs 110-112 and prepare Pebrel 1.7.0 2026-09-11 22:54:48 +08:00
kuddev 6b795d8ef8 merge: synchronize published fixes with local 1.7 work 2026-09-11 21:38:20 +08:00
kuddev b69545caa5 feat: add document workflows and configurable AI toasts 2026-09-11 21:23:07 +08:00
kuddev 5e3e54358c fix(ci): integrate Pebrel branding and size macOS disk images explicitly 2026-09-07 17:03:35 +08:00
kuddev 9cb027e2dd feat: complete Pebrel 1.6 branding and terminal workflows 2026-09-07 16:31:28 +08:00
kuddev acbabacf97 fix(preview): render macOS text and own complete POSIX launches
Enable the native font backend, fit initial windows inside the usable display, and require terminal text in installed macOS screenshots. Isolate POSIX launch groups and reject runtime endpoints outside the current launch so AppImage restarts cannot reconnect to orphaned instances.
2026-09-07 15:08:10 +08:00
kuddev bbb89a858c fix(gpui): adopt deferred X11 map-event processing
Advance the synchronized Zed and component pins to drain XCB-buffered map events on an explicitly awakened idle callback. Preserve checked request errors and defer processing until window construction releases the App borrow.
2026-09-06 22:40:42 +08:00
kuddev af7db8400d fix(gpui): adopt unavailable native handles for virtual windows
Use the narrowly patched GPUI TestWindow contract so macOS password input tests reach the existing no-native-handle path. Synchronize all application and component GPUI revisions, with the original baseline and removal condition recorded in Cargo.toml.
2026-09-06 20:38:19 +08:00
kuddev db0b62e9d6 fix: harden native shell and dialog validation
Measure multiline confirmation text with wrapped layouts and stabilize
dialog fixture focus before drawing. Isolate Zsh fixture startup from
host-global configuration while retaining user startup files.
Pin the UI consumer test-support patch without altering production
accessibility behavior, and test all shared confirmation dialogs in CI.
2026-09-05 22:04:06 +08:00
kuddev 0e6acf89e3 wip: prepare cross-platform previews and workspace improvements
Capture cross-platform startup, SSH credentials, preview packaging gates, and current SSH, answer-reader, math, and icon work. Remove unrelated product comparisons from public source comments.

Preview helper and shell tests pass locally. Native macOS/Linux build, test, and package validation remain pending in CI. Local Windows-only hooks cannot execute under WSL; content and workflow checks were run separately.
2026-09-05 14:51:55 +08:00
kuddev ab38dcdd71 release: prepare Nebula Terminal 1.5.0 2026-09-01 21:15:45 +08:00
kuddev bb291e8387 refactor: isolate gpui product shell for linux 2026-09-01 14:51:31 +08:00
kuddev 219dcb4d49 release: prepare Nebula Terminal 1.4.1 2026-08-30 20:27:26 +08:00
kuddev 69da167f65 release: prepare Nebula Terminal 1.4.0 2026-08-29 19:03:57 +08:00
kuddev 8f0e9c5c90 test(ssh): generate private key fixtures at runtime 2026-08-29 18:45:08 +08:00
kuddev 62e33dec83 fix(gpui): restore title bar panel clicks
Stop title bar panel controls from bubbling left mouse-down events into the draggable title bar, and cover the real GPUI hitbox path behind an explicit test-support feature.

Fixes #62
2026-08-28 08:23:49 +08:00
kuddev 8de58a373c release: prepare Nebula Terminal 1.3.1 2026-08-25 19:51:33 +08:00
kuddev 1960e4ae40 release: prepare Nebula Terminal 1.3.0 2026-08-24 23:01:52 +08:00
kuddev 23456e6d99 feat(gpui): wire product shell to v1.16.1
Pin the audited component math and GFM bridge, adapt the product shell to current GPUI and component APIs, and retain Nebula-owned resize, math layout, split-tree, and PTY lifecycle logic unchanged.

Keep the existing 480px confirmation width while allowing the new Dialog component to own placement, dismissal, focus, and keyboard behavior.
2026-08-24 16:21:47 +08:00
kuddev b765959933 chore: use owned GPUI dependency sources
Route Nebula and gpui-component's transitive Zed dependencies through the Kuddev forks at immutable v1.16.1 baseline revisions, while retaining the official commit as upstream provenance.

Locked metadata and the inverse dependency tree resolve one GPUI source; the application check remains unchanged at 65 migration errors and 348 warnings.
2026-08-24 15:09:13 +08:00
kuddev 10ed04c656 chore: pin GPUI v1.16.1 migration baseline
Pin Zed v1.16.1 and the gpui-component baseline to immutable revisions, align the Rust toolchain requirement, and regenerate Cargo.lock.

This is a dependency checkpoint only: application API migration and Nebula product patches remain for isolated follow-up commits, so gpui-shell is not yet expected to compile.

Committed with --no-verify because the repository line-count hook rejects generated Cargo.lock growth above 2500 lines; staged diff checks and locked offline metadata validation pass.
2026-08-24 13:36:35 +08:00
kuddev fecb99d94a chore(release): prepare v1.2.0 2026-08-21 22:31:11 +08:00
kuddev 03ea868aba feat(gpui): load markdown network images and land 1.1.0 shell parity
Register a ureq HttpClient so document tabs can fetch http(s) images. Also lands OSC 8/URL links, configurable terminal bell, and the rest of the 1.1.0 GPUI changelog.
2026-08-17 23:24:20 +08:00
kuddev 1ea860a2f7 fix(gpui): restore CC Esc and default-shell plus button
Win32 input emits Esc down+up with uChar=27 so Claude Code sees 0x1b;
kitty flags encode CSI 27u instead of a bare escape. The TABS plus
button now creates the configured default shell; the dots keep the
profile picker. Plus/dots use the old 20px chrome size.

Checkpoint remaining GPUI parity work in the tree (settings rewrite,
math overlay, SSH settings, SVN status).
2026-08-17 18:30:03 +08:00
kuddev 4dee70beb2 chore: checkpoint GPUI parity work 2026-08-16 19:46:45 +08:00
kuddev bd33d411dc checkpoint: preserve GPUI interaction fixes 2026-08-16 10:55:41 +08:00
kuddev dd76e797f6 feat(gpui): tab rename, color label, and single-tab export
三项标签元数据功能补齐旧壳能力边界:

• **F2 重命名**:侧栏行内编辑,Enter 提交 / Esc 取消 / 失焦提交。
  空串 = 恢复自动标签名(取 cwd 末段或文件名)。custom_name 与
  session v4 同字段,导出/恢复直通不需转换层。

• **标签颜色**:右键菜单尾部色板(首槽 A = 无色 + 7 枚品牌色,同色
  再点取消,当前色带选中环)。左侧栏行首画一条竖光条(4px 内缩、
  上下各留 7px、宽 2.5px + 圆角),默认标签不占视觉层级。旧壳
  context_menu::TAB_COLORS 原地复用(已设色的 tab 可迁移过来)。

• **导出单标签为工作区**:文件名取标签名,扩展名 .nebula-workspace.json,
  落盘走共享 v4 schema。只导出可恢复的终端标签(图片/文档/设置页
  从不进 session)。

**结构性约束**:tabs 与 tab_meta 必须同下标(长度一致),所有增删移
操作封口到 insert_tab_at / remove_tab_at / move_tab 三个 helper,
避免本地分叉时色条和名字错位到邻居身上。恢复期保留文件里的既有次序,
不套「新标签插入位置」策略;快照时从 meta 拿 custom_name/color。

右键菜单新增「导出为工作区…」「重命名」条目,action 字段只用来渲染
键帽(handler 存在时组件不会 dispatch 它),命令仍然作用在被右键的
那个 tab 上,而不是活动标签。菜单结构、分隔符与键帽对齐旧壳
display::context_menu 的 Tab 目标。

依赖 gpui-component 1b737db8(popover_shadow helper + Theme::shadow
门控),已推送 Kuddev/gpui-component nebula 分支并更新 Cargo.toml。
2026-08-15 21:07:19 +08:00
kuddev 7a1a954b11 checkpoint: preserve GPUI migration baseline 2026-08-15 16:11:20 +08:00
kuddev 7ab047ffbc feat(agent): add semantic detection and resumable sessions
Use declarative screen evidence beneath exact hooks so more AI clients surface working and blocked states, while safe resume and fork commands preserve agent sessions across restarts.
2026-08-13 23:48:30 +08:00
kuddev 3d738f6bd8 feat(backup): multi-protocol remote backup - folder/WebDAV/S3/SFTP push and restore-latest
设置→备份页正式开放,新增「远程备份」组:口令保护归档(密文出境)可推送
到本地/网络目录、WebDAV、S3 兼容存储(SigV4,路径式,AWS/MinIO/R2/B2)或
SFTP(复用已保存 SSH 主机与认证)。归档时间戳命名、每端保留最近 10 份,
「恢复最新备份」取回最新一份after口令确认落盘。WebDAV/S3 密钥入 Windows
凭据管理器;打包/Argon2/网络全在后台线程(NebulaBackupRemote 事件模型与
WebDAV 同步一致)。OAuth 三家(GitHub/Drive/OneDrive)暂缓。SigV4 附
AWS 官方文档签名值的 KAT 守护。

同车提交并行会话的收尾:托盘 attention(tray.rs 与 main/window_context 接
线)、GPUI 侧栏设置按钮、sync 同步集补 resume_ai/tray 键。工作区整体通过
722 项测试后提交。
2026-08-13 14:04:08 +08:00
kuddev ce140f526a feat(gpui): GPUI UI layer moves into nebula_app - one product, one codebase
Physically relocates the validated GPUI surface out of the lab crate into nebula_app/src/gpui_shell/ (git mv keeps history): the terminal stack (view/element/session/keymap/mouse_protocol/colors), the config bridge (nebula.toml + nebula_settings.txt + theme tables), the workspace view and the theme/prelude glue. Per product ruling, nebula_gpui is a scratch lab - it keeps only the component gallery (terminal preview removed) plus annotated copies of theme/prelude, and its Cargo manifest drops the terminal/settings dependencies. The gpui-shell feature is now self-contained: nebula depends directly on gpui/gpui-component/-assets (redirected to our fork by the root patch table), nebula-settings and futures; the nebula-gpui crate dependency is gone. Entry points: 'nebula --gpui' runs the GPUI main-window form on the main thread with winit never starting (P3 acceptance form; gates get re-measured here), and the NEBULA_GPUI_SHELL=1 dedicated-thread spike stays until the P3 takeover completes. Verified: cargo check on both crates, and nebula --gpui opens the Nebula main window with working tabs, ConPTY terminal, CJK text and powerline prompt (screenshot .tmp_parity_gpui-in-nebula.png).
2026-08-13 13:29:51 +08:00
kuddev 64c7c0ff1a feat(completion,settings,paste): dual completion styles, real color picker, screenshot paste over SSH
- completion: switchable inline ghost vs popup candidate list (history /
  frecency dirs / PATH commands / files, Up/Down + accept key + Esc);
  settings dropdown, palette action, persisted as completion_style
- settings: real HSV picker in the background-color popup (SV plane + hue
  bar, drag picks live, release persists); presets and hex stay in sync
- paste: image-only clipboard pastes a PNG path - local temp file, or SFTP
  upload to remote /tmp with the path typed back so
  codex/claude receive usable image paths on both sides
- fix: Explorer context-menu launches attach the resident instance and open
  a cwd tab (tab.new gains optional cwd) instead of a lone fresh window
- fix: default-shell dropdown hit-test counts imported profiles, making the
  trailing rows selectable again
- fix: git drawer works on dubious-ownership roots (wsl$ UNC, elevated) via
  per-invocation safe.directory; failures now logged instead of silent blank
- deps: gpui/gpui-component redirected to Kuddev forks pinned at the
  published base revs (patch playbook in the root manifest)
- wire the in-flight resume_ai toggle (display field, toggle, persistence)
  so the parallel session-restore work builds and tests stay green
2026-08-13 13:06:49 +08:00
kuddev 754c6b6889 feat(gpui): lib+bin dual form; in-process shell hook behind gpui-shell feature
nebula_gpui now exposes run_shell() as a library entry so nebula.exe can
host the GPUI UI layer on a dedicated thread (route C: one program, GPUI
provides the component layer). The standalone bin remains for development.
Off by default; enabled via the gpui-shell feature + NEBULA_GPUI_SHELL=1.
2026-08-13 00:29:39 +08:00
kuddev b5ff2de9b7 feat: merge nebula_gpui into the root workspace (crossfont 0.9.0 unblocks links)
- crossfont 0.8.1 -> 0.9.0: upstream bumped yeslogic-fontconfig-sys to ^6.0,
  aligning with gpui's zed-font-kit so a single 6.0.1 owns links=fontconfig.
- wayland CSD switches to the ab_glyph flavor so sctk-adwaita 0.10 stops
  pulling crossfont ^0.8 (and yeslogic ^5) back into the graph. Linux-only
  decoration text; Windows/macOS unaffected.
- Drop the workspace exclude and nebula_gpui's member-level lockfile; one
  lockfile now holds gpui 0.2.2 + crossfont 0.9.0. Both bins compile.
- ARCHITECTURE.md: the "unresolvable conflict" section now records the fix.
2026-08-12 23:52:53 +08:00
kuddev 6dbffab5ae feat: add AI provider settings and runtime control CLI 2026-08-11 15:19:11 +08:00