Skip to content

fix(i18n): align Catalan strings with Softcatalà style guide - #3245

Merged
steipete merged 3 commits into
steipete:mainfrom
pmontp19:fix/ca-softcat-drift
Aug 28, 2026
Merged

fix(i18n): align Catalan strings with Softcatalà style guide#3245
steipete merged 3 commits into
steipete:mainfrom
pmontp19:fix/ca-softcat-drift

Conversation

@pmontp19

@pmontp19 pmontp19 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #2010 by @pmontp19. Update the Catalan catalog for newer settings and spend surfaces, remove an English Projects entry that shadows the translation, and align wording with the Softcatalà style guide.

Commands from the user to the computer retain the singular imperative; changed computer-to-user instructions and warnings use vós. Quoted action labels follow their actual Swift call sites. Plugin terminology, layout terminology, duration chips, apostrophes, and conditional defaults are made consistent. Newly translated iCloud/spend text preserves the distinction between measured amounts, estimates, and unavailable values.

Production changes remain resource-only. The Catalan catalog includes the translated Plugins sidebar title; the other 22 catalogs declare that existing lookup key with the same Plugins text they previously displayed through fallback. Maintainer additions synchronize current main, add representative catalog expectations and a direct sidebar-title regression, provide an opt-in isolated production-view renderer, and add changelog credit. No provider, authentication, sync, or hook runtime behavior changes.

Verification

  • plutil -lint Sources/CodexBar/Resources/ca.lproj/Localizable.strings: passed.
  • node Scripts/check-app-locales.mjs: passed, 22 catalogs / 1,487 English keys.
  • Independent raw-key and placeholder-multiset audit: no duplicate Catalan keys or format mismatches. Main has the duplicate Projects key; this branch does not.
  • Final-source focused rebuild and rendering run: 32 localization tests plus the opt-in renderer passed. All ten final light/dark PNGs are byte-identical to the independently inspected after-proof images. Five newly added translation expectations fail with main's catalog; the subsequent direct sidebar-title regression independently reproduced Plugins instead of Connectors before its correction.
  • make check: passed after the sidebar correction, zero strict SwiftLint violations. The new window-rendering helper was moved unchanged into a same-file extension to satisfy the test-class size limit; the final focused rebuild passed afterward.
  • Earlier validation encountered one unreproduced shell-harness failure; the traced standalone diagnostic (63 cleanup tests) and full repeat passed without code changes. The original failure did not retain enough detail to establish its cause.
  • Codex autoreview at the configured P0 threshold: no actionable findings; separate source review also checked register, call sites, and fixture isolation.
  • Final full local make test after the sidebar correction: passed, 956 selections / 80 groups, all first-pass successful, zero failures/retries/timeouts (1,807.9 seconds). The opt-in renderer was rebuilt and passed separately after the helper's mechanical relocation.
  • Exact-head CI passed all required checks, including both macOS test shards and Linux x64/arm64 builds. The path-gated musl job was skipped; GitGuardian also passed.

Rendering proof

Independent maintainer before/after evidence covers iCloud, Hooks, layout, and spend views with synthetic data in light and dark appearances. These are offscreen production-view renders, not a live app or VoiceOver session. No real provider account or credentials are needed. The proof comment explicitly describes the renderer's native-control and accessibility limitations.

The contributor's packaged-app screenshots remain in the original proof comment.

The sidebar follow-up proof adds independent before/after rendering of the actual SettingsSidebarView at its supported 200-point minimum width, using an owned invisible test window so the native List materializes. It does not open the plugin engine or execute plugins.

@clawsweeper

clawsweeper Bot commented Aug 27, 2026

Copy link
Copy Markdown

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

@clawsweeper clawsweeper Bot added merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. labels Aug 27, 2026
@clawsweeper

clawsweeper Bot commented Aug 27, 2026

Copy link
Copy Markdown

Codex review: needs maintainer review before merge. Reviewed August 28, 2026, 7:13 PM ET / 23:13 UTC.

ClawSweeper review

What this changes

Updates Catalan settings, iCloud, spend, layout, hook, and plugin labels; adds the missing sidebar key to every catalog; and adds localization regressions plus opt-in rendering coverage.

Merge readiness

⚠️ Ready for maintainer review - 2 items remain

Keep open: the current PR head has no actionable correctness or security finding, and supplied runtime screenshots plus maintainer verification support the localization changes. The remaining gate is the exact-head macOS test run still in progress.

Priority: P3
Reviewed head: db24e777488f29a0d6ead00b80268cb10f2cb8dd

Review scores

Measure Result What it means
Overall readiness 🦞 diamond lobster (5/6) Focused resource changes, catalog regression coverage, and visible packaged-app proof provide strong confidence; only the normal exact-head CI gate remains.
Proof confidence 🦞 diamond lobster (5/6) ✨ media proof bonus Sufficient (screenshot): Existing Settings localization resolves the Plugins sidebar key and pane labels from the resource catalog; prepared packaged-app screenshots show revised Catalan iCloud, spend, and menu output, and the owner’s exact-head sidebar render records the observed Connectors result with no plugin engine activity.
Patch quality 🦞 diamond lobster (5/6) No actionable review findings were identified.

Verification

Check Result Evidence
Real behavior Verified Sufficient (screenshot): Existing Settings localization resolves the Plugins sidebar key and pane labels from the resource catalog; prepared packaged-app screenshots show revised Catalan iCloud, spend, and menu output, and the owner’s exact-head sidebar render records the observed Connectors result with no plugin engine activity.
Evidence reviewed 6 items Sidebar lookup and Catalan value: The Settings sidebar resolves its plugin row through the existing Plugins lookup, and the Catalan catalog now supplies Connectors for that key.
Focused regression coverage: The added test asserts both the Catalan sidebar title and the matching provider-pane terminology under the language override.
Catalog compatibility invariant: The locale checker treats Catalan as a complete locale and compares every localized key’s placeholder signature with English, while the PR explicitly adds the new key to all catalogs.
Findings None None.
Security None None.

How this fits together

CodexBar resolves the selected app language through localized resource catalogs before rendering Settings panes and their sidebar. This PR changes the Catalan text returned for existing UI lookup keys without altering provider, sync, or plugin behavior.

flowchart TD
    A[Selected app language] --> B[Localized resource catalog]
    B --> C[Localization lookup]
    C --> D[Settings sidebar and panes]
    D --> E[Rendered Catalan labels]
Loading

Before merge

  • Resolve merge risk (P1) - The two exact-head macOS test shards were still running in the captured check state; merge after they succeed.
  • Complete next step (P2) - No repair lane is needed: the review found no introduced blocker, and the remaining action is the normal exact-head macOS CI gate.
Agent review details

Security

None.

Review metrics

Metric Value Why it matters
Localization footprint 23 catalogs touched; Catalan +102/-102, other catalogs +22 The cross-catalog key additions preserve the complete-catalog invariant while changing translated wording only in Catalan.
Production versus test delta localized resources +124/-102, tests +139 Most growth is focused regression and opt-in rendering coverage for the visible catalog changes.

Merge-risk options

Maintainer options:

  1. Decide the mitigation before merge
    Retain the complete-catalog key invariant and land the focused Catalan corrections once exact-head macOS CI passes.
  2. Pause or close
    Do not merge this PR until maintainers decide whether the risk is worth taking.

Technical review

Best possible solution:

Retain the complete-catalog key invariant and land the focused Catalan corrections once exact-head macOS CI passes.

Do we have a high-confidence way to reproduce the issue?

Yes. The base catalog visibly retained English iCloud and spend labels and lacked the sidebar Plugins key; the supplied maintainer evidence and direct regression identify the resulting Catalan fallback behavior.

Is this the best way to solve the issue?

Yes. Updating the existing Catalan lookup values and adding the missing shared key is the narrowest solution, while the explicit unchanged values in other catalogs preserve their prior fallback text.

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against 9769d7394926.

Labels

Label changes:

  • add rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • remove rating: 🐚 platinum hermit: Current PR rating is rating: 🦞 diamond lobster, so this older rating label is no longer current.

Label justifications:

  • P3: This is a localized wording and catalog-completeness repair with limited blast radius and no runtime behavior change.
  • rating: 🦞 diamond lobster: Overall readiness is 🦞 diamond lobster; proof is 🦞 diamond lobster and patch quality is 🦞 diamond lobster.
  • status: 👀 ready for maintainer look: ClawSweeper has no concrete contributor-facing blocker left for this PR. Sufficient (screenshot): Existing Settings localization resolves the Plugins sidebar key and pane labels from the resource catalog; prepared packaged-app screenshots show revised Catalan iCloud, spend, and menu output, and the owner’s exact-head sidebar render records the observed Connectors result with no plugin engine activity.
  • proof: sufficient: Contributor real behavior proof is sufficient. Existing Settings localization resolves the Plugins sidebar key and pane labels from the resource catalog; prepared packaged-app screenshots show revised Catalan iCloud, spend, and menu output, and the owner’s exact-head sidebar render records the observed Connectors result with no plugin engine activity.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. Existing Settings localization resolves the Plugins sidebar key and pane labels from the resource catalog; prepared packaged-app screenshots show revised Catalan iCloud, spend, and menu output, and the owner’s exact-head sidebar render records the observed Connectors result with no plugin engine activity.

Evidence

What I checked:

Likely related people:

  • steipete: Authored the plugin-pane localization history and the current-head sidebar correction, and owns adjacent settings, iCloud, and localization work. (role: recent area contributor; confidence: high; commits: edb4fe76400a, 01b6dad78274, db24e777488f; files: Sources/CodexBar/PreferencesView.swift, Sources/CodexBar/Resources/ca.lproj/Localizable.strings, Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift)
  • pmontp19: The earlier merged Catalan localization PR and its co-authored follow-up history establish direct ownership of the language catalog’s wording and coverage. (role: Catalan localization contributor; confidence: high; commits: a17a645018a7, dd7a22722df9; files: Sources/CodexBar/Resources/ca.lproj/Localizable.strings, Tests/CodexBarTests/LocalizationLanguageCatalogTests.swift)

Rating scale

Score Internal tier Crab rank Meaning
6/6 S 🦀 challenger crab Exceptional readiness
5/6 A 🦞 diamond lobster Very strong readiness
4/6 B 🐚 platinum hermit Good normal PR; ordinary maintainer review
3/6 C 🦐 gold shrimp Useful, but confidence is limited
2/6 D 🦪 silver shellfish Proof or implementation needs work
1/6 F 🧂 unranked krab Not merge-ready
N/A NA 🌊 off-meta tidepool Rating does not apply

Overall follows the weaker of proof and patch quality.
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics.

Workflow

  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

History

Review history (5 earlier review cycles)
  • reviewed 2026-08-27T15:42:36.871Z sha cf36275 :: needs real behavior proof before merge. :: [P2] Use the vós imperative for this usage-toggle label
  • reviewed 2026-08-28T07:38:53.470Z sha dd7a227 :: needs real behavior proof before merge. :: none
  • reviewed 2026-08-28T21:59:41.698Z sha 3527267 :: needs changes before merge. :: [P2] Localize the sidebar Plugins label consistently
  • reviewed 2026-08-28T22:17:35.713Z sha 3527267 :: needs changes before merge. :: [P2] Localize the sidebar Plugins label consistently
  • reviewed 2026-08-28T22:46:11.722Z sha db24e77 :: needs maintainer review before merge. :: none

@steipete steipete left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @pmontp19 for following up on #2010. The untranslated iCloud/spend labels and conflicting duplicate Projects entry are real catalog issues, and this remains a useful one-file maintenance change. I reviewed cf36275d7a8460912afaebcb71bbcda990778925 and the cited style guide.

The guide makes an important distinction that the current command-label changes miss. Under Formes verbals, commands from the user to the computer use the second-person singular imperative; instructions from the computer to the user use the plural/vós form. Converting action labels such as Copy Image, Save..., Install…, hooks_add_rule, and menu_bar_layout_conditional_save wholesale to plural is therefore not alignment with that rule. Please separate command/button labels from explanatory instructions and review the changed keys by their actual call sites. The vós changes in instructional text, such as the layout-editor footer, serve a different role and should not be reverted wholesale.

I also do not accept the bot's claimed visible regression at catalog line 315 as established. That full English key has no current Swift call site; the actual credits toggle uses show_credits_extra_usage_title and show_credits_extra_usage_subtitle in PreferencesMenuPane, and the title retains Mostreu. Editorial consistency for an unused key is a separate question, not evidence that the rendered toggle regressed. Please do not change it merely to satisfy that bot claim.

Before landing, we still need independently reproduced catalog/placeholder checks and representative before/after rendering of the changed Catalan surfaces, using synthetic data without account details. The bot's bootstrap failure happened before its intended locale-check command and is not evidence that the catalog check failed. No live provider account is necessary for this proof. This review is based on source and the style guide, not a claim that I executed your checks or validated the packaged UI.

Rebase of steipete#3245 feedback: split register by call site per guide §Formes verbals
(user->computer commands in 2nd-person singular, computer->user instructions in vós),
unify connector/token terminology, fix percentages/apostrophes/abbreviations,
translate previously-untranslated iCloud Sync and OpenCodex spend blocks,
remove duplicate Projects entry.
@pmontp19
pmontp19 force-pushed the fix/ca-softcat-drift branch 2 times, most recently from 946af1f to dd7a227 Compare August 28, 2026 07:32
@pmontp19

Copy link
Copy Markdown
Contributor Author

Thanks both — addressed everything:

Register direction (steipete): Re-split by call site per the guide's Formes verbals: commands from user→computer (buttons, menu items, action labels: Copy Image, Save..., Install…, hooks_add_rule, menu_bar_layout_conditional_save, …) stay in second-person singular; computer→user instructions (layout-editor footer, hints, warnings, dialog copy) keep vós. Instructional vós was not reverted.

Line 315 / orphan key: Aligned the unused long key to «Mostreu…» so the whole usage-toggle family is consistent (the two live keys were already untouched at «Mostreu»).

Also in this pass: rebased onto current main (b4694bd7e, catalog now 1486 keys), removed the duplicate Projects entry, fixed the fem. agreement in conditional defaults, unified 7d/30d/90d chips, and re-verified every quoted UI label against its real call site (L("Remove") → «Elimineu», etc.).

Validation (re-run on the new head dd7a22722): plutil -lint ✅ · node Scripts/check-app-locales.mjs ✅ (22 catalogs / 1486 keys) · make check ✅ (0 violations / 2005 files) · EN↔CA placeholder multiset audit 0 mismatches · register greps 0 informal imperatives on changed lines.

Rendering proof (packaged app, launched with -AppleLanguages (ca), local synthetic data, spend amounts redacted):

Before (current main catalog) vs after (this PR) on Usage & Spend — note the 7 d/30 d/90d chip inconsistency and the untranslated Input/Output/Cache write/Reasoning/Priced/List-price equivalent labels:

before
after

iCloud Sync pane (previously untranslated in every locale):

icloud

Menu pane — toggle titles keep the established «Mostreu…» convention with third-person descriptive subtitles:

menu

Menu bar layout editor (vós instructional hints, tokens, and conditional defaults with corrected agreement):

layout

Plugins (connector terminology, tu buttons + vós instructions, quoted «Instal·la…» matches the real button):

plugins

Hooks (tu button, vós warning):

hooks

No CHANGELOG entry added (left to maintainers, as noted in the PR body).

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Aug 28, 2026

Copy link
Copy Markdown

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event exact_review_queue).
Result: when the review finishes, ClawSweeper will create the durable review comment if needed or update the existing comment in place.

@clawsweeper clawsweeper Bot added proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: needs maintainer proof decision A ClawSweeper-authored PR needs a maintainer proof capture or override decision. and removed rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. labels Aug 28, 2026
Synchronize main, add representative catalog regressions and isolated before/after production-view rendering, and record contributor credit in the changelog.

Co-authored-by: Pere <pmontpeo@goil.app>
@steipete

Copy link
Copy Markdown
Owner

Independent maintainer verification of the revised Catalan catalog, retaining @pmontp19's translations unchanged.

The earlier command-versus-instruction finding is addressed: action labels retain the singular command form, while the changed instructions use vós. The quoted Remove action matches the actual existing localized label. I reproduced the duplicate Projects key on main and confirmed that the revised catalog has no duplicate keys and resolves it to Projectes.

plutil -lint and node Scripts/check-app-locales.mjs pass: 22 catalogs checked against 1,486 English keys. An additional raw-key and placeholder-multiset audit found no duplicates or placeholder mismatches in the revised Catalan catalog. Added seven representative translation expectations; five fail with main's catalog and all pass with this catalog. The focused run passes 31 localization tests and the opt-in screenshot test.

The images below are fresh, independent offscreen production-view renders, not a live app/VoiceOver or click-through session. Both variants use the same test harness and synthetic fixture; only the catalog changes. No real provider accounts, credential files, CloudKit engine, or hook execution were used. I inspected light and dark variants locally. Native controls omitted by the offscreen renderer and existing shortened palette labels are not claimed as validated. Offscreen Forms do not expose their children through the test's AX traversal; selected spend/layout labels do, and those are asserted separately.

Surface Main catalog Revised catalog
iCloud, 560 pt Main iCloud catalog Revised iCloud catalog
Spend, 680 pt; synthetic $12 fixture Main spend catalog Revised spend catalog
Hooks, 560 pt Main Hooks catalog Revised Hooks catalog
Layout editor, 560 pt plus padding Main layout catalog Revised layout catalog

Reproduce rendering with CODEXBAR_CATALAN_SCREENSHOT_DIR=/tmp/catalan-proof swift test --filter MenuLayoutScreenshotRenderTests/test_renderCatalanLocalizationProof, with real Keychain access suppressed and Codex credential-file isolation enabled. The test is opt-in and skipped by normal test runs. Changelog credit is included. Full local suite and refreshed exact-head CI remain landing gates.

@clawsweeper clawsweeper Bot added rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. and removed rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: needs maintainer proof decision A ClawSweeper-authored PR needs a maintainer proof capture or override decision. labels Aug 28, 2026
Declare the existing Plugins lookup in every catalog while preserving other locales fallback text. Cover the actual sidebar title and render its native List at minimum width using an isolated test window.
@steipete

Copy link
Copy Markdown
Owner

Fixed the final sidebar finding directly. SettingsPane.plugins.title requested L("Plugins"), but the key was absent from every catalog. The new direct-title regression reproduced Plugins instead of Connectors under Catalan. Adding the exact lookup key fixes that title; the other 22 catalogs explicitly retain their previous English fallback text, preserving their current UI and the complete-catalog key invariant. No production Swift code changed.

All 32 focused localization tests pass, including the actual sidebar-title assertion. Catalog checks now pass for 22 non-English catalogs against 1,487 English keys, with no Catalan duplicate keys or placeholder mismatches. The changelog includes the sidebar fix.

The actual SettingsSidebarView was rendered at the supported 200-point minimum width, with every provider disabled and no real account data. Its native List needed an owned, invisible test window to materialize; the window is closed after capture and never shown onscreen. Both light and dark results were inspected. The inactive appearance and unrelated pre-existing iCloud truncation are not new behavior from this patch; the changed Connectors row fits in full.

Before After
Catalan sidebar before Catalan sidebar after

The earlier head passed CI, but this correction gets a fresh full local run and exact-head CI before landing. No change request is being handed back to the contributor.

@clawsweeper clawsweeper Bot added rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. and removed status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. labels Aug 28, 2026
@clawsweeper clawsweeper Bot added status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. and removed rating: 🐚 platinum hermit Good normal PR readiness with ordinary maintainer review expected. labels Aug 28, 2026

@steipete steipete left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The earlier requested changes are addressed at db24e777488f29a0d6ead00b80268cb10f2cb8dd. I reviewed the command/instruction distinction against the actual call sites and reproduced the catalog, duplicate-key, and placeholder checks. The final sidebar finding is fixed at its resource lookup, with a direct regression and independent rendering of the actual sidebar. Maintainer before/after production-view rendering is posted, with the offscreen-rendering limitations stated explicitly.

The original catalog changes are preserved, regression expectations and opt-in synthetic rendering are added, and changelog credit is included. Final local tests/checks are green: all 80 full-suite groups passed without retries, and the final focused rebuild passed all 32 localization tests plus the renderer. No remaining actionable finding from source review or the configured Codex autoreview gate. Thanks @pmontp19!

Exact-head CI run 33217721500 passed all required checks, including both macOS shards and both Linux builds. The path-gated musl job was correctly skipped.

@steipete
steipete merged commit 8a20919 into steipete:main Aug 28, 2026
9 checks passed
@steipete

Copy link
Copy Markdown
Owner

Landed as 8a20919a3e0b, preserving @pmontp19's translation work and coauthor credit. The final sidebar finding was fixed directly before landing; no remaining change request was handed back to the contributor. The 0.56.1 Unreleased changelog includes the work.

Final verification on db24e777488f29a0d6ead00b80268cb10f2cb8dd:

  • make test: all 956 selections across 80 groups passed first try, with zero failures, retries, or timeouts (1,807.9 seconds).
  • make check: passed, zero strict SwiftLint violations across 2,037 files.
  • plutil -lint Sources/CodexBar/Resources/ca.lproj/Localizable.strings and node Scripts/check-app-locales.mjs: passed; 22 non-English catalogs match 1,487 English keys. The independent Catalan raw-key/placeholder audit found no duplicate keys or format mismatches.
  • Final rebuilt focused run: swift test --filter 'MenuLayoutScreenshotRenderTests/test_renderCatalanLocalizationProof|LocalizationLanguageCatalogTests', with CODEXBAR_CATALAN_SCREENSHOT_DIR set: 32 localization tests plus the renderer passed. Real Keychain access was suppressed and Codex credential-file isolation enabled. All ten light/dark output images exactly match the inspected after-proof.
  • Codex autoreview at the configured P0 threshold and separate source review: no remaining actionable finding.
  • Exact-head CI run 33217721500: all required checks passed, including both macOS shards and Linux x64/arm64. The path-gated musl job was skipped; GitGuardian also passed.

Pane before/after proof and actual sidebar before/after proof use synthetic data and offscreen production views. These are not a live app, VoiceOver, provider, or credential-access claim. Native-control/accessibility limitations are documented in the proof comments. An earlier unreproduced shell-harness check failure passed its traced diagnostic and full rerun; the final full suite required no retry.

After landing, main was fast-forward pulled and left clean; its tree exactly matches the tested head. No release was published as part of this landing. Thanks @pmontp19!

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

Labels

P3 Low-risk cleanup, docs, polish, ergonomics, or speculative feature. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient Contributor real behavior proof is sufficient. rating: 🦞 diamond lobster Very strong PR readiness with only minor maintainer review expected. status: 👀 ready for maintainer look ClawSweeper has no concrete contributor-facing blocker left for this PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants