Commit Graph

27687 Commits

Author SHA1 Message Date
Peter Steinberger
ff7fe37d17 refactor(cli): normalize route boundaries 2026-04-06 15:38:04 +01:00
Vincent Koc
e4fa414ed0 refactor(browser): remove remote tab harness any cast 2026-04-06 15:37:46 +01:00
Mason
9b0ea7c579 docs: relocalize stale locale links (#61796)
* docs: relocalize stale locale links

* docs: unify locale link postprocessing

* docs: preserve relocalized frontmatter

* docs: relocalize partial docs runs

* docs: scope locale link postprocessing

* docs: continue scoped relocalization

* docs: drain parallel i18n results

* docs: add i18n pipeline link regression tests

* docs: clarify i18n pipeline regression test intent

* docs: update provider references in i18n tests to use example-provider

* fix: note docs i18n link relocalization

* docs: rephrase gateway local ws sentence
2026-04-06 22:37:35 +08:00
Vincent Koc
7bb61a07db fix(check): repair plugin and secret type drift 2026-04-06 15:36:42 +01:00
Vincent Koc
a253dc44a3 refactor(plugins): remove production lint suppressions 2026-04-06 15:36:21 +01:00
Vincent Koc
586e5f7289 refactor(lint): guard extension runner coverage 2026-04-06 15:34:25 +01:00
Vincent Koc
d14121e648 refactor(lint): align extension runners with root config 2026-04-06 15:33:05 +01:00
Vincent Koc
6e443a20c8 fix(qqbot): remove dead tts config aliases 2026-04-06 15:32:05 +01:00
Peter Steinberger
8326349939 fix(test): stabilize docker claude cli live lane 2026-04-06 15:31:08 +01:00
Peter Steinberger
ac38f332c5 fix(anthropic): prefer claude cli over setup-token 2026-04-06 15:31:07 +01:00
Vincent Koc
b535d1e2b9 chore(lint): drop stale extension overrides 2026-04-06 15:30:30 +01:00
Vincent Koc
f92ef361ae fix(check): finish extension type cleanup 2026-04-06 15:30:17 +01:00
Peter Steinberger
fa67ab2358 fix: preserve gateway-bindable loader compatibility 2026-04-06 15:28:41 +01:00
HansY
c78defdc2f plugins: exclude runtimeSubagentMode from loader cache key
The plugin loader cache key included runtimeSubagentMode, which is
derived from allowGatewaySubagentBinding. Since different call sites in
the message processing pipeline pass different values for this flag,
each call produced a distinct cache key, triggering redundant
register() calls (40+ in 24 seconds after startup).

runtimeSubagentMode does not affect which plugins are loaded or how
they are configured — it is only metadata stored alongside the active
registry state. Removing it from the cache key lets all call sites
share the same cached registry regardless of their binding mode.

Fixes #61756
2026-04-06 15:28:41 +01:00
Peter Steinberger
f18a705d19 fix(test): remove duplicate nostr config import 2026-04-06 15:27:45 +01:00
Peter Steinberger
38543af3c4 fix(discord): classify current gateway fatal errors 2026-04-06 15:27:45 +01:00
Peter Steinberger
f8a97881d1 fix(check): repair extension type drift batch 2026-04-06 15:27:45 +01:00
Peter Steinberger
9e0d632928 fix(gateway): unify session history snapshots 2026-04-06 15:26:55 +01:00
Peter Steinberger
8838fdc916 refactor: share web provider runtime helpers 2026-04-06 15:26:32 +01:00
Peter Steinberger
58f4099a4f refactor: share plugin runtime load context 2026-04-06 15:26:32 +01:00
Gustavo Madeira Santana
9568cceee3 docs: clarify Matrix invite and config guidance 2026-04-06 10:25:47 -04:00
Vincent Koc
01f3959a60 refactor(plugins): share extension oxlint runner 2026-04-06 15:25:34 +01:00
Peter Steinberger
3599ab2e56 fix(agents): honor verbose defaults and trim process setup 2026-04-06 15:24:59 +01:00
Peter Steinberger
cd5b1653f6 feat: declare explicit media provider capabilities 2026-04-06 15:24:38 +01:00
Peter Steinberger
29df67c491 test(acp): prove lazy reset re-ensures bound sessions 2026-04-06 15:24:16 +01:00
Onur
b34fa9c868 ACP: reset bound sessions lazily 2026-04-06 15:24:16 +01:00
Vincent Koc
d3a35d7e95 ci(plugins): add bundled extension lint lane 2026-04-06 15:24:03 +01:00
Peter Steinberger
0337a0d7f8 fix(memory): warn cleanly on degraded vector recall 2026-04-06 15:23:30 +01:00
mainstay22
a224f59fe3 fix(memory): surface warning when sqlite-vec unavailable during index
When chunks_vec cannot be updated (sqlite-vec extension not loaded),
the memory index now emits an error-level warning instead of silently
reporting success.

Before this change: 'Memory index updated (hull).' was emitted even
when the vector index (chunks_vec) was not updated due to sqlite-vec
being unavailable. This masked silent vector recall degradation.

After this change:
- If vector.enabled=true and vector.available=false: emits
  'Memory index WARNING (agentId): chunks_vec not updated — sqlite-vec
  unavailable: <reason>. Vector recall degraded.'
- If vector is healthy: emits normal success message unchanged
- Per-file warning also emitted in writeChunks when chunks are written
  without vector embeddings

Fixes: HELM-0251 (local dist patch — this makes it update-safe)
Related: HELM-0252 (this PR)
2026-04-06 15:23:30 +01:00
Peter Steinberger
987bbe6545 test(browser): assert remote CDP retry timeouts correctly 2026-04-06 15:22:23 +01:00
ThanhNguyxn07
2a1a49bd41 fix(browser): retry remote CDP websocket readiness before failing
Remote browser profiles can pass HTTP reachability while Browser.getVersion on the CDP websocket is still warming up right after restart. Add one retry in ensureBrowserAvailable for remote CDP profiles and cover it with a regression test.

Fixes #57397

Co-authored-by: ThanhNguyxn <thanhnguyentuan2007@gmail.com>
2026-04-06 15:22:23 +01:00
Vincent Koc
620537914b fix(plugins): clean bundled extension lint tail 2026-04-06 15:21:46 +01:00
Peter Steinberger
07b3ee813a fix: clean up rebase follow-up regressions 2026-04-06 15:20:03 +01:00
Peter Steinberger
94b8ab0325 fix: resolve rebase check regressions 2026-04-06 15:20:03 +01:00
Peter Steinberger
8d095147b4 fix: restore check gate 2026-04-06 15:20:03 +01:00
Peter Steinberger
979c81d9dd test(auth): cover readonly runtime auth inheritance 2026-04-06 15:19:34 +01:00
Peter Steinberger
adb750fa63 perf(test): trim secrets runtime snapshot lane 2026-04-06 15:19:34 +01:00
Peter Steinberger
f264c2c7e4 style: format routed command helper 2026-04-06 15:18:55 +01:00
Peter Steinberger
91749930d4 fix: restore check-time path inference 2026-04-06 15:18:55 +01:00
Vincent Koc
da14745f2e fix(check): clean up extension rename fallout 2026-04-06 15:18:24 +01:00
Vincent Koc
e6df924a34 fix(plugins): clean matrix lint types 2026-04-06 15:17:15 +01:00
Peter Steinberger
878c208844 perf(test): restore scoped vitest routing 2026-04-06 15:16:17 +01:00
Vincent Koc
ac6f696baa fix(check): repair typed test and cli drift 2026-04-06 15:14:37 +01:00
Vincent Koc
9502642f47 fix(plugins): clean xai and qqbot lint 2026-04-06 15:14:20 +01:00
biefan
0f075e1b8a fix: restore terminal keyboard state on tui exit (#49130) (thanks @biefan) (#49130)
Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
2026-04-06 15:14:08 +01:00
Peter Steinberger
15114a9279 fix(matrix): preserve multi-paragraph list items 2026-04-06 15:13:16 +01:00
Jakub Rusz
be5eebd3d4 fix(matrix): compact loose list HTML for consistent Element rendering
Loose lists (blank lines between items) produce <li><p>...</p></li> via
markdown-it, causing Element to render list numbers on separate lines
from their content. Fix by setting hidden=true on paragraph tokens
inside list items before rendering, mirroring what markdown-it already
does for tight lists.

Closes #60997. Thanks @gucasbrg.

Co-Authored-By: Claude claude-opus-4-6 <noreply@anthropic.com>
Signed-off-by: Jakub Rusz <jrusz@proton.me>
2026-04-06 15:13:16 +01:00
Peter Steinberger
26a5ab1c6f fix(utils): harden directive block placeholders 2026-04-06 15:11:44 +01:00
szx007
af7c21f207 fix: preserve code block indentation in normalizeDirectiveWhitespace
## Summary

- Problem: `normalizeDirectiveWhitespace` applied whitespace-collapsing regexes globally, including inside fenced code blocks (` ``` ` / `~~~`) and indent-code-blocks (4-space / tab), corrupting indentation in assistant replies that contain code snippets
- Why it matters: Any language where indentation is significant (Python, Go, YAML, etc.) or visually meaningful would render incorrectly after stripping inline directive tags
- What changed: Stash code blocks under a Unicode private-use sentinel (`\uE000`) before normalization, run the existing prose regexes on the masked text, then restore the original blocks verbatim
- What did NOT change: All prose normalization rules are retained as-is (`\r\n`, multi-space collapse, leading blank-line strip, trailing whitespace, 3+ newline fold)

## Change Type

- [x] Bug fix

## Scope

- [ ] Gateway / orchestration

## Root Cause

- Root cause: Prose whitespace regexes were applied to the full text string with no awareness of Markdown code block boundaries
- Missing detection / guardrail: No tests covered indented content inside fenced blocks
- Contributing context: Directive tag stripping (`[[reply_to_current]]`, `[[audio_as_voice]]`) is applied before delivery, making the normalization step a silent corruption point for code-heavy replies

## Regression Test Plan

- Coverage level that should have caught this:
  - [x] Unit test
- Target test or file: `src/utils/directive-tags.test.ts`
- Scenario the test should lock in: `parseInlineDirectives` with fenced/indent code blocks must preserve all leading whitespace inside those blocks
- Why this is the smallest reliable guardrail: Pure function with deterministic string in/out; no mocks needed
- If no new test is added, why not: 7 new unit tests added

## User-visible / Behavior Changes

Code blocks in assistant replies containing `[[reply_to_current]]` or `[[audio_as_voice]]` directives now retain correct indentation after the directive is stripped.

## Security Impact

- New permissions/capabilities? No
- Secrets/tokens handling changed? No
- New/changed network calls? No
- Command/tool execution surface changed? No
- Data access scope changed? No

## Compatibility / Migration

- Backward compatible? Yes
- Config/env changes? No
- Migration needed? No

Co-Authored-By: Codemax <codemax@binance.com>
2026-04-06 15:11:44 +01:00
Vincent Koc
1b309fff71 fix(plugins): clean tlon lint types 2026-04-06 15:08:39 +01:00