feat(webview): change card open-in-editor, native action buttons, typed checkbox handlers (B3c v2-14, epic #1375) - #58
Open
easonLiangWorldedtech wants to merge 1 commit into
Conversation
…ed checkbox handlers (B3c v2-14, epic Zoo-Code-Org#1375)
Review statusThanks for contributing. This comment tracks the review sequence and the next action. Current step: Required CI passed. Waiting for automated review of the latest commit. If automated review does not start, a maintainer must restart it. Review-state labels are managed by this workflow; do not edit them manually. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
B3c v2-14 (epic Zoo-Code-Org#1375): ChangeCard L5 — open-in-editor action, native action buttons, typed checkbox handlers. Stacked on
feat/fws-v2-13-loc-i18n(base6eb159311).ChangeCard.tsx(+24):openFileInEditor(path)helper (normalizes the./prefix the same wayFileChangesPaneldoes; the extension host resolves the path against the current cwd via theopenFilewebview message),onJumpToFilethreaded intoCodeAccordion, and a native ghost<Button>(change-card-file-open-N, codicon-link-external) on compact no-diff rows so keyboard users can open the file (Enter/Space activate it for free).CheckpointSettings.tsx(+22/−7): typed checkbox handlers —CheckboxEventTargettype ande.currentTarget as CheckboxEventTarget | nullin all three checkpoint handlers,data-testid="per-write-checkbox". Byte-identical to the L5 artifact (502f8ca98) plus 3 directive lines.CheckpointSettings.spec.tsx(+19): two new enable-checkbox tests (check / uncheck, separate renders) + thesettings:checkpoints.enable.labeltmock entry.ChangeCard.spec.tsx(+62):chat:changeCard.openFilemock + 3 open-in-editor tests (prefix normalization, both row shapes) + thetitleassertion.SettingsView.spec.tsx(+6/−1): the VSCodeCheckbox mock'sonChangeforwardscurrentTarget: { checked: value }(the typed handlers readcurrentTarget).changeCard.openFilekey + the carollbackFailedretranslation ("La revertida ha fallat"→"La reversió ha fallat", a feature-string quality fix ported from L5).Base-parity decisions
Built from base→L5 residual diffs (L2→L5 diffs fail on base where L1→L2 drifted: the ca locale
rollbackFailedretranslation, What's New text).CheckpointSettings.tsxbyte-identical to L5; CP.spec zero diff (base mock == L5 mock; this branch keeps its 3 extrachangeCardDetailtests — a coverage superset).currentTarget; the L5 SV test rewrites are not ported (v2 keeps its own 3changeCardDetailtests).withinimport are retained (the sole 1-line vs-L5 delta).changeCardblock only — the L2→L5 What's New highlights hunk is skipped as stale marketing drift (same policy as v2-13's en skip).Stryker disable next-linedirective lines from v2-13 carry over inChangeCard.tsx(unchanged lines → no new suppression counts).Stryker (local diff gate, base
6eb159311)Run 1 was red with 10 blocking mutants (4 Survived + 6 NoCoverage):
CheckpointSettings.tsx:97×6 (all NoCoverage)restoreControlledStatere-asserts the controlledcheckedprop after each discrete event, so one render observes at most one toggle) + directiveCheckpointSettings.tsx:62,:79(OptionalChaining, Survived)currentTargetis never null in JSDOM, so the?.guard is unobservable in testsStryker disable next-line OptionalChainingdirectives (justified in-line)ChangeCard.tsx:332(StringLiteral, Survived)aria-labelonly, nottitletitleassertion in ccspecChangeCard.tsx:337(ObjectLiteral, Survived)style={{ fontSize: 13.5 }}Stryker disable next-line ObjectLiteraldirective (justified in-line)Final gate (head
b1110b454): 32 changed-code mutants → 28 Killed, 0 Survived, 0 NoCoverage, 0 timeout, 4 Ignored (= the 4 new directives).stryker-diffunit tests 27/27 (WIN32 spawn shim reverted before push, as usual).Gates
pnpm check-types11/11node scripts/find-missing-translations.js— all green (backend 7 files, frontend 9 files, package.nls 50 keys)viteston the 3 affected specs: 66/66--max-warnings=0), prettier clean