Skip to content

fix(platform): report custom instructions toggle failures - #4403

Queued
yannickmonney wants to merge 1 commit into
mainfrom
fix/custom-instructions-toggle-feedback
Queued

yannickmonney wants to merge 1 commit into
mainfrom
fix/custom-instructions-toggle-feedback

Conversation

@yannickmonney

@yannickmonney yannickmonney commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

A failed Custom instructions switch save previously only logged to the console. It now shows one destructive notification saying the preference was not changed and inviting a retry, with safe refusal details from failureDetail. The persisted switch value and instructions remain intact; successful saves still produce one success notification. New copy ships in EN/DE/FR, with de-CH fallback.

Verification:

  • 37 focused UI tests passed, including the real React Query mutation hook and adapter, rendered toast, localized 503 failure, unchanged value, retry, success, safe refusal details and fault-payload suppression.
  • 99 focused server/guard/locale tests passed; scoped TypeScript and type-aware oxlint passed; oxfmt, manual-register validation and targeted SAST passed (0 findings).
  • Chromium review harness confirmed visible failure feedback, retained value and successful retry, with no page errors. Backend requests were local fixtures; no production failure was induced.
  • Automation coverage paragraph added; git merge-tree against 74 open PR heads found no new conflicts relative to main.

CI status will be recorded below. Actions was reported stalled under incident 3q1yb5m7ltvb; no rerun will be requested. Independent nonauthor review remains required.

Closes #3665

Current-main rebase

Replayed the previously accepted source c5aa62f9a2aaea1a3b9083c684329f711bf37df5 onto main d1373d84cd56972501403f62145ec52e6f65d44a, including the merged shared CI repair in #4625. The accepted feature payload and all current-main changes are preserved in one atomic commit. Configured commit and conflict checks pass; earlier behavioral proof remains recorded above. All seven native required checks and full merge-group validation remain required for this new source.

Maintenance replay: preserves the accepted feature payload on main fd277c4, including merged #4649, #4650 and #4655. Retains the exact independently accepted one-line shared CLI inventory repair from #4654 (252f0df), pending native merge on main. The #4282 task-register union, where applicable, retains the accepted feature row and current-main rows. Existing behavioral evidence remains recorded above; no fresh full-feature/full-workspace or hosted-green claim. All seven native required contexts and full merge-group validation remain mandatory.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

TALE-204 / TALE-359 dispatch report — LIGHT phase

Implemented at 6b32b4ce3 in this PR; closes #3665. The toggle now reports one localized destructive toast from its awaited promise catch, saying the preference was not changed and inviting retry. failureDetail preserves safe refusal words without exposing fault payloads. Persisted switch/textarea state and the single success notification are preserved. EN/DE/FR copy ships with de-CH fallback.

Local validation passed: 37 focused UI tests, 99 focused server/guard/locale tests, scoped TypeScript, type-aware oxlint (2 files, 226 rules, no diagnostics), oxfmt, manual-register validation, conflict-marker check and targeted SAST (0 findings; the test file is excluded by existing scan rules). Chromium with local HTTP fixtures verified the actual component, reads, mutation hook and adapter: a 503 produces visible feedback, preserves the value, and permits a successful retry; no page errors. No production failure simulation is claimed.

Automation coverage was registered and git merge-tree checked 74 open PR heads against the main baseline: no new conflicts. Existing conflicts in other PRs were retained as baseline evidence.

Visual evidence: reduced-motion analysis scored 100 with no defects across 25 elements. Normal-motion analysis flagged the shared toast entrance animation (score 70, three jank observations, zero dropped frames). That evidence is retained; the shared animation was not changed in this focused fix.

Actions checks remain queued after watching; no rerun was requested (reported incident 3q1yb5m7ltvb). CI and independent nonauthor review remain outstanding. Workspace task tools returned unavailable at workspace_status, so this PR comment is the requested fallback report for TALE-204 and TALE-359.

@yannickmonney

Copy link
Copy Markdown
Contributor Author

Independent exact-head review — Codex #8, not author Codex #7.

PR #4403 / TALE-204 (closes #3665), reviewed head 6b32b4ce35af284d29c0ebfa8b975e841ed7ca5b.

Verdict: no blocking findings in the change; local scoped checks pass. CI remains pending, stalled under incident 3q1yb5m7ltvb; no rerun requested or performed.

The failed toggle now renders a destructive toast explicitly saying the preference was not changed. mutateAsync rejection is caught at the call site, while the existing hook's errorToast: false prevents a second toast. The controlled switch keeps its persisted value and text on failure, re-enables for retry, and successful retry receives exactly one success notification. The previous console-only toggle catch is gone. failureDetail preserves safe refusal words and suppresses fault payloads. EN/DE/FR and de-CH fallback are exercised; the added German/French copy uses du/tu and contains no ß.

Verification with existing dependencies and /opt/node/bin/node:

  • Preferences: 25 passed, two files, one worker. Initial font asset denial resolved with a review-only config extending the unchanged UI config with server.fs.allow.
  • i18n: 188 passed, five files, one worker.
  • Single-failure-toast and error-message-description guards: 75 passed.
  • Scoped type-aware oxlint: exit 0; scoped --type-check compiler diagnostics: exit 0.
  • oxfmt check: passed on both matched TSX files. YAML/register are outside the formatter's matched scope and were read manually.

Register integration: git merge-tree checked 54 locally available register-changing heads among all 80 open PRs. Recent fleet heads merge cleanly. There are 21 conflicts with older open heads, all reproduced against this PR's parent commit: none introduced here. Broad conflict blocks at #4319, #4276, #4266 and #4258 include the added paragraph; these older heads need their existing register conflicts resolved before integration. This is not a new blocker for #4403.

Limits: simulated transport and rendered DOM tests, no live backend or real-browser announcement check; full workspace types/suites remain CI-owned.

TALE-204 and TALE-359 (3729d02a-eb44-42b2-a68e-1bec2cebbcd6): this PR comment is the requested verdict fallback. The workspace service rejected workspace_status as unavailable/not_granted, preventing direct task lookup/commenting. No push, merge, rerun or status change.

@yannickmonney
yannickmonney force-pushed the fix/custom-instructions-toggle-feedback branch from 6b32b4c to 8148dac Compare October 9, 2026 02:14
@yannickmonney
yannickmonney force-pushed the fix/custom-instructions-toggle-feedback branch 5 times, most recently from 687ae95 to d5cb56a Compare October 9, 2026 15:23
@yannickmonney
yannickmonney added this pull request to the merge queue Oct 9, 2026
Any commits made after this event will not be merged.
@yannickmonney
yannickmonney added this pull request to the merge queue Oct 9, 2026
Any commits made after this event will not be merged.
@yannickmonney
yannickmonney removed this pull request from the merge queue due to a manual request Oct 9, 2026
@yannickmonney
yannickmonney force-pushed the fix/custom-instructions-toggle-feedback branch from d5cb56a to 0d48deb Compare October 9, 2026 23:51
@yannickmonney
yannickmonney added this pull request to the merge queue Oct 10, 2026
Any commits made after this event will not be merged.

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug(platform): custom instructions toggle failures give no visible feedback

1 participant