Commit Graph

77860 Commits

Author SHA1 Message Date
Peter Steinberger 87475758dc fix(cloud-workers): retry timed-out dispatches without reprovisioning (#121616)
* fix(cloud-workers): coalesce dispatch retries

Amp-Thread-ID: https://ampcode.com/threads/T-019feaaa-c7ed-769e-9f29-a3612bec72e7

* chore: lower environment variable count budget

Amp-Thread-ID: https://ampcode.com/threads/T-019feaaa-c7ed-769e-9f29-a3612bec72e7

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-08-10 09:17:17 -07:00
Ayaan Zaidi 4c951398ef fix(messages): keep runtime details out of chat alerts (#121600)
Keep raw commands, paths, and provider errors out of ordinary chat while preserving explicit raw diagnostics and structured admin history.

Default command progress is status-only; `/verbose full` and `commandText: "raw"` retain diagnostic detail.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-10 21:37:48 +05:30
openclaw-mantis[bot] e195585a90 chore(ui): refresh control ui locales (#121555)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-10 09:02:29 -07:00
Ittiz bad30d5a74 feat(ui): add generated image actions (#77017)
Give Control UI managed images bounded previews and shared full-image Open, Download, and Copy actions. Keep artifact access transcript-bound; the existing ticket is intentionally attachment-scoped to the lower-fidelity thumbnail.

Co-authored-by: Ittiz <github@daein.org>
Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-10 21:30:58 +05:30
Peter Steinberger 5e5cf67314 chore(plugin-sdk): refresh API baseline closures (#121640) 2026-08-10 08:45:29 -07:00
Peter Steinberger c12d3d7a05 refactor: export canonical oc-path isPattern and drop retired openai-codex catalog (#121621)
Completes the hasWildcard -> isPattern rename in oc-path (exports the
canonical predicate, migrates all callers, deletes the deprecated alias)
and removes the retired buildOpenAICodexProvider catalog module with its
api.ts re-export and contract-list entries. The dead-option-flag half of
this branch converged with an equivalent change that landed on main first.
2026-08-10 08:19:51 -07:00
Peter Steinberger a0ad38e71a feat(docs-ci): validate docs config examples against the schema (#121336)
* feat(docs-ci): validate config examples against schema

* docs: teach canonical agent roster configuration

* docs: nest inline environment variables under vars

* docs: update canonical media model keys

* docs: remove retired config keys from examples

* fix(docs-ci): keep audit internals private

* feat(docs-ci): validate plugin-owned config examples

* fix(docs-ci): validate indented config fences

* fix(ci): route manifest changes through docs audit

* chore(docs): refresh generated config baselines
2026-08-10 07:57:56 -07:00
Peter Steinberger 4849106b3b fix(mac): allow superseding AI candidate tests (#121613) 2026-08-10 07:55:31 -07:00
Peter Steinberger 36ccceb52a fix(qa): prevent lost or replayed messages after gateway restart (#113899)
* fix(qa): record completed bus dispatches

* test(qa): type gateway stop listener
2026-08-10 07:51:29 -07:00
Ayaan Zaidi 5295f2578e fix(agents): make file reads safe and explicit (#121508)
Use fs-safe 0.5.4 for nonblocking, descriptor-validated reads. Resolve one unambiguous Unicode-equivalent path and return explicit empty/EOF results.

Default local reads now reject final symlinks and special files.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-10 20:17:53 +05:30
Peter Steinberger 98b1e8b69c fix(plugin-sdk): make the API baseline contract path-free and surface-reachable (#121514)
* fix(plugin-sdk): make the API baseline hash path-free and surface-reachable

Manifest hashes now cover only surface-reachable, path-independent facts.
Rewrite closure from whole-file/path-keyed traversal to declaration-granular reachability with fail-toward-recall fallbacks and taint-tracked cycles.
Exclude source paths from the committed hash and split declaration printing into api-baseline-declaration-print.ts.

* fix(plugin-sdk): close side-effect and namespace-import gaps in baseline closure

Address ClawSweeper findings:
- Traverse side-effect imports before collecting globals.
- Normalize repo-owned namespace import types.

* refactor(plugin-sdk): rebase precision closure onto the JSONL contract
2026-08-10 07:44:53 -07:00
Peter Steinberger ed39f6540f fix(release): keep evidence reads on cached gh (#121619) 2026-08-10 07:40:55 -07:00
Vincent Koc 1f591bba56 fix(release): bound validation retries and soak 2026-08-10 22:31:32 +08:00
Peter Steinberger fbebfc713f test(ui): remove retired source mirrors (#121607) 2026-08-10 07:27:48 -07:00
Peter Steinberger ebd03db156 test(ui): target canonical reconnect session refresh (#121609) 2026-08-10 07:23:02 -07:00
openclaw-mantis[bot] 680fe7fc8d chore(i18n): refresh native locales (#121561)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-10 07:17:40 -07:00
Peter Steinberger 0d435a186f fix(sandbox): stop fallback on rejected SSH secrets (#115198) 2026-08-10 07:17:02 -07:00
Peter Steinberger f1c1771a07 fix(memory): apply project ranking before MMR (#121608) 2026-08-10 07:16:55 -07:00
Shakker 98b89aaa00 test: isolate attachment rebound mock registry (#121577) 2026-08-10 16:10:19 +02:00
Shakker 3b288b4f6e test: isolate attachment rebound coverage 2026-08-10 16:10:18 +02:00
Shakker f46c3f9200 test: type MCP rebound fixture 2026-08-10 16:10:18 +02:00
Shakker 6e70f17759 fix: reactivate retained attachment panes 2026-08-10 16:10:18 +02:00
Shakker c31ccaafa4 fix: finalize late closed-pane attachments 2026-08-10 16:10:18 +02:00
Shakker 6eded1bbce fix: prevent closed pane attachment restaging 2026-08-10 16:10:18 +02:00
Shakker fb9b1aba9e fix: retain replacement attachment payload ownership 2026-08-10 16:10:18 +02:00
Shakker 607f50bece fix: preserve fallback attachment packages across remounts 2026-08-10 16:10:18 +02:00
Shakker 33bee61f2c test: cover ownerless staged attachment cleanup 2026-08-10 16:10:18 +02:00
Shakker c5a5ba2263 fix: preserve staged attachments across chat remounts 2026-08-10 16:10:18 +02:00
Peter Steinberger f4bac99a81 feat(secrets): add SQLite-backed secret store (#121559) 2026-08-10 07:08:40 -07:00
zengLingbiao b121219a44 fix(gateway): preserve sandbox HEAD response metadata (#118553)
Punchcard-Session: coral-summit-orchard-93
2026-08-10 21:54:57 +08:00
Peter Steinberger 3b3c540896 refactor: remove dead branches and test-only helpers (#121345)
* refactor: remove dead branches and test-only helpers

* fix: preserve codex cleanup error causes

* fix: preserve gateway error code compatibility

* chore: update plugin sdk api baseline

* docs: fix live cache runner path
2026-08-10 06:47:43 -07:00
Peter Steinberger 14f8ed121e test(onboard): remove redundant inference test bridge (#121574) 2026-08-10 06:43:25 -07:00
Peter Steinberger 8d810d188b refactor: split ClawHub infrastructure by responsibility (#121565)
* refactor(infra): split clawhub into concept modules

* refactor(plugins): move compat predicates to their owners

* chore(lint): ratchet baselines after clawhub split
2026-08-10 06:42:37 -07:00
Shakker 5c308e0eba fix: release wizard admission before terminal response 2026-08-10 14:22:44 +01:00
Peter Steinberger f286928210 refactor(agents): type the reply failover seam and carry structured attempts (#121551)
* refactor(agents): carry structured fallback attempts

* refactor(agents): preserve typed failover delivery metadata

* refactor(auto-reply): consume canonical failover classification

* fix(auto-reply): preserve typed failure copy

* fix(auto-reply): keep failover facets internal

* fix(agents): remove stale failover exports

* chore(plugin-sdk): refresh API baseline

* fix(delivery): repair queue and pending-final settlement

* fix(lint): keep delivery queue within line budget

* fix(ci): refresh baselines after main rebase

* test(outbound): assert ambiguous send payload directly

* refactor(reply): follow upstream custody revert
2026-08-10 06:16:46 -07:00
Ayaan Zaidi 342a1e70a0 fix(agents): surface Claude CLI no-response failures (#121589)
Classify Claude's exact synthetic empty terminal at the shared CLI parser so directed turns fail visibly instead of becoming NO_REPLY. Ambient group silence and bounded replay-safe recovery remain unchanged.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
Co-authored-by: Lu Wang <7668944+wangwllu@users.noreply.github.com>
Co-authored-by: Shakker <165377636+shakkernerd@users.noreply.github.com>
2026-08-10 18:35:33 +05:30
Peter Steinberger 0d4e9f3ede fix(codex): report harness context window; compact context popover (#121491)
* fix(codex): report harness context window as session contextTokens

Codex app-server reports model_context_window per turn. Carry it through the projector into the run result meta so session rows show the real window instead of the catalog's standard-tier input cap (272k vs 1M for gpt-5.6 models).

* improve(ui): compact chat context popover

Inline stat rows replace boxed tiles; zero-value cost rows and the whole cost section when empty are omitted; provider/model provenance lines are removed because the footer already shows the model; and the popover is narrowed to 300px.

* refactor(codex): split attempt-result assembly out of event projector

* fix(codex): seed attempt context window from startup binding

App-server v2 turn/started omits the core model_context_window, so thread/tokenUsage/updated is the only live carrier. Seed usage-less attempts from the retained startup binding rollout/session window so session metadata cannot regress to the catalog fallback.

* fix(codex): prefer native startup context window

Persisted session contextTokens has no source provenance and may contain the catalog fallback. Keep the minimum window for the conservative rotation fuse, but seed the projector from the native rollout when it is available.

* chore(plugin-sdk): regenerate api baseline (new format)

* revert(gateway): "prevent restart replay after final delivery" (broke 5 CI jobs)
2026-08-10 05:52:19 -07:00
Glucksberg cd7b7f639d fix(agent): allow progress before final message-tool replies
Treat message(final=false) as progress and final=true or omission as the terminal source reply. Repeated terminal delivery now returns a non-error outcome without another provider send.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
Co-authored-by: 宇宙熊Yzx <53250620+849261680@users.noreply.github.com>
Co-authored-by: Markus <markuscontasul@gmail.com>
2026-08-10 17:52:59 +05:30
Peter Steinberger 4f046b5dc6 docs(web): document the sidebar unsent-draft pencil indicator 2026-08-10 04:56:43 -07:00
Peter Steinberger 6b565c047f feat(ui): show unsent-draft pencil on sidebar session rows (#121476)
* feat(ui): show unsent-draft pencil on sidebar session rows

Typed-but-unsent composer text now surfaces as a pencil badge on the
owning session's sidebar row (and Home row) once you switch away.
Draft persistence now notifies stored-outbox subscribers so the
indicator appears and clears live. The active session suppresses the
badge since its composer is already visible.

* chore: refresh merge ref for CI against current main

* chore: refresh merge ref against healed main

* fix(ui): notify draft indicator only on presence transitions

Unconditional notify on every draft persist let outbox-projection
subscribers re-persist a stale pane over a newer draft (chat-state
route-fallback invariant). The sidebar pencil only consumes presence,
so notify on empty/non-empty transitions only.
2026-08-10 04:53:15 -07:00
Peter Steinberger 60e1f40562 refactor: replace exec approvals lease with journal CAS (#121273)
* refactor: replace exec approvals lease with journal CAS

* style: format Swift exec approvals loop

* test: mutate journaled agent in native fence coverage

* fix: normalize native exec approval fence IDs

* fix: remove exec approval aliases on agent deletion
2026-08-10 04:47:33 -07:00
Peter Steinberger c3f4d5ee60 fix(codex): deliver task-suggestion tools to Codex-harness runs with calibrated guidance (#121568)
- forward taskSuggestionDeliveryMode through the Codex app-server dynamic tool build (same sibling-harness omission class previously fixed for clientCaps); spawn_task/dismiss_task silently never existed for GPT-backed sessions
- regression test asserting the forward, mirroring the existing clientCaps case
- spawn_task/dismiss_task descriptions rewritten with usage calibration: when to flag, when not to, scope-vs-flagging, prose-is-lost, operator-phrasing bridge, prompt self-containment, git-checkout cwd, registry ephemerality; param descriptions state where each field renders

Release-note context: GPT-backed sessions can now create suggested-task cards (the tools were silently absent on the Codex harness), and the tools carry much clearer model-facing guidance.
2026-08-10 04:26:55 -07:00
Peter Steinberger 572fab0b5b fix(auto-reply): handle uppercase file URLs when staging media (#121521) 2026-08-10 04:26:32 -07:00
Peter Steinberger 46e941c303 test(gateway): verify identity scopes reach fs handlers (#121466) 2026-08-10 04:14:13 -07:00
Ayaan Zaidi 1f75018600 fix(gateway): prevent restart replay after final delivery
Record channel delivery custody before recipient-visible sends so restart recovery cannot duplicate accepted finals.

Ambiguous legacy markers now fail closed with a visible interruption instead of blind replay.

Co-authored-by: Ayaan Zaidi <hi@obviy.us>
2026-08-10 16:42:14 +05:30
Peter Steinberger 1569400ea7 test(plugin-sdk): remove stale agent-core source mirror (#121556) 2026-08-10 04:04:48 -07:00
Peter Steinberger e37614c83f refactor(plugin-sdk): replace hash manifest with JSONL contract (#121473)
* refactor(plugin-sdk): use JSONL API baseline contract

* chore(plugin-sdk): add generated JSONL API baseline
2026-08-10 03:49:17 -07:00
Peter Steinberger 0a6a1d9419 fix(gateway): unify media privacy in chat history (#121490)
* fix(gateway): unify media privacy in chat history

Centralize image, audio, video, and persisted media-fact privacy at the shared Gateway history projection. Remove duplicate sessions_history redaction, validate managed media claims canonically, and keep safe media-only user turns renderable.

* test(gateway): type history RPC integration

* test(agents): align history fixture with gateway projection
2026-08-10 03:30:44 -07:00
Peter Steinberger a4eabd5744 fix(agents): settle exec preparation failures (#121148) 2026-08-10 03:28:32 -07:00
Peter Steinberger d847a62e5d fix(opencode): keep API-key onboarding routes usable (#121414)
* fix(opencode): keep API-key onboarding routes usable

Amp-Thread-ID: https://ampcode.com/threads/T-019fe94f-6aac-73c9-995b-ced5336f3230

* refactor(opencode): simplify onboarding compatibility

Amp-Thread-ID: https://ampcode.com/threads/T-019fe94f-6aac-73c9-995b-ced5336f3230

* fix(opencode): avoid unverified onboarding fallbacks

Amp-Thread-ID: https://ampcode.com/threads/T-019fe94f-6aac-73c9-995b-ced5336f3230

* fix(opencode): reconcile dynamic tool deltas

Amp-Thread-ID: https://ampcode.com/threads/T-019fe94f-6aac-73c9-995b-ced5336f3230

---------

Co-authored-by: Amp <amp@ampcode.com>
2026-08-10 03:23:36 -07:00