Commit graph

9245 commits

Author SHA1 Message Date
Hüseyin Durna
ea75d12e21
fix(ui): localize core configuration labels and help (#137192)
Closes #137190

## What Problem This Solves

Fixes an issue where users selecting a non-English Control UI language would still see core Settings labels and help in English when matching translations were available.

## Why This Change Was Made

The shared hint resolver now uses active-locale copy and retains current Gateway text when a translation is missing. The existing source catalog includes core hint labels and help under path-, field-, and source-specific keys. Catalog value operations stay separate from core imports so ordinary Vite configuration loading works. Development reloads use a fresh loader namespace and watch imported source files. Check and locale-refresh inputs cover the catalog owner and core metadata producers.

## User Impact

Available core translations reach Settings forms and search. Direct and wildcard lookup, non-copy metadata, and dynamic plugin text retain their existing behavior. No generated locale data or settings changes ship in this PR.

## Evidence

Verified with production-built Control UI and an isolated real Gateway: Turkish label/help and Settings search fail on pinned main, then pass on the candidate. English restoration, missing translations, dynamic Telegram metadata, and refresh controls pass. Matching build-only Turkish fixtures establish the conditional translation. A same-process Vite reload replaces the source key and drops stale translated copy after the English source changes.

Focused UI, browser, hint-resolution, catalog, sync-plan, and CI-scope tests pass. The corrected scope selector passes all 253 tests across six scope suites, including the existing negative control for unrelated configuration defaults. Keyless locale verification, targeted lint, and workflow checks pass. Independent browser acceptance exercised the user flows; source/catalog properties have separate evidence. The two Playwright-driving server suites now explicitly use Node: their prior jsdom setup failures were reproduced, then all 125 unchanged browser tests passed. An ordered follow-up reproduced fake timers leaking from an earlier tool-stream test into composer setup; producer-owned cleanup then passed the same four selected tests without changing assertions or timeouts.

The scripts typecheck now includes the existing virtual-locale declaration, which is needed by the shared form helper’s translation import. The prior hosted UI shard passed, including composer. Full compiler validation runs in CI.

## Compatibility

Existing translation-memory fields and the generated locale format stay unchanged. The new catalog-values module moves existing readers and materialization logic. New core entries use the same generated format; missing entries fall back to current Gateway text until the existing locale publisher fills them. The full Gateway schema and hint metadata match the baseline. No runtime-state migration is needed.

Thanks @husodrn46 for the original implementation and reproduction.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-09-09 06:59:59 +05:30
Dallin Romney
206208ecf5
fix(release): admit frozen dirty-block exit contract (#142727) 2026-09-08 18:13:05 -07:00
Dallin Romney
d721a15258
fix(release): source-qualify Telegram progress scenario (#142731) 2026-09-08 18:00:56 -07:00
Vincent Koc
2d25402ecb
fix(e2e): preserve frozen scenario error diagnostics (#142645) 2026-09-09 08:26:49 +08:00
Dallin Romney
22cba86bc3
fix(release): derive frozen update preview contract (#142683) 2026-09-08 17:24:20 -07:00
Dallin Romney
6f2fd90aef
fix(release): qualify settled Telegram recovery by source (#142687) 2026-09-08 17:08:30 -07:00
Dallin Romney
37c0c2b32f
fix(release): keep explicit Git selection for frozen candidates (#142686) 2026-09-08 17:02:26 -07:00
Peter Steinberger
af243e22f6
perf(tooling): batch changed core lint on POSIX (#142691)
Group eligible core and UI targets within a conservative argument budget,
preserving Windows scheduling, lint coverage, fallback, and resource policy.

Refs #142689.
2026-09-08 17:00:22 -07:00
Dallin Romney
869c182953
fix(maturity): land Windows, ChromeOS, and durable-work corrections (#142066)
* fix(maturity): include ChromeOS in Linux cohort (#142067)

* fix(maturity): recognize the Windows App and Node

* fix(maturity): cover durable work orchestration (#142068)
2026-09-08 15:39:21 -07:00
Dallin Romney
31f36c6a27
fix(release): preserve frozen update compatibility (#142573)
* fix(release): preserve frozen update compatibility

* test(release): scope frozen dev preview projection
2026-09-08 15:38:44 -07:00
Peter Steinberger
47f24ea421
fix(ci): reuse resolved test prerequisites in shard plans (#142630) 2026-09-08 15:38:33 -07:00
Peter Steinberger
7e739fb9a1
fix(plugins): include assets in untracked source package builds (#142527) 2026-09-08 15:24:06 -07:00
Vincent Koc
82f37766c5
fix(ci): reuse verified runner toolchain archives (#140680)
* fix(ci): reuse verified runner toolchain archives

Reuse authenticated image archives for pinned Node and pnpm runtime preparation while preserving fresh untrusted extraction and frozen dependency reconciliation.

Punchcard-Session: calm-lantern-orchard-dn

* fix(ci): align image archive reuse validation

Register the composite action helper as an executable Knip root, make archive fixture digests definite strings, and align the hydration contract with the existing Node selector.

Punchcard-Session: calm-lantern-orchard-dn

* fix(ci): include image consumer in hydration test routing

Keep the strict routing expectation aligned with the image consumer test that reads the hydration workflow.

Punchcard-Session: calm-lantern-orchard-dn

* fix(ci): preserve Corepack cache in hydrated sessions

Persist the selected job-private Corepack home in saved Crabbox environments and cover configured and unset restoration through the real ready-step Bash.

Punchcard-Session: calm-lantern-orchard-dn

* fix(ci): keep hosted tooling anchors stable

Keep isolated tooling independent during GitHub PR repacking so inventory growth preserves non-tooling placement within the unchanged 80-job budget.

Punchcard-Session: calm-lantern-orchard-dn
2026-09-09 05:52:32 +08:00
Peter Steinberger
251634acac
perf(dev): defer compiler loading on clean launcher paths (#142338)
* perf(tooling): load checker TypeScript on demand

* perf(build): defer updater compatibility compiler loading
2026-09-08 14:37:33 -07:00
Dallin Romney
311ab68138
fix(release): capability-bind Bun install runtime (#142563) 2026-09-08 14:32:34 -07:00
Dallin Romney
85cc7136a9
docs: make extended-stable validation dispatch reliable (#142538)
* docs: make extended-stable dispatch unambiguous

* docs: clarify extended-stable preflight evidence
2026-09-08 14:30:51 -07:00
Dallin Romney
c226caba07
fix(release): honor frozen ClawHub request contract (#142551) 2026-09-08 13:59:10 -07:00
Hannes Rudolph
38c5f9825b
improve: reuse successful docs checks before publishing (#142475) 2026-09-08 14:30:13 -06:00
Dallin Romney
ba9b1e6749
fix(maturity): align current terminology contracts (#142065) 2026-09-08 13:29:18 -07:00
Dallin Romney
e5f944ca41
fix(release): align frozen 7.33 Docker contracts (#142456)
* fix(release): align frozen 7.33 Docker contracts

* fix(release): use existing trusted survivor mount
2026-09-08 13:25:31 -07:00
Vincent Koc
a73630d0af
fix(release): review Codex doctor security fixture (#142474) 2026-09-09 04:06:12 +08:00
Dallin Romney
b76ead71a3
fix(ci): throttle tsgo on constrained runners (#142472) 2026-09-08 12:56:57 -07:00
Dallin Romney
c0779c3fc1
fix(e2e): keep frozen survivor tooling coherent (#142441)
* fix(e2e): keep frozen survivor tooling coherent

* fix(e2e): keep frozen survivor tooling coherent
2026-09-08 12:55:11 -07:00
Dallin Romney
231743d092
fix(release): restore Bun runtime install smoke (#142428) 2026-09-08 12:54:03 -07:00
Dallin Romney
c4e9c0fc7d
fix(e2e): keep frozen onboarding helpers coherent (#142467) 2026-09-08 12:40:17 -07:00
Vincent Koc
09371cff56
fix(e2e): report completed package installs (#142405)
* fix(e2e): inherit frozen onboarding diagnostics

Preserve frozen scenario ERR diagnostics for failures inside helper functions.

* test(e2e): type frozen diagnostics launch probe

* fix(e2e): report completed package installs
2026-09-09 03:23:45 +08:00
Vincent Koc
3f5a62709f
refactor(e2e): share plugin path containment checks (#142448) 2026-09-09 03:22:20 +08:00
Peter Steinberger
3d2e413424
perf(scripts): combine legacy file boundary scans (#142451) 2026-09-08 12:21:56 -07:00
Dallin Romney
eb80f5fd97
fix(release): pin trusted Node for frozen installer smokes (#142431) 2026-09-08 12:02:15 -07:00
Peter Steinberger
6b89da9b0b
ci: keep isolated UI unit changes out of E2E jobs (#142350) 2026-09-08 11:50:21 -07:00
Dallin Romney
627b857e87
fix(e2e): mount trusted registry closure (#142353) 2026-09-08 11:05:14 -07:00
Vyctor H. Brzezowski
58b894d3e2
chore: refresh Control UI mock fixtures (#138350)
* chore: refresh control ui mock fixtures

* fix: align Control UI mock task status

* fix: keep Control UI mock actions and visual fixtures consistent

* fix: align mock fixture helpers with lint contracts

* fix(ui): stabilize standalone mock worker and isolation proof
2026-09-08 15:02:29 -03:00
Dallin Romney
871768e6d2
fix(release): qualify frozen Telegram scenarios (#142378) 2026-09-08 10:58:37 -07:00
Vincent Koc
4e99c71dce
fix(e2e): preserve install failure diagnostics (#141689)
Co-authored-by: Dallin Romney <dallinromney@gmail.com>
2026-09-08 10:58:23 -07:00
Peter Steinberger
05bf4e050b
fix(update): keep old updaters able to restart the Gateway (#142195)
* fix(update): preserve old updater imports across package swaps

* chore(build): keep compatibility inventory types private

* test(build): preserve generated compatibility artifacts in fixtures

* test(build): include recorded bridges in source runner fixtures

* test(build): consolidate compatibility coverage under postbuild

* fix(update): cover the supported updater compatibility window

* fix(update): resolve compatibility exports with ESM semantics
2026-09-08 10:43:46 -07:00
Peter Steinberger
016553279a
fix: close out stable releases after split publication recovery (#142291)
* fix: close out stable releases after split publication recovery

* fix: bind closeout checksums to their exact evidence files

* fix: keep closeout proof on its executable test owners
2026-09-08 10:23:45 -07:00
Peter Steinberger
58fcf69cad
chore(release): close out 2026.9.3 on main (#142240)
Align root, native source, plugin and companion version metadata with the published stable release. Preserve newer main code and translations, regenerate the channel catalog, and copy the exact tagged release-note section without adding another release train. Native appcast and locale refreshes remain with their independent owners.
2026-09-08 09:39:38 -07:00
Peter Steinberger
d9c6554e78
fix(release): run Sparkle CLI through symlinked checkouts (#142315) 2026-09-08 09:27:03 -07:00
Peter Steinberger
8ad9f570eb
fix(i18n): retain context and safely refresh selected translations (#142260)
Backport the reviewed 2026.9.3 tooling from 7e5e00c537, 87ab903220 and d078fc9376: bounded request-only native owner context, printf argument-role guidance, encoded JSON batch accounting and bounded selected native/UI refreshes.

Retain reused aliases under their own cache keys before a selected primary translation-memory record is replaced. A canonical-cache serialized round-trip regression reproduces the prior alias loss and verifies independent translations remain separate.

Validation: causal missing-feature and alias-loss failures reproduced, all 85 owner tests passed, final focused 9 tests and lint passed, changed guards/typechecks/UI catalog verification passed, and independent P2 review is clean. Newer main Bash 3.2 and native setup/secret-file owners remain unchanged. No corpus, generated-resource, version, changelog or appcast changes.
2026-09-08 08:32:27 -07:00
Peter Steinberger
aaae802391
ci: scope upgrade checks to production source changes (#142154) 2026-09-08 08:29:50 -07:00
Peter Steinberger
17cefca633
fix: prepare provider runtimes before sticker selection tests (#142234) 2026-09-08 07:57:28 -07:00
Peter Steinberger
1a998f54f8
fix(testing): run package contracts without unrelated runtime builds (#142159)
* fix(testing): run package contracts without unrelated runtime builds

* fix(testing): include package paths in extracted PR tooling
2026-09-08 07:01:55 -07:00
Peter Steinberger
be6a59250c
fix(tooling): drop machine squash credit and carry human co-author trailers (#142167)
scripts/pr merge-run refused any GitHub squash preview that carried agent
attribution, so PRs with Claude, Codex, Cursor, or Copilot trailers needed a
hand-written --body-file. The composer now drops machine credit wherever
GitHub replayed it (terminal block, per-commit bullets, folded or indented
lines), keeps and appends every human Co-authored-by trailer from the PR's
commits, rejects reviewed bodies that still contain machine credit anywhere,
and refuses merge-queue admission when the preview needs any edit. Machine
identities are exact verified addresses plus GitHub App [bot] accounts;
Copilot, claude[bot], cursor[bot], the Codex connector, and noreply@openai.com
join the list.

Dry run against PR #126816's commits: all four Claude lines removed,
ruel225 and zhang-guiping credit kept.
2026-09-08 06:10:55 -07:00
Peter Steinberger
0140316924
fix(release): resolve nested bundled optional dependencies (#142126) 2026-09-08 04:21:28 -07:00
Dallin Romney
dcd33aa776
fix(release): omit unsupported corrupt-plugin update proof (#142061) 2026-09-08 03:03:12 -07:00
Peter Steinberger
bda6407674
refactor(tooling): remove TUI watcher timing overrides (#142079) 2026-09-08 03:00:14 -07:00
Vincent Koc
16fe99ff3d
fix(docker): restore source builds after dependency ownership guard (#142073)
* fix(docker): restore source builds after dependency ownership guard

* fix(docker): preserve existing lifecycle copy prefix
2026-09-08 17:59:28 +08:00
Vincent Koc
fb1560039f
fix(ci): avoid oversized ClawHub ancestry comparisons (#142072) 2026-09-08 17:43:48 +08:00
Dallin Romney
cb1b33786e
fix(maturity): validate taxonomy documentation routes (#141977)
* fix(maturity): make iMessage the active channel identity

* fix(maturity): validate taxonomy documentation routes
2026-09-08 01:51:37 -07:00
Dallin Romney
2bb684a68a
fix(maturity): make iMessage the active channel identity (#141963) 2026-09-08 01:49:35 -07:00