Vincent Koc
d00e4ee324
fix(e2e): verify suspend control over WebSocket ( #122888 )
2026-08-13 09:56:26 +08:00
Peter Steinberger
fd0fc80c8c
test(microsoft-foundry): remove global test bridge ( #122881 )
...
* test(microsoft-foundry): remove global test bridge
* test(microsoft-foundry): type boundary fixtures
* perf(ui): keep route transition out of startup
2026-08-12 18:53:44 -07:00
Peter Steinberger
3a0cb17739
fix(gateway): resolve agent list model identity ( #122907 )
...
Publish canonical resolved primary models with matching runtime and thinking metadata in agents.list.
2026-08-12 18:52:41 -07:00
Peter Steinberger
fba9ad43bc
fix(ci): run affected extension suites when changed-test planning falls back ( #122885 )
...
The PR-changed test planner fails safe to the compact full-suite plan for any diff touching packages/**, but that compact plan excludes all extension test configs, so mixed package+extension PRs landed with zero extension test execution (escapes: PR #120534 breaking extensions/codex run-attempt.native-hook-relay.test.ts, PRs #122163/#121522 and cd7b7f639d breaking media-understanding-provider.test.ts and thread-lifecycle.test.ts on main full runs). The preflight now appends whole-config shards for the diff's touched extensions whenever the precise plan fails safe; whole configs (not precise targets) because the fail-safe cause leaves the non-extension diff's extension impact unbounded.
2026-08-12 18:51:00 -07:00
Peter Steinberger
10a1a43f4b
fix(zalo): keep packaged setup wizard loadable ( #122902 )
...
* fix(zalo): package setup runtime surface
* fix(tooling): track setup surface artifacts
2026-08-12 18:49:41 -07:00
Peter Steinberger
8b7c015fc9
fix(ui): preserve picked image previews ( #122905 )
...
Fall back to stored attachment data URLs when object URL previews are unavailable in the shared composer surface.
2026-08-12 18:47:55 -07:00
joshavant
8eb9739724
fix: isolate compaction structure audit
2026-08-12 20:46:55 -05:00
joshavant
102b1c1f3c
fix: redact compaction retry errors
2026-08-12 20:46:55 -05:00
joshavant
b030eec763
fix: redact compaction rejection diagnostics
2026-08-12 20:46:55 -05:00
joshavant
4cb21b22c0
fix: preserve compaction history when final audit fails
2026-08-12 20:46:55 -05:00
Peter Steinberger
86bf768de0
docs(skills): document session and transcript fetching in openclaw-debugging ( #122904 )
...
Adds a Fetching Sessions and Transcripts section: sessions CLI first, then
the per-agent SQLite data plane (session_nodes lookup from chat URL
fragments, transcript_events shape, __openclaw sender provenance,
session_transcript_fts, media://inbound mapping) and a dependency-free
node:sqlite read-only recipe for hosts without sqlite3. Read-only-against-
live-gateway rule stated inline.
2026-08-12 18:41:54 -07:00
Peter Steinberger
9489cd1f96
test(commands): stub plugin metadata snapshot in onboard-inference test ( #122901 )
...
The configured-model case lacked a current plugin metadata snapshot, so model normalization cold-discovered every bundled manifest; the prepared empty snapshot keeps the test on its intended boundary and reduced Vitest file wall time from 26.72s to 2.57s (the shell measurements were 194.45s and 56.21s including unrelated lock queues).
2026-08-12 18:39:08 -07:00
joshavant
93cf912695
fix(matrix): retain visible drafts on handler abort
2026-08-12 20:32:32 -05:00
joshavant
b8af033514
test(matrix): observe nonvisible cleanup
2026-08-12 20:32:32 -05:00
joshavant
0aceebb97d
test(matrix): type redaction ledger
2026-08-12 20:32:32 -05:00
joshavant
228d0a5264
test(matrix): bind live replacement marker
2026-08-12 20:32:32 -05:00
joshavant
d9b598ce1f
test(matrix): tighten replacement proof
2026-08-12 20:32:32 -05:00
joshavant
4408ceb68e
fix(matrix): retain previews when replacement delivery fails
2026-08-12 20:32:32 -05:00
Peter Steinberger
cef071582e
feat: let limited browsers request admin access ( #121459 )
...
* feat(gateway): add live device scope upgrades
* feat(ui): add limited-access upgrade flow
* fix(protocol): refresh Swift scope upgrade models
* perf(ui): lazy-load device scope upgrades
* fix(ci): complete scope upgrade generated surfaces
* perf(ui): lazy-load GitHub link hovercards
* fix(ui): keep admin repair guidance focusable
* fix(ui): gate and refresh scope upgrade banner
* refactor(ui): keep gateway client within line budget
* fix(ci): align rebased scope upgrade checks
* fix(ui): resolve scope upgrade in browser tests
* fix(gateway): honor refreshed scope upgrade deadline
* fix(gateway): honor refreshed scope upgrade deadline
* fix(gateway): coalesce scope upgrade waiters
* fix(ui): gate scope upgrade actions
* chore(plugin-sdk): refresh rebased API baseline
* fix(scope-upgrade): return canonical request ids
* fix(ui): preserve gateway event type binding
* fix(protocol): generate scope upgrade result models
* fix(ui): preserve scope upgrade recovery guidance
* chore(plugin-sdk): refresh rebased API baseline
* test(ui): avoid scope upgrade navigation race
* docs(control-ui): clarify scope upgrade approver
* test(gateway): align appended method counts
* chore(plugin-sdk): refresh rebased API baseline
* refactor(ui): keep place picker within line budget
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): refresh rebased API baseline
* fix(gateway): preserve scope-upgrade browser origin
2026-08-12 18:32:00 -07:00
sunlit-deng
0417abdfaa
fix(reef): redact relay errors containing credentials ( #119603 )
2026-08-12 18:21:31 -07:00
Peter Steinberger
c2d8b3be4d
fix(telegram): prevent multi-agent startup migration false positives ( #122877 )
...
* fix(telegram): resolve legacy state owners explicitly
* docs(changelog): note Telegram migration ownership fix
* Revert "docs(changelog): note Telegram migration ownership fix"
This reverts commit e02962eb4b2e2475854adf8c2a2915bcfd1cf65a.
2026-08-12 18:13:45 -07:00
Peter Steinberger
469be48967
fix(codex): keep sessionless mirror warnings out of onboarding ( #122831 )
...
* fix(codex): skip mirrors for sessionless runs
* fix(codex): restore openai model provider on media understanding turns
PR #122163 made thread/start modelProvider caller-supplied and updated the
web-search caller but missed media understanding, breaking its tests on main
full runs (cross-lane gap). Pass the provider explicitly and export the
retire binding prod now touches from the shared-client test mock.
* test(codex): align prompt assertions with reworded guidance
PR #121522 reworded the Skill Workshop guidance and cd7b7f639d reworded
the message-tool final-reply text; both updated core tests but missed
these codex mirror assertions (cross-lane gap breaking main full runs).
* test(codex): scope agent-projection fixture session to its agent
PR #114388 made multi-agent session ownership explicit; the atlas-scoped
projection test still used the shared main-scoped session key and now
trips AgentSelectionRequiredError (fourth cross-lane escape on main).
2026-08-12 18:13:16 -07:00
Peter Steinberger
add6b20bd2
fix(ci): record startup JS growth in the Control UI budget baseline
...
Startup JS gzip reached 329483 B on main (build-artifacts, af49764206 ),
1198 B over the 328285 B baseline + 1024 B tolerance, after cumulative
chat/session UI growth landed in #122296 , #122713 , #122870 , and #122876 .
Record the CI-measured bytes (within the 4096 B ratchet) to restore green
build-artifacts and QA Smoke lanes.
2026-08-12 18:03:39 -07:00
Peter Steinberger
ce5521a4a4
ci: fingerprint preferred pnpm hooks ( #122852 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 17:57:51 -07:00
Peter Steinberger
e4acf43813
test(agents): scope extension fixtures to explicit owners ( #122883 )
2026-08-12 17:52:03 -07:00
Vincent Koc
af49764206
fix(ci): ignore zombie-only Vitest process groups ( #122759 )
2026-08-13 08:46:22 +08:00
licheer-zte
f24e164f69
fix(recovery): reclaim proven-stale reply-only ownership with zero queued backlog ( #122265 )
...
* fix(recovery): reclaim proven-stale reply-only ownership with zero queued backlog
Stuck-session recovery kept reply-only ownership forever when the queued
backlog was empty: isActiveRunProgressStale short-circuits to false at
queueDepth 0, so stale active_reply_work was never reclaimed even after
the durable session became killed. Evaluate staleness for reply-only
ownership without the queue gate (the gate stays for run-handle paths),
so proven-stale reply work expires through the existing abort-and-drain
owner path while global-lane and deferred-maintenance exemptions and
live reply work with recent progress are preserved.
Closes #122227
* fix(recovery): keep maintenance phases out of zero-backlog stale reclaim
The zero-backlog reclaim path (requireQueueBacklog: false) applied to
every reply-only operation, including preflight_compacting and
memory_flushing. Those phases are explicitly recognized as compaction
and may honor a configured timeout above the stale threshold, so a valid
long-running maintenance operation could be force-cleared early.
Restore the queue-backlog guard for the maintenance phases so an
unqueued compaction or memory flush is never reclaimed by this path;
ordinary reply-only ownership keeps the zero-backlog expiry. Adds
regressions for both maintenance phases.
2026-08-12 17:42:48 -07:00
Vincent Koc
8733dcd05f
fix(ci): expose AI pack diagnostics ( #122786 )
2026-08-13 08:25:58 +08:00
Josh Lehman
41f4b5f673
fix(ui): archived sessions leave sidebar after navigation ( #122876 )
...
* oc-ad0.1: fix archived child session retention
* oc-37c: evict archived child on navigation
2026-08-13 00:25:38 +00:00
Peter Steinberger
f3f203f31d
refactor(agents): split subagent-control.ts into owner modules ( #122875 )
2026-08-12 17:23:39 -07:00
Peter Steinberger
abe0cd691d
refactor(media): remove orphan generation facades ( #122874 )
2026-08-12 17:19:22 -07:00
Josh Lehman
542ac9ac68
fix: make live updater checkout portable (oc-237) ( #122873 )
2026-08-12 17:17:18 -07:00
Josh Lehman
a3207b574c
fix(ui): show progress during new session startup ( #122713 )
...
* fix(ui): show progress during new session startup
Refs #122703
* oc-1fa: keep new-session progress through handoff
* fix(ui): keep new-session handoff live
* fix(ui): preserve navigation callback contract
2026-08-13 00:17:12 +00:00
Jacqueline Henriksen
800328f14e
feat(cli): allow editing automation display names ( #122702 )
...
* feat(cli): allow editing automation display names
* feat(cli): allow clearing automation display names
2026-08-12 17:15:21 -07:00
Peter Steinberger
2abe2e29bb
test(cron): focus runtime config composition ( #122867 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 17:13:40 -07:00
Vyctor H. Brzezowski
a5ff8f5c33
fix(ui): keep composer capability menus within the viewport ( #122296 )
...
* fix(ui): constrain composer capability menus
* fix(ui): cap composer capability menu height
* test(ui): cover long capability menu states
* test(ui): capture capability menu interaction states
* fix(ui): keep dark capability states legible
2026-08-12 17:10:57 -07:00
Peter Steinberger
08b134324f
feat: continue web sessions in the terminal ( #122870 )
...
* feat: continue sessions in terminal
Add a credential-free Control UI continuation command and allow openclaw resume to reuse current-profile authentication only for byte-exact configured Gateway targets.
* fix(gateway): separate public origin TLS ownership
Allow exact public-origin resume targets to reuse local authentication without inheriting the direct local listener certificate fingerprint.
* fix(gateway): scope exact targets to gateway mode
Prevent remote profiles from reusing dormant local Gateway authentication for explicit loopback or public-origin targets.
* fix(cli): encode terminal resume handoffs
Replace shell-specific quoting with a strict credential-free base64url handoff, gate configured auth reuse to validated handoffs, and skip unused session discovery.
* fix(gateway): isolate handoff auth identity
Suppress ambient Gateway auth fallback for validated handoffs while preserving explicit credentials, configured SecretRefs, stored device auth, and exact-target TLS ownership.
* fix(cli): harden terminal resume handoffs
* fix(cli): parse terminal handoff outcomes
* fix(cli): bind handoffs to resolved agent
* test(ui): align terminal continuation proof
* docs(plan): track terminal continuation
* refactor(ui): keep terminal handoff result local
2026-08-12 17:07:48 -07:00
Peter Steinberger
52cda537a4
test(discord): move ready abort proof to lifecycle ( #122869 )
2026-08-12 16:54:20 -07:00
Peter Steinberger
7c7c7524ad
feat: add paired-device worker provider foundation ( #122769 )
...
* feat(worker-provider): add core device lease foundation
* feat(gateway): dispatch sessions to paired devices
* test(gateway): cover node-ready lifecycle edge
* fix(gateway): defer device worker installation prep
* chore(plugin-sdk): refresh API baseline
* test(gateway): isolate worker turn state database
* docs(runners): refresh milestone table format
* test(gateway): track device dispatch temp state
2026-08-12 16:50:09 -07:00
Peter Steinberger
5c2e099374
fix(codex): restore promoted approval regression coverage ( #122861 )
...
* test(codex): align projector fixtures with verbose policy
* test(codex): supply admitted host context to hook relay fixtures
2026-08-12 16:30:30 -07:00
Peter Steinberger
8ffb97cdd2
test(ui): remove duplicate stale recovery case ( #122860 )
2026-08-12 16:26:36 -07:00
Peter Steinberger
ae6f813e73
refactor(agents): split subagent announce delivery ( #122853 )
...
* refactor(agents): split subagent announce delivery
* fix(agents): defer announce runtime dependency reads
2026-08-12 16:23:34 -07:00
Peter Steinberger
be600d0a24
fix: restore Telegram release isolation checks ( #122843 )
...
* fix(release): repair isolated Telegram QA runtime
sticky runner/SUT suite root permits config locks without config replacement; add PS1 after attested env verification for nested login shells.
* test(node-host): own desktop teardown resets
2026-08-12 16:21:45 -07:00
Josh Lehman
bb5ef9872a
fix: resume sessions interrupted by gateway restarts ( #122644 )
...
* fix: resume sessions interrupted by gateway restarts
* fix: make session recovery retry-safe
* refactor: isolate restart session recovery
* test: track recovery temp directories
* fix: inherit recovery state under lifecycle lock
* fix: surface rejected recovery continuation
* fix: fence recovery continuation authority
* chore: regenerate plugin sdk api baselines
* test(gateway): track sessions.recover release train
2026-08-12 16:18:58 -07:00
Peter Steinberger
01a5bcc5c0
test: avoid provider policy loading in media reply tests ( #122857 )
...
Co-authored-by: Amp <amp@ampcode.com >
2026-08-12 16:07:23 -07:00
Peter Steinberger
a8b05c66d7
test(macos): remove residual smoke probes ( #122856 )
2026-08-12 16:04:32 -07:00
Peter Steinberger
75332a2671
fix(tooling): fail deadcode report on scan errors ( #122847 )
2026-08-12 15:59:37 -07:00
Peter Steinberger
adf8e254ab
fix(ui): let read-only operators copy task results ( #122841 )
...
* fix(ui): let read-only operators copy task results
* refactor(ui): consolidate operator scope checks
2026-08-12 15:58:55 -07:00
Peter Steinberger
1ca60fbc3a
refactor(agents): make multi-agent ownership explicit (H2-1 core) ( #114388 )
...
* refactor(agents): make roster ownership explicit
* feat(config): materialize legacy agent roles
* fix(cron): migrate legacy owners at startup
* feat(gateway): expose agent selection contracts
* fix(gateway): enforce agent-scoped authorization
* docs(config): document explicit agent ownership
* fix(config): pin retained owner workspace
* fix(gateway): target hook wakes at effective agent
* fix(sessions): preserve fixed-store ownership
* fix: preserve retained agent ownership
* fix: preserve legacy agent ownership across runtime surfaces
* fix: fail closed on ambiguous session ownership
* fix: preserve compatibility owners across dispatch and writes
* fix: preserve retained agent projections
* fix: preserve agent ownership compatibility
* fix: preserve per-agent heartbeat guidance
* fix: preserve compatibility owners in generic paths
* fix: enforce configured ownership in session paths
* fix: defer remote roster selection
* fix: preserve ownership across session and config writes
* fix: fail closed on ambiguous restored ownership
* fix: preserve explicit ACP and legacy ownership
* fix: honor durable fixed-store ownership
* fix: enforce fixed-store owner authority
* fix: preserve ownership evidence boundaries
* fix: honor resolved session ownership
* fix: align compatibility ownership paths
* fix: persist legacy main store ownership
* fix: close ownership fallback gaps
* fix(agents): close retained owner compatibility gaps
* fix(agents): enforce session owner resolution
* fix(agents): complete session owner resolution sweep
* fix(agents): preserve durable session ownership
* fix: complete persisted session owner routing
* fix: thread prepared session owners
* fix: preserve stable session ownership
* fix: enforce session ownership boundaries
* fix: close session ownership delta gaps
* fix: reconcile session ownership after rebase
* fix: reconcile ownership with current main
* fix: align session store path imports
* fix: align session store config path import
* fix: reconcile explicit ownership CI
* fix: reconcile ownership rebase checks
* fix: align ownership ci contracts
* fix: align ownership rebase checks
* fix: preserve compatibility owner during setup
* fix(doctor): migrate ownerless heartbeat monitors
* fix(gateway): preserve explicit session ownership
* test: align ownership fixtures after rebase
* test: complete plugin manifest fixture
* test: align runtime context mocks
* fix(gateway): preserve alias routing for existing sessions
* style: format agent routing update
* fix(gateway): preserve selected owner during alias routing
* style: normalize rebased ownership files
* fix(gateway): preserve owner through global alias routing
* fix(gateway): preserve explicit ownership at HTTP boundaries
* fix(gateway): validate compatibility model ownership
* fix(agents): reconcile strict session ownership
* fix(agents): contain media yield callback failures
* fix(agents): avoid eager bare-key owner resolution
* chore: refresh rebased ownership baselines
* chore: align hosted plugin SDK baseline
* chore: refresh ownership baselines after main sync
* chore: refresh ownership baselines after main sync
* test: align routed event owner fixtures
* chore: retrigger CI after runner startup failure
* chore: refresh ownership SDK budgets after main sync
* fix(tasks): require agent identity for bare owners
* chore: align Linux plugin SDK baseline
* chore: remove release-owned changelog entry
2026-08-12 15:55:16 -07:00
Peter Steinberger
9b9f2ab403
test(core): remove duplicate assertions ( #122848 )
2026-08-12 15:43:12 -07:00