Commit Graph

66965 Commits

Author SHA1 Message Date
github-actions[bot]
d1406e835c chore(ui): refresh pt-BR control ui locale 2026-07-04 01:00:44 +00:00
Dallin Romney
1a04c9c2ad refactor: consolidate string reader mechanics (#99676)
* refactor: consolidate string reader mechanics

* fix: declare model catalog normalization dependency

* fix: keep model catalog dependency-free

* refactor(core): keep string readers internal
2026-07-03 18:00:07 -07:00
Ayaan Zaidi
3706ebed33 fix(agents): keep mention state and group intro out of session-stable prompt hash 2026-07-03 17:58:36 -07:00
Dallin Romney
c7aca4f029 refactor: consolidate async timing helpers (#99721) 2026-07-03 17:58:15 -07:00
Alex Knight
342d13a914 fix(plugins): resolve public artifacts from installed plugin roots (#98819)
* fix(plugins): resolve public artifacts from installed plugin roots

Externalized official plugins ship gateway-auth/doctor/secret/message-tool
public artifacts in their installed npm package, but the public-surface
loader only searched bundled locations. On packaged installs this emptied
the gateway auth bypass set for /api/channels/mattermost/command, so every
Mattermost slash callback was rejected 401 before the plugin ran.

Fall back to the plugin's installed package root (install-record index)
when bundled resolution misses; bundled/source locations keep precedence.

Fixes #98740

* fix(gateway): resolve channel auth-bypass artifacts via activation-gated facade

Route gateway-auth bypass artifact loading through the activation-gated
facade seam so externalized (installed) channel plugins keep their
unauthenticated callback paths, while denied/disabled plugins contribute
nothing and never execute artifact code. Reject hardlinked artifacts for
installed plugin roots in the facade loader per hardlink-policy.

Replaces the earlier install-record fallback in the shared bundled
artifact loader, which broadened every artifact surface past its trust
boundary (see PR review); other externalized-plugin surfaces are #98842.

Fixes #98740

* fix(gateway): load facade activation runtime via async lazy import

The sync createRequire/jiti candidate loader for
facade-activation-check.runtime.js only resolves from built dist; under
vitest source runs it cannot follow .js->.ts specifiers or workspace
package subpaths, so the gateway auth-bypass path threw 'Unable to load
facade activation check runtime' (CI shard failure). Add an async
activated-load API backed by dynamic import (vitest- and dist-native),
warm the shared runtime memo, and make the bypass consumer async - its
single caller already awaits behind the config-snapshot promise cache.

* revert(plugins): drop install-record fallback from public-surface loader

Superseded by the activation-gated facade seam in gateway-auth-bypass;
review found the loader-level fallback broadened every artifact surface
past its trust boundary (see PR #98819 discussion).

* fix(plugin-sdk): drop unused oxlint disable on async facade loader

* test(plugin-sdk): cover facade hardlink policy for installed vs core roots

* test(plugin-sdk): cover facade hardlink policy for installed vs core roots

---------

Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com>
2026-07-04 10:57:42 +10:00
Dallin Romney
50479c2a66 refactor(text): consolidate cleanup owners (#99718) 2026-07-03 17:56:59 -07:00
/Z.X/
f59310a555 fix(doctor): keep completion repair best-effort (#99540)
Treat wrapped shell-profile permission failures as an optional doctor repair,
while preserving non-permission failures and the actual failing profile path.
Cover install and upgrade flows across EACCES, EPERM, and EROFS.

Fixes #99237

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-03 17:35:34 -07:00
2loch-ness6
8d3b459792 fix(file-transfer): don't inline zero-byte files as image content blocks (#99370)
* fix(file-transfer): don't inline zero-byte files as image content blocks

file_fetch's remote mime detection falls back to the extension-derived
MIME type when content sniffing finds nothing to sniff (a zero-byte
buffer), so fetching an empty .png/.jpg/.webp/.gif produces
{type: "image", data: "", mimeType: "image/png"}. That payload-less
image block reached the model as an unrecoverable placeholder instead
of the existing "saved at <path>" text fallback used for every other
non-inlined file. Require a non-empty payload before treating a fetch
as an inline image. Refs #98673.

* test(file-transfer): prove empty image fetch fallback

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-03 17:30:33 -07:00
headbouyJB
24dba4b44a fix(build): forward default exports through stable runtime aliases (#99678)
* fix(build): forward default exports through stable runtime aliases

runtime-postbuild writes stable aliases (`X.runtime.js`) for hashed runtime
chunks as bare `export * from "./X-HASH.js"` — but `export * from` never
re-exports `default`. In the shipped 2026.6.10/2026.6.11 artifacts the
compaction runtime alias points at a chunk whose only export is default, so
its lazy consumer destructuring `{ default: reconcile }` gets undefined:
every successful auto-compaction logs "late compaction count reconcile
failed: TypeError: reconcile is not a function" and the persisted
compactionCount never updates. On local-model deployments the resulting
repeat compactions each cost a multi-minute full re-prefill (observed:
3 compactions in 25 minutes). Other stable aliases are latent instances of
the same generator defect for any target that gains a default export.

Fix: when the alias target has a default export, also emit
`export { default } from ...` (applies to both the stable-alias and
legacy-compat writers). Detection is an anchored export-statement pattern,
verified against all 7 shipped runtime chunks (no false positives; naive
text matching would both miss and over-match — an alias claiming a default
its target lacks is a hard SyntaxError at import). Adds a regression test
mirroring the real compaction-reconcile chunk shape.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H6Hz9UEpxQ4W3d8XecvupH

* fix(build): preserve defaults through legacy runtime aliases

---------

Co-authored-by: headbouyJB <23249268+headbouyJB@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-07-03 17:15:17 -07:00
Wynne668
61564f2d2e fix(ui): copy workspace file paths over plain HTTP (#98764) 2026-07-03 17:10:20 -07:00
Dallin Romney
e6dec69403 refactor: consolidate image data URL formatting (#99715) 2026-07-03 17:09:30 -07:00
github-actions[bot]
52323b67c5 chore(i18n): refresh native sv locale 2026-07-04 00:04:21 +00:00
github-actions[bot]
a82cd35ed5 chore(i18n): refresh native ru locale 2026-07-04 00:03:00 +00:00
github-actions[bot]
3e4febbe68 chore(i18n): refresh native fa locale 2026-07-04 00:02:45 +00:00
github-actions[bot]
f4f63b1870 chore(i18n): refresh native nl locale 2026-07-04 00:01:11 +00:00
github-actions[bot]
da21e4b8dd chore(i18n): refresh native vi locale 2026-07-04 00:01:03 +00:00
github-actions[bot]
8fe917b4f7 chore(i18n): refresh native pl locale 2026-07-03 23:59:24 +00:00
github-actions[bot]
37c45f28fb chore(i18n): refresh native th locale 2026-07-03 23:59:19 +00:00
Dallin Romney
7a92eb7a37 fix(build): generate plugin sdk declarations for docker package (#99710) 2026-07-03 16:59:04 -07:00
github-actions[bot]
1c93e509a3 chore(i18n): refresh native id locale 2026-07-03 23:57:47 +00:00
github-actions[bot]
703e1adade chore(i18n): refresh native uk locale 2026-07-03 23:57:37 +00:00
Vincent Koc
f53fdb688d fix(qa): restore package docker gates 2026-07-04 01:56:21 +02:00
github-actions[bot]
1e0dd95e5d chore(i18n): refresh native tr locale 2026-07-03 23:56:05 +00:00
github-actions[bot]
851d0ad735 chore(i18n): refresh native it locale 2026-07-03 23:55:56 +00:00
github-actions[bot]
0400be7118 chore(i18n): refresh native ar locale 2026-07-03 23:54:25 +00:00
github-actions[bot]
e779b8f1bd chore(i18n): refresh native hi locale 2026-07-03 23:54:10 +00:00
github-actions[bot]
060293056b chore(i18n): refresh native fr locale 2026-07-03 23:52:45 +00:00
github-actions[bot]
f7bad5749b chore(i18n): refresh native ko locale 2026-07-03 23:52:34 +00:00
github-actions[bot]
edb1e74645 chore(i18n): refresh native ja-JP locale 2026-07-03 23:50:58 +00:00
github-actions[bot]
952245b49c chore(i18n): refresh native es locale 2026-07-03 23:50:51 +00:00
github-actions[bot]
bb7dbda027 chore(i18n): refresh native de locale 2026-07-03 23:49:27 +00:00
github-actions[bot]
5220effc10 chore(i18n): refresh native pt-BR locale 2026-07-03 23:49:07 +00:00
github-actions[bot]
26f673526e chore(i18n): refresh native zh-TW locale 2026-07-03 23:47:37 +00:00
github-actions[bot]
fdcd5c0eb0 chore(i18n): refresh native zh-CN locale 2026-07-03 23:47:26 +00:00
joshavant
37474b2e06 Restore branded button disabled states 2026-07-03 18:45:45 -05:00
joshavant
ce4abc9b91 Preserve macOS chat typography scaling 2026-07-03 18:45:45 -05:00
joshavant
b525191150 Cap iOS chrome typography scaling 2026-07-03 18:45:45 -05:00
joshavant
52ed5eca49 Fix iOS branded typography dynamic type refresh 2026-07-03 18:45:45 -05:00
joshavant
b82b18a4a2 Refresh native i18n inventory after rebase 2026-07-03 18:45:45 -05:00
joshavant
426672ccb1 Restore location permission copy scope 2026-07-03 18:45:45 -05:00
joshavant
d3848d39f2 Remove out-of-scope location guidance 2026-07-03 18:45:45 -05:00
joshavant
25c8fbb5e7 Fix iOS typography rebase audit 2026-07-03 18:45:45 -05:00
joshavant
304b25911f Document iOS font provenance 2026-07-03 18:45:45 -05:00
joshavant
b5f754b63d Restore gateway secure field accessibility 2026-07-03 18:45:45 -05:00
joshavant
7a1f3d7183 Fix iOS typography CI checks 2026-07-03 18:45:45 -05:00
joshavant
3885ee19a0 Apply branded font to chat jump control 2026-07-03 18:45:45 -05:00
joshavant
b2ee01744e Document iOS typography guidance 2026-07-03 18:45:45 -05:00
joshavant
37a9b9a91c Audit iOS branded typography coverage 2026-07-03 18:45:45 -05:00
joshavant
700403e840 Fix Gateway branded typography coverage 2026-07-03 18:45:45 -05:00
joshavant
788472ed4a Apply branded fonts across iOS sibling controls 2026-07-03 18:45:45 -05:00