Peter Steinberger
0e3a3aa203
refactor: finish canonicalization stragglers ( #125056 )
...
* refactor: finish canonicalization stragglers
* chore: remove release-owned changelog entry
* refactor: narrow SecretRef SDK import
2026-08-17 00:09:29 -07:00
Peter Steinberger
2915e563d6
feat(workboard): show full boards on session dashboards ( #125094 )
...
* feat(workboard): full-board dashboard widget
Adds a third trusted plugin widget kind, workboard:board, rendering the
complete Kanban board (all columns, live plugin.workboard.changed
refresh) inside a session dashboard. Props {boardId} scope it to one
board; without it the widget shows every board, matching workboard:mini
semantics. Card rendering reuses the workboard page renderColumn with an
explicit surface option so page and widget cannot drift; the shared
board filter moved to ui/src/lib/workboard/board-filter.ts. Mutations
follow the connection's canMutate; read-only connections get a
view-only board.
Proof: pnpm test ui/src/lib/board ui/src/pages/workboard
ui/src/lib/workboard extensions/workboard (9,494 passed), i18n baseline
green, autoreview clean (codex/gpt-5.6-sol). tsgo core/ui/extensions
green locally; remote check:changed blocked by Daytona capacity and the
tsgo:core Daytona exit reproduced locally as a heavy-check lock race,
passing on retry.
* test(ui): seed workboard fixtures in the mocked dev server
* fix(ci): register workboard proof capture script
2026-08-16 23:19:30 -07:00
Peter Steinberger
f9b1ccc4fa
refactor(plugin-sdk): discriminate delivery and exec results ( #124979 )
...
* refactor(plugin-sdk): discriminate delivery and exec results
* test(plugin-sdk): update delivery target expectations
* fix(outbound): preserve canonical delivery targets
* fix(irc): normalize message delivery target
2026-08-16 22:55:41 -07:00
Peter Steinberger
c4eb9078d9
feat(workboard): link boards to owning automations ( #125076 )
...
* feat(workboard): reference the automation job that owns a board's prompt
Boards can now record automationJobId, linking a board to the cron
automation whose prompt/model/schedule categorize its cards. The cron
job remains the single owner of that configuration; workboard stores
only the reference. The board toolbar shows an Automation chip linking
to the cron page when set. Deleting a board never deletes the job.
Proof: pnpm test extensions/workboard packages/workboard-contract
ui/src/pages/workboard ui/src/lib/workboard (9,492 passed), autoreview
clean (codex/gpt-5.6-sol). check:changed blocked by remote capacity
(Blacksmith down, Daytona lease cap); local fallback lanes green except
a parent-branch lint finding fixed on that branch.
* fix(ui): describe workboard automation destination
2026-08-16 22:52:26 -07:00
Peter Steinberger
d0b1b6d0ec
fix(workboard): keep cards synced when dashboard is closed ( #125023 )
...
* fix(workboard): own linked-session lifecycle sync gateway-side
* test(workboard): align lifecycle proof with gateway ownership
2026-08-16 22:02:43 -07:00
Peter Steinberger
b555a32ee9
fix(openrouter): keep OAuth loopback open after invalid callbacks ( #124922 )
...
Amp-Thread-ID: https://ampcode.com/threads/T-01a00ae0-190d-718b-8a76-b75f3e8d1fae
Co-authored-by: Amp <amp@ampcode.com >
2026-08-16 20:11:04 -07:00
Peter Steinberger
13872f4338
fix: plugin tools disappear from Codex and restricted profiles ( #124947 )
...
* fix(memory): make standing intents reachable
* fix(agents): dedupe macOS read path variants
* docs(plugins): document profile tool metadata
* test(codex): complete prepared runtime fixtures
* fix(agents): preserve prepared tool boundaries
2026-08-16 19:38:07 -07:00
Peter Steinberger
78beccf053
feat: add cloud worker profiles and machine selection ( #124864 )
...
* feat(workers): add per-dispatch machine classes
* feat(ui): add cloud worker machine picker
2026-08-16 18:37:00 -07:00
Peter Steinberger
bda2d54dcf
docs(codex): clarify loop relay behavior ( #124918 )
2026-08-16 16:57:43 -07:00
Peter Steinberger
33f3b72a19
refactor(plugin-sdk): extract stream and SecretRef primitives ( #124835 )
2026-08-16 14:30:11 -07:00
Peter Steinberger
2523943ef1
feat(codex): name additional session-catalog homes ( #124807 )
2026-08-16 13:30:49 -07:00
Peter Steinberger
4d4ee7bc86
refactor(plugin-sdk): consolidate session catalog families ( #124801 )
2026-08-16 13:25:11 -07:00
Peter Steinberger
4667d188f2
fix(codex): honor session node exec host ( #124777 )
2026-08-16 12:41:48 -07:00
Peter Steinberger
6cc72f9b3d
fix: honor context caps on Codex-routed models ( #124735 )
...
* fix(codex): forward authored context caps
* test(codex): keep binding fixtures uncapped
* fix(agent-harness): separate authored context cap
2026-08-16 12:31:20 -07:00
WhatsSkiLL
08786d32b2
feat(codex): show sessions from additional homes ( #124660 )
...
* feat(codex): register additional session homes
* fix(codex): preserve automatic session homes
* docs(codex): explain automatic home discovery around sessionCatalog.homes
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-16 12:14:10 -07:00
Peter Steinberger
5168b5d4ab
feat(voice-call): sessionScope "main" routes calls into the agent main session ( #124708 )
...
* feat(voice-call): add sessionScope "main" for main-session call routing
Inbound and outbound calls can now share the configured agent's main
session instead of a dedicated voice session. The new scope resolves
through the existing explicit-key canonicalization path, honoring core
session.mainKey and global-scope aliasing. The inbound webhook path now
forwards coreSession like every other resolver call site.
* style: format events.test.ts
* test(voice-call): split events.test.ts under the max-lines cap
2026-08-16 11:47:47 -07:00
Peter Steinberger
aeff737da9
fix(agents): prevent invalid names from targeting the default agent ( #124670 )
...
* fix(agents): reject unrepresentable agent ids
* refactor(system-agent): split model selection setup
* chore: shrink assertion safety baseline
* docs: record strict agent id validation proof
* style: format strict agent id report
* chore: drop stray unrelated report artifact
* chore: restore REPORT.md to main state
2026-08-16 10:37:06 -07:00
Peter Steinberger
63401b730b
fix: keep doctor security conditions as single findings ( #124666 )
...
* fix(doctor): record security finding severity
* refactor(security): keep audit severity internal
* fix(security): preserve channel finding severity
2026-08-16 10:24:40 -07:00
Peter Steinberger
715c379fd9
refactor(config): consolidate context budget to one per-model knob ( #124665 )
...
* refactor(config): consolidate context budget settings
* test(config): type legacy context fixtures
* test(config): align context budget fixtures
* fix(status): honor runtime context discovery
* docs(config): clarify context budget fallbacks
* fix(ci): resolve context budget lint failures
* test(ci): align context budget shard fixtures
* fix(models): preserve catalog context metadata
* fix(config): surface context migration diagnostics
* test(plugin-sdk): keep live catalog coverage focused
2026-08-16 10:05:01 -07:00
Marvinthebored
2404d41de2
fix(codex): preserve delegation when image generation is denied ( #124598 )
...
Forward exact audited tool denies into agent harnesses so Codex can disable native image generation without dropping delegation. Fail closed when managed policy forces image generation and rotate retained threads when effective native config changes.
Co-authored-by: Marvinthebored <262704729+Marvinthebored@users.noreply.github.com >
2026-08-16 21:42:38 +05:30
Jason (Json)
eb174bcaff
fix(codex): candidate checks reject a mismatched app-server ( #124137 )
...
* fix(codex): validate managed app-server candidates
* docs(codex): document managed binary preflight
* test(codex): review managed preflight execution
* docs(codex): document managed app-server check
* fix(pr): support macOS system Bash operation locks
* fix(codex): scope managed preflight to Codex agents
2026-08-16 09:27:12 -06:00
Peter Steinberger
ebd23631ae
perf(cli): build root help from plugin metadata ( #124562 )
2026-08-16 05:43:35 -07:00
Jason (Json)
bccbb8a0c7
fix(memory): make persistence promises receipt-backed ( #120989 )
...
* fix: require memory persistence receipts
* fix(memory): bind persistence failures to tool owners
* fix(memory): preserve Codex persistence ownership
* test(plugin-sdk): account for owner metadata export
* test(codex): split owner timeout regression
* fix(memory): cover durable deletes across runtimes
* test(codex): type dynamic mutation fixtures
* fix(agents): fail closed ambiguous side-effect owners
* fix(memory): fail zero-row delete receipts
2026-08-16 00:50:10 -06:00
Peter Steinberger
6aa27d6ecd
refactor: retire August compat windows (embedding API, pi aliases, target parser, spawning hook, setup exports, WhatsApp inbound aliases) ( #124416 )
...
* refactor(plugin-sdk): retire embedded Pi aliases
* refactor(channels): retire explicit target compatibility
* refactor(plugins): retire subagent spawning hook
* refactor(plugin-sdk): retire shipped channel setup exports
* refactor(whatsapp): retire inbound callback aliases
Proof: focused build and WhatsApp E2E green; broad WhatsApp suite 188/189 files green. extensions/whatsapp/src/monitor-inbox.policy.test.ts flakes only in the parallel batch and passes isolated (10/10).
* refactor(plugin-sdk): retire memory embedding registrar
Migrate every bundled provider and manifest to registerEmbeddingProvider and contracts.embeddingProviders. Preserve memory-specific batching, local-service acquisition, index identity, and auto-selection through the canonical generic registry adapter, then remove the parallel registrar, registry, diagnostics, contracts, tests, and docs.
* chore(plugin-sdk): tighten retired surface budgets
Pin the post-retirement public SDK surface to 144 entrypoints, 4,312 exports, 2,564 callable exports, and 1,133 deprecated exports; agent-harness-runtime now permits exactly nine deprecated exports.
2026-08-15 22:43:47 -07:00
Pavan Kumar Gondhi
8668aeb969
fix(discord): bind transcript capture to source account [AI] ( #118579 )
...
* fix(discord): bind transcript capture to source account
* style(agents): keep transcript tool wiring compact
* fix(transcripts): declare account binding channels
* fix(transcripts): report effective capture account
* fix(transcripts): enforce account lifecycle ownership
* fix(transcripts): preserve cross-surface control
* fix(copilot): preserve transcript channel context
* fix(transcripts): fail closed for legacy channel owners
* fix(transcripts): add trusted legacy recovery
* fix(transcripts): preserve auto-start cleanup ownership
* fix(transcripts): reject untrusted account starts
* fix(transcripts): keep persisted ownership authoritative
* fix(transcripts): harden legacy recovery
* fix(transcripts): preserve agent ownership boundary
* fix(transcripts): scope account binding to source channel
* fix(transcripts): preserve unattributed owner isolation
* fix(transcripts): own configured captures by account
* docs(plugins): clarify transcript auto-start ownership
* test(transcripts): cover account-less recovery
* docs(transcripts): scope legacy recovery by provider
* fix(discord): reuse eligible account ordering for transcripts
* test(discord): use neutral transcript account fixtures
* fix(transcripts): keep accountless recovery local
* fix(discord): resolve transcript accounts by voice capability
* fix(transcripts): bound account resolution failures
* fix(transcripts): bound account tool output
* fix(transcripts): honor unresolved provider accounts
* fix(transcripts): preserve binding when providers are missing
* fix(transcripts): fail closed on unknown binding provenance
* fix(transcripts): qualify account lifecycle capability
* fix(transcripts): normalize provable legacy owners
* fix(transcripts): bind scheduled capture to caller authority
* fix(transcripts): preserve scheduled caller identity tuple
* fix(transcripts): preserve channel-less scheduled authority
* fix(plugin-sdk): publish transcript provider types
* fix(transcripts): use exact lifecycle ownership tokens
* fix(transcripts): preserve local ownerless lifecycle access
* fix(transcripts): allow local configured capture control
* fix(transcripts): preserve scheduled caller channel
* fix(transcripts): retain named-agent legacy recovery
* fix(transcripts): deny unrelated remote channels
* fix(doctor): validate transcript owner inference
* fix(transcripts): restrict legacy remote recovery
* fix(ci): align transcript Doctor checks
* fix(transcripts): require Doctor-owned legacy metadata
* fix(transcripts): reject unowned remote capture starts
* fix(transcripts): reject unbound Discord lifecycle calls
* fix(transcripts): distinguish legacy owner rows
* test(discord): keep unavailable account fixture typed
* fix(transcripts): mark current imports for Doctor
* fix(transcripts): complete account ownership validation
* fix(discord): restore transcript package boundary
* fix(discord): preserve bundled transcript entry boundary
* docs(transcripts): clarify Discord auto-start account
* fix(transcripts): bind account-owned imports
* fix: preserve transcript and cron policy state
* fix(cron): preserve scheduled transcript authority
* fix(discord): keep legacy transcript rows local
* fix(transcripts): narrow account ownership boundary
* fix(transcripts): preserve trusted caller ownership
* fix(discord): enforce transcript source authorization
* fix(ci): bound Control UI gzip build variance
* test(qa): align transcript scenario contracts
* fix(agents): repair rebased caller context
* fix(discord): restore rebased account ownership
* test(discord): restore voice account fixtures
---------
Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com >
2026-08-15 12:10:43 -07:00
Peter Steinberger
3109bc3b5d
fix(gateway): restart after prepared maintenance suspension ( #124157 )
...
* fix(gateway): hand off prepared suspension to restart
* chore: keep release changelog owner-managed
2026-08-15 04:53:38 -07:00
WhatsSkiLL
632581477f
fix(session-catalog): preserve explicit agent ownership across UI and CLI ( #123899 )
...
* fix(session-catalog): preserve explicit agent ownership across UI and CLI
* fix(session-catalog): repair owner routing regressions
* Fix-session-catalog-CI-checks
* test(ui): split chat catalog pane coverage
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* refactor(session-catalog): bind Codex homes per request
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* refactor(session-catalog): centralize owner resolution
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* fix(codex): resolve session fork against the adopted home
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
* refactor(ui): extract chat session discussion
* test(sessions): stabilize archive worker responsiveness check
---------
Co-authored-by: IWhatsskill <284122573+IWhatsskill@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-15 04:47:28 -07:00
Gio Della-Libera
103e1a4cc9
fix(claws): recover lifecycle state safely ( #123254 )
...
* fix(claws): preserve runtime lifecycle state
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
* fix(claws): harden lifecycle reconciliation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
* fix(mcp): serialize ownership mutations
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
* test(mcp): prove lifecycle lease ordering
* fix(claws): page cron recovery inventory
* fix(claws): fail closed on missing cron ownership
* refactor(claws): keep pending cron recovery unchanged
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com >
Copilot-Session: 34377cd6-beac-4e49-8ab0-22cfaf8b54a5
2026-08-14 20:52:45 -07:00
Peter Steinberger
d7d059c7e6
perf(test): move direct import smoke to test fixtures ( #123923 )
2026-08-14 19:07:48 -07:00
Peter Steinberger
27bf9c2a74
docs: fix stale cua-computer section link on the Codex Computer Use page ( #123892 )
...
The Windows/Linux cross-reference still pointed at the pre-rename anchor
("experimental, via CUA Driver SDK"); the heading became "experimental,
direct SDK" in 19ace6830b , so the link landed at the top of the node
computer-use page instead of the fulfiller section.
2026-08-14 17:33:23 -07:00
Peter Steinberger
bd1814bede
fix(policy): require --agent for explicit workspaces ( #123880 )
...
* fix(policy): require explicit CLI agent owner
* chore(policy): leave release notes to release flow
2026-08-14 16:15:17 -07:00
Pavan Kumar Gondhi
d5e89de906
fix(synology-chat): deliver attachments without forwarding source URLs [AI] ( #119941 )
...
* fix(synology-chat): host outbound attachments
* fix(synology-chat): isolate hosted media routes
* fix(synology-chat): harden hosted media limits
* fix(synology-chat): inspect hosted media content
* fix(synology-chat): reject ambiguous media routes
* fix(synology-chat): retain indeterminate media capabilities
* fix(synology-chat): mask public callback URLs
* fix(synology-chat): align callback sensitivity metadata
* fix(synology-chat): reserve media capability query keys
* fix(synology-chat): release rejected staged media
* fix(synology-chat): preserve ambiguous media handoffs
* fix(synology-chat): scan complete active media preamble
* fix(synology-chat): report validated attachment readiness
* fix(synology-chat): bound public media capability probes
* fix(synology-chat): bound hosted media responses
* test(synology-chat): model response headers read-only
* fix(synology-chat): bound hosted media reads
* fix(synology-chat): bound hosted media delivery
* fix(synology-chat): retain media through active serves
* fix(plugin-sdk): lease hosted media readers atomically
* fix(synology-chat): close hosted media review gaps
* test(synology-chat): clean up hosted media state
* fix(system-agent): canonicalize sensitive config paths
* fix(system-agent): honor runtime config sensitivity hints
* fix(config): inherit sensitive metadata
* fix(synology-chat): close latest review findings
* test(system-agent): keep config recovery checks lint-clean
* fix(system-agent): redact structured config secrets
* fix(synology-chat): harden active-content sniffing
* fix(security): close hosted media review gaps
* fix(security): close remaining hosted media review findings
* fix(system-agent): narrow dynamic owner ids safely
* fix(system-agent): narrow dynamic channel ids safely
* test(channels): isolate hosted media proofs
* fix(security): close config and hosted media review gaps
* test(plugin-sdk): split outbound media retention coverage
* test(plugin-sdk): isolate capacity store fixtures
* test(system-agent): assert config secrecy invariant
2026-08-14 17:05:20 -05:00
Jesse Merhi
bf40269cb7
feat(security): require acknowledgement for policy warnings ( #116489 )
2026-08-15 03:58:45 +10:00
Peter Steinberger
8885be4756
fix(codex): refresh session meters after /codex compact ( #123640 )
...
* fix(codex): route compact through session pipeline
Route /codex compact through host-owned manual compaction so native completion and token snapshots update session meters, and report the terminal outcome to the user.
* test(codex): cover unavailable compact outcome
* fix(plugins): fence command compaction capability
Bind compactCurrent to one command invocation and captured session generation so retained or stale callbacks fail closed without running compaction.
* fix(plugins): lazy-load command session revalidation
Keep compaction session freshness checks at the auto-reply owner without pulling the session accessor into generic plugin command module initialization.
* fix(plugins): keep session revalidation lazy
Avoid loading the session accessor through generic plugin command initialization while preserving pre-compaction session-generation checks.
* fix(compaction): fence session lifecycle admission
Revalidate the exact session id and lifecycle revision immediately before native compaction and again before accounting so resets and rebinds fail closed across awaited work.
* fix(commands): fence plugin compaction authority
* fix(compaction): require accounting commit
* test(compaction): keep regression under lint cap
* fix(codex): preserve compact admission
* fix(codex): preserve compaction target identity
* fix(compaction): bind admitted target
* fix(compaction): fence accounting commit
2026-08-14 09:47:43 -07:00
Vito Cappello
f5c46de8ac
fix(compaction): allow Claude CLI sessions to compact without API keys ( #120496 )
...
* fix(compaction): route manual CLI compaction natively
* fix(compaction): harden native CLI control operations
* fix(compaction): honor Claude native completion signals
* chore(plugin-sdk): refresh API baseline
* test(compaction): assert native session binding
* fix(compaction): preserve control session reuse
* fix(plugin-sdk): preserve boolean compaction ownership
* fix(agents): preserve native compaction ownership
* fix(compaction): bypass model auth for native control
* test(compaction): isolate authless control fixture
* test(compaction): isolate auth bypass regression
* fix(compaction): bypass generic auth for native CLI control
* fix(compaction): preserve native rejection failover
* test(compaction): isolate native queue regressions
* test(compaction): prevent native auth mock leakage
* fix(cli): isolate control operations from skill env
---------
Co-authored-by: VACInc <3279061+VACInc@users.noreply.github.com >
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-14 09:30:15 -07:00
Peter Steinberger
f65a6f81de
feat(llama-cpp): raise default context size to 64K ( #123701 )
...
The managed llama-server default ctx-size was 8192, but the full OpenClaw
agent system prompt alone is ~31K tokens, so the first agent turn overflowed
the context window and forced immediate compaction (observed live on the Mac
app local-model onboarding). Raise the default to 65536 so a fresh local-model
install can run a real agent turn out of the box.
The default-download 16 GiB RAM floor already bounds weaker machines, and
Gemma 4 supports far more than 64K, so this only changes headroom, not the
offer gate. Docs updated to match.
2026-08-14 08:26:41 -07:00
Dallin Romney
83d53044a4
fix(channels): route commentary through one progress owner ( #121009 )
...
* fix(slack): keep commentary progress on draft lane
* fix(channels): route commentary through one progress owner
Keep non-verbose commentary in Slack and Discord draft lanes while preserving one durable commentary payload when verbose progress makes those drafts yield. Freeze that owner decision for the turn so session changes apply on the next turn.
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
Punchcard-Session: amber-workshop-workshop-36
* fix(channels): refresh queued commentary owner
Recompute the frozen draft-versus-durable commentary owner for every queued follow-up turn and carry that decision into final payload projection.
Punchcard-Session: amber-workshop-workshop-36
* fix(channels): clarify commentary owner opt-in
* fix(channels): preserve queued draft preambles
* fix(channels): require explicit queued progress ownership
* refactor(channels): record commentary progress owner
* fix(telegram): tolerate unscoped queued updates
* test(discord): use canonical draft fixture after rebase
---------
Co-authored-by: Vincent Koc <vincentkoc@ieee.org >
2026-08-14 22:15:53 +08:00
Josh Avant
97a53a9b35
feat: audit admitted channel participant identity ( #122863 )
...
* feat: audit admitted channel participant identity
* fix: preserve Telegram identity through thread recovery
* fix: signal held gateway process groups
* fix: keep audit evidence passive in collect routing
* fix: validate copied channel participant evidence
* fix: bind channel participant evidence to host ingress
* fix: honor Telegram proof credential roles
* fix: restart held Telegram proof through gateway
* fix: repair channel identity CI regressions
* test(matrix): bind thread routing owner
* fix: preserve direct DM SDK compatibility
* fix: bind channel provenance at host runtime
* test(feishu): provide channel context builder
* fix: defer record-bound channel runtime resolution
* fix: keep channel admission evidence core-private
* fix(audit): bind channel admission to plugin lifecycle
* fix(audit): bind ingress provenance to final context
* refactor(audit): split admission scope keys
* test(queue): cover combined metadata carriers
* refactor(audit): keep lifecycle helpers private
* fix(queue): preserve combined turn authority
* test(channels): provide ingress context builders
* test(channels): align integrated CI fixtures
* test(clickclack): resolve model-loop ingress
* docs: preserve channel participant evidence invariant
2026-08-14 08:57:01 -05:00
Peter Steinberger
848a7e30b3
refactor(computer-use): one canonical wire contract + node-host provider seam ( #123509 )
...
* refactor(computer-use): add provider seam
* refactor(computer-use): retry provider open after failure; drop changelog entry
2026-08-13 23:32:32 -07:00
Peter Steinberger
7cadfb0bd6
fix: speed up local node launches and isolate scratch state ( #123503 )
...
* perf(node-host): reuse advertised worker build identity
* fix(agents): keep default workspaces inside state dir
* fix(plugins): package llama.cpp private SSRF runtime
* fix(node-host): silence missing skills directory
2026-08-13 23:24:54 -07:00
Bek
eb1035e861
fix(codex): retain direct-child hook policy after parent yield ( #122503 )
2026-08-13 22:51:34 -04:00
Patrick Erichsen
387937f27b
fix: forward skill evaluation correlation ( #123425 )
2026-08-13 19:38:52 -07:00
Peter Steinberger
1348387076
refactor(plugins): replace node-llama-cpp with managed llama-server ( #123105 )
...
Move llama.cpp chat and local embeddings onto a verified externally managed llama-server runtime. Remove the in-process native runtime, forked embedding workers, and node-llama-cpp dependency while preserving guided setup, local GGUF models, tool-capable agent runs, diagnostics, and operator docs.
2026-08-13 16:58:20 -07:00
ClawSweeper
036bcc1a65
fix(agents): self-heal unsupported harness transports ( #123258 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-13 13:08:35 -07:00
Ayaan Zaidi
d2afbd05ad
refactor(plugin-sdk): replace API baselines with diffs ( #123036 )
...
* refactor(plugin-sdk): replace API baselines with diffs
* perf(plugin-sdk): bound API diff resources
* fix(plugin-sdk): isolate API diff dependencies
* fix(release): forward Plugin SDK acknowledgement
* fix(release): enforce SDK acknowledgement on publish
* chore: preserve generated-doc ignore policy
* fix(release): freeze SDK API evidence before publish
* fix(ci): satisfy SDK evidence guards
* fix(release): bind complete SDK evidence
* fix(release): authenticate plugin SDK evidence
* fix(plugin-sdk): abort interrupted API diffs
* test(ui): freeze page clock in background-tasks rail e2e
The rail transcript is compared byte-for-byte across the detail-panel
round-trip while it renders live relative ages; on slow CI runners the
second boundary ticks between the two reads (11s -> 12s) and fails the
equality assertion. Fix the page Date with Playwright setFixedTime while
keeping timers running so the tasks.list polling assertions still hold.
Repro: a 1.5s stall between the reads fails pre-fix with the exact CI
diff and passes post-fix.
* fix(scripts): drop unused export on dependency-evidence CLI main
Knip's workflow scan re-roots script references after an actions/checkout
step that sets path:, so the new trusted-tooling checkout in
openclaw-npm-release.yml stops marking this CLI as a workflow entry and
its exported main() surfaces as an unused export in check-dependencies.
Nothing imports main; the module invokes it through its own entry guard,
so the export keyword was dead surface either way.
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-08-13 03:45:36 -07:00
joshavant
06600e2ca0
fix(discord): unblock ingress after retry exhaustion
2026-08-13 01:34:05 -05:00
Vyctor H. Brzezowski
e647794c20
feat(ui): open bare pair command without a chat turn ( #120855 )
...
Co-authored-by: Patrick Erichsen <patrick.a.erichsen@gmail.com >
2026-08-12 21:09:13 -07:00
Peter Steinberger
e45a9460ce
docs: repair spellcheck and anchor drift ( #122960 )
...
* docs: repair spellcheck and anchor drift
* docs: satisfy markdown anchor lint
2026-08-12 20:50:56 -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
Kimi Yu
e1b8150a06
fix(codex): let owners install plugins from discovered marketplaces ( #122389 )
...
* fix(codex): allow owner-approved marketplace plugins
* fix(codex): preserve marketplace validation and remove unused exports
* docs(codex): clarify already-installed plugin authorization
2026-08-12 20:29:40 +00:00