Nabbil Khan
f91034aa6b
fix(auth): clear all usage stats fields in clearAuthProfileCooldown (openclaw#19211) thanks @nabbilkhan
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: nabbilkhan <203121263+nabbilkhan@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 22:21:37 -06:00
Tak Hoffman
c1ac37a641
Config: expose Pi compaction tuning values (openclaw#21568) thanks @Takhoffman
...
Verified:
- pnpm install --frozen-lockfile
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Takhoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:41:09 -06:00
Dale Babiy
10dab4f2c7
fix(anthropic): preserve pi-ai default betas when injecting anthropic-beta header (openclaw#19789) thanks @minupla
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: minupla <42547246+minupla@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:23:00 -06:00
Glucksberg
38b4fb5d55
fix(auth/session): preserve override reset behavior and repair oauth profile-id drift (openclaw#18820) thanks @Glucksberg
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: Glucksberg <80581902+Glucksberg@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:16:26 -06:00
Vishal
f1e1cc4ee3
feat: surface cached token counts in /status output (openclaw#21248) thanks @vishaltandale00
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: vishaltandale00 <9222298+vishaltandale00@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 21:06:13 -06:00
青雲
21448508a1
fix: Grok web_search extracts output_text blocks at top level (openclaw#20508) thanks @echoVic
...
Verified:
- pnpm build
- pnpm check
- pnpm test:macmini
Co-authored-by: echoVic <16428813+echoVic@users.noreply.github.com >
Co-authored-by: Tak Hoffman <781889+Takhoffman@users.noreply.github.com >
2026-02-19 20:37:15 -06:00
adhitShet
399781aaca
fix: remove duplicate comment in orderProfilesByMode ( #21409 )
...
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: 04271651d4
Co-authored-by: adhitShet <131381638+adhitShet@users.noreply.github.com >
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com >
Reviewed-by: @gumadeiras
2026-02-19 19:46:51 -05:00
Val Alexander
82a1741336
fix: update formula handling in SKILL.md and frontmatter.ts ( #11046 )
...
- Changed "cask" to "formula" in SKILL.md for consistency.
- Enhanced formula parsing in frontmatter.ts to trim whitespace and fallback to cask if formula is not provided.
2026-02-19 16:57:08 -06:00
Protocol Zero
2af3415fac
fix: treat HTTP 503 as failover-eligible for LLM provider errors ( #21086 )
...
* fix: treat HTTP 503 as failover-eligible for LLM provider errors
When LLM SDKs wrap 503 responses, the leading "503" prefix is lost
(e.g. Google Gemini returns "high demand" / "UNAVAILABLE" without a
numeric prefix). The existing isTransientHttpError only matches
messages starting with "503 ...", so these wrapped errors silently
skip failover — no profile rotation, no model fallback.
This patch closes that gap:
- resolveFailoverReasonFromError: map HTTP status 503 → rate_limit
(covers structured error objects with a status field)
- ERROR_PATTERNS.overloaded: add /\b503\b/, "service unavailable",
"high demand" (covers message-only classification when the leading
status prefix is absent)
Existing isTransientHttpError behavior is unchanged; these additions
are complementary and only fire for errors that previously fell
through unclassified.
* fix: address review feedback — drop /\b503\b/ pattern, add test coverage
- Remove `/\b503\b/` from ERROR_PATTERNS.overloaded to resolve the
semantic inconsistency noted by reviewers: `isTransientHttpError`
already handles messages prefixed with "503" (→ "timeout"), so a
redundant overloaded pattern would classify the same class of errors
differently depending on message formatting.
- Keep "service unavailable" and "high demand" patterns — these are the
real gap-fillers for SDK-rewritten messages that lack a numeric prefix.
- Add test case for JSON-wrapped 503 error body containing "overloaded"
to strengthen coverage.
* fix: unify 503 classification — status 503 → timeout (consistent with isTransientHttpError)
resolveFailoverReasonFromError previously mapped status 503 → "rate_limit",
while the string-based isTransientHttpError mapped "503 ..." → "timeout".
Align both paths: structured {status: 503} now also returns "timeout",
matching the existing transient-error convention. Both reasons are
failover-eligible, so runtime behavior is unchanged.
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-02-19 12:45:09 -08:00
Peter Steinberger
3077c35831
fix(ui): unblock docker onboarding build
2026-02-19 16:32:33 +01:00
Peter Steinberger
a1cb700a05
test: dedupe and optimize test suites
2026-02-19 15:19:38 +00:00
Peter Steinberger
3a258e7ca8
fix(ci): add explicit mock export types for harnesses
2026-02-19 15:16:09 +00:00
Peter Steinberger
e96c6a7a3e
fix(ci): format cron tool imports
2026-02-19 15:13:02 +00:00
Peter Steinberger
cc9be84b9c
refactor(runtime): split runtime builders and stabilize cron tool seam
2026-02-19 16:09:56 +01:00
Peter Steinberger
d3bf6e1b90
test: harden mock order and shell path coverage
2026-02-19 15:09:19 +00:00
Peter Steinberger
dcd592a601
refactor: eliminate jscpd clones and boost tests
2026-02-19 15:08:54 +00:00
Peter Steinberger
a688ccf24a
refactor(security): unify safe-bin argv parsing and harden regressions
2026-02-19 16:04:58 +01:00
Peter Steinberger
f76f98b268
chore: fix formatting drift and stabilize cron tool mocks
2026-02-19 15:41:38 +01:00
Peter Steinberger
c9dee59266
refactor(security): centralize trusted sender checks for discord moderation
2026-02-19 15:39:56 +01:00
Peter Steinberger
b40821b068
fix: harden ACP secret handling and exec preflight boundaries
2026-02-19 15:34:20 +01:00
Peter Steinberger
3d7ad1cfca
fix(security): centralize owner-only tool gating and scope maps
2026-02-19 15:29:23 +01:00
Peter Steinberger
efca61e3ac
test: share cron tool mock harness
2026-02-19 14:27:37 +00:00
Peter Steinberger
2581b67cdb
refactor: share exec approval request helper
2026-02-19 14:27:37 +00:00
Peter Steinberger
775816035e
fix(security): enforce trusted sender auth for discord moderation
2026-02-19 15:18:24 +01:00
Peter Steinberger
2777d8ad93
refactor(security): unify gateway scope authorization flows
2026-02-19 15:06:38 +01:00
Peter Steinberger
a40c10d3e2
fix: harden agent gateway authorization scopes
2026-02-19 14:37:56 +01:00
Peter Steinberger
2d485cd47a
refactor(security): extract safe-bin policy and dedupe tests
2026-02-19 14:28:03 +01:00
Peter Steinberger
0e85380e56
style: format files and fix safe-bins e2e typing
2026-02-19 14:26:12 +01:00
Peter Steinberger
fec48a5006
refactor(exec): split host flows and harden safe-bin trust
2026-02-19 14:22:01 +01:00
Peter Steinberger
bafdbb6f11
fix(security): eliminate safeBins file-existence oracle
2026-02-19 14:18:11 +01:00
Peter Steinberger
cfe8457a0f
fix(security): harden safeBins stdin-only enforcement
2026-02-19 14:10:45 +01:00
mahanandhi
fb35635c10
Security: use execFileSync instead of execSync with shell strings ( #20655 )
...
Replace execSync (which spawns a shell) with execFileSync (which
invokes the binary directly with an argv array). This eliminates
command injection risk from interpolated arguments.
Co-authored-by: sirishacyd <sirishacyd@gmail.com >
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-19 03:19:09 -08:00
Peter Steinberger
fa726792ce
refactor(agents): dedupe pi subscribe e2e stream fixtures
2026-02-19 09:50:00 +00:00
Peter Steinberger
150a76ca9a
test(agents): add shared subscribe stream emit helpers
2026-02-19 09:50:00 +00:00
Peter Steinberger
b96419fab9
test(agents): share pi-tools sandbox fixture context
2026-02-19 09:22:16 +00:00
Peter Steinberger
317b7d363d
test(agents): dedupe subscribe reasoning tag fixtures
2026-02-19 09:11:13 +00:00
Peter Steinberger
6f568f3b17
test(agents): dedupe media and thinking sanitize test setup
2026-02-19 09:06:28 +00:00
Peter Steinberger
4c539f6abc
test(agents): dedupe subagent registry test mocks
2026-02-19 09:03:48 +00:00
Peter Steinberger
0900ec38a9
test(agents): dedupe copilot models-config token setup
2026-02-19 09:03:48 +00:00
Peter Steinberger
b4dbe03298
refactor: unify restart gating and update availability sync
2026-02-19 10:00:41 +01:00
Peter Steinberger
745068a597
test(agents): share overflow retry compaction fixture
2026-02-19 08:55:33 +00:00
Peter Steinberger
b41fd20741
test(agents): share assistant error message test fixture
2026-02-19 08:55:33 +00:00
Peter Steinberger
d1cb779f5f
test(agents): dedupe embedded runner and sessions lifecycle fixtures
2026-02-19 08:47:14 +00:00
Peter Steinberger
c9b5def1b8
test(agents): dedupe openai reasoning replay fixtures
2026-02-19 08:44:37 +00:00
Peter Steinberger
50805d8977
test(agents): dedupe patch and cli credential assertions
2026-02-19 08:44:37 +00:00
Peter Steinberger
429b8783fd
test(agents): dedupe avatar and compaction fixtures
2026-02-19 08:44:37 +00:00
Peter Steinberger
65cf56d482
test(agents): dedupe generic repeat loop fixtures
2026-02-19 08:33:49 +00:00
Peter Steinberger
3cfcb25999
test(agents): dedupe transcript duplicate-tool fixtures
2026-02-19 08:29:06 +00:00
Peter Steinberger
c4c2060b81
test(agents): dedupe sessions_spawn requester run setup
2026-02-19 08:29:06 +00:00
Peter Steinberger
a76f552b00
test(agents): dedupe workspace memory-entry assertions
2026-02-19 08:25:12 +00:00