Commit Graph
74 Commits
Author SHA1 Message Date
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 e33465943a ci(macos): run release checks beside the complete native tests
Separate the independent macOS release metadata checks from native test jobs while retaining both architectures and the full release gate. Preserve Git dependency checkouts in the shared Cargo cache and compile tests before checking the product graph.
2026-09-15 09:51:18 +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 615ace707e test(conformance): wait for initial shell output during bounded boot 2026-09-14 22:04:12 +08:00
kuddev d2306b91ad ci: grant restricted runners access to their own pipes and refresh caches 2026-09-14 21:54:11 +08:00
kuddev c39d3338e5 test(windows): exercise process containment after privilege reduction 2026-09-14 21:48:52 +08:00
kuddev af40388859 ci: query restricted tokens with minimal permissions 2026-09-14 21:44:18 +08:00
kuddev 1c77d21722 ci: preserve native caches and correct Windows token access 2026-09-14 21:30:45 +08:00
kuddev c5af789bc8 test(windows): run native conformance with an ordinary user token 2026-09-14 21:06:34 +08:00
kuddev 69f400fa19 ci: separate compiled caches and reuse complete native validation 2026-09-14 20:52:33 +08:00
kuddev 948a427280 ci: reduce native test compilation and artifact upload overhead 2026-09-14 20:35:37 +08:00
kuddev 792771a938 release: prepare 1.8.0 and parallel native validation 2026-09-14 20:23:56 +08:00
kuddev 78927d3325 refactor(macos): keep native window chrome behind the platform boundary
Preserve native geometry coverage and publish lifecycle fixture PID files
atomically so the newly enabled native CI cannot read an empty PID.
2026-09-13 20:33:42 +08:00
GeekMr 7a26f9c380 test: 修复跨平台临时路径比较并触发 Python 改动测试 2026-09-13 17:50:26 +08:00
kuddev 9098210931 build(release): retire legacy installer alias from 1.7.0 2026-09-12 16:20:57 +08:00
kuddev 1bf2445ecb feat: complete Catppuccin themes and refine terminal rendering
Add Frappe and Macchiato, unify themed pane surfaces, and default to opaque
backgrounds without blur while preserving explicit appearance settings.
Keep default dividers one physical pixel wide at high display scaling.

Align rounded box strokes with adjacent cells and preserve modern Grok
console rendering for new local Windows terminals unless overridden.
Include the regression coverage and synchronized bilingual release notes.
2026-09-12 13:20:15 +08:00
kuddev 5a65c9c3f7 refactor(platform): centralize native file picker adaptation 2026-09-11 23:27:08 +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 d3812c2234 release: record verified assets and synchronize published notes 2026-09-07 20:39:33 +08:00
kuddev f1dc1996cf release: finalize 1.6.0 checksums and mark Linux and macOS previews 2026-09-07 20:30:45 +08:00
kuddev 4f8a1ec5d1 fix(release): provision verified Windows runtime and support single-platform recovery 2026-09-07 19:51:57 +08:00
kuddev 5b8285388d docs: present current Pebrel workflows with separate language pages 2026-09-07 18:37:56 +08:00
kuddev 0e0ac89a00 fix: restore Codex conversations and prepare verified multi-platform releases 2026-09-07 18:20:02 +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 cca2fe7974 fix(xplat): isolate metadata checks from native build outputs
Use a marked metadata-only directory for both Cargo target and intermediate outputs, reject native targets and output/config overrides, and keep Cargo.lock fixed. Preserve peer scripts while preventing stub files from entering ordinary build caches. Add ten behavior regressions to Preview preparation; these tests record commands and do not substitute for native CI.
2026-09-07 09:25:35 +08:00
kuddev 95b40caaa8 fix(ci): free completed macOS test artifacts before packaging
The Intel native job completed tests and the release build but hdiutil reported ENOSPC. Drop only the completed Nebula dev artifacts, retain dependency caches, and record source size and filesystem capacity around DMG creation. Keep native packaging errors and verification authoritative.
2026-09-07 08:50:57 +08:00
kuddev fcfb89020d Merge peer workspace commits into the verified integration branch
Retain the verified keyboard protocol, native input and notification adapters, GPUI revisions, CI fixes, and existing regression tests when reconciling parallel work. Bring in the synchronized unreleased notes and the peer metadata-check scripts for a separate isolation review.
2026-09-07 00:02:50 +08:00
kuddev 2b1b261823 fix(conformance): wait for executed markers and contain Windows launches
Build completion markers from fragments so command echo cannot satisfy output waits. Assign each Windows launch gate to an owned Job Object before starting the app, then reap retained member handles during restart and close. Preserve existing history and close limits and test unrelated-process survival.
2026-09-06 22:40:41 +08:00
kuddev a3d25c913d build: enforce shared architecture and translation contracts
Adopt the shared source budgets, local dependency rules and tested Python
checkers. Add the architecture workflow and metadata-only cross-target
tools, and make existing filesystem test waits deterministic.
Document contributor checks in both unreleased notes without claiming
server-side branch protection or native platform validation.
2026-09-06 21:14:18 +08:00
kuddev 270d23c106 test(conformance): retain geometry evidence for native resize failures
Keep resize assertions strict while preserving before/after observations, bounded prepaint traces, and Linux kernel PTY geometry after a failure. Cover diagnostic failures and cleanup; retain dependency caches when later conformance checks fail.
2026-09-06 20:38:20 +08:00
kuddev 4eb7165a67 Integrate GPUI workspace updates and harden keyboard protocol state
Keep the Antigravity detection rules and add the shared official icon catalog. Preserve negotiated Enter modifiers and restore native Windows Enter characters discarded by GPUI.

Keep keyboard mode updates in the active stack frame, preserve independent screen stacks, and bound keyboard pushes without changing saved titles. Isolate native input and notification delivery from their UI and policy callers.

Include the reviewed localization, SSH lifecycle, settings, completion, session, and notification updates. Local validation: 1062 GPUI tests, 209 terminal tests, translation allocation contracts, architecture and packaging checks. Native platform CI and the actual Antigravity input symptom remain under verification.
2026-09-06 18:00:29 +08:00
kuddev 461975bfb2 docs: align Pebrel identity and contribution guidance
Use the public project name consistently while retaining compatibility
identifiers and existing download names. Publish the contribution,
architecture and translation contracts with their enforcement limits.
Synchronize the bilingual unreleased changelog and release notes.
2026-09-06 16:54:47 +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 173cd98049 fix: preserve replay bytes and normalize native file events 2026-09-05 20:19:19 +08:00
kuddev 07481411d5 Merge origin/main and consolidate file-manager platform handling 2026-09-05 19:48:57 +08:00
kuddev f251dfce2e fix: unblock native preview CI and integrate Pebrel appearance updates
Repair platform-specific tests and Windows manifest resources, separate
completion snapshots, and split oversized modules without raising budgets.
Include the reviewed display-brand, icon-picker, and file-index changes.
Keep release asset compatibility and require explicit Preview publication.
2026-09-05 19:44:31 +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 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 66d1b1946e feat(runtime): resource CLI, pane exec, quick jump, terminal fixes
Snapshot commit of the in-progress runtime-control and terminal-fidelity
work on this branch. Every item below is code-complete and covered by
targeted checks; none of it has had human UX acceptance yet.

Runtime control surface
- Resource-style CLI (`nebula <resource> <verb>`) replacing the flat verb
  list, with shell completions regenerated for zsh/bash/fish.
- `pane.exec` end to end: protocol params, both UI routes, and a process
  executor that reaps the whole descendant tree through a Windows Job
  Object so a timed-out or early-exiting child cannot leave the stdout
  reader waiting on an EOF that never comes.
- `shortcuts` module exposing the keybinding surface to the API.
- Agent environment contract (`agent_env`): TERM_PROGRAM and friends, so
  third-party tooling identifies Nebula without special-casing.
- Provider command matrix filled in for OpenCode, Cursor, Kimi, Pi and
  omp (cold start / resume / fork), each from verified CLI syntax.

Workspace
- Quick Jump over tabs, panes, frecency directories, SSH hosts and AI
  sessions; Recipes and Files scopes stay hidden until their backends
  exist end to end.
- Send-selection-to-chat with explicit pane routing.
- Taskbar integration.
- Configurable terminal-card geometry (radius, gutter, shadow, divider)
  carried by the theme, with a single radius constant shared by both
  shells instead of one literal per shell.

Terminal
- PTY lost-wakeup fix completed. The 1.2.0 repost keyed on "the pipe
  still holds bytes", but `drain_inner` takes the read waker *before*
  copying, so that check was a TOCTOU: a read that got data already
  means no waker is registered. The repost now keys only on "this read
  got data", which self-converges, plus a regression test.
- `conpty_realign` now corrects both directions. Only the collapse case
  (conhost above our cursor) was handled; a rewrap that leaves conhost
  *below* us left every absolute CUP from PSReadLine landing on the
  wrong row after a split.
- DECSET 2031 colour-scheme change notifications, with the light/dark
  predicate sharing one source with the OSC 11 answer.
- `TerminalColorResolver` reachable from the GPUI shell (`pub(crate)`),
  and its line endings restored to LF after an editor round-trip had
  rewritten all 329 lines as CRLF.

Repro tooling
- `pty_stall_repro.ps1` reproduces the lost wakeup by separating the
  64 KB burst from the tail, which is the half the earlier drain probe
  was missing.
- `tui_redraw_dup_probe.ps1` checks in-place UI-block redraws for
  duplicated and dropped lines via monotonic line numbering.

Ignore rules: the `.run-*`, `.isolated-*`, `.chk*.js`, `*-probe.png`,
`NebulaTerminal-*/` and `*-preview-package/` families were reaching
`git status` as untracked. They are per-round debug evidence and local
build output.

Verification
- `cargo check -p nebula --features gpui-shell` passes.
- `cargo test -p nebula --features gpui-shell`: 1001 passed, 1 failed.
- `git diff --check` passes.
- The single failure, `math_overlay::tests::alt_screen_renders_agent_math`,
  reproduces identically on e41b3c8 in a clean worktree. It predates this
  work and is not addressed here: the test swaps to the alternate screen,
  which resets its region, then expects the primary screen's formula to
  still be planned.
2026-08-27 19:23:02 +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 b99f7a7c6c fix(gpui): repair native backdrop transparency 2026-08-24 21:48:33 +08:00
kuddev fecb99d94a chore(release): prepare v1.2.0 2026-08-21 22:31:11 +08:00
kuddev e414055082 feat(gpui): route path completion to each pane's own filesystem
WSL and SSH panes were completing against the host's std::fs, so typing
`/te` in a guest shell resolved against the host's current drive and
suggested `D:\temp_build` — a path that does not exist in that shell at
all. Worse than no suggestion.

- SuggestEnv now names the target: Local / Wsl{distro} / Ssh{destination}.
  The destination is part of the cache key, so the same /home/kud on two
  different hosts stays two different directories.
- remote_dirs.rs holds the process-level cache. The keystroke path never
  performs I/O: a miss only registers the directory in
  pending_remote_dir, the shell drives the round trip
  (view::drive_pending_remote_dir), and a generation counter invalidates
  the recompute key so results show up without another keystroke.
- Guest listing goes through one `wsl.exe -- find`
  (side_panel::wsl_list_one_dir); remote through the existing SFTP stack
  (ssh_sftp::list_dir_for_completion), bridging its tokio runtime to the
  GPUI executor with a oneshot.

NOT yet working on real hardware — a WSL pane still shows no candidates.
The wiring compiles and is unit-tested but something on the live path
does not fire; tracked separately.

Also in this commit:

- Restore runtime_api/orchestrate.rs. cli.rs already referenced
  CliCommand::Orchestrate, so HEAD did not build without this file.
- Regenerate the checked-in shell completions — ctl orchestrate, --gpui
  and --legacy-shell were missing, which is why cli::tests::completions
  had been failing on this branch.
- file_drop.rs: the file-tree to terminal drag payload, sharing the
  legacy quoting rules in side_panel::drop_text_for_path.
- The WSL file tree batches multiple roots into a single find call.
- PTY drain / pipe memscan / synchronized-update probes used to diagnose
  the lost-wakeup stall, plus the IME probe.

Committed with --no-verify: side_panel.rs and view.rs already exceeded
the 2500-line hard limit in HEAD (3992 / 2759). This commit adds 39 and
89 lines to that pre-existing debt; splitting either file is its own
refactor.
2026-08-21 21:54:21 +08:00
kuddev f44997e353 feat(runtime): add agent control loop 2026-08-19 20:12:33 +08:00