mbelinky
b30efe822a
docs(changelog): attribute heartbeat fix
2026-04-13 18:25:36 +02:00
mbelinky
e46a26fee2
docs(changelog): move heartbeat entry to unreleased
2026-04-13 18:25:36 +02:00
mbelinky
c04d56f03a
docs(changelog): add PR reference for heartbeat fix
2026-04-13 18:25:36 +02:00
mbelinky
894611c78d
fix(heartbeat): preserve Telegram topic routing
2026-04-13 18:25:36 +02:00
Bob
74f2c4a56b
fix: stop repeated unknown-tool loops ( #65922 )
...
Merged via squash.
Prepared head SHA: f352a270a6
Reviewed-by: @osolmaz
2026-04-13 17:42:11 +02:00
Mariano
8dbe1b4f5a
fix(gateway): harden service entrypoint resolution ( #65984 )
...
Merged via squash.
Prepared head SHA: 31cbc3349c
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Co-authored-by: mbelinky <132747814+mbelinky@users.noreply.github.com >
Reviewed-by: @mbelinky
2026-04-13 17:14:29 +02:00
Frank Yang
4ecc8c0d0e
fix(whatsapp): await write stream finish before returning encFilePath ( #65896 )
...
* fix(whatsapp): await write stream finish in encryptedStream to fix race-condition ENOENT crash
* fix(whatsapp): ship Baileys media hotfix on npm installs
* fix(whatsapp): keep Baileys hotfix postinstall best-effort
* fix(whatsapp): harden Baileys postinstall temp writes
* fix(whatsapp): preserve Baileys hotfix file mode
---------
Co-authored-by: termtek <termtek@ubuntu.tail2b72cd.ts.net >
2026-04-13 23:11:52 +08:00
fuller-stack-dev
2677f7cf14
fix: validate resolved context engine contracts ( #63222 )
...
Merged via squash.
Prepared head SHA: 5f3a15c670
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-13 07:39:34 -07:00
Brian
143c1e81a2
fix(plugins): treat context-engine plugins as capabilities in status/inspect ( #58766 )
...
Merged via squash.
Prepared head SHA: 23269d2db5
Co-authored-by: zhuisDEV <95547369+zhuisDEV@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-13 07:32:24 -07:00
EVA
c15b295a85
Run context-engine turn maintenance as idle-aware background work ( #65233 )
...
Merged via squash.
Prepared head SHA: e9f6c679ba
Co-authored-by: 100yenadmin <239388517+100yenadmin@users.noreply.github.com >
Co-authored-by: jalehman <550978+jalehman@users.noreply.github.com >
Reviewed-by: @jalehman
2026-04-13 06:50:22 -07:00
Peter Steinberger
645c7b1897
fix: harden qmd service startup
2026-04-13 10:58:46 +01:00
Peter Steinberger
2e1b5407dd
fix: preserve qmd command paths
2026-04-13 10:51:32 +01:00
Bob
380de88a61
fix: extract shared session status runtime ( #65807 )
...
Merged via squash.
Prepared head SHA: f027bd640a
Co-authored-by: dutifulbob <261991368+dutifulbob@users.noreply.github.com >
Co-authored-by: osolmaz <2453968+osolmaz@users.noreply.github.com >
Reviewed-by: @osolmaz
2026-04-13 11:51:26 +02:00
Peter Steinberger
72e56097ec
chore(release): prepare 2026.4.12
2026-04-13 09:49:01 +01:00
Rugved Somwanshi
0cfb83edfa
feat: LM Studio Integration ( #53248 )
...
* Feat: LM Studio Integration
* Format
* Support usage in streaming true
Fix token count
* Add custom window check
* Drop max tokens fallback
* tweak docs
Update generated
* Avoid error if stale header does not resolve
* Fix test
* Fix test
* Fix rebase issues
Trim code
* Fix tests
Drop keyless
Fixes
* Fix linter issues in tests
* Update generated artifacts
* Do not have fatal header resoltuion for discovery
* Do the same for API key as well
* fix: honor lmstudio preload runtime auth
* fix: clear stale lmstudio header auth
* fix: lazy-load lmstudio runtime facade
* fix: preserve lmstudio shared synthetic auth
* fix: clear stale lmstudio header auth in discovery
* fix: prefer lmstudio header auth for discovery
* fix: honor lmstudio header auth in warmup paths
* fix: clear stale lmstudio profile auth
* fix: ignore lmstudio env auth on header migration
* fix: use local lmstudio setup seam
* fix: resolve lmstudio rebase fallout
---------
Co-authored-by: Frank Yang <frank.ekn@gmail.com >
2026-04-13 15:22:44 +08:00
Pavan Kumar Gondhi
666f48d9b8
fix(security): remove busybox/toybox from interpreter-like safe bins [AI-assisted] ( #65713 )
...
* fix: address issue
* fix: address review feedback
* fix: address PR review feedback
* fix: address review-pr skill feedback
* fix: address PR review feedback
* docs: add changelog entry for PR merge
2026-04-13 12:03:15 +05:30
Pavan Kumar Gondhi
0a105c0900
fix(approval-auth): prevent empty approver list from granting explicit approval authorization [AI] ( #65714 )
...
* fix: address issue
* fix: address PR review feedback
* fix: address PR review feedback
* docs: add changelog entry for PR merge
2026-04-13 12:00:13 +05:30
Pavan Kumar Gondhi
8f8492d172
fix(security): broaden shell-wrapper detection and block env-argv assignment injection [AI-assisted] ( #65717 )
...
* fix: address issue
* fix: address PR review feedback
* fix: address PR review feedback
* docs: add changelog entry for PR merge
2026-04-13 11:48:42 +05:30
Josh Avant
3d07dfbb65
feat(qa-lab): add Convex credential broker and admin CLI ( #65596 )
...
* QA Lab: add Convex credential source for Telegram lane
* QA Lab: scaffold Convex credential broker
* QA Lab: add Convex credential admin CLI
* QA Lab: harden Convex credential security paths
* QA Broker: validate Telegram payloads on admin add
* fix: note QA Convex credential broker in changelog (#65596 ) (thanks @joshavant)
2026-04-12 22:03:42 -05:00
Val Alexander
d0c83777fb
Control UI: refresh slash commands from runtime command list ( #65620 )
...
* Refresh slash commands from runtime command list
- Load live slash commands into the chat UI and command palette
- Keep builtin fallback behavior when runtime commands are unavailable
* Apply suggestion from @greptile-apps[bot]
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Control UI: harden runtime slash command discovery
* Control UI: bound runtime slash command payloads
* Control UI: use default agent for plain session keys
* Control UI: guard malformed slash command payloads
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-12 20:38:37 -05:00
Peter Steinberger
4fec8073b1
fix: gate startup history and model requests ( #65365 )
2026-04-13 01:41:53 +01:00
Peter Steinberger
6a7961736a
fix: defer gateway scheduled services ( #65365 ) (thanks @lml2468)
2026-04-13 01:41:53 +01:00
Peter Steinberger
b42937908d
chore(release): prepare 2026.4.12-beta.1
2026-04-13 00:20:52 +01:00
Peter Steinberger
d77360c076
fix(plugins): restore missing native runtime deps
2026-04-13 00:20:52 +01:00
scoootscooob
38ad06912b
Changelog: note audio provider env fix
2026-04-12 14:24:14 -07:00
Vincent Koc
d696242f35
docs(changelog): expand plugin runtime release note
2026-04-12 19:48:16 +01:00
saram ali
acdf2b1c8a
fix(memory-core): match daily notes stored in memory/ subdirectories ( #64682 )
...
* fix(memory-core): match daily notes in memory/ subdirectories in isShortTermMemoryPath
* fix(memory-core): exclude dream reports from short-term recall
* fix(memory-core): widen short-term recall path matching
* docs(changelog): note short-term recall fix
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 19:40:59 +01:00
Vincent Koc
35a784c165
fix(imessage): retry watch.subscribe startup failures ( #65482 )
...
* fix(imessage): retry watch.subscribe startup failures
* fix(imessage): sanitize watch error logging
2026-04-12 19:40:19 +01:00
Marcus Castro
aa023e4283
refactor(whatsapp): centralize account connection lifecycle ( #65427 )
...
* refactor(whatsapp): centralize account connection lifecycle
* fix(whatsapp): harden controller open failure cleanup
* refactor(whatsapp): remove active listener fallback path
* fix(whatsapp): isolate controller registry state
* debug(whatsapp): trace typing presence updates
* docs(changelog): add whatsapp lifecycle fix note
* debug(whatsapp): log global presence mode
* chore(whatsapp): remove debug presence logs
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 15:24:49 -03:00
Vincent Koc
fcae3bf943
fix(agents): preserve active-turn queued user prompts ( #65478 )
...
* fix(agents): preserve active-turn queued user prompts
* Update src/agents/pi-embedded-runner/run/attempt.prompt-helpers.ts
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update CHANGELOG.md
* Update CHANGELOG.md
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-12 19:02:55 +01:00
Vincent Koc
d660ea70ab
docs(changelog): add credit for pr 64711
2026-04-12 18:56:57 +01:00
Vincent Koc
6437aa8532
fix(inbound-meta): unblock Claude CLI and scrub NULs ( #65467 )
...
* fix(inbound-meta): rename schema and scrub NULs
* fix(inbound-meta): harden untrusted context blocks
* fix(inbound-meta): preserve fenced metadata blocks
* fix(inbound-meta): cap untrusted context payloads
2026-04-12 18:52:48 +01:00
Peter Steinberger
15b86ac6d0
fix: narrow qmd defaults and clawblocker memory
2026-04-12 18:52:06 +01:00
Vincent Koc
e01d2e7e7a
docs(changelog): restore dreaming fix entries
2026-04-12 18:43:35 +01:00
Peter Steinberger
d5a0d3c524
docs: update 2026.4.12 changelog
2026-04-12 10:42:01 -07:00
saram ali
7995e408ce
fix(discord): clear stale heartbeat timers in SafeGatewayPlugin.connect() ( #65087 )
...
* fix(discord): clear stale heartbeat timers in SafeGatewayPlugin.connect()
The @buape/carbon@0.15 .0 heartbeat setup has a race where stopHeartbeat()
runs before heartbeatInterval is assigned, leaving a stale setInterval with
a closed reconnectCallback. When the stale interval fires ~41s later it
throws an uncaught exception that bypasses the EventEmitter error path and
crashes the gateway process via process.on('uncaughtException').
Add a connect() override in SafeGatewayPlugin that unconditionally clears
both heartbeatInterval and firstHeartbeatTimeout before calling super. The
parent's connect() only calls stopHeartbeat() when isConnecting=false; when
isConnecting=true it returns early without clearing — this override fills
that gap.
Fixes #65009 . Related: #64011 , #63387 , #62038 .
* test(discord): assert super.connect() delegation in SafeGatewayPlugin tests
* fix(ci): update raw-fetch allowlist line numbers for gateway-plugin.ts
The connect() override added in the heartbeat fix shifted the two
pre-existing fetch() callsites from lines 370/436 to 387/453.
* docs(changelog): add discord heartbeat crash note
* test(cli): align plugin registry load-context mock
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 18:40:04 +01:00
Vincent Koc
1094b3d372
docs(changelog): add memory fallback search credit
2026-04-12 18:38:40 +01:00
Peter Steinberger
a8e140e395
chore: bump version to 2026.4.12
2026-04-12 10:37:18 -07:00
Vincent Koc
8a4a63ca07
fix(memory-core): use all dreaming signals for light confidence
2026-04-12 18:30:35 +01:00
Vincent Koc
a24af49100
fix(update-cli): respawn plugin refresh after self-update ( #65471 )
...
* fix(update-cli): respawn plugin refresh after self-update
* Update src/cli/update-cli/update-command.ts
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update CHANGELOG.md
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-12 18:26:43 +01:00
Vincent Koc
f00f0a9596
fix(agents): stop leaking session lock exit listeners ( #65469 )
...
* fix(agents): stop leaking session lock exit listeners
* Update src/agents/session-write-lock.ts
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
---------
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-12 18:22:12 +01:00
Vincent Koc
077cfca229
fix(memory-core): unblock dreaming-only promotion
2026-04-12 18:14:06 +01:00
zhouhe-xydt
879bb5dd91
fix(memory-wiki): support Unicode characters in slugifyWikiSegment ( #64742 )
...
* fix(memory-wiki): support Unicode characters in slugifyWikiSegment
Replace ASCII-only regex with Unicode-aware regex to preserve CJK,
Cyrillic, Arabic, and other non-ASCII characters in wiki slugs.
Fixes #64620
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
* test(memory-wiki): cover Unicode slug regressions
* fix(memory-wiki): preserve combining marks in slugs
* fix(memory-wiki): cap composed source filenames
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 17:54:41 +01:00
MrBrain
346e38e275
fix(memory-core): isolate dreaming narrative sessions per workspace ( #61674 )
...
* fix(memory-core): isolate dreaming narrative sessions per workspace
* chore(changelog): add narrative isolation note
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 17:39:28 +01:00
Vincent Koc
12d351b79c
fix(ui): hide synthetic transcript-repair history messages ( #65458 )
2026-04-12 17:35:30 +01:00
Sergiusz
079eb18bf7
fix: harden dreaming narrative session cleanup ( #65320 )
...
* fix: harden dreaming narrative session cleanup
* fix(memory-core): harden narrative cleanup
* fix(memory-core): preserve fallback narrative sessions
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 17:33:47 +01:00
Pengfei Ni
aff8a0c0e7
fix(config): resolve CLI command aliases against parent plugin in plugins.allow ( #64748 ) ( #64779 )
...
* fix(config): resolve CLI command aliases against parent plugin in plugins.allow (#64748 )
The CLI allow guard checked command names (e.g. 'wiki') directly against
plugins.allow, missing the parent plugin ('memory-wiki'). Additionally,
memory-wiki did not declare 'wiki' as a commandAlias, so doctor --fix
would remove it as stale.
- Add commandAliases entry for 'wiki' in memory-wiki plugin manifest
- Check parent plugin ID in the CLI fallback allow guard
- Add tests for both allow and deny cases
* fix(cli): inject manifest registry for alias diagnostics
* Update CHANGELOG.md
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 17:32:11 +01:00
Leonard Sellem
c545e4605e
fix(memory-wiki): pass app config into CLI metadata registrar ( #65012 )
...
* fix(memory-wiki): pass config into cli metadata registrar
* fix(memory-wiki): use cli context config for metadata registrar
* docs(changelog): note memory-wiki cli metadata fix
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-04-12 17:30:54 +01:00
Sergio Cadavid
51f0037e61
docs(memory-wiki): add QMD bridge recipe ( #63165 )
...
* docs(memory-wiki): add qmd bridge recipe
* docs(memory-wiki): remove restrictive allowlist from bridge example
* docs(changelog): note memory-wiki bridge recipe
* Apply suggestion from @greptile-apps[bot]
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
* Update memory-wiki.md
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-04-12 17:10:49 +01:00
Vincent Koc
43cb94a39a
fix(doctor): preserve discord streaming downgrade compatibility
2026-04-12 17:09:08 +01:00