Peter Steinberger
ee33840164
test(google-meet): route hooks through test API ( #126249 )
2026-08-19 01:33:09 -07:00
Peter Steinberger
a4b265aa9b
test(google-meet): remove testing re-export ( #126223 )
2026-08-19 00:26:09 -07:00
Peter Steinberger
fa03d9b913
refactor: consolidate coercion helpers ( #121366 )
...
* refactor: consolidate coercion helpers
* fix: remove duplicate coercion imports
* fix: preserve serialized coercion guard
* chore: ratchet coercion helper carve-outs
* fix(test): keep gauntlet subprocess startup lean
* fix: preserve imported session timestamp semantics
* fix: preserve catalog timestamp string semantics
* chore: align plugin SDK surface ratchet
* fix: preserve trajectory and SDK string contracts
* fix(test): preserve QA record assertion semantics
* fix: complete standalone record guard rename
* refactor(cron): use canonical string coercion
* fix(acpx): preserve Pi timestamp parsing
* test(channels): adapt custody test harnesses
* test(telegram): classify media harness as test support
* test(acpx): split timestamp contract coverage
* test(channels): support generated custody contracts
* chore: ban the full coercion helper name set
Extends the declaration guard to all eleven consolidated helper names and
renames the cron schedule-identity readNumber wrapper to readScheduleInteger
so the banned generic name cannot regrow.
* fix(scripts): repair release-validation guard drift and lint cause
Restores the renamed isJsonRecord guard in assertTrustedWorkflowHarness after
main added isRecord call sites in parallel, and attaches the caught YAML error
as the thrown error cause (preserve-caught-error was red on main).
* fix: preserve Claude timestamp string semantics
* fix: preserve persisted timestamp string semantics
* fix: preserve date-first timestamp contracts
* fix(openai): harden delegation failure formatting
* chore: close coercion helper guard gaps
* test(openai): model non-error delegation rejection
* chore: refresh plugin SDK API contract
* fix(tasks): use canonical string field reader
* fix(ai): use canonical provider error field coercion
* fix(browser): migrate native bootstrap coercion
* docs(plugin-sdk): clarify text record export compatibility
* fix(gateway): normalize approval execution identity
* test(outbound): isolate message action poll harness
2026-08-11 00:02:18 -07:00
Peter Steinberger
620fcd0e27
refactor(plugins): make manifests own config ui hints ( #121329 )
2026-08-09 18:48:49 -07:00
Peter Steinberger
7d4066639e
feat(meetings): enable Linux Chrome talk-back ( #118451 )
...
* feat(meetings): add Linux audio routing
* chore(plugin-sdk): refresh meeting audio API baseline
2026-08-09 02:13:17 -07:00
Peter Steinberger
d52827a8c0
fix(google-meet): redial after completed voice calls ( #120807 )
2026-08-08 18:40:50 -07:00
Peter Steinberger
b4a26783f7
refactor(test): consolidate duplicated requireRecord and provider HTTP mock helpers ( #119982 )
...
* refactor(test): consolidate duplicated test helpers
* test: remove stale record guard import
* fix(test): remove orphaned record guards
* refactor(test): keep record requirement messages exhaustively typed
* fix(test): keep packages/ai record guard package-local
2026-08-06 14:48:01 -07:00
Peter Steinberger
8e35fb4963
test(channels): consolidate remaining channel scaffolding ( #118493 )
...
* test(channels): consolidate channel scaffolding
* test(channels): fix helper typings
2026-08-02 23:03:54 -07:00
Peter Steinberger
59a6abd065
test: consolidate embedded agent and channel suites ( #117826 )
...
* test: consolidate embedded agent and channel suites
* test: type reply reconciliation table rows
* test: preserve raw telegram config fixture
2026-08-01 22:14:32 -07:00
Vincent Koc
9a14ee3ad2
fix(meeting-bot): keep node capability internal
2026-07-31 11:09:03 +08:00
Vincent Koc
1bd2f93214
fix(meeting-bot): negotiate realtime output generations
2026-07-31 11:09:03 +08:00
Vincent Koc
4250552080
fix(meeting-bot): preserve node audio responses
2026-07-31 11:09:03 +08:00
Peter Steinberger
ddd0b48673
refactor: remove 3,527 lines of runtime and test duplication ( #115626 )
...
* refactor: remove obsolete runtime and test duplication
* test: preserve typed cron and realtime fixtures
2026-07-29 02:21:20 -04:00
Peter Steinberger
74045d3f4c
test(google-meet): cover machine output descriptor ( #114562 )
2026-07-27 08:22:11 -04:00
Peter Steinberger
e717d24c2e
refactor(meetings): close manual action state ( #114247 )
2026-07-26 23:25:19 -04:00
Peter Steinberger
517978a808
refactor(meetings): converge Google Meet probes and adapter parsing ( #113970 )
...
* refactor(meetings): converge Google Meet adapters
* fix(meetings): guard manual action category lookup
* fix(meetings): type manual action category map
2026-07-25 19:00:44 -07:00
Peter Steinberger
c5a2e9b9fb
test(google-meet): deduplicate browser scenarios ( #113573 )
2026-07-25 01:51:07 -07:00
Peter Steinberger
4aa9c9f916
test(google-meet): remove release validation races ( #113387 )
2026-07-25 03:28:22 +08:00
Vincent Koc
3d486066ca
test(google-meet): accept remaining browser act budget ( #113384 )
2026-07-25 02:55:58 +08:00
Peter Steinberger
7d5fb6f242
test(release): align extension prerelease contracts ( #113381 )
2026-07-25 02:30:35 +08:00
Peter Steinberger
89122bf298
refactor(google-meet): consolidate plugin test fixtures ( #113256 )
...
* test(google-meet): consolidate plugin fixtures
* test(google-meet): keep fixture internals private
2026-07-24 01:02:39 -07:00
Peter Steinberger
cca67fc842
fix(meetings): verify talk-back loopback signal ( #112939 )
...
* fix(meetings): verify talk-back loopback signal
* refactor(meetings): keep verification helper private
* fix(meetings): type loopback buffers generically
* fix(meetings): bound loopback reference buffers
* fix(meetings): align loopback proof with playback
* chore(meetings): defer release note ownership
* fix(meetings): keep loopback health type private
2026-07-23 02:32:24 -04:00
Peter Steinberger
939ecb5ef8
refactor(meeting-bot): hoist meeting adapter runtime glue ( #112785 )
...
* refactor(meeting-bot): hoist adapter runtime glue
* refactor(meeting-bot): specialize runtime adapters
* refactor(google-meet): reuse runtime adapter alias
* refactor(meeting-bot): privatize consult internals
* refactor(plugin-sdk): ratchet meeting runtime surface
2026-07-22 18:52:17 -04:00
Peter Steinberger
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
fcdf3954d7
fix(meetings): wait for audio bridge cleanup ( #110548 )
...
* fix(meetings): wait for audio bridge cleanup
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
* test(meetings): skip POSIX signal proof on Windows
---------
Co-authored-by: zhang-guiping <zhang.guiping@xydigit.com >
2026-07-18 09:00:19 +01:00
Peter Steinberger
72d597c202
fix(google-meet): harden talkback bridge recovery ( #110092 )
...
* fix(meeting-bot): harden deferred runtime findings
* fix(google-meet): gate paired-node talkback bridge
* fix(google-meet): preserve tracked tab during bridge recovery
* docs(google-meet): explain external bridge exception
2026-07-17 23:50:30 +01:00
Peter Steinberger
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
0471b293bb
style: format google-meet index test
...
68c4cb31d2 (#109674 ) landed unformatted, failing check-lint repo-wide.
2026-07-17 02:14:31 -07:00
Wynne668
68c4cb31d2
fix(google-meet): report blank Twilio setup credentials as missing ( #109674 )
...
* fix(google-meet): reject blank Twilio setup credentials
* fix: centralize Google Meet voice setup values
Co-authored-by: ZengWen-DT <ceng.wen@xydigit.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-17 01:54:43 -07:00
Peter Steinberger
edd052989b
refactor(google-meet): merge host and node realtime engines behind one audio transport ( #109413 )
...
* refactor(google-meet): merge host and node realtime engines behind one audio transport
* refactor(google-meet): internalize engine helpers left test-only after realtime-node removal
2026-07-16 17:39:53 -07:00
Peter Steinberger
525db34f80
refactor: privatize diagnostics, Meet, and QA test seams ( #107869 )
...
* refactor(diagnostics-prometheus): privatize metrics test surface
* refactor(google-meet): remove Chrome test dependency exports
* refactor(qa-lab): test retained runtime boundaries
* chore(deadcode): shrink export baseline
2026-07-14 17:42:34 -07:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
473753001a
refactor(google-meet): trim internal exports ( #107284 )
2026-07-14 01:07:06 -07:00
Peter Steinberger
7c954849e6
fix(google-meet): use strong caption epochs ( #105221 )
2026-07-12 10:20:50 +01:00
Shubhankar Tripathy
43e138cc66
feat(google-meet): retain the full caption transcript per session ( #103387 ) ( #103811 )
...
* feat(google-meet): retain bounded transcripts
Co-authored-by: lonexreb <reach2shubhankar@gmail.com >
* chore: leave changelog to release tooling
* fix(google-meet): satisfy transcript CI checks
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 09:16:46 +01:00
llagy007
7ed7840c94
fix(google-meet): validate calendar Meet URLs ( #104863 )
...
* fix(google-meet): validate calendar meet urls
* fix(google-meet): share meet url normalization
* fix(google-meet): normalize Calendar Meet URLs
* fix(google-meet): keep calendar text fallback stable
* fix(google-meet): validate calendar text candidates
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-12 09:12:40 +01:00
Shubhankar Tripathy
86cd9786c8
fix(google-meet): actually leave the Meet call in the browser on leave ( #103386 ) ( #103522 )
...
* fix(google-meet): leave browser calls on session end
Co-authored-by: lonexreb <reach2shubhankar@gmail.com >
* fix(google-meet): keep agent browser control in gateway
* chore(google-meet): move release note to pr
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-12 06:50:13 +01:00
cxbAsDev
4fcee4f4fd
fix(google-meet): force English UI when reusing existing Chrome tabs ( #103719 )
...
* fix(google-meet): force English UI when reusing existing Chrome tab
* fix(google-meet): narrow reused tab before forcing English UI
* test(google-meet): assert /navigate target id is adopted in reused tabs
* fix(google-meet): preserve active call tabs and normalize English before recovery
* fix(google-meet): preserve localized active tabs
* test(google-meet): avoid shadowing path import
* test(google-meet): align mocks with English-pinned tab reuse
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-11 00:11:00 -07:00
Peter Steinberger
87618930db
fix(google-meet): align DTMF delay metadata ( #104119 )
...
* fix(google-meet): align DTMF delay metadata
Co-authored-by: llagy007 <0668001470@xydigit.com >
* chore: defer Google Meet release note
---------
Co-authored-by: llagy007 <0668001470@xydigit.com >
2026-07-10 22:43:28 -07:00
Peter Steinberger
f85d438164
fix(google-meet): keep Meet sessions on the agent that joined them ( #102331 )
...
* fix(google-meet): preserve routed agent across session reuse
* chore: defer google meet release note to release closeout
---------
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-08 18:52:04 -07:00
Tran Quang
19f7b72a74
fix(voice-call): preserve per-call agent routing ( #77763 )
...
* fix(voice-call): preserve per-call agent routing
Co-authored-by: Tran Quang <randytran8800@gmail.com >
* chore: keep release notes in PR metadata
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-08 07:06:35 +01:00
Alix-007
5fd5bf2aee
fix(google-meet): handle stdout/stderr stream errors in local audio bridge ( #101596 )
...
* fix(google-meet): handle stdout/stderr stream errors in local audio bridge
* test(google-meet): prove command bridge stream errors
2026-07-07 18:36:20 -07:00
Chen Chia Yang
5342effebc
fix(google-meet): force English Meet UI via hl=en so automation works on any locale ( #89671 )
...
Summary:
- The branch adds `forceMeetEnglishUi()` for Google Meet URLs, applies it to join/create browser opens, canonicalizes browser-created meeting links, and updates focused Google Meet tests.
- PR surface: Source +18, Tests +19. Total +37 across 6 files.
- Reproducibility: yes. Current main opens raw Meet URLs while the browser automation matches English-only lab ... R body provides after-fix CDP output showing non-English pages render expected English labels with `hl=en`.
Automerge notes:
- PR branch already contained follow-up commit before automerge: chore(tooling): add unused agent-cache-store files to knip optional a…
- PR branch already contained follow-up commit before automerge: fix(google-meet): repair non-Latin mic regex matching boundary
- PR branch already contained follow-up commit before automerge: revert(tooling): preserve current main deadcode allowlist guard
- PR branch already contained follow-up commit before automerge: revert(tooling): perfectly match origin/main deadcode list
- PR branch already contained follow-up commit before automerge: revert: match origin/main deadcode list exactly
Validation:
- ClawSweeper review passed for head 880a41b6f0 .
- Required merge gates passed before the squash merge.
Prepared head SHA: 880a41b6f0
Review: https://github.com/openclaw/openclaw/pull/89671#issuecomment-4608725456
Co-authored-by: Chen Chia Yang <unayung@gmail.com >
Approved-by: hxy91819
2026-07-03 15:00:34 +00:00
Josh Avant
448b7c75b6
Stabilize Google Meet chrome-node launch config ( #96908 )
2026-06-25 22:11:57 -05:00
Peter Steinberger
96e5812426
docs: document medium extension sources
2026-06-04 21:33:54 -04:00
Peter Steinberger
304e2c83c0
chore(lint): enable stricter oxlint rules
2026-05-31 18:59:02 +01:00
Peter Steinberger
b9fe0894a6
chore(lint): enable additional cleanup rules
2026-05-31 08:16:11 +01:00
Peter Steinberger
efc93bf282
fix: validate google meet numeric params
2026-05-28 21:11:53 -04:00
Peter Steinberger
a82dfb8e58
fix: parse google meet env numbers strictly
2026-05-28 14:25:58 -04:00
Peter Steinberger
bb46b79d3c
refactor: internalize OpenClaw agent runtime ( #85341 )
...
* refactor: extract agent core package
Introduce packages/agent-core as the OpenClaw-owned home for reusable agent loop, harness, session, prompt, and runtime dependency contracts.
* refactor: extract shared llm runtime
Move provider model registries, stream wrappers, OAuth helpers, and LLM utilities into src/llm with plugin-sdk barrels instead of depending on the old embedded runtime layout.
* refactor: remove pi runtime internals
Rename remaining Pi-shaped agent surfaces to OpenClaw agent runtime names, delete obsolete Pi docs and package graph checks, and add the third-party notice for incorporated code.
* refactor: tighten agent session runtime
Make agent-core/runtime dependencies explicit, consolidate compaction and session transcript helpers, and move model/session helpers behind OpenClaw-owned contracts.
* refactor: remove static model and pi auth paths
Drop static model catalogs and Pi auth bridges, move model/provider facts to manifest-owned runtime contracts, and harden internal embedded-agent utilities.
* refactor: remove legacy provider compat paths
* docs: remove agent parity notes
* fix: skip provider wildcard metadata parsing
* refactor: share session extension sdk loading
* refactor: inline acpx proxy error formatter
* refactor: fold edit recovery into edit tool
* fix: accept extension batch separator
* test: align startup provider plugin expectations
* fix: restore provider-scoped release discovery
* test: align static asset packaging expectations
* fix: run static provider catalogs during scoped discovery
* fix: add provider entry catalogs for scoped live discovery
* fix: load lightweight provider catalog entries
* fix: refresh provider-scoped plugin metadata
* fix: keep provider catalog entries on release live path
* fix: keep static manifest models in release live checks
* fix: harden release model discovery
* fix: reduce OpenAI live cache probe reasoning
* fix: disable OpenAI cache probe reasoning
* ci: extend OpenAI gateway live timeout
* fix: extend live gateway model budget
* fix: stabilize release validation regressions
* fix: honor provider aliases in model rows
* fix: stabilize release validation lanes
* fix: stabilize release memory qa
* ci: stabilize release validation lanes
* ci: prefer ipv4 for live docker node calls
* fix: restore shared tool-call stream wrapper
* ci: remove legacy pi test shard alias
* fix: clean up embedded agent test drift
* fix: stabilize runtime alias status
* fix: clean up embedded agent ci drift
* fix: restore release ci invariants
* fix: clean up post-rebase runtime drift
* fix: restore release ci checks
* fix: restore release ci after rebase
* fix: remove stale pi runtime path
* test: align compaction runtime expectations
* test: update plugin prerelease expectations
* fix: handle claude live tool approvals
* fix: stabilize release validation gates
* fix: finish agent runtime import
* test: finish post-rebase agent runtime mocks
* fix: keep codex compaction native
* fix: stabilize codex app-server hook tests
* test: isolate codex diagnostic active run
* test: remove codex diagnostic completion race
# Conflicts:
# extensions/codex/src/app-server/run-attempt.test.ts
* ci: fix full release manifest performance run id
* refactor: narrow llm plugin sdk boundary
* chore: drop generated google boundary stamps
* fix: repair rebase fallout
* fix: clean up rebased runtime references
* fix: decode codex jwt payloads as base64url
* fix: preserve shipped pi runtime alias
* fix: add scoped sdk virtual modules
* fix: decode llm codex oauth jwt as base64url
* fix: avoid stale vertex adc negative cache
* fix: harden tool arg decoding and codeql path
* fix: keep vertex adc negative checks live
* refactor: consolidate codex jwt and edit helpers
* fix: await codex oauth node runtime imports
* fix: preserve sdk tool and notice contracts
* fix: preserve shipped compat config boundaries
* fix: align codex oauth callback host
* fix: terminate agent-core loop streams on failure
* fix: keep codex oauth callback alive during fallback
* ci: include session tools in critical codeql scans
* fix: keep Cloudflare Anthropic provider auth header
* docs: redirect legacy pi runtime pages
* fix: honor bundled web provider compat discovery
* fix: protect session output spill files
* fix: keep legacy agent dir env blocked
* fix: contain auto-discovered skill symlinks
* fix: harden agent core sdk proxy surfaces
* fix: restore approval reaction sdk compat
* fix: keep live docker runs bounded
* fix: keep codex oauth redirect host aligned
* fix: resolve post-rebase agent runtime drift
* fix: redact anthropic oauth parse failures
* fix: preserve responses strict tool shaping
* fix: repair agent runtime rebase cleanup
* docs: redirect retired parity pages
* fix: bound auto-discovered resources to roots
* fix: repair post-rebase agent test drift
* fix: preserve bundled provider allowlist migration
* fix: preserve manifest-owned provider aliases
* fix: declare photon image dependency
* fix: keep provider headers out of proxy body
* fix: preserve shipped env aliases
* fix: refresh control ui i18n generated state
* fix: quote read fallback paths
* fix: preview edits through configured backend
* test: satisfy core test typecheck
* fix: preserve ZAI usage auth fallback
* test: repair codex diagnostic test
* fix: repair agent runtime rebase drift
* test: finish embedded runner import rename
* fix: repair agent runtime rebase integrations
* test: align compaction oauth fallback expectations
* fix: allow sdk-auth session models
* fix: update doctor tool schema import
* fix: preserve bedrock plugin region
* fix: stream harmony-like prose immediately
* ci: include session runtime in codeql shards
* fix: repair latest rebase integrations
* fix: honor explicit codex websocket transport
* fix: keep openai-compatible credentials provider-scoped
* fix: refresh sdk api baseline after rebase
* fix: route cli runtime aliases through openclaw harness
* test: rename stale harness mock expectation
* test: rename embedded agent overflow calls
* test: clean embedded auth test wording
* test: use openclaw stream types in deepinfra cache test
* fix: refresh sdk api baseline on latest main
* fix: honor bundled discovery compat allowlists
* fix: refresh sdk api baseline after latest rebase
* fix: remove stale rebase imports
* test: rename stale model catalog mock
* test: mock renamed doctor runtime modules
* fix: map canonical kimi env auth
* fix: use internal model registry in bench script
* fix: migrate deepinfra provider catalog entry
* fix: enforce builtin tool suppression
* fix: route compaction auth and proxy payloads safely
* refactor: prune unused llm registry leftovers
* test: update codex hooks session import
* test: fix model picker ci coverage
* test: align model picker auth mock types
2026-05-27 19:24:04 +01:00