14 Commits

Author SHA1 Message Date
Yunfan Yang
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
2026-06-08 18:20:33 -04:00
Evelyn Xu
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>
2026-06-08 20:24:39 +00:00
Zach Lloyd
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>
2026-06-06 18:02:09 +00:00
Evelyn Xu
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
-->
2026-06-02 16:58:04 -07:00
Evelyn Xu
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
-->
2026-05-27 08:04:40 -07:00
Evelyn Xu
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
-->
2026-05-14 20:18:49 -07:00
Evelyn Xu
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>
2026-05-14 14:29:30 -07:00
Suraj Gupta
9eef1d25cf Revert back to NLD V1 on dogfood. (#10888) 2026-05-13 21:11:03 -07:00
Evelyn Xu
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>
2026-05-12 18:16:00 +00:00
Kevin Chevalier
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
2026-04-30 16:42:57 -05:00
David Stern
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)
2026-04-30 15:57:17 -04:00
Aloke Desai
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>
2026-04-28 17:20:51 -05:00
David Stern
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.
2026-04-28 11:34:34 -04:00
David Stern
0dbd3d567a Initial public release of Warp.
Repo-Sync-Origin: warpdotdev/warp-internal@12af1d983b
2026-04-28 08:43:33 -05:00