Release v13.6.0
This release improves how you steer large findings lists and repeat searches across sessions (multi-key sort, bulk JSON copy, and workspace-persisted recents). It tightens RTL behavior for stack toggles, adds cross-file CLI defaults you can commit in analysis_options.yaml, gives IDE troubleshooting clearer native-plugin-first guidance, and ships a verify-nls-keys check for Marketplace manifest parity. Score and dashboard consistency improvements from earlier work remain in place. log
Changed (Extension)
- Findings Dashboard consistency and run UX — score/toast regression nudges now use the same visible-findings basis as the dashboard (ending stale-history vs dashboard-empty mismatches), and the dashboard now shows an in-panel progress bar with duplicate-click guard plus an automatic full refresh after analysis completes; no action required.
- Findings triage ergonomics — you can Shift+click a second column header as a tie-breaker (labeled ① / ②), checkbox-select multiple findings, and copy the selection as JSON; large tables defer off-screen row work via
content-visibilityso scrolling stays smoother; recent text-filter queries now persist per workspace across reloads alongside the Known Issues catalog and Command Catalog search popovers; no action unless you routinely clear Workspace State intentionally. - Lints Config pack toggles RTL — the enable switch knob now tracks right-to-left layouts using logical positioning so the knob lands on the expected side; reload the dashboard if you switched UI direction mid-session; no YAML change needed.
- Manifest localization guard —
npm run verify-nls-keys(underextension/) asserts every%…%placeholder fromextension/package.jsonresolves inextension/package.nls.json, catching missing English strings before Marketplace packaging; contributors should run it after editing contributed labels or command titles. - More shipped UI locales filled —
package.nls.*andsrc/i18n/locales/*now include machine-translated copy forbn,fa,fil,he,id,pl,sw,th,tr,uk, andvi(plus corrections forde,nl, andrudependency-count wording); regenerate withSAROPA_I18N_MACHINE_TRANSLATE=1if you fork strings. Hebrew uses Google target codeiwin the generator. - Package Vibrancy freshness vs tree — new-version toasts patch the last scan so the tree and dashboard match the toast, rewrite the workspace startup fingerprint with that snapshot so VS Code reloads before the next full scan still show those versions, and reuse the last dependency graph for lightweight republish; no action required beyond normal Package Vibrancy use.
Changed
- Cross-file CLI project defaults —
dart run saropa_lints:cross_file …merges optionalsaropa_lints_cross_filesettings fromanalysis_options.yaml(shared excludes and heuristic/analysis toggles), with explicit CLI flags still applied on top; add that map once per repo if you reuse the same exclusions between engineers and CI; no Dart source change beyond refreshing config when adopting it. - Additional quick fixes —
avoid_redundant_semantics,require_baseline_text_baseline, andavoid_unconstrained_dialog_columnnow offer IDE fixes (remove redundantSemanticsaround anImagethat already hassemanticLabel, inserttextBaselinewhen using baseline cross-axis alignment, and addmainAxisSize: MainAxisSize.minforColumninside dialogs); apply only where the suggestion matches intent; no config change.
Maintenance
- Contributor planning docs — assorted
plans/*.mdchecklists (quick-fix, testing/release, stub tests, localization guide, severity follow-ups, cross-file CLI, UX backlog, rule-pack migration, comment coverage) were refreshed for clearer sequencing and sign-off trails; docs only, no shipped rule or extension behavior beyond what is listed under### Changed (Extension)above. - Maintainer tooling — the quick-fix audit script prints a stdout summary before writing the dated report file, and the bundled quality-gate example YAML documents recommended
new_*metrics with legacy-alias notes; no action unless you vendor that sample into your own CI gate. - Comment coverage CLI — the worst-files table uses an L/C column (physical lines per comment line, higher means sparser) instead of a percentage so maintainers spot thin files faster when running the comment-coverage script locally.