Commit Graph
118 Commits
Author SHA1 Message Date
kuddev df34a7d91a fix(updater): accept successful byte-identical same-version repairs 2026-09-23 13:27:36 +08:00
kuddev 97f829844d ci: stop repeating the native test matrix inside the stable release run
The release run re-invoked the Full native tests workflow and waited for it
before aggregating packages. That workflow already runs for every pull
request, merge group and main push, so the repeat added no coverage while
its macOS Intel job queued behind the Intel package build and became the
critical path (60 minutes end to end, packages done after 28). Aggregation
now depends on the packaging jobs only; each package still runs its own
runtime conformance and the aggregate still validates every report.
2026-09-22 21:46:08 +08:00
kuddev 102b9dc58a release: finalize Pebrel 1.9.0 notes and drop the ARM64 diagnostic probes
Align the 1.9.0 notes and CHANGELOG entry with the 1.8.2 format (prefixed
bilingual entries), record the session-breaker fix and the sponsor page,
and date the entry to the release day. Remove the ARM64 diagnostics
workflow and its two probe scripts from the release tree; the CI workaround
script stays because the release workflow runs it.
2026-09-22 21:14:58 +08:00
kuddev 41c5477c57 fix(gpui): stop unconfirmed agent restores from tripping the session breaker
snapshot_session() pinned boot_attempts at the launch value whenever any
pane still had an unconfirmed AI restore target, so the 1 Hz autosave never
reset the crash-loop counter. A Codex conversation waiting at its startup
prompts (hook review, directory choice, "open in another app") therefore
counted every normal exit as a failed start, and the third launch moved the
whole workspace to session.crashed.json.

The breaker only answers "did this launch reach its first autosave"; the
restore target is still persisted through session_agent() and resumed on the
next launch. Drop the coupling and the recovery_boot_attempts field, and add
a GPUI regression that restores an unconfirmed Codex target on the third
attempt and asserts the snapshot reports zero attempts.
2026-09-22 21:09:45 +08:00
kuddev f65ea59acf ci: keep Windows PowerShell alive on the ARM64 runner image 2026-09-22 14:26:16 +08:00
kuddev 415073bdd1 ci: probe which PSModulePath entry stalls PowerShell 5.1 on ARM64 2026-09-22 14:04:32 +08:00
kuddev 39cde202b0 ci: replay PowerShell 5.1 with the application environment on ARM64 2026-09-22 13:56:20 +08:00
kuddev aa7e91178a ci: boot explicit -e commands through the ARM64 package 2026-09-22 13:28:10 +08:00
kuddev 9daaec29d8 trace: report conout reader exit and empty readable wakes during boot 2026-09-22 12:17:14 +08:00
kuddev d3d2970a36 ci: replay resize and cursor probe in the ARM64 ConPTY smoke 2026-09-22 12:06:39 +08:00
kuddev cd0f4a6450 ci: probe the interactive PowerShell integration on ARM64 2026-09-22 11:47:48 +08:00
kuddev be63659b9d ci: diagnose Windows ARM64 conformance and key the platform golden by family 2026-09-22 11:06:12 +08:00
kuddev 2de347f57a release: prepare 1.9.0 notes and native Windows ARM64 packages 2026-09-21 22:47:29 +08:00
kuddev 8564334d66 Integrate complete 1.9.0 desktop changes and Windows session recovery
Include cloud settings, panel sizing, command groups, Agent integration settings and runtime input fixes from main. Bind native Codex recovery to the live pane process and preserve verified IDs; add CMD recovery choices and an explicit exit path when identity discovery fails.
2026-09-21 19:25:35 +08:00
kuddev c8c951bcda fix(conformance): wait for split shell startup before column probes
The resize fixture submitted the new pane's command before its shell produced initial output. Reuse the bounded boot precondition before the first sibling probe while preserving immediate post-resize measurements and strict geometry assertions. Cover delayed and silent startup with cleanup.
2026-09-21 17:05:43 +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 97985b73d5 fix(session): preserve native conversation identities during restore
Native Codex hooks may identify a running session/group instead of the
rollout thread accepted by resume. Retain transcript paths, normalize the
thread identity, and share the parser with session discovery and probes.

Keep recovery paths when a matching provider acknowledgement omits them,
retain native identity metadata while reducing large SSH/WSL events, and
show the existing failure message when a saved target has no resume command.
Add regressions for Windows/guest paths and multiple CLI startup flows.
2026-09-21 10:07:02 +08:00
kuddev 4baf1066da fix(agents): connect WSL hooks and make notifications actionable 2026-09-20 18:54:06 +08:00
kuddev 9024a11747 Merge PR #207 with compatible Pi loading and typed turn notifications 2026-09-20 15:20:07 +08:00
galact a001dba5d4 Merge upstream main into Pi turn outcome fix 2026-09-20 04:13:43 +08:00
Kuddev a455f7020e Merge branch 'main' into review/markdown-stress-20260919 2026-09-19 22:25:22 +08:00
kuddev 0bfed6db9f fix(hooks): recognize interpreted agents on BSD hosts
Apply the same provider argument rules to native and BSD process observations.
Resolve the platform temporary-directory alias in ordinary remote fixtures and
retain explicit symlink redirection tests.
2026-09-19 21:48:05 +08:00
kuddev 85e3af8ff3 test(markdown): distinguish resident private memory from commit 2026-09-19 21:36:53 +08:00
kuddev bb2dc13956 Merge main and scope terminal design records
Move the pending activity, input and SSH authentication decisions into their
module-owned notes under the current governance contract. Import the shutdown
draft type directly after the incoming drag-preview cleanup removes its parent
import.
2026-09-19 21:01:03 +08:00
kuddev 08a545d1ad test(markdown): verify foreground access after sampler startup 2026-09-19 20:51:42 +08:00
kuddev a44ca87c85 test(markdown): verify sampling coverage and keep failures compact 2026-09-19 20:38:14 +08:00
kuddev 446d09cdc1 docs(governance): layer agent rules and causal notes 2026-09-19 20:21:56 +08:00
kuddev 1e0a36b551 test(markdown): add an isolated memory and scrolling stress runner 2026-09-19 19:59:54 +08:00
kuddev bcbae7c5da fix(terminal): unify agent activity and restore multiline input
Keep hook authority separate from screen observations and shell completion.
Install owned native and remote bridges, preserve durable session recovery,
and support Shift+Enter for byte-stream clients without changing native keys.

Addresses #199.
2026-09-19 18:43:55 +08:00
galact 32c0ee4e1c fix: distinguish Pi turn outcomes in completion notifications 2026-09-19 03:13:31 +08:00
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