Vincent Koc
c4292bc8b2
fix(diagnostics): report exporter health in doctor and status ( #119816 )
...
* fix(diagnostics): report exporter health transitions
* fix(diagnostics): retire exporter health on shutdown
* test(diagnostics): enforce OTLP protobuf content type
* test(diagnostics): satisfy exporter test type contracts
* fix(diagnostics): redact endpoint-like exporter codes
* fix(diagnostics): coordinate exporter route health
* test(diagnostics): satisfy exporter health static gates
* fix(diagnostics): keep exporter health internal
2026-08-06 20:50:18 +08:00
Peter Steinberger
d8147f81b7
test(models): align list mocks with prepared runtime ( #119876 )
2026-08-06 01:35:26 -07:00
Peter Steinberger
245dbacbe0
fix: agent exec loads installed harnesses locally ( #119855 )
...
* fix(agents): bind local plugin harness registry (#119852 )
* test(agents): isolate local registry in command suites
2026-08-06 00:26:02 -07:00
joshavant
9702134882
fix: settle Gemini CLI auth preparation failures
2026-08-06 01:48:09 -05:00
joshavant
f461701d00
fix: quarantine expired CLI auth profiles
2026-08-06 01:48:09 -05:00
Vincent Koc
63cadcf11b
fix(backup): skip transient gateway lock databases ( #119782 )
...
Reported by @AgentSolomon in #119757 .
Fixes #119757
Punchcard-Session: amber-meadow-timber-8r
2026-08-06 11:26:47 +08:00
Peter Steinberger
88b7baca7b
test(doctor): align fast-path repair contracts ( #119812 )
2026-08-05 19:55:27 -07:00
Shakker
c56ad42525
fix: grant host-authorized control ui owner access
2026-08-06 02:21:45 +01:00
Peter Steinberger
9546d2af58
fix(doctor): capitalize Gateway in plugin restart guidance ( #119659 )
...
* fix(doctor): capitalize Gateway restart guidance
* test(doctor): keep plugin refusal coverage focused
2026-08-05 08:14:18 -07:00
Vincent Koc
80da61668e
improve(doctor): avoid repeated plugin metadata scans ( #119482 )
...
* perf(doctor): reuse plugin metadata snapshot
Punchcard-Session: coral-workshop-workshop-3f
* test(doctor): update legacy issue mock
Punchcard-Session: coral-workshop-workshop-3f
* fix(doctor): refresh metadata after repairs
* test(doctor): type legacy issue mock arguments
Punchcard-Session: coral-workshop-workshop-3f
* fix(doctor): invalidate scoped plugin metadata
Punchcard-Session: coral-workshop-workshop-3f
* fix(doctor): keep snapshot scope type private
Punchcard-Session: coral-workshop-workshop-3f
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-05 19:06:08 +08:00
sunlit-deng
07ad8114b0
fix: make plugin verification restart guidance install-neutral ( #119508 )
2026-08-05 15:15:34 +08:00
Peter Steinberger
dca3ed16de
fix: adopt Tailscale names and avatars into user profiles ( #119479 )
...
* fix(gateway): adopt Tailscale profile identities
* fix(gateway): normalize Tailscale identity subjects
* fix(gateway): preserve Tailscale identity provenance
* fix(gateway): detach Tailscale avatar adoption
2026-08-04 23:09:06 -07:00
wangyan2026
20bd49db89
fix(pairing): normalize account key in legacy allowFrom filename parsing ( #110415 )
...
* [AI] fix(pairing): normalize account key in legacy allowFrom filename parsing
parseAllowFromFilename extracted the account segment from filenames
without normalizing it via safeAccountKey, so non-canonical spellings
(e.g. HY_RIN_Bot vs hy_rin_bot) could never match configured accounts.
This left the file unresolved, producing a startup migration warning
that blocks gateway readiness on every restart.
Normalize accountKey via safeAccountKey before comparing so that raw
and canonical spellings resolve to the same account. Wrap in try/catch
so pathological filename segments skip safely instead of throwing.
Guard non-canonical DEFAULT segments: when safeAccountKey maps a
non-literal-default segment (e.g. "DEFAULT") to the canonical key
"default", skip the filter so the file remains unresolved instead of
being attributed to the implicit bundled default account and deleted.
Keep the implicit bundled-default fallback on the literal canonical
suffix (accountKey === DEFAULT_ACCOUNT_ID). Ambiguity detection
remains unchanged.
Related to #110187
* fix(pairing): constrain legacy filename recovery
Co-authored-by: WangYan <wang.yan29@xydigit.com >
* fix(pairing): preserve case-colliding legacy files
Co-authored-by: WangYan <wang.yan29@xydigit.com >
* fix(pairing): match legacy files to raw account ids
Co-authored-by: WangYan <wang.yan29@xydigit.com >
* fix(pairing): keep default suffix literal
Co-authored-by: WangYan <wang.yan29@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-04 22:59:30 -07:00
Vincent Koc
9371dddcdb
fix(config): preserve plugin metadata for missing config ( #119421 )
...
Restore plugin metadata for valid missing-config snapshot reads while preserving scan-free plain reads and fail-closed invalid snapshots.
2026-08-05 11:22:42 +08:00
Vincent Koc
1ee0564b09
fix(discord): avoid doctor runtime loading ( #119391 )
...
* fix(discord): publish doctor capability metadata
Punchcard-Session: amber-workshop-river-yr
* fix(doctor): read packaged channel metadata
Punchcard-Session: amber-workshop-river-yr
2026-08-05 11:05:35 +08:00
Peter Steinberger
5ffd2dfbc3
refactor(status): consolidate scan projections and lazy loaders ( #119412 )
2026-08-04 19:41:40 -07:00
mikasa
722dfb3d64
fix(status): status --all slows down with missing plugins ( #119203 )
...
* fix(status): avoid repeated discovery for missing channels
* fix(status): batch missing plugin repair hints
* fix(status): type missing plugin channel ids
* fix(status): preserve required channel ids
* fix(status): keep batch hint type internal
* fix(status): preserve batch repair laziness
---------
Co-authored-by: daily-fix[bot] <daily-fix[bot]@users.noreply.github.com>
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-04 19:41:31 -07:00
mushuiyu886
c6be75957f
fix(cli): align TaskFlow controller columns for wide text ( #118801 )
2026-08-04 19:31:55 -07:00
Peter Steinberger
195b0ea3fa
fix: make startup migration restart guidance install-neutral ( #119406 )
2026-08-04 19:28:27 -07:00
Josh Avant
618fba92bf
feat(audit): add execution identity inspection ( #117034 )
...
* feat(audit): add opt-in execution identity inspection
* fix(audit): gate recovery identity retention
* fix(audit): keep recovery identity type private
* test(audit): type internal recovery fixture
* test(audit): split recovery identity coverage
* docs(audit): define operator read trust boundary
* test(qa): register identity scenario child
* fix(audit): enforce shared identity retention bounds
* fix(audit): seal public ingress identity boundary
* fix(audit): keep ingress guard lint-clean
* fix(gateway): preserve advertised method order
* chore(protocol): sync advertised method order
* fix(protocol): encode audit selector invariants
* test(audit): prove exact execution guard
* fix(audit): keep identity storage lazy
2026-08-04 20:05:15 -05:00
Arthur Lacoste
f207e14d92
fix(telegram): keep commands responsive during Codex login
...
Release Telegram’s chat lane after structured Codex device-code delivery while account-owned authentication completes safely in the background.
Co-authored-by: Arthur Lacoste <arthurlacoste@users.noreply.github.com >
2026-08-05 05:59:13 +05:30
Vincent Koc
ef11eae39b
fix(plugins): preserve install index state across failures ( #119228 )
...
* fix(plugins): preserve install index policy config
* fix(plugins): restore complete install index state
* fix(plugins): fence install index rollback
* fix(plugins): fence generic install index rollback
* fix(plugins): keep lifecycle lease context private
* test(cli): align plugin index rollback mocks
* test(plugins): enforce index rollback receipts
* fix(plugins): serialize install rollback with config commit
* test(plugins): keep legacy index writer mock private
2026-08-05 01:04:17 +08:00
Bek
50a30b7373
fix(codex): migrate redundant native service tiers ( #118738 )
2026-08-04 11:36:03 -04:00
Vincent Koc
e4aab26d01
fix(cli): avoid repeated migration scans during local agent turns ( #119051 )
...
* fix(cli): avoid repeated state migration scans
* fix(build): preserve source runtime provenance
* fix(cli): persist state checkpoint before plugin convergence
* fix(cli): invalidate migration checkpoints on input changes
* fix(plugins): refresh changed doctor contracts
* fix(plugins): preserve warm Doctor contract indexes
* test(plugins): align manifest registry fixtures
* test(cli): isolate ACP process state
* fix(doctor): persist refreshed plugin indexes
* fix(doctor): verify persisted plugin index from disk
* fix(doctor): fence plugin index persistence
* fix(doctor): retain validated migration lease
* fix(plugins): canonicalize persisted build metadata
* fix(plugins): preserve config policy during install repair
2026-08-04 20:28:16 +08:00
Vincent Koc
c3f148f6b7
fix(plugins): preserve metadata reloads during models status ( #119183 )
...
* fix(plugins): preserve newer metadata publications
* test(plugins): type metadata snapshot fixture
2026-08-04 19:24:30 +08:00
joshavant
8393b37779
fix(setup): keep compatible Claude wrappers selectable
2026-08-04 02:08:23 -05:00
joshavant
d636f5f8e0
fix(agents): gate Claude live session protocol
2026-08-04 02:08:23 -05:00
Vincent Koc
7a5f108293
fix: unblock macOS release validation ( #119110 )
...
* fix(test): guard split-memory tests on case-insensitive filesystems
* fix(sandbox): canonicalize aliased mount roots
* fix(claws): canonicalize aliased manifest paths
* test: isolate release validation from host state
2026-08-04 15:05:31 +08:00
Jason (Json)
afa4977b2c
fix(gateway): honor external status target context ( #119015 )
...
* fix(gateway): preserve external status target context
* fix(gateway): keep status service authority scoped
2026-08-03 19:37:39 -06:00
Michael Christenson II
7f7a709b1d
fix: Ollama missing from onboarding when its service is reachable ( #118020 )
2026-08-03 17:49:31 -06:00
Peter Steinberger
3d65ea2a1b
fix(googlechat): align doctor policy ownership with canonical account configuration ( #118972 )
...
* fix(googlechat): align doctor policy ownership with canonical account configuration
* test(googlechat): align generated channel metadata and typed doctor fixtures
2026-08-03 15:23:16 -07:00
kiranmagic7
682f60ce56
fix(config): reject unsupported diagnostics otel grpc ( #93087 )
2026-08-03 16:28:08 -04:00
Harjoth Khara
bcc27f6726
perf(cli): carry prepared plugin metadata through cold read paths ( #118460 )
...
* perf(cli): carry prepared plugin metadata through cold read paths
* perf(plugins): thread prepared metadata into auto-enable detection
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-03 12:23:00 -07:00
Peter Steinberger
2efac6c999
feat(cli): add session archive and delete commands ( #118791 )
...
* feat(cli): add session lifecycle commands
* fix(deps): update brace-expansion security pin
* chore: defer session lifecycle release note
2026-08-03 11:00:17 -07:00
Peter Steinberger
206a784961
fix(doctor): invalidate SQLite session caches after durable repairs ( #118766 )
2026-08-03 10:26:48 -07:00
Shakker
b8f5aa8ec8
fix: keep skip-ui onboarding on guided flow ( #118737 )
...
Keep `openclaw onboard --skip-ui` and `openclaw setup --skip-ui` on guided onboarding while suppressing browser and terminal handoffs.
Refs #118388 and #118038 .
Prepared head SHA: 4e284c4523
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com >
Reviewed-by: @shakkernerd
2026-08-03 18:03:01 +01:00
Peter Steinberger
7fafaf50f4
fix(onboard): keep referenced provider secrets out of plaintext ( #118702 )
...
* fix(onboard): keep referenced provider secrets out of plaintext
* fix(onboard): retain public credential owner type usage
* docs(onboarding): explain preserved credential profiles in reference mode
2026-08-03 08:34:47 -07:00
Peter Steinberger
395c772ba7
fix(doctor): honor explicit plugin-only migration authority ( #118700 )
2026-08-03 07:34:49 -07:00
Peter Steinberger
a30adedc9b
fix(cli): preserve gateway request errors in health JSON ( #118645 )
...
Co-authored-by: Peter Steinberger <steipete@macos.shared >
2026-08-03 04:52:42 -07:00
Peter Steinberger
a6f9da8bdb
refactor: centralize cron, doctor, and TUI ownership ( #118515 )
...
* refactor(cron): centralize queued run activation
* refactor(doctor): share session SQLite report scaffolding
* refactor(tui): unify slash command registry
* fix(tui): satisfy command registry lint
* fix(tui): align shared command usage help
* fix(btw): preserve outbound usage placeholder
2026-08-03 04:08:54 -07:00
Peter Steinberger
188957a18a
fix(gateway): require explicit credentials for probe URL overrides ( #118614 )
2026-08-03 02:52:29 -07:00
Peter Steinberger
63651a1878
fix: keep command tests independent of ambient Gateway tokens ( #118577 )
...
* test(commands): isolate missing gateway token environment
* test(commands): isolate doctor gateway token environment
2026-08-03 01:48:51 -07:00
joshavant
d9393bd3cb
fix: make subagent completion delivery durable
2026-08-03 02:48:34 -05:00
Peter Steinberger
3aca283d44
test: avoid plugin scans in doctor preflight tests ( #118546 )
...
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-02 23:54:26 -07:00
joshavant
92a6655ee3
fix(agents): preserve terminal reply outcomes
2026-08-03 01:41:38 -05:00
Peter Steinberger
389732759c
test: deduplicate Codex doctor expectations ( #118487 )
2026-08-02 22:10:38 -07:00
Peter Steinberger
3350cd58b4
perf(gateway): speed up first dashboard session list ( #118434 )
...
* perf(gateway): speed up first session RPC
* chore: leave release notes to generation
* fix(gateway): inject prepared catalog reader
* fix(gateway): allow lightweight catalog contexts
* test(gateway): align session handler test seams
---------
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local >
2026-08-02 21:52:38 -07:00
Peter Steinberger
14006a439d
refactor(doctor): consolidate memory health test fixtures ( #118091 )
...
* test(doctor): dedupe memory search fixtures
* test(doctor): preserve provider warning cardinality
2026-08-02 20:55:30 -07:00
Alex Knight
d7def97638
fix(cli): one-shot agent --local runs never export OTel diagnostics ( #100845 )
...
Diagnostics exporters are plugin services that only ever start inside the
Gateway process, so embedded `openclaw agent --local` turns emitted
diagnostic events in the CLI process with no subscriber: zero spans,
metrics, or logs reached the OTLP collector while identical Gateway-
dispatched turns exported fine.
The CLI now starts the `diagnostics-otel` service around embedded agent
runs via a scoped, non-activating plugin load that honors the same
plugin-enablement config as the Gateway, and flushes before exit: drain
the async diagnostic-event queue, then shut the SDK down (force flush).
Each step is bounded separately (5s drain, 10s flush) so an unreachable
collector cannot hold the CLI open, and a stalled drain cannot consume
the flush window and discard telemetry that was already buffered.
When OTel is configured but the plugin is absent, the run now says so
instead of exporting nothing with nothing explaining why.
`diagnostics-prometheus` stays Gateway-only: it is a pull-based scrape
server that is useless in a short-lived process and would race the
Gateway for its port. No new config surface; configs without OTel enabled
short-circuit before any plugin load.
Co-authored-by: Alex Knight <15041791+amknight@users.noreply.github.com >
2026-08-03 13:29:46 +10:00
Peter Steinberger
5b5c0934cd
test(doctor): consolidate transcript label fixtures ( #118290 )
2026-08-02 20:29:23 -07:00