mirror of
https://github.com/warpdotdev/warp.git
synced 2026-06-17 10:32:53 +08:00
master
14 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
1ef622ea49 |
Productionize Linux jemalloc heap profiling (#12265)
## Description Productionizes automatic jemalloc heap profiling on Linux so high-memory events upload a heap profile to Sentry, matching what macOS already does. The key difference from macOS: **the Linux profile is uploaded unsymbolized (raw pprof)**. It carries sample addresses + memory mappings + the GNU build-id, and is symbolized **offline** against the debug-info file (DIF) the release pipeline already uploads to Sentry — the same artifact used to symbolize panics, matched by build-id. This lets the shipped binary stay fully stripped (no symbol-table bloat) while still producing usable, symbolizable profiles. ### What changed - **`app/src/profiling.rs`**: on Linux, dump the gzipped pprof **in-process** via `jemalloc_pprof` (`dump_jemalloc_pprof_bytes`) — no external `pprof` binary, HTTP server, or fixed port (essential for the headless remote-server daemon). The dump is now **raw / unsymbolized**. The external-`pprof` path is kept for macOS, where in-process symbolization stays. - **`app/Cargo.toml`**: build `jemalloc_pprof` **without** the `symbolize` feature, so `dump_pprof()` returns a raw profile instead of symbolizing in-process (in-process symbolization would have required keeping the symbol table in the shipped binary). - **`Cargo.lock`**: bump `jemalloc_pprof` / `pprof_util` to `0.8.2`. This is required: `0.8.2` writes a usable mapping range (`memory_limit = u64::MAX`), whereas `0.8.1` wrote `memory_limit = 0`, leaving pprof unable to bind sample addresses to the binary — so profiles would be unsymbolizable even with the correct DIF. (See this PR: https://github.com/polarsignals/rust-jemalloc-pprof/pull/31) - **`script/linux/bundle`**: enable `jemalloc_pprof,heap_usage_tracking` for the `dev` and `preview` channels, and keep the **normal strip behavior** (`--strip-all` for non-dev builds). The shipped binary stays small; symbols live only in the uploaded DIF. ### Symbolizing a Linux heap profile (offline, via the Sentry DIF) The release pipeline already uploads each build's debug-info file to Sentry (`script/sentry_upload_dif.sh`), keyed by GNU build-id. To analyze a `heap-profile.pb` from an "Excessive memory usage detected" event: ```bash # 0. Use the standalone pprof (the Go-bundled `go tool pprof` misreads the # build-id on large DIFs): go install github.com/google/pprof@latest # 1. Read the main binary's build-id from the raw profile's mappings: BUILD_ID=$(pprof -raw heap-profile.pb \ | sed -n '/^Mappings/,/^Locations/p' \ | grep -E 'warp-(dev|preview)' | head -1 | awk '{print $NF}') # 2. Download the matching DIF from the channel's Sentry project # (a read-only token is sufficient; dev -> warp-client-dev, # preview -> warp-client-preview): ORG=warpdotdev; PROJECT=warp-client-dev ID=$(curl -s "https://us.sentry.io/api/0/projects/$ORG/$PROJECT/files/dsyms/?query=${BUILD_ID:0:20}" \ -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" | jq -r '.[0].id') mkdir -p difs curl -sL "https://us.sentry.io/api/0/projects/$ORG/$PROJECT/files/dsyms/?id=$ID" \ -H "Authorization: Bearer $SENTRY_AUTH_TOKEN" -o "difs/${BUILD_ID}.debug" # 3. Symbolize + analyze (pprof matches the DIF to the profile by build-id): PPROF_BINARY_PATH=./difs pprof -http=: heap-profile.pb # flame graph / top / graph ``` The DIF carries `.symtab` + DWARF, so frames resolve to function names with file:line and inlined frames. (`addr2line -e difs/$BUILD_ID.debug <addr>` works as a lower-level alternative.) ### Notes / scope - No `pprof` binary is bundled on Linux (in-process raw dump). - `stable` Linux builds are unchanged (no profiling features) — enabling for `dev` + `preview` first. ## Linked Issue N/A — infrastructure/observability follow-up. ## Testing - `cargo check` + `cargo clippy -- -D warnings` for the app lib targeting Linux with `heap_usage_tracking` (exercises the new raw-dump branch); macOS host path also checked (validates the `pprof_binary_path` cfg-gate) — passes. - `./script/format` — no changes beyond the edited files. - End-to-end validated on a build sharing this exact code path - [ ] I have manually tested my changes locally with `./script/run` ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode CHANGELOG-NONE --- 🤖 Generated with Warp Agent Mode Conversation: https://staging.warp.dev/conversation/e6ba6343-1bb8-4cce-a155-6f0b453bad40 Plan: https://staging.warp.dev/drive/notebook/359wXMjgAzXhtOZfnSWUlA |
||
|
|
9093f116f9 |
Enable nld_classifier_v3 and nld_heuristic_v2 for all channels (#12273)
## Description Enables the v3 ONNX input classifier (`nld_classifier_v3`) and the v2 shell-command heuristic (`nld_heuristic_v2`) across all release channels: warpdev (`dev`), warplocal (`local`), `preview`,`stable`, and `oss` ## Linked Issue - [ ] The linked issue is labeled \`ready-to-spec\` or \`ready-to-implement\`. ## Testing - [x] I have manually tested my changes locally with \`./script/run\` Build-script-only change. Recommend validating with the bundle scripts' \`--check-only\` path per channel (e.g. \`cargo check\` with the resulting feature set) for preview and stable to confirm the v3 feature set compiles. ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode <!-- CHANGELOG-NONE --> Conversation: https://staging.warp.dev/conversation/130089d5-cc2a-4235-8af3-053718cd45c7 Co-Authored-By: Oz <oz-agent@warp.dev> --------- Co-authored-by: Oz <oz-agent@warp.dev> |
||
|
|
5967abf0be |
Warp Control CLI v2: contract and spec sync (#11772)
## Description Root branch of the Warp Control CLI v2 review stack. This PR establishes the contract, security model, and first working slice for controlling a running Warp instance through the standalone `warpctrl` CLI. Major components include: - A shared typed local-control protocol and exact-action allowlist used by both the app and CLI. - The initial `warpctrl` command surface for instance discovery, app metadata, tab creation, structured output, and shell completions. - An app-side control bridge with deterministic targeting, typed handlers, and exact-action authorization. - Per-instance filesystem discovery, an owner-authenticated Unix credential broker, and an authenticated loopback HTTP request path. - A protected Settings > Scripting enablement model, including isolated owner-only Linux fallback storage for the local-control setting. - Product, technical, and security specs describing the current foundation, trust boundaries, and requirements for future catalog expansion. The latest update simplifies credentials to authorize one exact action, clarifies the relationship between discovery records, broker sockets, and HTTP endpoints, and keeps the stronger Linux fallback behavior isolated from existing secure-storage consumers. Demo: https://www.loom.com/share/03740b8c7c40400f9c36eec41d8befca PR walkthrough: https://www.loom.com/share/b97c3204dcf04dac850aade7d596cc21 Walkthrough URL: https://e94574b9.warp-pr-walkthroughs.pages.dev/ ## Linked Issue - [ ] The linked issue is labeled `ready-to-spec` or `ready-to-implement`. - [x] Where appropriate, screenshots or a short video of the implementation are included above. ## Testing - [x] `./script/format` - [x] `cargo check -p warpui_extras -p settings -p warp --features warp_control_cli` - [x] `cargo clippy --workspace --exclude warp_completer --exclude command-signatures-v2 --all-targets --tests -- -D warnings` - [x] `cargo clippy -p warp_completer --all-targets --tests -- -D warnings` - [x] `cargo clippy -p warpui_extras -p settings -p warp --features warp_control_cli --all-targets -- -D warnings` - [x] `cargo nextest run --no-fail-fast --workspace --exclude command-signatures-v2 local_control` — 45 passed - [x] `git diff --check` and `git diff --cached --check` - [ ] Exact primary presubmit workspace Clippy command is blocked before linting because `command-signatures-v2` requires Yarn 4.0.1 via Corepack while this environment resolves Yarn 1.22.22; the workspace run excluding only that unrelated crate passes. - [ ] Linux-only secure-storage tests are not runnable on this macOS checkout because no Linux Rust target is installed. - [ ] I have manually tested my changes locally with `./script/run` ### Screenshots / Videos Demo and walkthrough links are included above. ## Agent Mode - [x] Warp Agent Mode - This PR was created and updated via Warp's AI Agent Mode ## Warp Agent artifacts Conversation: https://staging.warp.dev/conversation/8a7dca3a-a416-4378-bd49-f19fb78d6e2e Co-Authored-By: Oz <oz-agent@warp.dev> --------- Co-authored-by: Prince Pal <107296821+princepal9120@users.noreply.github.com> Co-authored-by: Jeff Lloyd <jeff@warp.dev> Co-authored-by: Oz <oz-agent@warp.dev> |
||
|
|
9de6d4dc64 |
dogfood nld_classifier_v3 (#12092)
## Description <!-- Please remember to add your design buddy onto the PR for review, if it contains any UI changes! --> - add nld_classifier_v3, bonded with bert_tiny_v3.onnx - let local/dev build subscribe to this feature for metrics comparison with V2, please checkout the PR https://github.com/warpdotdev/ml_models/pull/10 ## Linked Issue <!-- Link the GitHub issue this PR addresses. Before opening this PR, please confirm: --> - [ ] The linked issue is labeled `ready-to-spec` or `ready-to-implement`. - [ ] Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes). ## Testing <!-- How did you test this change? What automated tests did you add? If you didn't add any new tests, what's your justification for not adding any? Manual testing is required for changes that can be manually tested, and almost all changes can be manually tested. If your change can be manually tested, please include screenshots or a screen recording that show it working end to end. You can run the app locally using `./script/run` - see WARP.md for more details on how to get set up. --> - [x] I have manually tested my changes locally with `./script/run` ### Screenshots / Videos <!-- Attach screenshots or a short video demonstrating the change, where appropriate. Remove this section if it is not relevant to your PR. --> https://www.loom.com/share/c03060910bf54dc3bfc825948222fe32 improved user experience on this report https://warpdev.slack.com/archives/C08QY6ZBK2A/p1779810034759499; however, for this one, since `whoops` is a valid cli command, the classifier will still flicker as user typing going on ## Agent Mode - [ ] Warp Agent Mode - This PR was created via Warp's AI Agent Mode <!-- ## Changelog Entries for Stable The entries below will be used when constructing a soft-copy of the stable release changelog. Leave blank or remove the lines if no entry in the stable changelog is needed. Entries should be on the same line, without the `{{` `}}` brackets. You can use multiple lines, even of the same type. The valid suffixes are: - NEW-FEATURE: for new, relatively sizable features. Features listed here will likely have docs / social media posts / marketing launches associated with them, so use sparingly. - IMPROVEMENT: for new functionality of existing features. - BUG-FIX: for fixes related to known bugs or regressions. - IMAGE: the image specified by the URL (hosted on GCP) will be added to Dev & Preview releases. For Stable releases, see the pinned doc in the #release Slack channel. - OZ: Oz-related updates. Use `CHANGELOG-OZ`. At most 4 Oz updates are shown in-app per release. - NONE: Explicitly opt out of changelog inclusion. Use `CHANGELOG-NONE` for PRs that should never appear in the changelog (e.g. refactors, internal tooling, CI changes). This prevents the changelog agent from inferring an entry. CHANGELOG-NEW-FEATURE: {{text goes here...}} CHANGELOG-IMPROVEMENT: {{text goes here...}} CHANGELOG-BUG-FIX: {{text goes here...}} CHANGELOG-BUG-FIX: {{more text goes here...}} CHANGELOG-IMAGE: {{GCP-hosted URL goes here...}} CHANGELOG-OZ: {{text goes here...}} CHANGELOG-NONE --> |
||
|
|
a3d10ce673 |
[NLD ]enable nld v2 in preview (#11692)
## Description
<!-- Please remember to add your design buddy onto the PR for review, if
it contains any UI changes! -->
As titled
## Linked Issue
<!--
Link the GitHub issue this PR addresses. Before opening this PR, please
confirm:
-->
- [ ] The linked issue is labeled `ready-to-spec` or
`ready-to-implement`.
- [ ] Where appropriate, screenshots or a short video of the
implementation are included below (especially for user-visible or UI
changes).
## Testing
<!--
How did you test this change? What automated tests did you add? If you
didn't add any new tests, what's your justification for not adding any?
Manual testing is required for changes that can be manually tested, and
almost all changes can be manually tested. If your change can be
manually tested, please include screenshots or a screen recording that
show it working end to end.
You can run the app locally using `./script/run` - see WARP.md for more
details on how to get set up.
-->
- [x] I have manually tested my changes locally with `./script/run`
### Screenshots / Videos
<!-- Attach screenshots or a short video demonstrating the change, where
appropriate. Remove this section if it is not relevant to your PR. -->
## Agent Mode
- [ ] Warp Agent Mode - This PR was created via Warp's AI Agent Mode
<!--
## Changelog Entries for Stable
The entries below will be used when constructing a soft-copy of the
stable release changelog. Leave blank or remove the lines if no entry in
the stable changelog is needed. Entries should be on the same line,
without the `{{` `}}` brackets. You can use multiple lines, even of the
same type. The valid suffixes are:
- NEW-FEATURE: for new, relatively sizable features. Features listed
here will likely have docs / social media posts / marketing launches
associated with them, so use sparingly.
- IMPROVEMENT: for new functionality of existing features.
- BUG-FIX: for fixes related to known bugs or regressions.
- IMAGE: the image specified by the URL (hosted on GCP) will be added to
Dev & Preview releases. For Stable releases, see the pinned doc in the
#release Slack channel.
- OZ: Oz-related updates. Use `CHANGELOG-OZ`. At most 4 Oz updates are
shown in-app per release.
- NONE: Explicitly opt out of changelog inclusion. Use `CHANGELOG-NONE`
for PRs that should never appear in the changelog (e.g. refactors,
internal tooling, CI changes). This prevents the changelog agent from
inferring an entry.
CHANGELOG-NEW-FEATURE: {{text goes here...}}
CHANGELOG-IMPROVEMENT: {{text goes here...}}
CHANGELOG-BUG-FIX: {{text goes here...}}
CHANGELOG-BUG-FIX: {{more text goes here...}}
CHANGELOG-IMAGE: {{GCP-hosted URL goes here...}}
CHANGELOG-OZ: {{text goes here...}}
CHANGELOG-NONE
-->
|
||
|
|
48ac96fa20 |
[Quality-543]Remove check_if_token_has_shell_syntax and pin threshold to 1 for nld_heuristic_v2 (#10846)
## Description <!-- Please remember to add your design buddy onto the PR for review, if it contains any UI changes! --> Implementation of improving heuristics: by allocating more traffic to nld new classifier; This should resolve misfires as shell for file path or url ## Linked Issue <!-- Link the GitHub issue this PR addresses. Before opening this PR, please confirm: --> - [ ] The linked issue is labeled `ready-to-spec` or `ready-to-implement`. - [ ] Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes). ## Testing <!-- How did you test this change? What automated tests did you add? If you didn't add any new tests, what's your justification for not adding any? Manual testing is required for changes that can be manually tested, and almost all changes can be manually tested. If your change can be manually tested, please include screenshots or a screen recording that show it working end to end. You can run the app locally using `./script/run` - see WARP.md for more details on how to get set up. --> `RUST_LOG=debug ./script/run --features nld_heuristic_v2` `RUST_LOG=debug ./script/run --features nld_classifier_v2, nld_heuristic_v2` - [x] I have manually tested my changes locally with `./script/run` ### Screenshots / Videos <!-- Attach screenshots or a short video demonstrating the change, where appropriate. Remove this section if it is not relevant to your PR. --> Test 543 misfire `read this https://trilogy-eng.atlassian.net/browse/epmlive-17588` - it should be true/shell in v1 and false/non-shell in v2 - with `nld_heuristic_v2` and `nld_classifier_v2`, we could see now classifier could classify this one to prompt <img width="2169" height="336" alt="image" src="https://github.com/user-attachments/assets/d6129bc0-dba6-4ecd-9aab-8f36c64f63c8" /> <img width="2158" height="543" alt="image" src="https://github.com/user-attachments/assets/fc698d9d-9cea-4be1-874f-32f881c6fe02" /> <img width="1315" height="187" alt="image" src="https://github.com/user-attachments/assets/ebc989de-f344-4ddb-82ae-a145f55766aa" /> <img width="2168" height="350" alt="image" src="https://github.com/user-attachments/assets/578eccb0-949d-4a1c-a394-ef95711c7af0" /> ## Agent Mode - [ ] Warp Agent Mode - This PR was created via Warp's AI Agent Mode <!-- ## Changelog Entries for Stable The entries below will be used when constructing a soft-copy of the stable release changelog. Leave blank or remove the lines if no entry in the stable changelog is needed. Entries should be on the same line, without the `{{` `}}` brackets. You can use multiple lines, even of the same type. The valid suffixes are: - NEW-FEATURE: for new, relatively sizable features. Features listed here will likely have docs / social media posts / marketing launches associated with them, so use sparingly. - IMPROVEMENT: for new functionality of existing features. - BUG-FIX: for fixes related to known bugs or regressions. - IMAGE: the image specified by the URL (hosted on GCP) will be added to Dev & Preview releases. For Stable releases, see the pinned doc in the #release Slack channel. - OZ: Oz-related updates. Use `CHANGELOG-OZ`. At most 4 Oz updates are shown in-app per release. - NONE: Explicitly opt out of changelog inclusion. Use `CHANGELOG-NONE` for PRs that should never appear in the changelog (e.g. refactors, internal tooling, CI changes). This prevents the changelog agent from inferring an entry. CHANGELOG-NEW-FEATURE: {{text goes here...}} CHANGELOG-IMPROVEMENT: {{text goes here...}} CHANGELOG-BUG-FIX: {{text goes here...}} CHANGELOG-BUG-FIX: {{more text goes here...}} CHANGELOG-IMAGE: {{GCP-hosted URL goes here...}} CHANGELOG-OZ: {{text goes here...}} CHANGELOG-NONE --> |
||
|
|
127b626bfd |
Fix onnx runtime incompatibility on new NLD classifier (#10932)
## Description <!-- Please remember to add your design buddy onto the PR for review, if it contains any UI changes! --> 1. re-enable nld_classifier_v2 to warplocal and warpdev 2. update bert_tiny_v2.onnx with a candle compatible model graph ## Linked Issue <!-- Link the GitHub issue this PR addresses. Before opening this PR, please confirm: --> - [ ] The linked issue is labeled `ready-to-spec` or `ready-to-implement`. - [ ] Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes). ## Testing <!-- How did you test this change? What automated tests did you add? If you didn't add any new tests, what's your justification for not adding any? Manual testing is required for changes that can be manually tested, and almost all changes can be manually tested. If your change can be manually tested, please include screenshots or a screen recording that show it working end to end. You can run the app locally using `./script/run` - see WARP.md for more details on how to get set up. --> - [x] I have manually tested my changes locally with `./script/run` ### Screenshots / Videos <!-- Attach screenshots or a short video demonstrating the change, where appropriate. Remove this section if it is not relevant to your PR. --> <img width="1280" height="132" alt="image" src="https://github.com/user-attachments/assets/5bdbc92a-311b-4c12-8628-bffe497b0a87" /> Now no more error message and we see the classifier result in debug log ## Agent Mode - [ ] Warp Agent Mode - This PR was created via Warp's AI Agent Mode <!-- ## Changelog Entries for Stable The entries below will be used when constructing a soft-copy of the stable release changelog. Leave blank or remove the lines if no entry in the stable changelog is needed. Entries should be on the same line, without the `{{` `}}` brackets. You can use multiple lines, even of the same type. The valid suffixes are: - NEW-FEATURE: for new, relatively sizable features. Features listed here will likely have docs / social media posts / marketing launches associated with them, so use sparingly. - IMPROVEMENT: for new functionality of existing features. - BUG-FIX: for fixes related to known bugs or regressions. - IMAGE: the image specified by the URL (hosted on GCP) will be added to Dev & Preview releases. For Stable releases, see the pinned doc in the #release Slack channel. - OZ: Oz-related updates. Use `CHANGELOG-OZ`. At most 4 Oz updates are shown in-app per release. - NONE: Explicitly opt out of changelog inclusion. Use `CHANGELOG-NONE` for PRs that should never appear in the changelog (e.g. refactors, internal tooling, CI changes). This prevents the changelog agent from inferring an entry. CHANGELOG-NEW-FEATURE: {{text goes here...}} CHANGELOG-IMPROVEMENT: {{text goes here...}} CHANGELOG-BUG-FIX: {{text goes here...}} CHANGELOG-BUG-FIX: {{more text goes here...}} CHANGELOG-IMAGE: {{GCP-hosted URL goes here...}} CHANGELOG-OZ: {{text goes here...}} CHANGELOG-NONE --> --------- Co-authored-by: oz-for-oss[bot] <277970191+oz-for-oss[bot]@users.noreply.github.com> |
||
|
|
9eef1d25cf | Revert back to NLD V1 on dogfood. (#10888) | ||
|
|
2c1f2042d1 |
Clean up nld flags (#10671)
Remove the NLD-related feature flags and fasttext classifier Now that the ONNX/BertTiny classifier is the production default: ## Description <!-- Please remember to add your design buddy onto the PR for review, if it contains any UI changes! --> ## Linked Issue <!-- Link the GitHub issue this PR addresses. Before opening this PR, please confirm: --> - [ ] The linked issue is labeled `ready-to-spec` or `ready-to-implement`. - [ ] Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes). ## Testing <!-- How did you test this change? What automated tests did you add? If you didn't add any new tests, what's your justification for not adding any? Manual testing is required for changes that can be manually tested, and almost all changes can be manually tested. If your change can be manually tested, please include screenshots or a screen recording that show it working end to end. You can run the app locally using `./script/run` - see WARP.md for more details on how to get set up. --> https://www.loom.com/share/2d0bc3c4834e43928356266039da1b40 - [x] I have manually tested my changes locally with `./script/run` ### Screenshots / Videos <!-- Attach screenshots or a short video demonstrating the change, where appropriate. Remove this section if it is not relevant to your PR. --> ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode <!-- ## Changelog Entries for Stable The entries below will be used when constructing a soft-copy of the stable release changelog. Leave blank or remove the lines if no entry in the stable changelog is needed. Entries should be on the same line, without the `{{` `}}` brackets. You can use multiple lines, even of the same type. The valid suffixes are: - NEW-FEATURE: for new, relatively sizable features. Features listed here will likely have docs / social media posts / marketing launches associated with them, so use sparingly. - IMPROVEMENT: for new functionality of existing features. - BUG-FIX: for fixes related to known bugs or regressions. - IMAGE: the image specified by the URL (hosted on GCP) will be added to Dev & Preview releases. For Stable releases, see the pinned doc in the #release Slack channel. - OZ: Oz-related updates. Use `CHANGELOG-OZ`. At most 4 Oz updates are shown in-app per release. CHANGELOG-NEW-FEATURE: {{text goes here...}} CHANGELOG-IMPROVEMENT: {{text goes here...}} CHANGELOG-BUG-FIX: {{text goes here...}} CHANGELOG-BUG-FIX: {{more text goes here...}} CHANGELOG-IMAGE: {{GCP-hosted URL goes here...}} CHANGELOG-OZ: {{text goes here...}} --> ## Reviewers @vorporeal @szgupta --------- Co-authored-by: Oz <oz-agent@warp.dev> |
||
|
|
f696f5b830 |
Revert "Fix schema generator binary recompilation during release bundling." (#9676)
Reverts warpdotdev/warp#9632 Will look at in the future. Currently causing dev build issues like https://github.com/warpdotdev/warp-internal/actions/runs/25187609052/job/73853657131 |
||
|
|
f61ef1dcd9 |
Fix schema generator binary recompilation during release bundling. (#9632)
## Description The release bundling workflow runs `prepare_bundled_resources` after the main `cargo build`, and that script in turn invokes `cargo run --bin generate_settings_schema`. Until now we passed neither `--features` nor `--target` to this run, so cargo's resolver-v2 saw a different per-package feature unification than the main build and recompiled every dependency whose enabled features differed (`rust-embed` with `debug-embed`, `warp_core`'s `release_bundle`, sentry, jemalloc, etc.). This added significant time to release builds and pulled in extra system dependencies (e.g. protoc) for jobs that should otherwise just be packaging the prebuilt binary. There was a secondary correctness issue: the schema generator iterates settings registered via `inventory::submit!`, and `#[cfg(feature = \"...\")]`-gated settings were silently omitted from the schema in any context whose feature set didn't match the main binary. The fix threads the build's feature set (and target, where applicable) through to the schema-generator invocation, and makes package selection explicit with `-p warp`. With matching features and target, cargo reuses the existing compilation artifacts; with the same feature set, the generated schema is also faithful to what the bundled binary actually exposes. ## Testing Verified `bash -n` syntax for the modified bash scripts and parsed the modified PowerShell files via `pwsh`. Bundling, schema generation, and CI behavior will be exercised by this PR's release builds. ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode [Conversation](https://staging.warp.dev/conversation/1bd5574f-df28-4c2e-867d-40d71ed7e827) |
||
|
|
929944198c |
Shrink binary size for the standalone oz cli (#9301)
## Description Reduces the `oz` CLI tarball size by adapting two techniques the WASM build already uses for the standalone CLI artifact. **Measured results**: | Platform | Before (gzipped) | After (gzipped) | Reduction | |---|---|---|---| | macOS aarch64 | ~120 MiB | ~48 MiB | **~−60%** | | Linux x86_64 | 121.5 MiB | ~49 MiB | **~−60%** | There are two primary changes: 1. No longer bundle any of the async assets into the headless binary (this drops ~57 MiB of incompressible PNG/JPG bytes from the binary) 2. Introduce a `release-ci` profile that uses `opt-level = s` and `lto = fat`. This mirrors the release profile we use on wasm. For the CLI specifically, this should be a no-op for user-perceived latency: `oz agent run` is wall-clock-dominated by network round-trips to the LLM API and file I/O, not by CPU-bound inner loops. The 5–15% slowdown that `-Os` typically incurs on tight numeric loops is invisible next to a multi-second model response, and a smaller binary actually loads faster on cold start. ## Agent Mode - [x] Warp Agent Mode - This PR was created via Warp's AI Agent Mode ## Changelog Entries for Stable CHANGELOG-OZ: Reduced the `oz` CLI tarball download size by ~60% on both macOS and Linux. --------- Co-authored-by: Oz <oz-agent@warp.dev> |
||
|
|
4a00689af9 |
Fix CI to work in the warpdotdev/warp repo. (#9226)
## Description A couple issues that needed fixing: * Using `--all-features` and `--all-targets` causes us to try to build the first-party binaries with embedded configuration, which isn't available from this repository. To unblock CI, we'll only run clippy on the default feature set for right now. * Similarly, testing compilation with release configuration was trying to build the `dev` channel; this switches that over to the `oss` channel. |
||
|
|
0dbd3d567a |
Initial public release of Warp.
Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b |