Commit Graph

19412 Commits

Author SHA1 Message Date
Peter Steinberger f69226b7b4 test(discord): remove thread cache reset (#124278) 2026-08-15 13:59:03 -07:00
Peter Steinberger 37763e4d7e refactor(feishu): remove thread-binding test reset (#124276) 2026-08-15 13:38:04 -07:00
Shakker e2d04702c3 fix: preserve OpenRouter image compatibility 2026-08-15 20:41:41 +01:00
Robinnnnn 02af2fa053 fix(openrouter): use dedicated /api/v1/images endpoint for image generation 2026-08-15 20:41:41 +01: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
Sarah Fortune dbc2356abc feat(slack): make presence event guidance configurable (#123875)
* feat(slack): make presence event guidance configurable

* chore(config): regenerate channel metadata

* fix(slack): keep presence prompt SDK compatible

* chore(config): refresh config baseline

* fix(slack): cap presence event prompts

* chore(config): refresh Slack prompt metadata

* fix(slack): bound queued presence wake prompts

* fix(slack): inherit presence prompt for named accounts

* fix(slack): keep prompt limit at config boundary

---------

Co-authored-by: Sarah Fortune <sarah.fortune@gmail.com>
2026-08-15 12:02:19 -07:00
Ted Li a3817e9874 fix(workboard): avoid hydrating cards for board summaries (#123922) 2026-08-15 14:50:46 -04:00
Peter Steinberger 1db88feeef refactor(channels): own thread binding cleanup in managers (#124221)
* refactor(channels): own thread binding cleanup in managers

* test(channels): prove thread binding lifecycle cleanup
2026-08-15 11:35:55 -07:00
wanyongstar 8f59226bc9 fix(xai): report lazy voice bridge connect failure as a terminal error (#123064)
* fix(xai): report lazy voice bridge connect failure as terminal error

When the loaded realtime voice bridge's connect() rejected, the lazy
wrapper marked the generation terminal internally but never called
req.onClose and never closed the loaded bridge, leaking it and leaving
callers without a terminal outcome. Mirror the queued-flush failure
path: emit a terminal "error" and close the loaded bridge before
propagating the rejection.

* fix: harden realtime voice connection lifecycle

---------

Co-authored-by: Altay <altay@hey.com>
2026-08-15 20:56:11 +03:00
Peter Steinberger eeabc2cf69 test(telegram): remove probe cache reset (#124219) 2026-08-15 10:50:46 -07:00
Peter Steinberger 6b9a6ece48 test(amazon-bedrock-mantle): remove cache resets (#124216) 2026-08-15 10:28:05 -07:00
Peter Steinberger 10a98702b7 test(amazon-bedrock): remove discovery cache reset (#124212) 2026-08-15 10:05:43 -07:00
Josh Lehman cd5076770e fix(qa): restore Buzz canary selection (#124200)
* oc-2f4: fix Buzz QA scenario selection

* oc-2f4: align canary catalog contract
2026-08-15 09:27:39 -07:00
Peter Steinberger a5603681c6 test(diffs): remove private icon source mirrors (#124196) 2026-08-15 08:36:55 -07:00
Peter Steinberger 7ce902c8b6 refactor(plugins): trim test-only barrel exports (#124192) 2026-08-15 08:25:19 -07:00
Peter Steinberger c0824d284e test(extensions): remove type-only probe contracts (#124190) 2026-08-15 08:02:07 -07:00
Peter Steinberger 9877d6f8a8 test(google-meet): remove unused testing bags (#124183) 2026-08-15 07:08:22 -07:00
Peter Steinberger 7862a5da15 refactor(session-catalog): split codex catalog modules and unify adoption coordination (#124178)
* refactor(session-catalog): unify adoption coordination

* refactor(codex): split session catalog modules

* fix(anthropic): narrow adopted history for import

The coordinator migration hoisted history to an optional outer binding;
afterCreate needs the definite array from the create scope.

Also drop the retired session-catalog max-lines ratchet entry.
2026-08-15 06:40:40 -07:00
Peter Steinberger da11168959 fix(codex): preserve paired-node agent ownership (#124172) 2026-08-15 06:06:12 -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
Peter Steinberger 94a0661322 fix(cua): initialize execution resources on first use (#124156) 2026-08-15 04:30:08 -07:00
Peter Steinberger abf0ef6513 fix(computer-use): repair artifact verification and post-approval descriptor found by the Linux gate (#124128)
* fix(cua-computer): prove Linux X11 live vertical

* test(computer-use): authenticate isolated Linux rig

* fix(gateway): refresh computer use after node approval

* refactor(cua-computer): resolve the plugin manifest by static import

* fix(gateway): break plugin runtime import cycle

* fix(computer-use): bind live rig to committed helpers
2026-08-15 03:53:23 -07:00
Peter Steinberger c77ee5ba37 refactor(qa): remove aggregate test facades (#124147) 2026-08-15 03:28:36 -07:00
Peter Steinberger dec4d44618 fix(memory-lancedb): cancel timed-out native queries (#124143) 2026-08-15 03:12:39 -07:00
Peter Steinberger 20e81a724d test(codex): trim duplicate app-server regressions (#124141) 2026-08-15 02:56:05 -07:00
Peter Steinberger 3d643f7b7b perf(test): reduce LM Studio stream suite setup (#124136) 2026-08-15 02:52:05 -07:00
Peter Steinberger c9da900a96 docs(agents): third cleanup pass — sentence-level dedup, CI-guard citations, deployed-agent bullet relocation (#124078)
Three audit lanes over the remaining sections:

- Repair Doctrine/Code/Tests/Start: merge bullets that restate the same
  obligation (read-broadly pair, LOC+closeout, verification pair, helper-rent
  pair, narrow-API pair, over-engineering pair, test-value trio); relocate the
  consolidate-duplicated-setup clause into the test-audit skill's authoring
  gate; split the Codex hard gate into its own bullet.
- Architecture: cite CI enforcement instead of restating it (coercion-helper
  guard owns isRecord carve-outs); defer additive-SQLite criteria to
  docs/reference/database-schemas.md (verbatim coverage); merge the channel
  transport-only trio, hot-path pair, and process-stable/freshness trio;
  every approval gate untouched.
- Platform/Ops: delete the three deployed-agent bullets (generated-media wake,
  message_tool_only, memory wiki) — deployed agents read runtime prompts and
  docs, not this repo's AGENTS.md, and docs/tools/media-overview.md,
  docs/gateway/config-channels.md, and the memory-wiki plugin surfaces cover
  every clause (wiki-maintainer skill gains the verify-contact-data line);
  move SwiftUI Observation + provider-schema bullets to Code; compress Mac
  signing to its doc pointer.
- ClawSweeper: 13 wording compressions; every schema field name and gate kept.

Adversarial no-loss audit ran over the diff; its four findings (external-API
live-test weakened by a feasibility qualifier, dropped orchestration-only
clause, existing-vs-obsolete abstraction flip, oversold channel-doc pointer)
are all restored/fixed.
2026-08-15 02:43:38 -07:00
Peter Steinberger 12ff4be126 refactor(plugins): remove dead provider seams (#124134) 2026-08-15 02:40:46 -07:00
Jason (Json) 40866f3330 fix(codex): honor managed binary owner root (#124124) 2026-08-15 03:18:54 -06:00
Peter Steinberger 447393dc32 test(core): remove residual duplicate assertions (#124116) 2026-08-15 02:06:44 -07:00
Peter Steinberger 11bcc0eb49 fix(memory): stop cancelled searches before returning results (#124118)
* fix(memory): stop vector scan after search cancellation

* fix(memory): preserve cancellation through hybrid search
2026-08-15 02:00:33 -07:00
Peter Steinberger ee65561410 perf(test): speed up Mattermost send suite (#124114) 2026-08-15 01:57:07 -07:00
Peter Steinberger af99d1ac7b test(computer-use): security closure across the v2 action surface (#124112) 2026-08-15 01:54:06 -07:00
Peter Steinberger 5d601233df refactor(types): remove chained type assertions in extensions (#124079)
* refactor(types): remove chained assertions in extensions

* fix(codex): preserve canonical binding identity
2026-08-15 01:39:26 -07:00
Peter Steinberger 250b1e68be refactor(channels): centralize ingress lifecycle fan-out (#124096) 2026-08-15 01:03:16 -07:00
Ilya Kuprov f21d34d71d fix(slack): upload-file silently drops a caption (#121047)
The Slack `upload-file` action accepts `media` as an alias for `filePath`, so
a caller can reach it with the same vocabulary used for a media `send`. That
vocabulary carries its accompanying text in `caption`, but the upload path
read only `initialComment` and `message`, so the text was dropped and the file
arrived in the channel with no comment at all.

Accept `caption` as the lowest-precedence alias. Explicit `initialComment`
still wins, `message` still comes next, and an explicitly empty
higher-precedence value stays empty.
2026-08-15 10:58:55 +03:00
Peter Steinberger cf57cbf39a perf(test): avoid DeepInfra auth graph import (#124085) 2026-08-15 00:58:03 -07:00
Peter Steinberger 9e911d5601 test(cua): remove stale provider parity fixtures (#124066) 2026-08-15 00:28:55 -07:00
Peter Steinberger 079bb34196 feat(cua-computer): recording family with host-owned resource handles (#124035)
* feat(cua-computer): add recording resource handles

* test(agents): split computer tool coverage
2026-08-15 00:14:13 -07:00
Peter Steinberger 28f10c00b4 fix(codex): keep yolo approvals disabled (#124069)
Keep routine Codex commands from pausing for approval in default and team YOLO sessions. The default exec policy omitted its full mode, so a generic tool hook could promote approvalPolicy from never to untrusted.
2026-08-14 23:57:49 -07:00
Peter Steinberger 056184bccc fix(browser): preserve closed tab ownership (#124064) 2026-08-14 23:55:07 -07:00
Peter Steinberger a8f1a0d345 test(computer-use): live end-to-end gate for both macOS providers (#123991)
* fix(computer-use): preserve semantic click observations

* fix(cua-computer): isolate desktop and window sessions

* fix(cua-computer): route cursor reads through desktop scope

* test(computer-use): add isolated macOS live proof rig

* style(cua-computer): format driver sessions

* fix(cua-computer): forward lazy desktop tools

* fix(computer-use): narrow live proof artifact path

* test(computer-use): split schema contract coverage

* refactor(cua-computer): unify session start state

* build(computer-use): register live proof entrypoint

* style(computer-use): satisfy full lint contract

* fix(computer-use): harden live proof authority

* fix(cua-computer): keep window authority immutable

* fix(computer-use): close partial sessions safely
2026-08-14 23:37:53 -07:00
Peter Steinberger 3f6bf166b6 fix(memory): preserve provider on cancelled search (#124051) 2026-08-14 23:28:16 -07:00
Ayaan Zaidi 2e806ef0e2 fix(codex): keep the real answer when a trailing coda follows (#123993)
* fix(codex): keep prior finals when a coda follows without tool work

Live persist last-won a single assistant slot, so a trailing final_answer
replaced the real summary. Keep explicit finals after the last native tool;
phase-less coordination text stays last-wins.

* fix(codex): record the native-work barrier from item notifications

turn/completed.items is a last_agent_message Summary, so result-time
tool scans cannot see intervening work. Invalidate persistable finals
when native tools arrive, drop trailing silent tokens, and let a later
unphased message replace earlier finals.

* fix(codex): make the persistable-text barrier once-per-handoff

Delayed native completions must not move the barrier past an answer that
arrived while that tool was already active. Dynamic tool calls are the
same handoff. If no audible text exists after the barrier, recover the
last persistable answer instead of dropping it.

* fix(codex): keep a post-handoff silent final authoritative

A tool after an audible final starts a new answer segment. If that
segment is NO_REPLY, do not revive the pre-tool text. Recover a prior
answer only when the post-handoff segment is empty.

* fix(codex): classify silent finals with the delivery payload predicate

Token-only matching missed JSON and reasoning-wrapped NO_REPLY
payloads, so a trailing control envelope could join into the visible
answer. Use the shared payload-level predicate.

* fix(codex): honor unphased replacement and sleep handoffs

A later unphased item must invalidate older finals even when a later
final skips it, and sleep is a native answer barrier.
2026-08-15 11:36:33 +05:30
Jason (Json) a02ed2cfda fix(plugin-sdk): installed llama providers fail to load after upgrade (#124041)
* fix(plugin-sdk): let installed llama providers load after upgrade

* test(tooling): include new memory race importer
2026-08-14 23:57:24 -06:00
Peter Steinberger 49e783da74 perf(test): narrow Tlon monitor SDK mocks (#124036) 2026-08-14 22:37:02 -07:00
Peter Steinberger 3f7c8522b7 fix(discord): stop stale voice playback after leave (#124030)
Discard TTS that settles after a Discord voice session stops, release queued streams, and remove file-backed playback artifacts after use.
2026-08-14 22:31:11 -07:00
Peter Steinberger 2e90d67312 test(cua): trim generic browser transport replays (#124011) 2026-08-14 22:24:41 -07:00
Peter Steinberger 2ee5c2f6ca fix(memory): queue transcript updates during active sync (#124024) 2026-08-14 22:20:53 -07:00
Bek 5a5bf4d524 fix(codex): preserve native child continuation on yield (#124004) 2026-08-15 01:13:09 -04:00