Skip to content

Demote non-actionable AI blocklist error reports#13928

Open
warp-dev-github-integration[bot] wants to merge 1 commit into
masterfrom
factory/app-4877-ai-blocklist-report-errors
Open

Demote non-actionable AI blocklist error reports#13928
warp-dev-github-integration[bot] wants to merge 1 commit into
masterfrom
factory/app-4877-ai-blocklist-report-errors

Conversation

@warp-dev-github-integration

@warp-dev-github-integration warp-dev-github-integration Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

Description

Demote non-actionable report_error! calls in the AI blocklist audit scope to log::warn! while retaining Sentry reports for invariants, malformed state, and unexpected action-result types. The changes cover ten persistence/fallback hunks across block.rs, block/cli.rs, and block/view_impl/orchestration.rs.

Linked Issue

Testing

  • ./script/format passed.
  • CARGO_BUILD_JOBS=2 cargo clippy --workspace --exclude warp_completer --all-targets --tests -- -D warnings passed.
  • CARGO_BUILD_JOBS=2 cargo clippy -p warp --all-targets --tests -- -D warnings passed.
  • CARGO_BUILD_JOBS=2 cargo clippy -p warp_completer --all-targets --tests -- -D warnings passed.
  • ./script/presubmit reached test compilation, but rustc was SIGKILLed by sandbox memory pressure; no compiler diagnostic or test failure was reported.
  • No regression tests were added because this is a logging-only change with no behavior or UI changes.

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

CHANGELOG-NONE

Conversation: https://staging.warp.dev/conversation/b549f2aa-839e-4fa2-9915-055d961b4a2b
Run: https://oz.staging.warp.dev/runs/019f72ca-0c32-7832-a372-e6241f1247be
This PR was generated with Oz.

@oz-for-oss

oz-for-oss Bot commented Jul 18, 2026

Copy link
Copy Markdown
Contributor

@warp-dev-github-integration[bot]

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

Co-Authored-By: Oz <oz-agent@warp.dev>
@warp-dev-github-integration
warp-dev-github-integration Bot force-pushed the factory/app-4877-ai-blocklist-report-errors branch from 86944be to dda90d8 Compare July 18, 2026 01:57

@warp-dev-github-integration warp-dev-github-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Logging audit rationale for each demoted hunk is recorded inline below.

report_error!(
e.context("Failed to persist 'Show code suggestion speedbump' setting")
);
log::warn!("Failed to persist 'Show code suggestion speedbump' setting: {e:#}");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logging skill reserves report_error! for actionable invariants or bugs. This best-effort speedbump preference write is recoverable and the suggestion flow continues, so an expected persistence failure belongs at log::warn!.

report_error!(
e.context("Failed to persist 'Show code suggestion speedbump' setting")
);
log::warn!("Failed to persist 'Show code suggestion speedbump' setting: {e:#}");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The logging skill says recoverable persistence failures should be warnings when functionality proceeds. Failure to save this speedbump preference does not prevent the unit-test suggestion UI from being created, so it is non-actionable here.

ctx);
}
Err(e) => report_error!(e),
Err(e) => log::warn!(

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changing Agent Mode read-only command permissions is a best-effort settings write; the action handler continues after an external persistence failure. Per the logging skill, this degraded-but-handled path should emit a warning rather than a Sentry issue.

);
}
Err(e) => report_error!(e),
Err(e) => log::warn!(

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file-access permission update is recoverable and does not indicate an invariant violation. The logging skill classifies handled persistence failures with otherwise intact behavior as log::warn!, so this is intentionally demoted.

);
}
Err(e) => report_error!(e),
Err(e) => log::warn!(

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Codebase-search permission persistence is another best-effort user-setting write; the UI has already applied the selection and continues. Following the logging skill, an external/degraded persistence failure is warning-level, not actionable Sentry reporting.

ctx,
) {
report_error!(e);
log::warn!("Failed to persist Agent Mode write-to-PTY permission: {e:#}");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The write-to-PTY permission preference is persisted opportunistically while the CLI view continues. The logging skill directs expected or recoverable settings failures to log::warn! instead of report_error!.

ctx,
) {
report_error!(e);
log::warn!(

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A file-access permission persistence failure is handled without aborting the CLI interaction. This is the logging skill's non-actionable/degraded case, so a warning is appropriate and avoids a noisy Sentry issue.

ctx,
) {
report_error!(e);
log::warn!("Failed to persist Agent Mode write-to-PTY permission: {e:#}");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This CLI action updates a user permission setting through a best-effort store and continues on failure. Per the logging skill, recoverable external persistence errors belong at warning level rather than report_error!.

ctx,
) {
report_error!(e);
log::warn!("Failed to persist Agent Mode file access permission: {e:#}");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The file-access permission write is non-fatal to the CLI action and is already handled at this sink. The logging skill therefore calls for log::warn! for this expected/degraded persistence failure.

"Missing collapsible state for orchestration message",
extra: { "message_id" => ?message_id }
);
log::warn!("Missing collapsible state for orchestration message: {message_id:?}");

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The renderer explicitly handles missing collapsible state by returning None, and callers gracefully skip the body. This is the logging skill's handled fallback case, so it should be a warning rather than an actionable Sentry report.

@oz-for-oss oz-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

This PR demotes several non-actionable AI blocklist persistence/fallback error reports from report_error! to warning breadcrumbs while leaving existing invariant and unexpected-result reports in place.

Concerns

  • No blocking correctness, security, or spec-drift concerns found in the annotated diff.

Verdict

Found: 0 critical, 0 important, 0 suggestions

Approve

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@warp-dev-github-integration warp-dev-github-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

The implementation is limited to the requested ten report_error! demotions, preserves the existing invariant/malformed-state reports, and all GitHub checks are successful. The local presubmit completed formatting and clippy but the test-compilation stage was SIGKILLed by sandbox memory pressure, so CI is the authoritative test result here.

Concerns

⚠️ [IMPORTANT] The PR body is missing the required factory-agent metadata block. scripts/factory-pr-meta verify --pr 13928 --repo warpdotdev/warp finds zero valid blocks, so factory-state cannot resolve APP-4877 to this PR and the task↔PR mapping is not durable. Add exactly one metadata block for APP-4877 (including the repo and PR URL) to the PR description before acceptance.

Verification

gh pr checks 13928 --repo warpdotdev/warp: 20 successful, 6 skipped, 0 failing, 0 pending. git diff --check passed. No regression test is required for this logging-only, behavior-preserving change.

Verdict

Found: 0 critical, 1 important, 0 suggestions

Request changes

@warp-dev-github-integration

Copy link
Copy Markdown
Contributor Author

Addressed the review blocker from review 4727401391: the PR body now contains exactly one valid factory-agent metadata block for APP-4877, including the Linear issue, repository, PR URL, and Oz run. scripts/factory-pr-meta verify --pr 13928 --repo warpdotdev/warp reports valid=true, count=1; review rework cycle is 1.

@warp-dev-github-integration warp-dev-github-integration Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

Re-review after the prior rejection for a missing factory-agent metadata block. scripts/factory-pr-meta verify --pr 13928 --repo warpdotdev/warp now returns {"valid":true,"count":1}, so the APP-4877 ↔ PR #13928 mapping is durable and that blocker is resolved. The code is unchanged from the previously-reviewed head (dda90d8e): ten report_error!log::warn! demotions across block.rs, block/cli.rs, and block/view_impl/orchestration.rs, with invariant/malformed-state reports retained. Every demoted site is a best-effort settings/permission persistence write or a handled let … else fallback where the app continues with functionality intact, which the logging-and-error-reporting skill classifies as log::warn! rather than an actionable Sentry report. Each new log::warn! uses inline format args with {e:#} for the error chain, matching the workspace clippy config and the skill's preferred form, and the now-unused report_error import was removed from cli.rs.

Concerns

  • 💡 [SUGGESTION] (non-blocking) The PR body links the Linear issue but omits an "Originating thread" line for the Slack conversation the request came from. The factory PR convention prefers the originating thread link when one is available; adding Originating thread: https://warpdotdev.slack.com/archives/C0BDQDW8V5E/p1784336824289679 near the top of the body would fully satisfy it. Not a merge blocker.

Verification

gh pr checks 13928 --repo warpdotdev/warp: 20 successful, 6 skipped (conditional merge-queue/approval gates), 0 failing, 0 pending — Linux/MacOS/Windows tests and Formatting + Clippy on all platforms pass. Not a user-facing change (logging-level only), so no visual proof is required. No regression test is required for this logging-only, behavior-preserving change; the PR body states the rationale.

Verdict

Found: 0 critical, 0 important, 1 suggestion (non-blocking)

Approve

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant