Repository navigation
feat(feedback): read preferences and honor rollout denials (API-855) - #755
Conversation
nansen-pr-reviewer summaryThe change adds a fresh account-preference read and rollout-denial handling, with schema, documentation, changeset, and regression coverage. The earlier uncertainty bug for HTTP 5xx responses followed by rollout denial is fixed, but a final exhausted HTTP 5xx response on the explicit-ID submit path still loses the uncertain-outcome classification and can encourage an unsafe new submission. Findings by Severity
Deterministic check: success — Found 1 finding(s) within acceptable thresholds Risk: 3/5 (Elevated) ✅ Auto-approved — Deterministic gates passed: severity thresholds met, recommendation "approve_with_comments", risk level 3/5 within threshold 3. Token usage: 48,991 input, 1,662 output, 8,883 cache read | Usage Guide Cooldown: for the next 10 minutes (counting from when this review finished), new pushes to this PR will not trigger another review — the next push after the window expires will. Need a fresh review sooner? Comment |
There was a problem hiding this comment.
✅ Auto-approved by Nansen review
Deterministic gates passed: severity thresholds met, recommendation "approve", risk level 2/5 within threshold 3.
- The deterministic severity check passed: No issues found
- Risk level 2/5 (Low)
- The model recommended: approve
Approval was decided by deterministic gates, not by the model. The model's recommendation can block auto-approval but never cause it.
Codier
left a comment
There was a problem hiding this comment.
Preserve receipt validation for feedback get and the earlier uncertainty warning after a rollout denial.
There was a problem hiding this comment.
✅ Auto-approved by Nansen review
Deterministic gates passed: severity thresholds met, recommendation "approve_with_comments", risk level 3/5 within threshold 3.
- The deterministic severity check passed: Found 1 finding(s) within acceptable thresholds
- Risk level 3/5 (Elevated)
- The model recommended: approve_with_comments
Approval was decided by deterministic gates, not by the model. The model's recommendation can block auto-approval but never cause it.
Codier
left a comment
There was a problem hiding this comment.
No further code changes requested.
There was a problem hiding this comment.
✅ Auto-approved by Nansen review
Deterministic gates passed: severity thresholds met, recommendation "approve_with_comments", risk level 3/5 within threshold 3.
- The deterministic severity check passed: Found 1 finding(s) within acceptable thresholds
- Risk level 3/5 (Elevated)
- The model recommended: approve_with_comments
Approval was decided by deterministic gates, not by the model. The model's recommendation can block auto-approval but never cause it.
Read the account's saved feedback preference with
nansen feedback preferences, in human or JSON form. Agents use a fresh read to decide whether to ask before reporting. The submit command stays noninteractive; lasting choices belong in Superapp settings.A
feedback_not_enabledrefusal stops automatic retries. Saved IDs and earlier uncertain outcomes remain available for recovery. No preference setter or admission check is added.API-855. The shared MCP reader ships in the companion PR.
Validation: current-head CI passed the full suite on Node 22 and 24. Node 22 reports 4,952 passed and 2 skipped across 116 files. The final local feedback suites passed 85 tests; lint passed. All 8 controlled CLI host scenarios passed: enabled, off, unconfigured, lookup failure, approval, refusal, host denial and inability to ask. Actual outgoing HTTP calls were observed against a local upstream.
BI: existing command success/failure events remain accurate. Preference values and report content are not recorded; no event schema changes.
AI execution metadata
gpt-6.1-sol, high. Session01a1489c-d3e4-7fb0-b2f2-2243876cef76.claude-opus-5-5, high, verified from provider metadata. First pass sessionf9cb639c-d364-43cc-964b-35051a843e2a, input_tokens=40, cache_read_input_tokens=1478834, cache_creation_input_tokens=125319, output_tokens=22742, thinking_tokens=10833; total not supplied. Format correction sessionb1772f32-cb16-45f4-9cc6-b538155d155a, input_tokens=8, cache_read_input_tokens=37727, cache_creation_input_tokens=24694, output_tokens=4731, thinking_tokens=375; total not supplied. Distinct sessions; raw provider fields are preserved.grok-4.7-high-fast, high and fast, verified from provider metadata. First pass sessiond40ada9b-9c72-4045-9b6d-f66ae8b8640c, inputTokens=145903, cacheReadTokens=3624960, cacheWriteTokens=0, outputTokens=47460; reasoning and total not supplied. Final verification: session1402028a-5510-481d-ab0f-24474f8c144d, inputTokens=124182, cacheReadTokens=2174848, cacheWriteTokens=0, outputTokens=42677; reasoning and total not supplied. Final report format correction: session0b7fc41f-5ef5-480d-b95e-e3dd06d1c75a, inputTokens=26831, cacheReadTokens=107904, cacheWriteTokens=0, outputTokens=4941; reasoning and total not supplied. Usage is separate from the main-task snapshot.gpt-6.1-sol, high, 16 completed sessions shared across this PR set. Reported usage input_tokens=814864, cached_input_tokens=621312, cache_write_input_tokens=0, output_tokens=4651, reasoning_output_tokens=1621. Two initial timed-out starts supplied no completed-turn usage. These are policy tests, not writers or independent reviewers.