Peter Steinberger and GitHub
d725632ee7
refactor(channels): move channel-flavored setup flags into plugin manifests ( #112239 )
...
* refactor(channels): move channel-flavored setup flags into plugin manifests
* refactor(channels): normalize manifest cliAddOptions formatting, drop changelog entry
* fix(channels): dedupe channels add options by commander switch identity
* fix(channels): let the selected channel's cliAddOptions win switch dedupe
2026-07-21 02:50:19 -07:00
Peter Steinberger and GitHub
be5e427f56
feat(dashboard): plugin-declared widget data bindings and action verbs ( #112083 )
...
* feat(dashboard): add plugin capability declarations
* docs(dashboard): describe plugin capabilities
* fix(plugins): preserve registry map cloning
* fix(dashboard): make plugin grant ids unambiguous
* fix(dashboard): align generated plugin grant ids
* chore(boards): internalize verb ids and refresh protocol snapshots
2026-07-20 22:43:04 -07:00
Peter Steinberger
78b49f3a05
docs: refresh stale cua-driver claims (cross-platform prerelease, real MCP tool names)
2026-07-20 22:18:21 -07:00
Peter Steinberger and GitHub
d9cf85fa43
fix(cli): correct optional plugin guidance ( #112019 )
2026-07-20 21:31:30 -07:00
Jason (Json) and GitHub
8968e955f7
fix(plugins): restore external runtime imports ( #112021 )
...
* fix(plugins): restore external runtime imports
* fix(plugins): support synthetic runtime builds
* test(plugins): type synthetic runtime plan
2026-07-20 21:45:23 -06:00
Peter Steinberger and GitHub
bcbbf28093
docs(plugin-sdk): migrate retained SDK contracts ( #111535 )
...
* refactor(plugin-sdk): finish retained public demotions
* test(plugin-sdk): tighten surface budgets
* fix(plugin-sdk): retain static tool metadata contract
* fix(plugin-sdk): keep retained exports pending
* fix(plugin-sdk): satisfy registry lint
* docs(plugin-sdk): document retained consumer seams
2026-07-19 15:00:45 -07:00
Peter Steinberger and GitHub
5420c5c409
feat(clickclack): session discussions — bound channels, side agent, lifecycle sync ( #111503 )
...
* feat(clickclack): add session discussions
* chore: remove release-owned changelog entry
* refactor(clickclack): split discussion service workflows
* fix(clickclack): satisfy plugin surface gates
* fix: narrow routing peer in inbound test and refresh docs map
2026-07-19 14:47:14 -07:00
Peter Steinberger and GitHub
c7e7ac2728
refactor: remove expired plugin compatibility surfaces ( #111451 )
...
* docs(secrets): remove retired web credential paths
* refactor(web): remove retired provider compatibility paths
* refactor(providers): delete retired compatibility routes
* refactor(secrets): remove retired credential aliases
* refactor(plugin-sdk): delete retired compatibility surfaces
* docs(plugin-sdk): remove retired migration guidance
* chore(plugin-sdk): refresh rebased surface budgets
* chore(plugin-sdk): refresh API removal baseline
* refactor(compat): migrate retired internal callers
* chore(plugin-sdk): refresh current-main baselines
* test(config): migrate plugin-owned secret assertions
* test(gateway): narrow plugin secret refs
* fix(plugin-sdk): preserve private boundary type identity
* chore(compat): remove stale sweep references
* chore(lint): lower max-lines budget
* refactor(secrets): remove unused web helper
* build(plugin-sdk): drop removed compat entries
* chore(plugin-sdk): refresh rebased API baseline
* chore(plugin-sdk): use Linux API baseline hash
* fix(plugin-sdk): preserve private bundled build entries
* fix(plugin-sdk): package private runtime facades
* fix(plugins): preserve external credential contracts
2026-07-19 11:04:48 -07:00
Peter Steinberger and GitHub
83303f1ba8
feat(channels): batch 1 producers drop media placeholder bodies ( #111447 )
...
* feat(channels): batch 1 producers drop media placeholder bodies
Media-placeholder program batch 1: Google Chat, Zalo, LINE, and
Mattermost stop minting <media:kind> placeholder bodies. Media-only
messages carry an empty caption plus one structured fact per native
attachment (type-only when a download fails or is rejected, so payload
positions and kind signals stay aligned). The shared
formatMediaPlaceholderText SDK formatter renders text-only carriers
(Mattermost pending-room lines) from structured facts; per-channel
placeholder builders and the expected-count side channel are deleted.
* fix(mattermost): satisfy type, deadcode, and SDK manifest gates
2026-07-19 10:32:09 -07:00
Peter Steinberger and GitHub
4c55a4fc28
feat(plugins): expose requester context to tool hooks ( #111190 )
...
* feat(plugins): expose requester context to tool hooks
* chore(plugin-sdk): restore generated API baseline
* chore: drop release-owned changelog entry
* docs: refresh documentation map
2026-07-19 10:31:58 -07:00
Peter Steinberger and GitHub
197c4f5a04
feat: generic session discussion seam with Control UI panel ( #111337 )
...
* feat: add session discussion panel seam
* fix: keep discussion iframe cookie-capable and changelog release-owned
* test: cover cookie-capable discussion iframe sandbox
* fix: stretch discussion panel host so the embed fills the rail
* fix: keep provider failures retryable and probe discussion availability before showing the action
* fix: block same-origin discussion embeds, show action on catalog sessions, close stale panel on reconnect
* fix: scope discussion probes and panel callbacks to the issuing connection
* fix: dedupe in-flight discussion probes per session
* fix: retry superseded discussion probes and key-scope panel results
* fix: regenerate Swift protocol models and extend advertised-method expectations
* style: format chat-pane-header
* fix: regenerate Kotlin protocol models and date discussion methods in the 2026.7 train
* chore: restore release-owned changelog to main state
* chore: keep changelog untouched relative to merge-base
2026-07-19 09:47:47 -07:00
Peter Steinberger and GitHub
adf02e8de4
refactor(plugin-sdk): retire global provider publication ( #111426 )
...
* refactor(plugin-sdk): retire global provider publication
* docs: refresh SDK migration map
2026-07-19 07:44:11 -07:00
Peter Steinberger and GitHub
783a5d21cf
refactor(config): purge numeric tuning knobs behind built-in defaults ( #111382 )
2026-07-19 07:35:45 -07:00
Peter Steinberger and GitHub
bbcfec9e96
fix(channels): prevent outbound echoes and expose native login ( #111341 )
...
* fix(channels): centralize outbound echo suppression
* chore(plugin-sdk): refresh channel outbound surface
* test(commands): avoid native plugin fallback loading
* refactor(channels): separate outbound echo state
* docs(changelog): note channel action decisions
* fix(discord): align webhook preflight call
* fix(discord): use type-only thread binding import
* fix(channels): stream login blocks and widen turn results
* test(channels): narrow drop-capable turn results
* fix(channels): address echo and reply edge cases
2026-07-19 03:49:11 -07:00
Peter Steinberger and GitHub
d685037c6e
fix(workboard): avoid duplicate proof entries on completion ( #111324 )
...
* fix(workboard): resolve duplicate completion proof
* fix(workboard): import proof cap from constants
* fix(workboard): correlate completion proof by id
* fix(workboard): reuse terminal completion proof
* fix(workboard): retain correlated proof under budget
2026-07-19 03:00:37 -07:00
7055ed578d
fix(wizard): honor process locale when overrides are blank ( #111076 )
...
* fix(wizard): ignore blank locale env overrides
* test(wizard): cover locale fallback chain
* docs(wizard): document locale env precedence
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 23:28:03 -07:00
Peter Steinberger and GitHub
a920e443ee
docs: explain Codex memory controls ( #111234 )
2026-07-18 22:54:38 -07:00
Peter Steinberger and GitHub
e23dde3de5
feat: disable automatic session resets by default ( #111140 )
...
* feat(config): disable automatic session resets by default
* fix(sessions): honor pending reset tombstones
* test(sessions): align reset coverage with disabled default
* fix(sessions): preserve explicit reset override fallback
* fix(sessions): inherit active mode in partial type resets
2026-07-18 21:50:48 -07:00
Peter Steinberger
b51e3d02c7
docs(meetings): mention Discord voice channels
2026-07-19 02:35:21 +01:00
Peter Steinberger
09dd616782
docs(meetings): add platform comparison guide
2026-07-19 02:17:43 +01:00
Peter Steinberger and GitHub
b4187ced90
feat: add live-validated Zoom meeting guest plugin ( #111048 )
...
* feat(zoom-meetings): add browser guest transport
* fix(zoom-meetings): type reusable refresh result
* test(meeting-bot): bind reusable refresh callback
* chore(zoom-meetings): use existing plugin label
* chore(zoom-meetings): defer changelog to release
* test(zoom-meetings): cover node setup through public host
2026-07-18 17:17:26 -07:00
Peter Steinberger and GitHub
7562b79465
refactor(channels): share durable ingress monitor ( #111017 )
...
* refactor(channels): share durable ingress monitor
* fix(channels): harden ingress monitor shutdown
* docs: refresh SDK documentation map
2026-07-19 00:42:08 +01:00
Peter Steinberger and GitHub
a5ec26fa3c
fix: prevent LINE channel reloads from hanging on stalled deliveries ( #110971 )
...
* fix(channels): bound ingress shutdown and document retention
* docs(channels): note ingress shutdown behavior
* chore: keep release notes in pull request
* docs: refresh documentation map
* fix(line): preserve deferred claims during shutdown
* fix(line): handle late abandonment failures
2026-07-18 23:25:33 +01:00
Peter Steinberger and GitHub
264a7b0d12
refactor(channels): consolidate manifest descriptors ( #110985 )
2026-07-18 23:18:28 +01:00
bbad877aed
fix: deliver Codex-generated images on message-tool routes ( #110893 )
...
* fix: deliver Codex-generated images on message-tool routes
* test(codex): cover native image delivery path
Document trusted harness artifact provenance and cover the runner-to-dispatch bridge.\n\nRelease note: Codex-generated images now reach message-tool-only routes while normal source suppression remains intact.\n\nCo-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
---------
Co-authored-by: Omar Shahine <10343873+omarshahine@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 20:45:57 +01:00
Peter Steinberger and GitHub
04a9552a1f
chore(codex): update app-server to 0.144.6 [AI] ( #110821 )
...
* build(codex): bump app-server to 0.144.6
* build(codex): align ACP runtime to 0.144.6
* test(codex): harden live image probe
* test(codex): accept alphanumeric image tokens
* test(codex): stabilize image probe glyphs
* test(gateway): disable cron probe delivery
* test(codex): enlarge live image token
* test(codex): tie compaction proof to native output
* test(codex): accept wrapped native stress commands
* test(codex): stabilize compaction acknowledgements
* docs(changelog): note Codex 0.144.6 update
* docs(changelog): defer Codex note to release
2026-07-18 19:19:17 +00:00
Josh Lehman and GitHub
453444636c
feat: bound transcript reads across replacements ( #110374 )
2026-07-18 11:41:39 -07:00
Peter Steinberger and GitHub
3572fba7f9
feat(plugin-sdk): guard ingress effects once per event ( #110846 )
...
* feat(plugin-sdk): add ingress effect guard
* docs: refresh docs map
* fix(plugin-sdk): propagate effect commit failures
* fix(plugin-sdk): isolate ingress effect namespaces
2026-07-18 19:23:39 +01:00
Peter Steinberger and GitHub
d7b0bacf10
fix(teams-meetings): join and transcribe live meetings reliably ( #110615 )
...
* fix(teams-meetings): validate live web flows
* chore(plugin-sdk): update meeting runtime baseline
* test(teams-meetings): align live validation fixtures
* fix(teams-meetings): harden live browser validation
* fix(teams-meetings): preserve live transition lifecycles
* fix(meeting-bot): pass wait budget during recovery
* test(teams-meetings): satisfy extension lint
* fix(teams-meetings): preserve browser session ownership
* fix(teams-meetings): retire audio bridges after leave
* fix(teams-meetings): harden leave and audio ownership
* fix(teams-meetings): preserve leave transition ownership
* fix(teams-meetings): serialize leave cleanup safely
* fix(teams-meetings): guard live transition cleanup
* fix(teams-meetings): preserve adapter boundaries
* fix(teams-meetings): await caption readiness
* fix(teams-meetings): surface caption blockers
* fix(teams-meetings): retry transient media playback
* chore(teams-meetings): defer release notes
* refactor(meeting-bot): isolate navigation error helper
* test(teams-meetings): keep page control helper private
* fix(meeting-bot): bound caption lifecycle cleanup
* chore(plugin-sdk): refresh API baseline
* test(teams-meetings): split caption ownership coverage
* fix(teams-meetings): retry pending audio routing
* fix(teams-meetings): retain leave transition ownership
* fix(teams-meetings): refresh transcript target
* fix(teams-meetings): bound audio routing retries
* fix(teams-meetings): retry pending remote audio
* fix(teams-meetings): harden media source ownership
2026-07-18 15:57:22 +01:00
Peter Steinberger and GitHub
a068d38b66
refactor(plugins)!: remove experimental workspaces plugin ( #110416 )
...
* refactor(plugins)!: remove experimental workspaces plugin
* fix(doctor): remove retired workspaces plugin state
* refactor(doctor): settle retired-workspaces cleanup before legacy-state detect
* chore(i18n): leave workflow-owned locale artifacts to the locale refresh
* ci: retrigger after GitHub scheduling outage
2026-07-18 10:56:37 +01:00
e1d87e9a9d
fix(sessions): preserve parent lifecycle for parallel children ( #110541 )
...
* fix(sessions): declare parent lifecycle disposition
Co-authored-by: Luiz Antonio Busnello <lab@generantis.com.br >
* chore: keep release notes in PR body
* fix(sessions): preserve parallel fallback on old gateways
* chore(i18n): refresh native source inventory
---------
Co-authored-by: Luiz Antonio Busnello <lab@generantis.com.br >
2026-07-18 10:16:14 +01:00
42be965eac
improve(mattermost): restart only the changed account on config reload ( #99312 )
...
* improve(gateway): restart only the changed account on channel config reload
When a config change is scoped entirely to one channel account
(channels.{kind}.accounts.{accountId}[.*]), restart just that account
instead of the whole channel. Wholesale channel restarts disconnect every
account on the channel; on gateways running many accounts, each
account-scoped config write (adding an account, changing one account's
settings) briefly dropped every other account's connection.
The reload plan gains a restartChannelAccounts bucket populated only when
all of a channel's changed paths are account-scoped; any channel-global
path falls back to the existing wholesale restart, and a channel scheduled
for wholesale restart drops its per-account entries so each (channel,
account) pair restarts at most once. The executor runs per-account
restarts through the existing stopChannel/startChannel accountId parameter.
* fix(gateway): preserve account reload admission
* fix(gateway): scope surgical reloads to isolated plugins
* test(gateway): avoid preactivating reload snapshot
* docs(channels): define account reload isolation contract
* fix(gateway): preflight scoped account reloads
* fix(gateway): re-drain live scoped reload targets
* docs: refresh generated docs map
* fix(mattermost): align scoped reload with durable ingress
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 09:33:06 +01:00
Peter Steinberger and GitHub
d7de67ae02
feat: ask_user follow-ups — harness convergence, channel finalization + reactions, native cards, docked web panel ( #110372 )
...
* feat(ask-user): follow-up harness slice
* feat(ask-user): follow-up channels slice
* feat(ask-user): follow-up native slice
* feat(ui): dock question panel above composer with stepper and compact stream summaries
* docs: refresh follow-up integration maps
* test(ui): align terminal summary proof
* fix(infra): echo declared option answers in terminal status when free-text is allowed
* fix(infra): keep reaction answering when display labels are formatter-adjusted
* fix(agents): settle plain-text claims only after question registration commits
* fix(agents,apps): commit-ordered claim persistence, claim-aware prompt delivery, non-blocking question refresh
* fix(harness,infra): reaction-appropriate question copy, caller presentations honored
* fix(native,infra,agents): local-expiry eviction, value-addressed reactions, reserve-before-request
* fix(infra,android): dual-mode question resolver for compact callbacks; reset terminal retention on replayed pending
* fix(harness,discord): claim-aware prompt delivery in run helper; escape finalization labels
* fix(macos): merge transient-content visibility with question cards after main sync
* fix: repair ask user follow-up CI
* test: update limited bootstrap scope expectation
* fix: retain shared question card API
* chore: refresh native i18n inventory
2026-07-18 03:32:39 -04:00
4b3ee5e7eb
feat: let agents remember across private conversations ( #100140 )
...
* feat(memory): remember across private conversations
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
* chore(docs): regenerate config baseline
* fix(memory): restore recall configuration wiring
* fix(memory): scope recall transcript indexing
* test(memory): repair conversation recall fixtures
* test(memory): split session visibility coverage
* style(memory): format type imports
---------
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-18 08:21:43 +01:00
Peter Steinberger and GitHub
3997a996d4
fix(codex): bound app-server resume history ( #110396 )
...
* fix(codex): harden app-server resume protocol
* chore(codex): defer release note to release process
* fix(codex): align bounded resume checks
2026-07-18 06:25:17 +01:00
Peter Steinberger and GitHub
d8f2645c2c
refactor(memory-wiki): move compiled cache to plugin state ( #110167 )
...
* feat(plugin-sdk): prepare memory prompts asynchronously
* refactor(memory-wiki): move compiled cache to plugin state
* fix(plugin-sdk): export memory prompt preparer type
* refactor(plugin-sdk): keep prompt preparer type private
* test(memory-wiki): isolate compiled cache state
* chore(memory-wiki): satisfy changed gates
* fix(memory): preserve prepared prompts across context engines
* docs(plugin-sdk): refresh API baseline
* fix(memory): revalidate prepared prompt ownership
* fix(codex): propagate sandboxed memory context
* test(memory-wiki): seed durable vault identity
* refactor(memory-wiki): keep cache lifecycle internal
* fix(memory-wiki): harden compiled cache publication
* style(memory-wiki): format cache lifecycle changes
* test(memory-wiki): support extension test lib target
* style(memory-wiki): remove redundant catch
* refactor(memory-wiki): keep vault generation helper private
2026-07-18 03:05:03 +01:00
Peter Steinberger and GitHub
781913025b
improve: stream native sessions as hosts finish ( #110211 )
...
* perf: stream native session catalogs by host
* fix: satisfy session catalog CI contracts
* fix: retain changed-session refresh timing
* fix: keep catalog refresh helpers private
2026-07-17 23:59:57 +01:00
Peter Steinberger and GitHub
da44d52ac6
feat: ask_user — structured questions from the agent with web card, channel buttons, and text answers ( #109922 )
...
* feat(gateway): add transient question runtime (question.* methods + broadcasts)
* feat(agents): add blocking ask_user question tool with chat prompt delivery and text-reply claim
* feat(ui): interactive in-thread question cards for ask_user
* feat(channels): native tap-to-answer buttons for ask_user on Telegram, Discord, and Slack
* feat(ui): unify codex and gateway question cards with interactive gateway answering
* refactor(agents): collapse ask_user pending state to one registry; docs for ask_user
* fix(agents): include ask_user in normal gateway runs; add question-flow control-ui e2e
* test(ui): avoid credential-shaped fixture in question card test
* refactor(ui): reorder stream-group context keys
* fix(gateway,ui): validate question answers at resolve; reject secret/duplicate-label questions; UI retry and reconnect hardening
* fix(gateway,agents): canonicalize accepted option answers; bound ask_user option labels to 64 chars
* chore(ci): prune unused question exports, allowlist mobile question events, fix discord lint
* chore(ci): regenerate protocol/i18n/docs/tool-display artifacts for question surface
* fix(protocol): flatten QuestionRecord for native codegen; drop TS-only alias from schema registry
* chore(android): regenerate ask-user localization resources
* docs: regenerate docs map after rebase
* fix(ci): avoid stale read-only dependency disks
* test: remove stale reef lint suppression ratchet
* fix(ci): keep source locale drift advisory in release gates
* fix(ci): scope locale advisory handling to parity check
2026-07-17 22:24:17 +01:00
Peter Steinberger and GitHub
b319493a52
improve: let Code Mode use declared tool result shapes ( #109813 )
...
* feat(agents): add Code Mode output contracts
* perf(agents): defer untrusted tool schemas
* chore(plugin-sdk): refresh API baseline
* fix(agents): preserve deferred schema markers
* fix(agents): preserve policy-blocked tool results
* fix(agents): preserve nullable output contracts
* fix(agents): reject policy blocks from success contracts
* fix(agents): preserve output contracts through normalization
* test(agents): type normalized tool fixtures
* fix(agents): validate catalog results before projection
* fix(agents): keep result snapshots internal
* fix(agents): fail closed on unrenderable unions
* fix(agents): preserve empty result markers
* test(agents): keep result fixture discriminator literal
* test(agents): use native own-property check
2026-07-17 14:46:37 +01:00
Peter Steinberger and GitHub
ee762ad761
feat(teams-meetings): join Microsoft Teams meetings via the meeting-bot core ( #109964 )
...
* feat(teams-meetings): join Microsoft Teams meetings via the meeting-bot core
* fix(teams-meetings): satisfy lint and package-boundary contracts
2026-07-17 13:23:39 +01:00
Peter Steinberger and GitHub
2920ec1fab
docs(channels): settle replay-guard vs ingress-drain layering contract ( #109799 )
...
* docs(channels): settle replay-guard vs ingress-drain layering contract in code comments and SDK docs
* docs: refresh SDK channel docs map
2026-07-17 11:13:00 +01:00
Peter Steinberger and GitHub
1a2d9e5e5c
refactor(meeting-bot): extract browser meeting-bot core behind MeetingPlatformAdapter ( #109755 )
...
* refactor(meeting-bot): extract browser meeting-bot core behind MeetingPlatformAdapter
* chore(google-meet): prune max-lines baseline entries shrunk by extraction
* fix(meeting-bot): drop orphaned extension realtime files and refresh lint/test types after extraction
* chore(google-meet): prune deleted realtime max-lines baseline
* chore(meeting-bot): remove release-owned changelog entry
* fix(meeting-bot): harden session leave, cleanup retry, and engine teardown paths
2026-07-17 10:35:56 +01:00
Peter Steinberger and GitHub
6ac15970a7
feat(onboarding): unified empty-state with provider icons, websites, and recommended installs ( #109681 )
...
* feat(onboarding): unify setup recommendations
* fix(control-ui): proxy model setup icons
* fix(onboarding): refresh landing artifacts
* chore(ui): sync translated i18n catalogs
* chore(ui): keep generated locale artifacts on the refresh workflow
2026-07-17 01:01:06 -07:00
2b18ef7426
feat(codex): surface native questions and goals ( #109724 )
...
* feat(codex): bridge native questions and goals
Co-authored-by: EVA <eva@100yen.org >
* fix(ui): preserve native question text encoding
* fix(codex): keep secret answers off action paths
* fix(codex): validate native action keys exactly
* fix(codex): isolate new goals and free-form answers
* style(codex): satisfy extension lint
* fix(codex): keep goal replacement non-destructive
* fix(codex): separate native goals from continuation
* fix(codex): preserve exact native answer labels
* test(codex): assert goal continuation stays disabled
* fix(codex): remove unused bridge exports
* test(codex): refresh goal feature snapshots
---------
Co-authored-by: EVA <eva@100yen.org >
2026-07-17 00:35:39 -07:00
Peter Steinberger and GitHub
c13925b387
fix(webhooks): keep routes cold when SecretRefs are unavailable ( #109715 )
...
* fix(webhooks): isolate unresolved route secrets
* chore(plugin-sdk): refresh API baseline
* docs(secrets): refresh credential surface
2026-07-16 23:56:59 -07:00
6b4f372ff6
fix(codex): expose assistant completion idle timeout config ( #97233 )
...
* fix(codex): expose assistant completion idle timeout config
* chore: rerun codex idle timeout config checks
* docs(codex): document assistant completion idle timeout
* test(codex): cover assistant idle timeout default
* fix(codex): preserve runtime option compatibility
---------
Co-authored-by: marchpure <marchpure@users.noreply.github.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-16 22:22:38 -07:00
Peter Steinberger and GitHub
a5237fe925
feat(llama-cpp): gate Gemma default by RAM ( #109585 )
2026-07-16 22:17:57 -07:00
Peter Steinberger and GitHub
e873a7f955
refactor(memory): move QMD coordination to SQLite ( #109636 )
...
* refactor(memory): move QMD coordination to SQLite
* chore: keep release notes in PR body
* chore: annotate lease SQLite primitive
2026-07-16 22:01:34 -07:00
Ayaan Zaidi
16c14e5bbf
feat(channels): expose the turn-adoption lifecycle seam
...
Replace the bare onTurnAdopted callback and queuedFollowupLifecycle with one
turnAdoptionLifecycle surface (onSettled guaranteed via finally; adoption-loss
aborts queued steering turns without transcript replay), threaded through the
turn kernel and agent runner, exposed to plugins via
runtime.state.openChannelIngressDrain and the channel-outbound SDK barrel,
with surface budgets re-measured against the narrowed baselines (#108656 ).
2026-07-17 10:12:54 +05:30
Peter Steinberger and GitHub
e3618454f2
refactor(talk): add realtime voice session harness and adopt in google-meet and voice-call ( #109497 )
...
* refactor(talk): add realtime voice session harness and adopt in google-meet and voice-call
* fix(google-meet): satisfy prefer-const in realtime engine wiring
2026-07-16 21:28:44 -07:00