Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
864 commits
Select commit Hold shift + click to select a range
381bb86
fix: land external Twilio outbound-api webhook calls (#31181) (thanks…
steipete Mar 2, 2026
c5ddba5
fix(voice-call): retry Twilio signature verification without port in URL
drvoss Feb 24, 2026
3e1ec5a
fix: land Twilio signature port-variant verification (#25140) (thanks…
steipete Mar 3, 2026
6b85ec3
docs: tighten subscription guidance and update MiniMax M2.5 refs
steipete Mar 3, 2026
d6491d8
fix: narrow webhook event provider call id typing
shakkernerd Mar 3, 2026
1d0a4d1
refactor(runtime): harden channel-registry cache invalidation and spl…
steipete Mar 3, 2026
4bfbf2d
test(refactor): dedupe secret resolver posix fixtures and add registr…
steipete Mar 3, 2026
11c397e
docs: strengthen prompt injection warning for weaker models
steipete Mar 3, 2026
3e9c872
fix(gateway): let non-GET requests fall through controlUi routing whe…
ademczuk Mar 2, 2026
e870cee
fix: restore control-ui basePath webhook passthrough (#32311) (thanks…
steipete Mar 3, 2026
fe14be2
Merge pull request #4325: fix(voice-call) verify stale calls with pro…
steipete Mar 3, 2026
fd3ca8a
refactor: dedupe agent and browser cli helpers
steipete Mar 3, 2026
6a42d09
refactor: dedupe gateway config and infra flows
steipete Mar 3, 2026
d7dda4d
refactor: dedupe channel outbound and monitor tests
steipete Mar 3, 2026
8824565
chore(cli): refresh tagline set
steipete Mar 3, 2026
dee7cda
feat(voice-call): add call-waiting queue for inbound Twilio calls
Feb 27, 2026
051b380
fix(hooks): return 200 instead of 202 for webhook responses (#28204)
Glucksberg Mar 3, 2026
6bf84ac
perf(runtime): reduce hot-path config and routing overhead
steipete Mar 3, 2026
4b3d9f4
test(perf): trim fixture churn in install and cron suites
steipete Mar 3, 2026
d37ad9d
test(perf): slim ios team-id harness and add perf budget guard
steipete Mar 3, 2026
f468274
feat: update tlon channel/plugin to be more fully featured (#21208)
arthyn Mar 3, 2026
65dc3ee
models-config: apply config env vars before implicit provider discovery
hsiaoa Mar 2, 2026
1e8afa1
fix: apply config env vars before model discovery (#32295) (thanks @h…
steipete Mar 3, 2026
0d8beeb
fix(hooks): use globalThis singleton for handler registry to survive …
Drickon Mar 2, 2026
d0a3743
refactor: use ??= operator for cleaner globalThis singleton init
Drickon Mar 2, 2026
68e982e
fix: stabilize internal hooks singleton registry (#32292) (thanks @Dr…
steipete Mar 3, 2026
a96b3b4
refactor(voice-call): extract twilio twiml policy and status mapping
steipete Mar 3, 2026
439a773
refactor(voice-call): split webhook server and tailscale helpers
steipete Mar 3, 2026
82101b1
test(voice-call): split call manager tests by scenario
steipete Mar 3, 2026
d76ddd6
fix(discord): add missing accountId to reaction routing params
steipete Mar 3, 2026
61be533
fix(restart): deduplicate reason line in restart sentinel message
velamints2 Mar 2, 2026
f6233cf
fix: dedupe restart sentinel reason output (#32083) (thanks @velamints2)
steipete Mar 3, 2026
1b5ac8b
feat(cli): add configurable banner tagline mode
steipete Mar 3, 2026
53fd7f8
fix(test): resolve Feishu hoisted mock export syntax error (#32128)
ademczuk Mar 3, 2026
77ecef1
feat(models): support minimax highspeed across onboarding
steipete Mar 3, 2026
86090b0
docs(models): refresh minimax kimi glm provider docs
steipete Mar 3, 2026
282b107
test(perf): speed up cron, memory, and secrets hotspots
steipete Mar 3, 2026
9657ded
test(perf): trim slack, hook, and plugin-validation test overhead
steipete Mar 3, 2026
5966219
chore(test): add vitest hotspot reporter script
steipete Mar 3, 2026
6649c22
fix(agents): harden openai ws tool call id handling
steipete Mar 3, 2026
36dfd46
feat(acp): enable dispatch by default
steipete Mar 3, 2026
7de4204
docs(acp): document sandbox limitation
steipete Mar 3, 2026
4708346
refactor: unify inbound debounce policy and split gateway/models helpers
steipete Mar 3, 2026
e930517
fix(ci): resolve docs lint and test typing regressions
steipete Mar 3, 2026
f3e6578
fix(test): tighten websocket and runner fixture typing
steipete Mar 3, 2026
924d9e3
fix(discord): resample audio to 48kHz for voice messages (#32298)
kevinWangSheng Mar 3, 2026
503d395
fix(memoryFlush): guard transcript-size forced flush against repeated…
hclsys Mar 3, 2026
de09ca1
fix(telegram): use retry logic for sticker getFile calls (#32349)
scoootscooob Mar 3, 2026
a448435
fix(slack): restore persistent per-channel session routing (#32320)
AytuncYildizli Mar 3, 2026
f26853f
CLI: dedupe config validate errors and expose allowed values
gumadeiras Mar 3, 2026
287606e
feat(acp): add kimi harness support surfaces
steipete Mar 3, 2026
ced267c
fix(moonshot): apply native thinking payload compatibility
steipete Mar 3, 2026
a2fdc34
fix(failover): handle unhandled stop reason error
steipete Mar 3, 2026
1bd20db
fix(failover): treat stop reason error as timeout
steipete Mar 3, 2026
c3d5159
refactor(hooks): dedupe install parameter wiring
steipete Mar 3, 2026
a48a3db
refactor(tests): dedupe tool, projector, and delivery fixtures
steipete Mar 3, 2026
57e1534
refactor(tests): consolidate repeated setup helpers
steipete Mar 3, 2026
ef920f2
refactor(channels): dedupe monitor message test flows
steipete Mar 3, 2026
588fbd5
perf(test): reduce temp fixture churn in guardrail-heavy suites
steipete Mar 3, 2026
d7bafae
perf(test): trim fixture and serialization overhead in integration su…
steipete Mar 3, 2026
90d8b40
perf(test): simplify plugin install fixture archive loading
steipete Mar 3, 2026
586f057
fix(cron): let resolveOutboundTarget handle missing delivery target f…
hclsys Mar 3, 2026
d9119f0
fix(discord): push connected status when gateway is already connected…
mitchmcalister Mar 3, 2026
17b40c4
fix: guard isConnected check against already-aborted signal
mitchmcalister Mar 3, 2026
4262664
docs(models): clarify moonshot thinking and failover stop-reason errors
steipete Mar 3, 2026
46df7e2
fix(feishu): skip typing indicator keepalive re-adds to prevent notif…
arkyu2077 Mar 3, 2026
f0640b0
fix(test): align gateway and session spawn hook typings
steipete Mar 3, 2026
4e4d94c
fix(test): satisfy auth profile secret ref typing in runtime tests
steipete Mar 3, 2026
1a7a18d
fix(agents): guard gemini tool schema properties against null
webdevtodayjason Mar 3, 2026
ddd71bc
fix: guard gemini schema null properties (#32332) (thanks @webdevtoda…
steipete Mar 3, 2026
4e4a100
Feishu: honor configured default account
bmendonca3 Mar 1, 2026
1187464
fix: feishu default account outbound resolution (#32253) (thanks @bme…
steipete Mar 3, 2026
687ef2e
refactor(media): add shared ffmpeg helpers
steipete Mar 3, 2026
346d359
fix(discord): harden voice ffmpeg path and opus fast-path
steipete Mar 3, 2026
5084621
fix(ui): ensure GFM tables render in WebChat markdown (#20410)
Mar 2, 2026
3e4dd84
fix: webchat gfm table rendering and overflow (#32365) (thanks @BlueB…
steipete Mar 3, 2026
1b4062d
refactor(tests): dedupe pi embedded test harness
steipete Mar 3, 2026
67e3eb8
refactor(tests): dedupe browser and config cli test setup
steipete Mar 3, 2026
4d04e1a
fix(test): harden discord lifecycle status sink typing
steipete Mar 3, 2026
71cd337
fix(gateway): harden message action channel fallback and startup grace
steipete Mar 3, 2026
5ee6ca1
docs(changelog): add landed notes for #32336 and #32364
steipete Mar 3, 2026
61adcea
fix(test): tighten tool result typing in context pruning tests
steipete Mar 3, 2026
747902a
fix(hooks): propagate run/tool IDs for tool hook correlation (#32360)
vincentkoc Mar 3, 2026
666073e
test: fix tsgo baseline test compatibility
steipete Mar 3, 2026
469cd5b
feat(plugin-sdk): Add channelRuntime support for external channel plu…
Feb 24, 2026
1ca69c8
fix: add channelRuntime regression coverage (#25462) (thanks @guxiaobo)
steipete Mar 3, 2026
cdc1ef8
Feishu: cache failing probes (#29970)
bmendonca3 Mar 3, 2026
a3b674c
refactor(tests): dedupe agent lock and loop detection fixtures
steipete Mar 3, 2026
c1b37f2
refactor(tests): dedupe browser and telegram tool test fixtures
steipete Mar 3, 2026
6b6af1a
refactor(tests): dedupe web fetch and embedded tool hook fixtures
steipete Mar 3, 2026
0f5f20e
refactor(tests): dedupe cron delivered status assertions
steipete Mar 3, 2026
b5350bf
refactor(outbound): unify channel selection and action input normaliz…
steipete Mar 3, 2026
2f6718b
refactor(gateway): extract channel health policy and timing aliases
steipete Mar 3, 2026
3e6451f
refactor(feishu): expose default-account selection source
steipete Mar 3, 2026
980388f
plugin-sdk: expose onAgentEvent + onSessionTranscriptUpdate via Plugi…
scifantastic Feb 14, 2026
2aab6df
fix: wrap transcript event listeners in try/catch to prevent throw pr…
scifantastic Feb 17, 2026
b91a22a
style: fix indentation in transcript-events
scifantastic Feb 17, 2026
53ada1e
fix: add missing events property to bluebubbles PluginRuntime mock
scifantastic Feb 17, 2026
2365c6c
docs: add JSDoc to onSessionTranscriptUpdate
scifantastic Feb 17, 2026
bab5d99
docs: expand JSDoc for onSessionTranscriptUpdate params and return
scifantastic Feb 17, 2026
85f01cd
Fix styles
scifantastic Feb 20, 2026
ee646da
fix: add runtime.events regression tests (#16044) (thanks @scifantastic)
steipete Mar 3, 2026
11e1363
feat(hooks): add trigger and channelId to plugin hook agent context (…
davidrudduck Mar 3, 2026
40e5c6a
feat(plugins): expose requestHeartbeatNow on plugin runtime
Feb 17, 2026
3b9877d
fix: add requestHeartbeatNow to bluebubbles test mock
Feb 17, 2026
ebbb572
fix: add requestHeartbeatNow runtime coverage (#19464) (thanks @Austi…
steipete Mar 3, 2026
bd8c323
fix: force supportsDeveloperRole=false for non-native OpenAI endpoint…
akramcodez Mar 3, 2026
39520ad
test(agents): tighten pi message typing and dedupe malformed tool-cal…
steipete Mar 3, 2026
47736e3
refactor(test): extract cron issue-regression harness and frozen-time…
steipete Mar 3, 2026
61f2983
fix(test): resolve upstream typing drift in feishu and cron suites
steipete Mar 3, 2026
16fd604
fix(security): pin tlon api source and secure hold music url
steipete Mar 3, 2026
20c15cc
Plugins: add sessionKey to session lifecycle hooks
tempeste Feb 25, 2026
c0715db
fix: add session hook context regression tests (#26394) (thanks @temp…
steipete Mar 3, 2026
fbb88d5
refactor(tests): dedupe isolated agent cron turn assertions
steipete Mar 3, 2026
5193189
refactor(tests): dedupe cron store migration setup
steipete Mar 3, 2026
4494844
refactor(tests): dedupe discord monitor e2e fixtures
steipete Mar 3, 2026
eca242b
refactor(tests): dedupe manifest registry link fixture setup
steipete Mar 3, 2026
b17687b
refactor(tests): dedupe security fix scenario helpers
steipete Mar 3, 2026
6fc3f50
refactor(tests): dedupe media transcript echo config setup
steipete Mar 3, 2026
4ba5937
refactor(tests): dedupe tools invoke http request helpers
steipete Mar 3, 2026
3eec79b
feat(memory): add Ollama embedding provider (#26349)
nico-hoff Mar 3, 2026
a467517
fix(sessions): preserve idle reset timestamp on inbound metadata
romeodiaz Mar 3, 2026
fd782d8
fix: preserve idle reset timestamp on inbound metadata writes (#32379…
steipete Mar 3, 2026
1ae82be
fix(slack): fail fast on non-recoverable auth errors instead of retry…
scoootscooob Mar 3, 2026
c7ec237
fix: fail fast on non-recoverable slack auth errors (#32377) (thanks …
steipete Mar 3, 2026
96a38d5
fix(cli): fail fast on unsupported Node versions in install and runti…
jasonhargrove Mar 3, 2026
f8ed482
fix(cli): align Node 22.12 preflight checks and clean runtime guard o…
jasonhargrove Mar 3, 2026
7dadd50
fix: enforce node v22.12+ preflight for installer and runtime (#32356…
steipete Mar 3, 2026
7c90ef7
fix(webui): prevent inline code from breaking mid-token on copy/paste
hclsys Mar 3, 2026
f77f1d3
fix: preserve inline code copy fidelity in web ui (#32346) (thanks @h…
steipete Mar 3, 2026
0fd77c9
refactor: modularize plugin runtime and test hooks
steipete Mar 3, 2026
bf6aa7c
fix(agents): treat host edit tool as success when file contains newTe…
Mar 3, 2026
0fb3f18
fix(agents): only recover edit when oldText no longer in file (review…
Mar 3, 2026
d3c637d
fix: recover host edit success after post-write upstream throw (#3238…
steipete Mar 3, 2026
15a0455
CLI: unify routed config positional parsing
gumadeiras Mar 3, 2026
70db52d
test(agents): centralize AgentMessage fixtures and remove unsafe casts
steipete Mar 3, 2026
7fdbf12
test(security): reduce audit fixture setup overhead
steipete Mar 3, 2026
03755f8
test(telegram): dedupe streaming cases and tighten sequential key checks
steipete Mar 3, 2026
d380ed7
refactor(agents): split pi-tools param and host-edit wrappers
steipete Mar 3, 2026
4d52dfe
refactor(sessions): add explicit merge activity policies
steipete Mar 3, 2026
1dd77e4
refactor(slack): extract socket reconnect policy helpers
steipete Mar 3, 2026
493b560
refactor(runtime): unify node version guard parsing
steipete Mar 3, 2026
2380c1b
refactor(ui): dedupe inline code wrap rules
steipete Mar 3, 2026
6ab9e00
fix: resolve pi-tools typing regressions
steipete Mar 3, 2026
1929151
refactor(telegram): extract sequential key module
steipete Mar 3, 2026
5733620
test(telegram): move preview-finalization cases to lane unit tests
steipete Mar 3, 2026
62582fc
perf(agents): cache per-pass context char estimates
steipete Mar 3, 2026
895abc5
perf(security): allow audit snapshot and summary cache reuse
steipete Mar 3, 2026
b29e913
fix(docker): correct awk quoting in Docker GPG fingerprint check (#32…
Supsumintong Mar 3, 2026
04ac688
fix(acp): use publishable acpx install hint
Mar 3, 2026
91cdb70
Agents: add context metadata warmup retry backoff
gumadeiras Mar 3, 2026
4c32411
fix(exec): suggest increasing timeout on timeouts
Mar 3, 2026
008e480
fix(gemini-cli-auth): use PLATFORM_UNSPECIFIED for Linux in loadCodeA…
riftzen-bit Mar 3, 2026
5e1a2ea
chore: remove unreachable "LINUX" from resolvePlatform return type
riftzen-bit Mar 3, 2026
30ab9b2
fix(agents): recognize connection errors as retryable timeout failure…
haotian2546 Mar 3, 2026
9702d94
refactor: split plugin runtime type contracts
steipete Mar 3, 2026
8ee357f
refactor: extract session init helpers
steipete Mar 3, 2026
59567a8
ci: move changed-scope logic into tested script
steipete Mar 3, 2026
0750fc2
test: consolidate extension runtime mocks and split bluebubbles webho…
steipete Mar 3, 2026
e707c97
fix(voice-call): prevent EADDRINUSE by guarding webhook server lifecycle
scoootscooob Mar 3, 2026
9f69109
fix(voice-call): harden webhook lifecycle cleanup and retries (#32395…
steipete Mar 3, 2026
87977d7
fix: unblock build type errors
obviyus Mar 3, 2026
40f2e2b
ci: scale Windows CI runner and test workers
steipete Mar 3, 2026
fdb0bf8
refactor(test): dedupe telegram draft-stream fixtures
steipete Mar 3, 2026
1ec9673
refactor(telegram): split lane preview target helpers
steipete Mar 3, 2026
2d033d2
refactor(agents): split tool-result char estimator
steipete Mar 3, 2026
8ac924c
refactor(security): centralize audit execution context
steipete Mar 3, 2026
3a8133d
fix(scripts/pr): SSH-first prhead remote with GraphQL fallback for fo…
jalehman Mar 3, 2026
6bf1abf
ci: use valid Blacksmith Windows runner label
steipete Mar 3, 2026
8a463af
CI: add sticky-disk toggle to setup node action
vincentkoc Mar 3, 2026
ffd3ad0
CI: add sticky-disk mode to pnpm cache action
vincentkoc Mar 3, 2026
96d56a9
CI: enable sticky-disk pnpm cache on Linux CI jobs
vincentkoc Mar 3, 2026
85d17fd
CI: migrate docker release build cache to Blacksmith
vincentkoc Mar 3, 2026
5cffbbd
CI: use Blacksmith docker builder in install smoke
vincentkoc Mar 3, 2026
24fd6c8
CI: use Blacksmith docker builder in sandbox smoke
vincentkoc Mar 3, 2026
6472e03
refactor(agents): share failover error matchers
steipete Mar 3, 2026
c85bd26
refactor(cli): extract plugin install plan helper
steipete Mar 3, 2026
ac318be
refactor(voice-call): unify runtime cleanup lifecycle
steipete Mar 3, 2026
fa4ff5f
refactor(acp): extract install hint resolver
steipete Mar 3, 2026
25a2fe2
refactor(tests): dedupe control ui auth pairing fixtures
steipete Mar 3, 2026
5c18ba6
refactor(tests): dedupe gateway chat history fixtures
steipete Mar 3, 2026
7897ffb
refactor(memory): dedupe openai batch fetch flows
steipete Mar 3, 2026
1a52d94
refactor(tests): dedupe model compat assertions
steipete Mar 3, 2026
884ca65
refactor(acp): dedupe runtime option command plumbing
steipete Mar 3, 2026
e290f4c
refactor(config): dedupe repeated zod schema shapes
steipete Mar 3, 2026
3460aa4
refactor(browser): dedupe playwright interaction helpers
steipete Mar 3, 2026
369646a
refactor(tests): dedupe openresponses http fixtures
steipete Mar 3, 2026
d068fc9
refactor(tests): dedupe agent handler test scaffolding
steipete Mar 3, 2026
4a59d0a
refactor(tests): dedupe session store route fixtures
steipete Mar 3, 2026
4fb6da2
refactor(tests): dedupe canvas host server setup
steipete Mar 3, 2026
1a00362
refactor(security): dedupe telegram allowlist validation loops
steipete Mar 3, 2026
7a82321
refactor(config): dedupe session store save error handling
steipete Mar 3, 2026
b8181e5
refactor(gateway): dedupe agents server-method handlers
steipete Mar 3, 2026
8b4cdbb
refactor(infra): dedupe exec approval allowlist evaluation flow
steipete Mar 3, 2026
a50dd0b
refactor(infra): dedupe ssrf fetch guard test fixtures
steipete Mar 3, 2026
3ff0cf2
refactor(infra): dedupe update startup test setup
steipete Mar 3, 2026
55c128d
refactor(memory): dedupe readonly recovery test scenarios
steipete Mar 3, 2026
1538813
refactor(agents): dedupe ollama provider test scaffolding
steipete Mar 3, 2026
6408b7f
refactor(agents): dedupe steer restart test replacement flow
steipete Mar 3, 2026
f212351
refactor(telegram): dedupe monitor retry test helpers
steipete Mar 3, 2026
806803b
feat(secrets): expand SecretRef coverage across user-supplied credent…
joshavant Mar 3, 2026
f2c37e5
CI: optimize Windows lane by splitting bundle and dropping duplicate …
vincentkoc Mar 3, 2026
7bad429
docs: reorder unreleased changelog by user interest
steipete Mar 3, 2026
7fd4328
fix(e2e): include shared tool display resource in onboard docker build
steipete Mar 3, 2026
f7f0caa
fix(ci): tighten type signatures in gateway params validation
steipete Mar 3, 2026
805de85
fix(telegram): move unchanged command-sync log to verbose
steipete Mar 3, 2026
da6e6fb
test: fix strict runtime mock types in channel tests
steipete Mar 3, 2026
5cba9a6
test: load ci changed-scope script via esm import
steipete Mar 3, 2026
04a8f97
fix(swift): align async helper callsites across iOS and macOS
steipete Mar 3, 2026
ba50dfa
refactor(macos): simplify pairing alert and host helper paths
steipete Mar 3, 2026
80efcb7
style(swift): apply lint and format cleanup
steipete Mar 3, 2026
2c6616b
CI: gate Windows checks by windows-relevant scope (#32456)
vincentkoc Mar 3, 2026
05aa16c
CI: allow blacksmith 32 vCPU Windows runner in actionlint
vincentkoc Mar 3, 2026
ca1b509
chore(gitignore): ignore android kotlin cache
steipete Mar 3, 2026
46b62c5
fix(ci): restore scope-test require import and sync host policy
steipete Mar 3, 2026
85a320d
docs(changelog): add SecretRef note for #29580
joshavant Mar 3, 2026
17bb87f
fix(venice): retry model discovery on transient fetch failures
steipete Mar 3, 2026
e6f34b2
fix(feishu): preserve block streaming text when final payload is miss…
Sid-Qin Mar 3, 2026
578a7a8
CI: add exact-key mode for pnpm cache restore
vincentkoc Mar 3, 2026
153a4f5
CI: reduce pre-test Windows setup latency
vincentkoc Mar 3, 2026
8b80848
CI: increase checks-windows test shards to 3
vincentkoc Mar 3, 2026
99a48aa
CI: increase checks-windows test shards to 4
vincentkoc Mar 3, 2026
02d26ce
docs(feishu): Feishu docs – add verificationToken and align zh-CN wit…
xbsheng Mar 3, 2026
f175a5d
fix(ci): avoid shell interpolation in changed-scope git diff
steipete Mar 3, 2026
70ab915
test(ci): add changed-scope shell-injection regression
steipete Mar 3, 2026
92c4a2a
fix(gateway): retry exec-read live tool probe
steipete Mar 3, 2026
7c6f8bf
feat(feishu): add broadcast support for multi-agent groups (#29575)
ohmyskyhigh Mar 3, 2026
eb8a884
chore(release): prepare 2026.3.2-beta.1
steipete Mar 3, 2026
99ae722
fix(ci): complete feishu route mock typing in broadcast tests
steipete Mar 3, 2026
925da0f
Delete changelog/fragments directory
vincentkoc Mar 3, 2026
1fdc20a
refactor(feishu): unify Lark SDK error handling with LarkApiError (#3…
echoVic Mar 3, 2026
524fb16
fix(gateway): skip google rate limits in live suite
steipete Mar 3, 2026
c6634b4
CI: add toggle to skip pnpm actions cache restore
vincentkoc Mar 3, 2026
a951ecd
CI: shard Windows tests into sixths and skip cache restore
vincentkoc Mar 3, 2026
b3b4fd3
chore(release): update appcast for 2026.3.2-beta.1
steipete Mar 3, 2026
6cdfd2e
fix(feishu): correct invalid scope name in permission grant URL (#32509)
Takhoffman Mar 3, 2026
d9d604c
docs: add dedicated pdf tool docs page
steipete Mar 3, 2026
7c179f9
feishu, line: pass per-group systemPrompt to inbound context (#31713)
whiskyboy Mar 3, 2026
bb57962
docs(changelog): remove docs-only 2026.3.2 entries
steipete Mar 3, 2026
5ef04d2
CI: speed up Windows dependency warmup
vincentkoc Mar 3, 2026
d28fa50
CI: make node deps install optional in setup action
vincentkoc Mar 3, 2026
a5a6952
CI: reduce critical path for check build and windows jobs
vincentkoc Mar 3, 2026
a5a7239
fix(feishu): non-blocking WS ACK and preserve full streaming card con…
HaoHuaqing Mar 3, 2026
cad06fa
fix: add session-memory hook support for Feishu provider (#31437)
Linux2010 Mar 3, 2026
406e7ab
fix(feishu): guard against false-positive @mentions in multi-app grou…
teaguexiao Mar 3, 2026
be5de30
CI: start push test lanes earlier and drop check gating
vincentkoc Mar 3, 2026
d45aa68
CI: disable flaky sticky disk mount for Windows pnpm setup
vincentkoc Mar 3, 2026
85377a2
chore(release): cut 2026.3.2
steipete Mar 3, 2026
b995500
chore: mark pending upstream sync for v2026.3.2 (conflicts)
github-actions[bot] Mar 3, 2026
b7d1b5d
Merge upstream release v2026.3.2
RedBeardEth Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,10 @@ vendor/
# Keep the rest of apps/ and vendor/ excluded to avoid a large build context.
!apps/shared/
!apps/shared/OpenClawKit/
!apps/shared/OpenClawKit/Sources/
!apps/shared/OpenClawKit/Sources/OpenClawKit/
!apps/shared/OpenClawKit/Sources/OpenClawKit/Resources/
!apps/shared/OpenClawKit/Sources/OpenClawKit/Resources/tool-display.json
!apps/shared/OpenClawKit/Tools/
!apps/shared/OpenClawKit/Tools/CanvasA2UI/
!apps/shared/OpenClawKit/Tools/CanvasA2UI/**
Expand Down
1 change: 1 addition & 0 deletions .github/actionlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ self-hosted-runner:
- blacksmith-8vcpu-windows-2025
- blacksmith-16vcpu-ubuntu-2404
- blacksmith-16vcpu-windows-2025
- blacksmith-32vcpu-windows-2025
- blacksmith-16vcpu-ubuntu-2404-arm

# Ignore patterns for known issues
Expand Down
15 changes: 13 additions & 2 deletions .github/actions/setup-node-env/action.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Setup Node environment
description: >
Initialize submodules with retry, install Node 22, pnpm, optionally Bun,
and run pnpm install. Requires actions/checkout to run first.
and optionally run pnpm install. Requires actions/checkout to run first.
inputs:
node-version:
description: Node.js version to install.
Expand All @@ -15,6 +15,14 @@ inputs:
description: Whether to install Bun alongside Node.
required: false
default: "true"
use-sticky-disk:
description: Use Blacksmith sticky disks for pnpm store caching.
required: false
default: "false"
install-deps:
description: Whether to run pnpm install after environment setup.
required: false
default: "true"
frozen-lockfile:
description: Whether to use --frozen-lockfile for install.
required: false
Expand All @@ -40,13 +48,14 @@ runs:
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ inputs.node-version }}
check-latest: true
check-latest: false

- name: Setup pnpm + cache store
uses: ./.github/actions/setup-pnpm-store-cache
with:
pnpm-version: ${{ inputs.pnpm-version }}
cache-key-suffix: "node22"
use-sticky-disk: ${{ inputs.use-sticky-disk }}

- name: Setup Bun
if: inputs.install-bun == 'true'
Expand All @@ -63,10 +72,12 @@ runs:
if command -v bun &>/dev/null; then bun -v; fi

- name: Capture node path
if: inputs.install-deps == 'true'
shell: bash
run: echo "NODE_BIN=$(dirname "$(node -p "process.execPath")")" >> "$GITHUB_ENV"

- name: Install dependencies
if: inputs.install-deps == 'true'
shell: bash
env:
CI: "true"
Expand Down
29 changes: 28 additions & 1 deletion .github/actions/setup-pnpm-store-cache/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,18 @@ inputs:
description: Suffix appended to the cache key.
required: false
default: "node22"
use-sticky-disk:
description: Use Blacksmith sticky disks instead of actions/cache for pnpm store.
required: false
default: "false"
use-restore-keys:
description: Whether to use restore-keys fallback for actions/cache.
required: false
default: "true"
use-actions-cache:
description: Whether to restore/save pnpm store with actions/cache.
required: false
default: "true"
runs:
using: composite
steps:
Expand Down Expand Up @@ -38,7 +50,22 @@ runs:
shell: bash
run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"

- name: Restore pnpm store cache
- name: Mount pnpm store sticky disk
if: inputs.use-sticky-disk == 'true'
uses: useblacksmith/stickydisk@v1
with:
key: ${{ github.repository }}-pnpm-store-${{ runner.os }}-${{ inputs.cache-key-suffix }}
path: ${{ steps.pnpm-store.outputs.path }}

- name: Restore pnpm store cache (exact key only)
if: inputs.use-actions-cache == 'true' && inputs.use-sticky-disk != 'true' && inputs.use-restore-keys != 'true'
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: ${{ runner.os }}-pnpm-store-${{ inputs.cache-key-suffix }}-${{ hashFiles('pnpm-lock.yaml') }}

- name: Restore pnpm store cache (with fallback keys)
if: inputs.use-actions-cache == 'true' && inputs.use-sticky-disk != 'true' && inputs.use-restore-keys == 'true'
uses: actions/cache@v4
with:
path: ${{ steps.pnpm-store.outputs.path }}
Expand Down
Loading
Loading