Commit Graph
88 Commits
Author SHA1 Message Date
kuddev 65e67bbc0f release: integrate reviewed shell selection and prepare Pebrel 1.8.2 2026-09-17 22:13:47 +08:00
Kuddev d61314b53e Merge branch 'main' into fix/shell-script-crlf-20260916 2026-09-17 10:12:53 +08:00
kuddev a7ba241eb5 ci: align preview runtime checks with native launch requirements 2026-09-16 20:55:25 +08:00
kuddev 572efd616b fix(shell): normalize embedded scripts before WSL injection 2026-09-16 20:54:19 +08:00
kuddev b211db7423 Merge remote-tracking branch 'origin/main' into ci/pr-tests-windows-arm64-20260916 2026-09-16 20:08:59 +08:00
kuddev facd48c1b2 ci: test every pull request and add native Windows ARM64 coverage 2026-09-16 19:40:32 +08:00
kuddev 15c18e697c fix(ci): keep native icons within the existing Windows boundary 2026-09-16 19:11:20 +08:00
kuddev 4d7303643c fix(ci): preserve released hook fixture bytes on checkout 2026-09-16 09:18:41 +08:00
kuddev dea3bcb0e4 fix(ci): restore portable session recovery checks 2026-09-16 08:54:37 +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 12f0ef278f fix(updater): preserve workspaces through verified installation handoff
Persist native AI recovery targets and per-pane launch contexts without treating
command submission as provider confirmation. Keep window partitions and the
active window in the durable session snapshot for immediate and scheduled updates.

Coordinate draft approval, snapshot writes, helper readiness, process exit and
installation with a committed transaction. Reverify packages and retain recovery
state on failure. Isolate acceptance installers from production integrations and
reject same-version setup that leaves the executable unchanged.

Validation: Windows GPUI suite 1552 passed; settings 55 passed; i18n 20 passed;
9 native helper scenarios; 77 installer migration checks and 41 static invariants.
Full interactive packaged upgrade acceptance remains separate.
2026-09-15 22:41:58 +08:00
kuddev c3203b632f Merge pull request #115: confirm restoring default settings [skip ci]
Record the remaining PR history after its feature was integrated.
Preserve the current workflow, which runs the complete workspace and
GPUI suite through scripts/ci_native_tests.py, and all later fixes.
Retain the shared-runner cold shell startup allowance of 60 seconds;
the generated output assertions are unchanged.
2026-09-15 14:04:10 +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 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
AnxForever 70b90f1880 feat(gpui): open a folder in a chosen shell from the Explorer menu
Right-clicking a folder has always opened the configured default shell —
usually PowerShell — with no way to ask for a WSL distribution instead.

- `--shell <id>` takes the same ids the `shell` setting uses (`pwsh`, `cmd`,
  `wsl:Ubuntu`, or an imported profile's settings id) and applies to the
  first tab this process creates. It carries an id rather than a path so
  every launch re-resolves the executable.
- The id travels both startup paths: the cold start (`run_shell` →
  `WorkspaceStartup::NewTerminal`), and the resident hand-off, which is the
  common case on Windows. `tab.new`/`window.create` gained an optional
  `shell` field, so clicking the menu while Pebrel is already running adds a
  tab to the existing window instead of starting a second process.
- An explicit request never silently degrades. An unresolvable id fails
  (`invalid_shell`, or a startup error before any window opens), and a
  `wsl:<distro>` id that the registry no longer lists still launches
  `wsl.exe -d <distro>`, leaving the complaint to the distribution itself.
  The `shell` setting keeps its documented fallback to the platform default.
- The winit shell rejects a shell request instead of ignoring it, so the
  caller falls back to a cold GPUI start and still gets the requested shell.

The resolution lives in a new `workspace::shell_launch` module: `main.rs` has
to validate `--shell` before it opens a window, and none of it needs
`NebulaWorkspace` state — `workspace.rs` is also at its line budget, which
this keeps from growing (`architecture/file-budgets.txt`).

The installer registers one context-menu entry per registered WSL
distribution (`PebrelWsl<n>`, skipping `docker-desktop*`) and the uninstaller
reclaims them by key prefix plus the command line it wrote. `--shell` is
passed before `--working-directory`: a drive-root `%V` ends in `\"`, which
would swallow the rest of the line if the directory came first. Both the
string and the order are pinned by installer assertions.

Docs (runtime API schema + control API) and shell completions are updated.
2026-09-14 23:07:38 +08:00
kuddev 615ace707e test(conformance): wait for initial shell output during bounded boot 2026-09-14 22:04:12 +08:00
GeekMr 7f454f88bc test: 为原生 shell 输出验证保留冷启动等待时间 2026-09-14 21:56:35 +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