probe: reopen capability test - #2
Closed
sunlit-deng wants to merge 5319 commits into
Closed
Conversation
…9645) * refactor(agents): unify media generation task lifecycles * fix(agents): defer media duplicate guard lookup until action execution
…ext (openclaw#116247) * fix(system-agent): a failed reset leaves the old conversation in context `openclaw.chat` with `reset: true` discards the live session and disposes its engine before verifying inference and building the welcome. The durable reset marker was only written after both of those steps, so an inference outage during a reset destroyed the session without recording the boundary. The next ordinary session then seeded model context from the pre-reset transcript, because seeding reads only the turns after the newest reset marker. Record the boundary in a finally around the disposal, so it survives both a rejected disposal and a replacement that fails to initialize, and drop the later write. Disposal still runs first, so a failed marker write cannot leak the engine. * fix(system-agent): persist resets before discarding live sessions Persist the durable reset marker before deleting the live session so a failed SQLite write leaves the session, engine, and pending approval untouched. Preserve the original real-SQLite privacy-boundary regression coverage. Co-authored-by: Masato Hoshino <g515hoshino@gmail.com> --------- Co-authored-by: Peter Steinberger <steipete@gmail.com>
Prevent stale top-level buttons arguments from silently sending text-only Telegram messages. Point model guidance and docs to typed presentation actions, and reject retired input before delivery.
…19619) * perf(anthropic): lazy-load session catalog runtime Punchcard-Session: coral-workshop-workshop-3f * fix(anthropic): keep session catalog helpers private Punchcard-Session: coral-workshop-workshop-3f * docs(plugin-sdk): document catalog create target Punchcard-Session: coral-workshop-workshop-3f * fix(plugins): continue catalog target selection Punchcard-Session: coral-workshop-workshop-3f
…rs (openclaw#119654) * fix(browser): propagate bounded navigation timeouts end to end * fix(browser): share shipped navigation limits across all drivers
* fix(qa): bound Matrix E2EE client shutdown Punchcard-Session: silver-valley-valley-dt * fix(qa): drain Matrix decryptions before SDK shutdown Punchcard-Session: silver-valley-valley-dt * fix(matrix): retire shared E2EE clients safely Punchcard-Session: silver-valley-valley-dt * fix(matrix): satisfy lifecycle lint gate Punchcard-Session: silver-valley-valley-dt
Why: managed discussion reconciliation must tolerate current ClickClack response shapes without persisting undefined plugin state or stale display titles. Co-authored-by: Chisel <chisel@psiclawops.dev>
* fix(video): validate DashScope task outputs and release request guards * fix(video): validate DashScope task outputs and release request guards * refactor(video): use shared empty-asset validation * fix(video): align DashScope Wan request contracts * refactor(video): use shared empty-asset validation * fix(video): enforce catalog modes before provider calls * fix(video): keep model checks fallback-aware * fix(video): centralize fallback-aware capability checks * docs(video): document Wan 2.7 fixed audio --------- Co-authored-by: Peter Steinberger <steipete@macos.shared>
Keep shared endpoint routing signal-aware while preserving explicit signal-specific URLs exactly. Cover the resolver through mocked constructors and real OTLP/HTTP trace, metric, and log exporters. Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
* fix(agents): apply image context to current turn * fix(agents): align runtime context with prompt order * fix(agents): make turn context position independent * fix(agents): bind internal context to the active user turn Keep current-turn runtime context position-independent while preserving the shared privacy notice, runtime events, prompt-cache placement, and historical preface sanitization. Consolidate header detection in its existing owner and retain the original real turn-boundary regression. Fixes openclaw#110672 Co-authored-by: chernoff-code <221717140+chernoff-code@users.noreply.github.com> --------- Co-authored-by: chernoff-code <221717140+chernoff-code@users.noreply.github.com> Co-authored-by: Peter Steinberger <steipete@gmail.com>
…claw#119632) * refactor(msteams): consolidate channel action target resolution * fix(msteams): honor configured group read policy * fix(msteams): explain delegated channel access recovery
…law#119560) * improve(ui): trail transient session status * fix(ui): swap running state for row actions on hover * fix(ui): reserve only visible sidebar state width * fix(ui): ensure actions override state spacing * test(ui): await activated service-worker controller
…9676) * fix(memory): defer startup manager warmup * test(plugins): register memory stop hook contract
Co-authored-by: Peter Steinberger <steipete@mac-studio-sf2.local>
…uote a short tool send (openclaw#118178) The forward substring check in isMessagingToolDuplicateNormalized treated any reply containing a prior message-tool send as a duplicate, with no length floor. A short interim update sent via the message tool then suppressed the entire final reply that restated it, and the user never received the answer. The reverse direction already carried a 0.5 length ratio floor. Apply the same floor to the forward direction so a reply is only deduped when the prior send covers at least half of it.
…aw#119695) * fix(browser): make device emulation transitions atomic * test(browser): verify device presets in packaged profile * fix(browser): retain page emulation overrides
Punchcard-Session: coral-workshop-workshop-3f
…w#119705) * fix(diagnostics): preserve otel service shutdown lifecycle * test(diagnostics): type OTEL unsubscribe callback * test(diagnostics): normalize async stop assertion * fix(plugins): preserve ordinary stop handling
Punchcard-Session: silver-valley-valley-dt
…law#119726) * fix(agents): preserve settled finalization evidence * fix(agents): retain cron denial after finalization
…0165) * fix(gateway): degrade session list during projection rebuild * test(gateway): reuse projection rebuild fixture
…0137) * fix(test): restore gateway startup environment * fix(test): centralize gateway startup env cleanup * test(gateway): restore live startup environment * fix(test): complete gateway startup env lifecycle * test(gateway): restore raw server owner environment * test(qa): restore gateway producer environment
…me (openclaw#120029) * fix(acpx): stop/start races cannot resurrect a stopped runtime backend The deferred acpx runtime service published its lazily started backend without lifecycle ownership checks: a stop during in-flight activation let the stale service become the active runtime, and stop cleared shared state while startup still used it. Start/stop now use a lifecycle revision; only the current revision may publish a runtime, stop invalidates every deferred proxy before awaiting in-flight startup, and restart waits for the previous stop to settle. * chore: re-fire CI * fix(acpx): fence deferred runtime ownership * refactor(acpx): centralize backend lifecycle ownership * fix(acpx): annotate deferred runtime cycle
…ensation (openclaw#120026) * fix(plugins): preserve multi-entry pack identity and safe install compensation Multi-entry plugin packs registered every entry under the single manifest id, so only one entry survived registry normalization; discovery now records an entry-scoped effectivePluginId that the manifest registry honors. Managed install compensation no longer silences runtime cache invalidation on the success path, and local linked installs never delete operator-owned source directories on persistence failure. * fix(plugins): reject colliding derived entry ids in multi-entry packs ClawSweeper P1: ./a/index.ts and ./b/index.ts both derived pack/index and one entry silently lost same-root dedupe. Colliding entries now emit an error diagnostic naming the sources and register no candidate; docs note the entry-scoped plugins.entries key for multi-entry packs.
… stops masking failures (openclaw#120027) * fix(daemon): reload systemd user manager after removing legacy units uninstallLegacySystemdUnits removed unit files without a daemon-reload, so the user manager kept the deleted unit definitions loaded and startable until an unrelated reload. Legacy-unit removal now reuses the shared disable-or-tolerate-missing helper, surfaces non-ENOENT unlink failures instead of swallowing them, and reloads the user manager once after any unit file was removed (matching uninstallUserSystemdGatewayUnit). * chore: re-fire CI * chore: re-fire CI against fixed main baseline
…message (openclaw#120031) * fix(outbound): preserve queued delivery custody on provider abort without send evidence A provider-side abort with no platform send evidence acked the durable queue entry (dropping the message) whenever no producer claim id existed. Send evidence is now computed once (delivered results, pre/post-send marks, sentBeforeError, stable outcomes); aborts with evidence keep the platform_send failure path, aborts without evidence preserve the queued entry as failed for retry unless the operator's own abort signal fired. * chore: re-fire CI * chore: re-fire CI against fixed main baseline
…aw#119325) * feat(models): add session-only model selection * fix(models): use trailing session scope option * test(models): satisfy session scope lint * fix(models): reject duplicate model options * fix(models): clarify default and session scope * fix(models): require complete session option tokens * fix(models): report configured default dispatch * fix(models): keep directive handler within lint limit * fix(models): parse model options in either order * fix(models): apply session scope to aliases * fix(models): align alias scope with reply routing * fix(discord): surface model selection scope in picker * fix(models): preserve mixed-text model selection * fix(models): centralize command selection ownership * fix(models): align session scope lifecycle * fix(models): preserve command and auth ownership * fixup! fix(models): preserve command and auth ownership * fix(auth): preserve scoped CLI provider discovery * test(models): align result and cron fixtures * test(models): nest result timing metadata * fix(discord): narrow silent dispatch results * fix(transcript): preserve admitted turn identity * fix(context-engine): fence the admitted transcript turn * fix(context-engine): stabilize plugin compatibility contract * chore(plugin-sdk): refresh context engine API baseline * chore(plugin-sdk): use Linux context engine API baseline * fix(context-engine): align fallback ownership * fix(fallback): scope auth skip cache by profile * fix(context-engine): settle only accepted fallback turns * refactor(sessions): issue canonical turn admissions * refactor(context-engine): own logical turn advancement * fix(context-engine): settle cron fallback winners * fix(models): align picker and fallback transactions * fix(delivery): notify block admission after queueing * fix(sessions): preserve canonical admission receipts * chore(plugin-sdk): refresh API baseline hash * fix(context-engine): commit accepted turns durably * fix(context-engine): validate durable host transitions * fix(context-engine): preserve fallback turn ownership * fix(context-engine): preserve queued turn order * fix(models): preserve fallback retry ownership * fix(context-engine): enforce durable transcript anchors * fix(runtime): close fallback persistence gaps * fix(context-engine): preflight fallback harnesses * chore(plugin-sdk): use Linux API baseline * fix(context-engine): drain durable commits before reads * fix(models): scope harness auth failures by profile * fix(codex): fence legacy transcript history * fix(commands): honor suppressed directive interpretation * chore(runtime): remove unused branch exports * test(context-engine): derive private outbox payload type * fix(context-engine): apply durable drain degradation * fix(context-engine): recover durable turn intents * fix(context-engine): settle durable turn intents * refactor(context-engine): satisfy branch quality gates * fix(context-engine): close durable recovery gaps * fix(discord): preserve dropped model command outcome * test(copilot): keep journal fixture types local * fix(auto-reply): preserve model alias provenance * fix: close model scope review gaps * fix(models): close review-found scope leaks * fix(review): satisfy branch line budgets * fix(agents): preserve context engine turn facts * fix(agents): finalize silent context turns * fix(context-engine): preserve compatibility window * test(agents): cover both harness preparations * fix(context-engine): retain blocked turn advancements * fix(models): parse compact runtime options * fix(telegram): report runtime resets accurately * fix(models): isolate automatic auth failure skips * fix(context-engine): project commit turn host params --------- Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com> Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
…tion as complete (openclaw#120033) * fix(install): Windows installer surfaces doctor migration failures Invoke-OpenClawCommand ignored the child exit code, so a failed 'openclaw doctor --non-interactive' still printed '[OK] Migration complete'. The wrapper now throws on nonzero exit and Run-Doctor reports the failure with the exact command to rerun instead of claiming success. * chore: re-fire CI * chore: re-fire CI against fixed main baseline
…ge_stop contract (openclaw#120030) * fix(ai): enforce message_stop only for direct Anthropic models The Anthropic SSE transport threw 'stream ended before message_stop' only when a refusal buffer happened to be non-empty, so a truncated first-party stream could pass silently while compatible proxy providers that legitimately omit message_stop failed intermittently. The invariant now keys off the transport contract owner: direct Anthropic models always require message_stop; proxy providers are exempt. * test(ai): cover proxy streams ending without message_stop ClawSweeper P1: the proxy exemption had no focused test, so the lenient branch could regress silently. A non-anthropic provider through a custom endpoint now proves stopReason=stop with no error when the stream ends without message_stop.
* fix(diagnostics): honor OTEL_SDK_DISABLED * fix(diagnostics): own OpenTelemetry lifecycle * fix(diagnostics): keep SDK options private * test(diagnostics): type async resource export * fix(diagnostics): preserve OpenTelemetry env defaults * fix(diagnostics): restore narrow OTEL disabled admission * fix(diagnostics): surface disabled propagator warnings * fix(diagnostics): preserve preloaded rejection guard * fix(diagnostics): probe context manager ownership
* test(gateway): isolate approval client startup * test(gateway): share manual RPC startup scope
…penclaw#120203) * fix(gateway): invalidate session lists on external mutations * test(sessions): cover identity mutation fence
* feat(plugins): support the Agent Plugins bundle format * docs(plugins): document the Agent Plugins bundle format * test(agents): preserve agent bundle runtime discovery * fix(plugins): isolate Agent Plugins data-dir failures and align MCP support reporting * docs(plugins): list Agent Plugins in the canonical plugin-format guides * fix(plugins): gate Agent Plugins detection on schema, pure inspection, root-relative cwd * fix(plugins): record Agent Plugins data-dir ownership explicitly * docs(plugins): cover Agent Plugins in the CLI install detection guide * fix(plugins): carry Agent Plugins data-dir and transport contracts through external MCP projections
Owner
Author
|
probe close |
Dependency GuardThis PR changes dependency-related files. Maintainers should confirm these changes are intentional. Changed files:
Maintainer follow-up:
|
Security-sensitive changes notedThis PR includes security-sensitive file changes. The guard is informational because the PR author is a repository admin or a member of
Changed files:
Security review is still recommended before merge when the change is intentional. |
Dependency graph changes notedThis PR includes dependency graph changes. The dependency guard is informational because the PR author is a repository admin or a member of
Security review is still recommended before merge when the dependency graph change is intentional. |
Owner
Author
|
probe done, cleanup |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
temporary diagnostic PR, will be closed