Peter Steinberger
88908d5ce6
perf(test): trim secrets and media setup
2026-07-09 19:32:12 -04:00
Yuval Dinodia
beda4218af
fix(secrets): reject prototype-polluting mutation paths ( #102840 )
...
* fix(secrets): reject prototype-polluting mutation paths
Co-authored-by: yetval <yetvald@gmail.com >
* docs(secrets): document blocked mutation segments
* chore(secrets): keep release notes in PR metadata
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 00:17:31 +01:00
Vincent Koc
266ca5b3a2
fix(providers): publish Meta provider ( #103070 )
2026-07-09 12:11:56 -07:00
Hamid Shojanazeri
08a957e0ae
feat(providers): add Meta Model API - muse-spark-1.1 ( #102873 )
...
* feat(providers): add Meta Model API - muse-spark-1.1
Adds meta-model-api provider via bundled extension:
- extensions/meta-model-api/ (provider, catalog, stream, thinking, onboarding)
- docs/providers/meta-model-api.md
- core wiring: env-api-keys, zod-schema, provider-display-names, dotenv, provider-env-vars
Model: meta-model-api/muse-spark-1.1 (Responses API at https://api.ai.meta.com/v1 )
Auth: MODEL_API_KEY (Bearer)
Default reasoning: high, maps --thinking off -> minimal (model rejects none)
Fix: bump live test maxTokens 200->4000 (high reasoning uses ~300 tokens for reasoning alone)
Co-authored-by: Meta
* fix(meta-model-api): clean reasoning lint
* test(meta-model-api): align live proof checks
* chore(meta-model-api): bundle provider metadata
* docs: fix Meta Model API setup wording
* docs: format Meta Model API provider page
---------
Co-authored-by: Dave Morin <dave@morin.com >
Co-authored-by: Colin <colin@solvely.net >
Co-authored-by: Josh Lehman <josh@martian.engineering >
2026-07-09 10:27:09 -07:00
Sally O'Malley
e595a8c0ac
Add Vault SecretRef plugin ( #89255 )
...
* Add Vault SecretRef plugin
Signed-off-by: sallyom <somalley@redhat.com >
* expand Vault setup to registered SecretRef targets
Signed-off-by: sallyom <somalley@redhat.com >
* fix(vault): use sdk secret target seam
* fix(vault): preserve auth profile target paths
* docs(vault): document plugin enable step
* fix(vault): make status provider-alias aware
* fix(vault): reject noncanonical secret ids
* fix(vault): separate resolver timeout deadlines
* fix(vault): forward private CA trust settings
* fix(secrets): preserve plugin policy boundaries
---------
Signed-off-by: sallyom <somalley@redhat.com >
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-07-09 05:30:12 -05:00
Alix-007
c765b5de3b
fix(secrets): reject inherited exec response ids ( #101739 )
...
* fix(secrets): check own exec response ids
* test(secrets): cover inherited exec response errors
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 11:13:13 +01:00
Peter Steinberger
d6ec1c6cea
fix(secrets): prevent capture and sentinel credential retention ( #102420 )
...
* fix(secrets): harden sentinel capture lifecycle
* chore: leave release notes to release automation
2026-07-09 05:50:28 +01:00
Peter Steinberger
4bf70be01a
feat(secrets): egress-time credential injection with process-local sentinels ( #102009 )
...
* feat(secrets): resolve SecretRef model credentials at egress via process-local sentinels
SecretRef-managed model-provider credentials now travel as opaque
oc-sent-v1 sentinels through auth storage, stream options, and SDK
config; the guarded model fetch injects real values into headers and
URLs immediately before the SSRF-guarded send and fails closed on
unknown sentinels. packages/ai adapters converge on the host guarded
fetch where the SDK supports custom fetch and unwrap at construction
where it does not. Resolved values (and their percent-encoded forms)
register for exact-value log redaction. Kill switch:
OPENCLAW_SECRET_SENTINELS=off. Also fixes a pre-existing unhandled
rejection race in capNonOkResponseBodyLazily (pipeThrough writer leak).
* test(plugin-sdk): update public surface budget
2026-07-08 12:56:41 +01:00
Vincent Koc
f565138ddc
refactor(deadcode): localize core helpers ( #101869 )
2026-07-07 13:16:57 -07:00
Vincent Koc
b88f80940a
refactor: localize internal implementation symbols ( #101831 )
2026-07-07 10:23:36 -07:00
Yzx
8547682dd6
fix(discord): keep default account online when adding named accounts ( #96401 )
...
* fix(discord): keep default SecretRef active with named accounts
* fix(discord): align implicit default secret surfaces
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-06 16:51:04 +01:00
Peter Steinberger
827402243d
feat: add Anthropic and OpenAI cost history ( #100672 )
...
* feat(providers): add admin cost history
* fix(ui): sync cron raw-copy baseline
* fix(usage): harden provider cost credentials
* fix(ui): refresh raw-copy baseline
* docs: refresh documentation map
* fix(ci): sync provider usage baselines
* fix(ui): hide zero-cost history bars
* docs(changelog): defer provider cost note
2026-07-06 12:06:55 +01:00
cxbAsDev
c9a0783922
fix(secrets): suppress unhandled stdout/stderr stream errors in exec resolver ( #100521 )
...
* fix(secrets): suppress unhandled stdout/stderr stream errors in exec resolver
* proof(secrets): add real behavior proof script for exec resolver stream error catch
* proof(secrets): replace wrapper with real exec resolver stream error proof
* style: apply oxfmt to changed files
2026-07-06 00:52:22 -07:00
Peter Steinberger
c757675f34
improve: keep isolated tests under one second ( #100019 )
...
* test: speed up isolated test suite
* test: finish isolated latency cleanup
* test: eliminate remaining isolated latency spikes
* test: remove final isolated timing outliers
* test: bound full-suite tooling processes
* test: bound native test process lifetime
* test: warm isolated runtime suites
* test: eliminate final isolated timing outliers
* test: fix isolated timing fixture types
* test: make timeout cleanup timing deterministic
* test: pin media manifests to source checkout
* test: isolate provider manifest contracts
* test: eliminate residual isolated timing spikes
* test: restore final isolated timing fixes
* test: eliminate remaining isolated timing spikes
* test: warm Zalo lifecycle imports
* test: keep isolated suites below one second
* test: use readable browser response fixtures
2026-07-05 10:57:19 -07:00
Peter Steinberger
e490171ff2
fix: narrow secret target fast-path types
2026-07-05 08:08:37 -04:00
Peter Steinberger
1f484a8dbd
test: speed up and stabilize full suite
2026-07-05 08:00:23 -04:00
Peter Steinberger
bbb744269f
test: make the local pnpm test gate green on macOS hosts ( #100069 )
...
Fixes 21 macOS-only failing test cases across three classes: canonicalized fixture roots (macOS /var -> /private/var tmpdir symlink vs production realpathing), load-tolerant process-spawn tests (content-gated pid files, readiness-sequenced kill windows, bounded-window timer assertions), and cross-file worker leak guards (skip-channel env, gateway token env, imessage runtime singleton). Test-only; no production changes. Fixes #100025 .
2026-07-04 17:17:42 -04:00
Dallin Romney
5fa2082655
refactor(shared): consolidate core leaf lazy loaders ( #99278 )
2026-07-02 18:06:00 -07:00
xydigit-sj
00c9ac55d6
fix(secrets): skip PLAINTEXT_FOUND for known non-secret apiKey markers ( #97622 )
...
Exclude models.providers.*.apiKey values that match isNonSecretApiKeyMarker
(e.g., lmstudio-local, ollama-local) from secrets audit plaintext warnings.
Regression test covers marker bypass and real-key flagging.
Closes #89233
2026-06-28 19:49:05 -07:00
zw-xysk
4e7992cc9b
fix(feishu): keep top-level appSecret SecretRef active for the implicit default account ( #96965 )
...
When a Feishu channel has top-level appId/appSecret using SecretRef
format and sub-accounts with their own inline appSecret, the secrets
resolver marks the top-level SecretRef as inactive because
isBaseFieldActiveForChannelSurface only checks whether any explicit
account inherits the field.
Feishu account listing always creates an implicit default account from
top-level credentials. The fix detects this implicit default account
and keeps the top-level appSecret active accordingly, without changing
the shared channel secret helper semantics for other channels.
Fixes #96929
Signed-off-by: 赵旺0668001248 <0668001248@duomai.com >
2026-06-28 18:40:41 -07:00
Vincent Koc
c51661f1bf
refactor(secrets): share env var candidate deduplication
2026-06-23 08:04:35 +08:00
Sarah Fortune
6fa944e80f
[codex] Add Slack relay mode for incoming messages ( #94707 )
2026-06-21 11:28:33 -07:00
Vincent Koc
6bfe7a2b06
fix(secrets): enforce canonical secret refs
2026-06-20 06:41:33 +02:00
Vincent Koc
1f244f60ed
test(secrets): load external plugin secret coverage
2026-06-19 18:35:29 +02:00
Vincent Koc
3bcdf20a44
test(secrets): align secret ref fixtures
2026-06-19 18:07:06 +02:00
Vincent Koc
2005812dff
fix(secrets): validate refs consistently at runtime
2026-06-19 17:22:14 +02:00
kevinlin-openai
741f7080a7
feat(codex): support app-server secret refs ( #94324 )
...
Co-authored-by: kevinlin-openai <kevin@dendron.so >
2026-06-18 20:10:11 -07:00
Vincent Koc
21728777df
feat(plugins): externalize official provider batch
2026-06-19 01:05:52 +08:00
Vincent Koc
beea31a6b5
feat(firecrawl): add keyless scrape support ( #94551 )
...
Merged under maintainer approval while exact-head CI was queue-bound.
Co-authored-by: Developers Digest <124798203+developersdigest@users.noreply.github.com >
Co-authored-by: Vincent Koc <vincentkoc@users.noreply.github.com >
2026-06-19 00:23:41 +08:00
Vincent Koc
39dc92efb7
fix(security): kill timed out exec process trees
2026-06-18 00:41:35 +02:00
Vincent Koc
97ce204d97
refactor(plugins): remove unused helper accessors
2026-06-17 21:13:03 +08:00
Goutam Adwant
2c286c3465
fix(google-meet): declare realtime provider secret inputs ( #93677 )
...
* fix(google-meet): declare realtime provider secret inputs
* test(secrets): cover Google Meet installed manifest
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
2026-06-17 01:58:37 +08:00
Dave Morin
c48b36a255
Keep key-free web search providers opt-in ( #93616 )
...
Merged via squash.
Prepared head SHA: 5de02da038
Co-authored-by: davemorin <78139+davemorin@users.noreply.github.com >
Co-authored-by: vincentkoc <25068+vincentkoc@users.noreply.github.com >
Reviewed-by: @vincentkoc
2026-06-16 21:02:07 +08:00
Ayaan Zaidi
7f9f687d82
refactor(channels): remove bundled contract fallbacks
2026-06-10 13:05:24 +05:30
Nimrod Gutman
a547010a95
fix(talk): resolve realtime provider secret refs ( #90914 )
...
Merged via squash.
Prepared head SHA: c5a52049be
Reviewed-by: @ngutman
2026-06-06 15:47:13 +03:00
Shakker
d1fe0184b9
test: preserve secrets state env snapshot
2026-06-05 16:37:09 +01:00
Peter Steinberger
3c1e9984e0
docs: document secrets surface helpers
2026-06-04 05:20:16 -04:00
Peter Steinberger
bea35d0902
docs: document secrets resolution helpers
2026-06-04 05:17:28 -04:00
Peter Steinberger
d28ac4dbdb
docs: document secrets target registry
2026-06-04 05:13:24 -04:00
Peter Steinberger
a720a1f9de
docs: document secrets runtime state
2026-06-04 05:09:51 -04:00
Peter Steinberger
e16ac04330
refactor(auth): store auth profiles in sqlite ( #89102 )
2026-06-03 16:14:15 -07:00
Peter Steinberger
0b8aabe864
docs: document auth profile failure policy contract ( #89613 )
...
* docs: document markdown marker renderer
* docs: document rendered markdown chunking
* docs: document markdown text chunking
* docs: document shared text chunking
* docs: document plugin text chunking exports
* docs: document avatar policy constants
* docs: document node match candidates
* docs: document scoped expiring id cache
* docs: document runtime import normalization
* docs: document string sample summaries
* docs: document session usage timeseries types
* docs: document session usage response types
* docs: document manifest frontmatter shapes
* docs: document channel route input metadata
* docs: document pair loop guard settings
* docs: document migration config patch helpers
* docs: document api provider registry
* docs: document tool call repair payloads
* docs: document plugin tool payload helpers
* docs: document lazy promise loader
* docs: document store writer queue state
* docs: document thread binding lifecycle
* docs: document concurrency helper contract
* docs: document gateway client info contract
* docs: document delivery context contracts
* docs: document secret ref defaults contract
* docs: document command gating contract
* docs: document avatar policy contract
* docs: document node match policy
* docs: document message channel normalization
* docs: document boolean parsing contract
* docs: document zod parse helpers
* docs: document direct dm guard policy
* docs: document fixed window limiter contract
* docs: document node presence event contract
* docs: document secret normalization contract
* docs: document progress draft line removal
* docs: document usage formatting contracts
* docs: document agent run status contract
* docs: document runtime import helpers
* docs: document provider utility ownership
* docs: document invalid config helpers
* docs: document json compat parser
* docs: document channel config metadata ownership
* docs: document channel logging helpers
* docs: document sender identity validation ownership
* docs: document string sampling helper
* docs: document global singleton helpers
* docs: document transcript tool helpers
* docs: document exec safe-bin normalization
* docs: document reaction level resolver
* docs: document account snapshot redaction boundary
* docs: document messaging target helpers
* docs: document thread binding messages
* docs: document conversation binding context
* docs: document conversation resolution helper
* docs: document owner display secret retention
* docs: document provider request config types
* docs: document skills config types
* docs: document memory config types
* docs: document imessage config types
* docs: document crestodian config types
* docs: document tools config policies
* docs: document shared config base types
* docs: document channel config contracts
* docs: document openclaw config state types
* docs: document model config contracts
* docs: document shared agent config types
* docs: document agent defaults config types
* docs: document secret input contracts
* docs: document auth config contracts
* docs: document gateway config contracts
* docs: document tool call stream repair contracts
* docs: document memory host facades
* docs: document llm core contracts
* docs: document markdown core contracts
* docs: document gateway connect error contracts
* docs: document gateway protocol primitives
* docs: document gateway frame schemas
* docs: document gateway device schemas
* docs: document gateway environment schemas
* docs: document gateway push schemas
* docs: document gateway plugin schemas
* docs: document gateway artifact schemas
* docs: document gateway command schemas
* docs: document gateway task schemas
* docs: document gateway exec approval schemas
* docs: document gateway secret schemas
* docs: document gateway config schemas
* docs: document gateway snapshot schemas
* docs: document gateway chat schemas
* docs: document gateway wizard schemas
* docs: document gateway node schemas
* docs: document gateway plugin approval schemas
* docs: document gateway talk schemas
* docs: document gateway agent schemas
* docs: document gateway session schemas
* docs: document gateway cron schemas
* docs: document gateway agent model skill schemas
* docs: document gateway skill proposal tool schemas
* docs: document gateway protocol registry
* docs: document gateway channel status schemas
* docs: document gateway schema regression tests
* docs: document gateway schema barrel
* docs: document gateway validator tests
* docs: document gateway primitive push tests
* docs: document gateway contract tests
* docs: document native protocol guard
* docs: document channel schema tests
* docs: document gateway protocol smoke tests
* docs: document gateway protocol entrypoint
* docs: document gateway protocol type exports
* docs: document gateway error codes
* docs: document protocol schema registry
* docs: document talk audio codec
* docs: document talk activation names
* docs: document talk consult questions
* docs: document talk consult tool
* docs: document talk run control contracts
* docs: document talk run control adapter
* docs: document talkback consult queue
* docs: document talk consult transcript guard
* docs: document talk fast context runtime
* docs: document forced talk consult coordinator
* docs: document talk output activity tracker
* docs: document talk event metrics
* docs: document talk diagnostics
* docs: document talk observability hook
* docs: document talk provider resolver
* docs: document talk provider registry
* docs: document talk runtime primitives
* docs: document talk consult controller logs
* docs: document channel identity helpers
* docs: document channel account allowlist helpers
* docs: document channel metadata draft controls
* docs: document channel ingress policy
* docs: document channel sender access gates
* docs: document channel catalog message contracts
* docs: document channel account plugin helpers
* docs: document configured binding helpers
* docs: document channel acp approval config helpers
* docs: document channel bundled config write helpers
* docs: document channel plugin utility contracts
* docs: document channel config access helpers
* docs: document channel message action helpers
* docs: document channel outbound runtime helpers
* docs: document channel pairing promotion helpers
* docs: document channel registry helpers
* docs: document channel setup wizard helpers
* docs: document channel lifecycle status helpers
* docs: document channel target thread helpers
* docs: document channel session binding helpers
* docs: document channel package module probes
* docs: document channel setup wizard contracts
* docs: document channel plugin API barrels
* docs: document channel contract test helpers
* docs: document channel core helpers
* docs: document small core facades
* docs: document provider runtime helpers
* docs: document persistence and realtime helpers
* docs: document mcp and state helpers
* docs: document tool planner contracts
* docs: document music generation runtime
* docs: document crestodian command flow
* docs: document utility helpers
* docs: document node host helpers
* docs: document transcript contracts
* docs: document trajectory export contracts
* docs: document image generation contracts
* docs: document routing helper contracts
* docs: document session helper contracts
* docs: document video generation contracts
* docs: document model catalog contracts
* docs: document proxy capture contracts
* docs: document status rendering contracts
* docs: document test helper contracts
* docs: document wizard setup contracts
* docs: document process contracts
* docs: document memory host sdk contracts
* docs: document tts contracts
* docs: document secrets runtime contracts
* docs: document shared helper contracts
* docs: document hook runtime contracts
* docs: document security audit contracts
* docs: document flow contracts
* docs: document media understanding contracts
* docs: document tui contracts
* docs: document logging contracts
* docs: document llm contracts
* docs: document cron contracts
* docs: document daemon contracts
* docs: document task contracts
* docs: document acp contracts
* docs: document test utility contracts
* docs: document skill contracts
* docs: document config contracts
* docs: document outbound infra contracts
* docs: document command analysis contracts
* docs: document provider usage infra contracts
* docs: document file safety infra contracts
* docs: document exec approval infra contracts
* docs: document gateway runtime infra contracts
* docs: document infra utility contracts
* docs: document infra queue storage contracts
* docs: document heartbeat infra contracts
* docs: document remaining infra contracts
* docs: document gateway auth contracts
* docs: document gateway display helpers
* docs: document gateway http helpers
* docs: document gateway node helpers
* docs: document gateway mcp helpers
* docs: document gateway support helpers
* docs: document gateway server runtime helpers
* docs: document gateway runtime bootstrap helpers
* docs: document gateway session events
* docs: document gateway utility helpers
* docs: document gateway talk helpers
* docs: document gateway helper contracts
* docs: document gateway server method helpers
* docs: document gateway server auth helpers
* docs: document gateway server tests
* docs: document gateway test helpers
* docs: document gateway node tests
* docs: document gateway channel tests
* docs: document gateway session tests
* docs: document gateway server startup tests
* docs: document gateway tool test helpers
* docs: document gateway server test helpers
* docs: document gateway server method tests
* docs: document remaining gateway tests
* docs: document plugin sdk public subpaths
* docs: document plugin sdk runtime helpers
* docs: document plugin sdk memory provider helpers
* docs: document plugin sdk runtime facades
* docs: document plugin sdk command approval helpers
* docs: document plugin sdk runtime types
* docs: document plugin sdk browser account helpers
* docs: document plugin sdk media memory helpers
* docs: document plugin sdk core tests
* docs: document plugin sdk contract helpers
* docs: document plugin sdk test helpers
* docs: document remaining plugin sdk tests
* docs: document cli utility helpers
* docs: document cli runtime helpers
* docs: document cli command registration helpers
* docs: document node cli helpers
* docs: document cli program registration
* docs: document message cli registration
* docs: document daemon cli helpers
* docs: document cli route parsers
2026-06-03 15:20:39 -07:00
Peter Steinberger
304e2c83c0
chore(lint): enable stricter oxlint rules
2026-05-31 18:59:02 +01:00
Peter Steinberger
b9fe0894a6
chore(lint): enable additional cleanup rules
2026-05-31 08:16:11 +01:00
Peter Steinberger
d4d7fdbc59
fix(ci): satisfy strict nullish guards
2026-05-31 02:50:24 -04:00
Peter Steinberger
4eba3e5d7d
chore(lint): enable more readability rules
2026-05-31 07:38:33 +01:00
Peter Steinberger
deb7bc6539
chore(lint): enable readability lint rules
2026-05-31 07:17:57 +01:00
Peter Steinberger
23dac6c263
test: keep vitest cases under one second
2026-05-31 06:51:34 +01:00
Peter Steinberger
1c1f42a74a
fix(secrets): clamp provider timeouts
2026-05-31 01:37:44 -04:00
Peter Steinberger
00d8d7ead0
refactor: extract normalization core package
...
Extract shared normalization/coercion helpers into private @openclaw/normalization-core workspace package while preserving existing plugin SDK helper subpaths.\n\nAlso keeps direct normalization-core imports internal, wires UI/build/loader resolution, and replaces the slow PR network CodeQL lane with a fast added-line boundary scan while retaining full CodeQL for scheduled/manual runs.\n\nVerification: local moved tests, plugin SDK boundary tests, extension loader tests, agents-support shard, UI build/test, build artifacts, lint, workflow guards, autoreview, and GitHub CI passed on PR head 963d893715 .
2026-05-31 01:33:00 +01:00