Vincent Koc
14ebfc88c4
fix(release): avoid caching GitHub errors
2026-07-10 17:47:32 -07:00
Vincent Koc
14a8cdc7c6
fix(release): keep Android notes aligned
2026-07-10 17:47:32 -07:00
Vincent Koc
0c16193bec
chore(release): satisfy parallel runner lint
2026-07-10 17:47:32 -07:00
Vincent Koc
80d44bf000
feat(release): add shadow preparation controller
2026-07-10 17:47:32 -07:00
Vincent Koc
a835584537
perf(release): cache changelog GitHub discovery
2026-07-10 17:47:32 -07:00
Vincent Koc
897a66881d
perf(release): parallelize shrinkwrap generation
2026-07-10 17:47:32 -07:00
Vincent Koc
82461afedb
perf(release): parallelize scoped preflight tasks
2026-07-10 17:47:32 -07:00
Vincent Koc
d801384b3b
feat(release): add atomic version preparation
2026-07-10 17:47:32 -07:00
maweibin
6b460e50a4
fix(qqbot): bound stalled token acquisition ( #102897 )
2026-07-11 01:45:43 +01:00
Peter Steinberger
e07ad4b05b
fix(ui): draw resize dividers as a thin line instead of a filled gutter bar ( #104013 )
2026-07-11 01:45:07 +01:00
Peter Steinberger
249e6efe63
feat(mac): add bulk Approve All / Reject All to the pairing approval panel ( #104011 )
...
* feat(mac): add bulk Approve All / Reject All to the pairing approval panel
* fix(mac): resolve bulk pairing decisions against the rendered snapshot
2026-07-11 01:44:34 +01:00
Peter Steinberger
31703debcb
fix: sanitize oversized plugin command arguments ( #104015 )
2026-07-11 01:43:52 +01:00
Peter Steinberger
ee7c2c1455
feat(ui): render assistant replies as a flat text stream in web chat ( #104016 )
2026-07-11 01:43:37 +01:00
Vincent Koc
2841edf01e
fix(ci): pin Kova auth startup fixes ( #104002 )
2026-07-10 17:42:08 -07:00
qingminlong
6e0d590bd8
fix(agent-core): avoid a crash when empty output has a negative line limit ( #103425 )
...
* fix(agent-core): avoid empty truncation crash
* refactor(agent-core): simplify empty truncation handling
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-11 01:41:00 +01:00
soldforaloss
0e05973657
fix(tasks): treat blank JSON filters as absent ( #103981 )
...
* fix(tasks): normalize blank JSON filters
* fix(tasks): reuse optional string normalization
* fix(tasks): share blank filter normalization
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-07-10 17:40:11 -07:00
Peter Steinberger
0120cacf9e
fix(macos): let onboarding use taller windows ( #104004 )
...
* fix(macos): make onboarding resize vertically
* chore(macos): refresh onboarding i18n inventory
* chore: leave changelog to release generation
2026-07-11 01:39:49 +01:00
Peter Steinberger
62d10f7b84
improve(ui): drag sidebar group headers to reorder custom groups ( #103997 )
...
* improve(ui): drag sidebar group headers to reorder custom groups
* test(ui): repair sidebar group e2e for the gateway-owned catalog
2026-07-11 01:39:47 +01:00
Peter Steinberger
3ec2a50d6c
fix(exec): prevent revoked policy from authorizing delayed node runs ( #103950 )
...
* fix(cli): fail closed on exec policy rollback races
* refactor(cli): reuse canonical exec policy ordering
* fix(exec): bind delayed approvals to prepared policy
* fix(macos): revalidate delayed exec approvals
* fix(exec): align approval snapshot validation gates
2026-07-11 01:37:37 +01:00
Josh Lehman
f68af64846
fix(auto-reply): queue unsupported transcript steering ( #103916 )
2026-07-10 17:34:31 -07:00
Peter Steinberger
25c216ab1e
fix: keep gateway watch detached in limited terminals ( #104009 )
2026-07-11 01:33:47 +01:00
Vincent Koc
f4b3a4841f
fix(release): accept Kova collector-only phases ( #104008 )
2026-07-10 17:31:42 -07:00
Peter Steinberger
b7d6291bfd
fix(memory): preserve Unicode in QMD snippets ( #103996 )
2026-07-11 01:28:29 +01:00
Peter Steinberger
920b29bdd5
test(crestodian): preserve model input mock exports ( #103999 )
2026-07-11 01:19:11 +01:00
Peter Steinberger
5f7a67f186
fix(release): avoid token-shaped Claude live probe ( #103994 )
2026-07-11 01:03:30 +01:00
wings1029
63859f73e6
fix(codex): preserve Unicode diagnostics boundaries ( #103740 )
...
* fix(codex): preserve Unicode diagnostics boundaries
Co-authored-by: 陈志强0668000989 <chen.zhiqiang1@xydigit.com >
* test(codex): assert diagnostics preview boundary
* test(codex): narrow diagnostics result text
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 00:45:57 +01:00
Peter Steinberger
fef5c61a3c
docs(gateway): document restart and crash recovery behavior ( #103985 )
...
* docs(gateway): document restart and crash recovery behavior
* chore(docs): allowlist intentional command:nwe hook example in spellcheck
2026-07-11 00:44:16 +01:00
Peter Steinberger
6d39ec5152
feat(ui): collapse session PR chips and add a CI monitoring popover ( #103853 )
...
* feat(ui): collapse session PR chips and add a CI monitoring popover
* chore(i18n): translate session PR chip strings
* docs(gateway): note Control UI contract shapes ship in lockstep
* chore(i18n): regenerate locale bundles after rebase
2026-07-11 00:37:06 +01:00
Peter Steinberger
2f9cb92006
fix(tasks): show registry restore errors in console ( #103976 )
2026-07-11 00:10:14 +01:00
wings1029
9bfecf46ee
fix(acpx): preserve Unicode in wrapper diagnostics ( #103738 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 00:06:14 +01:00
xingzhou
babc287afe
fix(slack): time out stalled external file uploads ( #103442 )
...
* fix(slack): time out stalled external file uploads
* fix(slack): scope external upload timeout
* fix(slack): restrict external upload transport
* fix(slack): restrict external upload transport
* fix(slack): preserve external upload retry safety
* test(slack): use compatible guarded fetch runtime
* test(plugin-sdk): update public export baseline
* fix(slack): harden external upload delivery
* refactor(slack): isolate upload completion
Keep ordinary Enterprise Grid traffic on the Bolt listener client. Use a team-scoped no-retry client only for one-shot external upload completion, while preserving the bounded raw-upload timeout and safe durable replay classification.
* fix(slack): refresh upload release metadata
* chore(slack): leave release notes release-owned
* fix(slack): classify failed uploads before completion
* fix(slack): keep upload completion untimed
* test(plugin-sdk): refresh public export baseline
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:52:35 +01:00
Bek
91ac7ca700
fix(tasks): repair legacy delivery statuses ( #103946 )
...
* fix(tasks): repair legacy delivery statuses
* docs(changelog): note task state migration repair
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:49:22 +01:00
Peter Steinberger
98902c790f
fix(macos): preserve launchd gateway during port sweep ( #103972 )
2026-07-10 23:46:30 +01:00
Peter Steinberger
a0354e5243
fix(onboarding): make fresh AI setup reliable and transparent ( #103962 )
...
* fix(onboarding): harden inference setup
* fix(mac): preserve setup request cancellation
* test(crestodian): align setup audit expectation
* test(crestodian): cover approval persistence warning
* fix(crestodian): preserve setup credentials and success
* chore(pr): leave changelog to release flow
* fix(onboarding): repair native CI gates
2026-07-10 23:44:53 +01:00
Peter Steinberger
49941fab6d
fix(ci): keep hydrate-github pnpm shims writable ( #103971 )
2026-07-10 23:36:10 +01:00
qingminlong
4f1f7c6fb0
fix(nodes): resolve Unicode browser node names when configured by display name ( #103548 )
...
* fix-nodes-unicode-browser-node-names
* fix(nodes): preserve compact browser node selectors
* fix(nodes): normalize unicode node names canonically
* fix(nodes): scope compact browser selectors
* fix(nodes): preserve meaningful unicode marks
* chore: leave changelog updates to release automation
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:32:28 +01:00
soldforaloss
0e0c922cc5
fix: preserve current Node for node.exe env wrappers ( #103907 )
...
* fix: preserve current Node for node.exe env wrappers
* fix(scripts): preserve Windows Node aliases
* chore: keep contributor PR release-note only
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:30:57 +01:00
lsr911
9dee9ebffa
fix(qa-lab): use truncateUtf16Safe for tool search gateway and mock OpenAI text truncation ( #103219 )
...
* fix(qa-lab): use truncateUtf16Safe for tool search and mock OpenAI text truncation
Replace naive .slice(0, N) with truncateUtf16Safe() in:
- tool-search-gateway.fixture.ts: 4 sites (provider input snippet,
tool output snippet, gateway output text for normal/code lanes)
- mock-openai/server.ts: 1 site (tool output evidence snippet)
LLM output text may contain non-BMP characters (emoji, CJK
extension characters). Naive .slice(0, N) at a surrogate pair
boundary produces a lone surrogate.
Co-Authored-By: Claude <noreply@anthropic.com >
* test: add proof script for qa-lab UTF-16 safe truncation at all boundaries
* test(qa-lab): integrate UTF-16 boundary coverage
Co-authored-by: lsr911 <liao.shirong@xydigit.com >
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:26:42 +01:00
Vincent Koc
b0e3c85a61
fix(release): bind publish children to trusted SHAs ( #103913 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:25:26 +01:00
Vincent Koc
b1e688c657
fix(release): consume Kova model contract ( #103966 )
2026-07-10 15:17:15 -07:00
Peter Steinberger
53bcdf8fe2
fix(signal): drain accepted messages on shutdown ( #103967 )
2026-07-10 23:15:04 +01:00
SunnyShu
90250dcc9a
fix(auth): repair stale orders and token health rollups ( #98105 )
...
* fix(auth): preserve token health after OAuth migration
After a user migrates from OAuth to a token/setup-token credential, the
gateway model-auth rollup reported the provider as missing, producing a
false "model auth expired" warning.
Rename aggregateOAuthStatus → aggregateRefreshableAuthStatus and
extract aggregateProfileStatus helper. OAuth remains authoritative when
present; token credentials are the fallback when no effective OAuth
profile exists. Empty effectiveProfiles stays authoritative (missing).
Token fallback applies regardless of expectsOAuth flag.
Fixes #97996
Co-authored-by: SunnyShu0925 <SunnyShu0925@users.noreply.github.com >
* test(auth): use fake token fixture
* fix(doctor): repair stale auth profile orders
* fix(doctor): inspect retained auth profile stores
* fix(doctor): harden retained auth store proof
---------
Co-authored-by: SunnyShu0925 <SunnyShu0925@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:11:01 +01:00
xingzhou
4257875448
fix(qa-lab): keep saved view text truncation UTF-16 safe ( #103789 )
...
* fix(qa-lab): keep saved view text truncation UTF-16 safe
* refactor(qa-lab): use semantic truncation helper
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 23:10:53 +01:00
Peter Steinberger
3f402f2c48
fix(telegram): suppress replies superseded during adoption ( #103965 )
...
* fix(telegram): preserve supersession through async adoption
* fix(auto-reply): stop superseded queued turns after adoption
* test(telegram): use dispatcher delivery return type
2026-07-10 23:10:05 +01:00
Peter Steinberger
42c80df6f5
docs(node): clarify headless identity and pairing state ( #103964 )
...
* docs(node): clarify headless identity storage
* docs: refresh node identity heading map
2026-07-10 22:55:45 +01:00
xingzhou
6f6c802ea5
fix(infra): keep restart log tails UTF-16 safe ( #103757 )
2026-07-10 22:50:25 +01:00
Vincent Koc
022dd9dc27
fix(release): unblock Meta npm bootstrap publication ( #103951 )
...
* fix(release): isolate Meta npm bootstrap
* test(release): assert OIDC npm version guard
2026-07-10 14:50:00 -07:00
Peter Steinberger
c3cd3a15d1
fix(nodes): correct system.which examples ( #103960 )
2026-07-10 22:45:54 +01:00
Vincent Koc
c5bdd64442
fix(telegram): detach adopted turns from reply fence ( #103952 )
2026-07-10 14:36:46 -07:00
Peter Steinberger
d92d5774f5
fix(node): report Mac exec policy defaults ( #103945 )
2026-07-10 22:07:44 +01:00