diff --git a/.github/workflows/spelling-review.yml b/.github/workflows/spelling-review.yml deleted file mode 100644 index 3adc7cdc8..000000000 --- a/.github/workflows/spelling-review.yml +++ /dev/null @@ -1,71 +0,0 @@ -name: Spelling review preview - -on: - pull_request: - paths: - - 'crates/ui-egui/src/proofing_pane.rs' - - 'crates/ui-egui/src/panes.rs' - - 'crates/ui-egui/src/lib.rs' - - 'crates/ui-egui/src/window_ui.rs' - - 'crates/ui-egui/src/control.rs' - - 'crates/ui-egui/src/documents.rs' - - 'crates/ui-egui/src/canvas.rs' - - 'crates/engine/src/cmd/review.rs' - - 'crates/engine/src/cmd/review/**' - - 'crates/engine/src/tests/**' - - 'crates/ui-egui/src/app.rs' - - 'crates/ui-egui/src/app/**' - - 'crates/ui-egui/src/canvas/**' - - 'crates/ui-egui/src/control/**' - - 'crates/ui-egui/src/panes/**' - - 'crates/ui-egui/src/dialogs/**' - - '.github/workflows/spelling-review.yml' - workflow_dispatch: - -permissions: - contents: read - -concurrency: - group: spelling-review-preview-${{ github.ref }} - cancel-in-progress: true - -jobs: - preview: - runs-on: ubuntu-24.04 - timeout-minutes: 45 - env: - CARGO_INCREMENTAL: '0' - steps: - - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 - with: - persist-credentials: false - - name: Install build and software-rendering dependencies - run: | - sudo apt-get update - sudo apt-get install -y --no-install-recommends \ - pkg-config libxkbcommon-dev libwayland-dev libx11-dev libxcursor-dev libxrandr-dev \ - libxi-dev libgtk-3-dev libfontconfig1-dev libfreetype-dev libvulkan1 mesa-vulkan-drivers - - uses: dtolnay/rust-toolchain@b725eda525362e7cf34af9a7243cac1e3f01a7ec - with: - components: rustfmt - - uses: Swatinem/rust-cache@d1527c8f67ef9af357290475d4af4b0fab8f12e0 - - name: Formatting - id: formatting - continue-on-error: true - run: cargo fmt --all -- --check - - name: Proofing navigation regression - run: cargo test --locked -p wordcraft-engine --lib spelling_review_dialog_navigation - - name: Correction form regressions - run: cargo test --locked -p wordcraft-ui-egui --lib spelling_review_dialog -- --skip preview - - name: Render light and dark correction forms - run: cargo test --locked -p wordcraft-ui-egui --lib spelling_review_dialog_preview -- --ignored --nocapture - - name: Save visual review artifacts - if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 - with: - name: spelling-review-preview - path: crates/ui-egui/spelling-review-*.png - if-no-files-found: error - - name: Require formatting success - if: steps.formatting.outcome != 'success' - run: exit 1 diff --git a/docs/spelling-review.md b/docs/spelling-review.md index 383031a23..385f66018 100644 --- a/docs/spelling-review.md +++ b/docs/spelling-review.md @@ -1,6 +1,6 @@ # Spelling and grammar task pane -> **Last updated:** 2026-10-31 · **Status:** synchronized with main `e6a5cd0`; validation of this evening synchronization SHA is pending. The parent `7c20316` passed its exact-head hosted gate, three-platform Printing and proofing preview; those results do not validate this synchronization. Historical status: historical three-platform checks passed; at f1264f3 the revised hosted gate, previews, Windows and Linux passed, while macOS remained unvalidated after pre-run cancellations. Later review corrections required their own hosted checks. +> **Last updated:** 2026-11-01 · **Status:** the feature-specific preview workflow is removed to follow the shared-CI policy. Rust implementation and tests are unchanged from `3abe452`; validation of this documentation/CI-only follow-up SHA is pending. Historical parent `3abe452` passed its exact-head hosted gate, three-platform Printing and proofing preview; those results remain attributed to that parent. ## Word reference @@ -35,7 +35,21 @@ The language-independent pane is rebased by a three-way merge with main `436d444 - Engine: one-/two-paragraph navigation, forward-only completion, explicit wrapping, exact spelling selection within overlapping grammar in either selection direction, explicit point lookup at the focus, absent/unparseable-position selection fallback, unchanged selection, correction and undo. - UI: direct suggestion correction and undo, Ignore Once progress/completion, Ignore All, personal dictionary addition, stale selection/body refusal, completion and Close, per-window isolation and document switching. - Offscreen: the ignored spelling_review_dialog_preview test writes light/dark PNGs for comparison with the recorded Word arrangement. -- Required gate: `cargo xtask ci`, plus the existing proofing preview workflow. Local attempt outcomes are recorded separately; an environment-limited local attempt does not replace hosted checks. No local compilation or test success is claimed for this synchronization. The coordinator must validate its new SHA; earlier hosted results validate their own SHAs only. +- Required gate: `cargo xtask ci`, through the repository's normal shared CI. The feature adds no workflow or shared-CI change. Local attempt outcomes are recorded separately; an environment-limited attempt does not replace hosted checks. Each follow-up SHA requires its own results. + +### Manual regression and visual review + +From the repository root, keep `Cargo.lock` and the existing dependency pins, use the normal native UI build prerequisites, and run: + +```sh +cargo test --locked -p wordcraft-engine --lib spelling_review_dialog_navigation +cargo test --locked -p wordcraft-ui-egui --lib spelling_review_dialog -- --skip preview +cargo test --locked -p wordcraft-ui-egui --lib spelling_review_dialog_preview -- --ignored --nocapture +``` + +The filters currently select two engine regressions, seven UI regressions and one explicitly ignored preview test. Check the reported counts; a successful command with zero selected tests is not verification. The last command needs a software or hardware graphics adapter supported by the headless renderer (for example Mesa Vulkan on Linux) and writes `crates/ui-egui/spelling-review-light.png` and `crates/ui-egui/spelling-review-dark.png`. Inspect both outputs and attach the resulting images manually to the review with their source SHA; the ignored test is not a new CI job. These synthetic English fixtures check pane geometry and actions, not an interactive Windows session or pixel-perfect Word identity. + +Historical images for `3abe452b7c26f624c09e0143dbee275776821dff` were generated by [run 41220215503](https://github.com/totoz64/wordcraft/actions/runs/41220215503), artifact `13049424116`, and inspected in both themes. They remain evidence for that exact parent SHA; removing the workflow does not relabel them as a render of this follow-up. The first light/dark artifacts at `20205a5` were inspected: the sentence frame shrank to its text and the unbounded suggestion list pushed actions below the viewport. The revised layout fills the pane width and scrolls the suggestion list after approximately three cards, keeping the actions below it visible. At `f1264f3`, the revised light/dark previews and full hosted gate passed; Windows and Linux UI checks passed, while macOS remained unvalidated after pre-run cancellations. Both PNGs were inspected, including the right-aligned Read Aloud control. The following review revision gives the exact selected spelling range priority over an overlapping grammar issue and requires new hosted checks. Exact pixel parity is not claimed. @@ -43,6 +57,7 @@ The first light/dark artifacts at `20205a5` were inspected: the sentence frame s | Date | Change | Summary | |---|---|---| +| 2026-11-01 | trivial | Remove the feature-specific preview workflow to follow shared-CI policy; preserve all Rust and tests, document three direct commands and manually attached exact-SHA images; fresh follow-up validation pending | | 2026-10-31 | trivial | Synchronize the existing Proofing pane with main `e6a5cd0` after the earlier `eecbb8f` synchronization; preserve explicit-position lookup, implicit selection, navigation, undo and per-window state; parent `7c20316` passed hosted checks, fresh evening-SHA validation pending, readiness unchanged | | 2026-10-30 | trivial | Merge the existing pane with main `3b7f7ed`; preserve explicit-position point lookup at the selection focus, implicit/parse-fallback selection priority and correction/undo; new follow-up SHA requires fresh hosted validation | | 2026-10-27 | trivial | Synchronize the existing pane with extracted engine/UI modules on main `436d444`; preserve selection/navigation/undo tests and compact menus, expand workflow path filters; new-SHA validation pending |