Vincent Koc
25c375e47f
refactor: reuse canonical record guards ( #115810 )
...
* docs(agents): standardize canonical record guards
* refactor(model-catalog): use canonical record guard
* refactor(scripts): use canonical record guard
* refactor(ui): use canonical record guard
* refactor(codex): use canonical record guard
* refactor(agents): use canonical record guard
* refactor(sessions): use canonical record guard
* refactor(doctor): use canonical record guard
* refactor(infra): use canonical record guard
2026-07-29 11:43:36 +02:00
Peter Steinberger
4232126bba
chore: update dependencies across workspace ( #115677 )
...
* chore(deps): update dependencies
* fix(deps): restore CI compatibility
2026-07-29 05:16:42 -04:00
Vincent Koc
9daa60961c
fix(agents): serialize sandbox provisioning ( #115645 )
...
* fix(agents): serialize sandbox provisioning
* test(docker): add sandbox browser sidecar e2e
* fix(ci): register sandbox browser e2e entrypoint
* fix(ci): restore code mode matrix checks
2026-07-29 14:50:15 +08:00
Peter Steinberger
388bcc43a1
fix: make Code Mode reliable across gateway and provider lifecycles ( #115379 )
...
* fix(code-mode): dispose suspended runs and propagate cancellation
* fix(code-mode): preserve request-visible provider tools
* test(code-mode): require real packaged gateway execution
* fix(gateway): load code mode cleanup only during shutdown
2026-07-28 15:21:54 -04:00
Vincent Koc
13b8f0765c
Merge remote-tracking branch 'origin/main' into test/parallels-main-3224005-host
...
* origin/main: (72 commits)
fix: macOS-only Parallels smoke harness regression (#75293 )
fix(ios): use configured speech language for system voice (#113372 )
refactor: centralize isolated agent test ownership (#115340 )
test(ui): stabilize browser route readiness (#115320 )
fix(cron): clear automation after failed scheduler shutdown (#115316 )
fix: keep isolated gateway workspaces and skills inside state dir (#114487 )
docs: document local TTS on macOS, Linux, and Windows (#110230 )
fix(tasks): clone only the requested task page (#114277 )
fix(agents): prevent Code Mode resume loss and unbounded preparation (#115314 )
fix(process): preserve the first process cancellation reason (#115317 )
fix(nostr): report unavailable ingress when queue open fails (#115313 )
fix: prevent Slack and Feishu ingress startup leaks (#115295 )
fix(slack): avoid unsafe emphasis boundaries (#111575 )
fix: prevent changed checks from expanding into full lint (#115322 )
fix(codex): stabilize prompts and expose real cache regressions (#115238 )
refactor(ui): derive page route specs from the route table (#115214 )
fix(compaction): plan cut points in trigger units (#111886 ) (#115309 )
fix: prevent cron and gateway stress-run timeouts (#115241 )
fix(ci): validate frozen Matrix QA targets (#115298 )
test(macos): block real process fallthrough (#113337 )
...
# Conflicts:
# CHANGELOG.md
2026-07-29 02:22:47 +08:00
clawsweeper[bot]
a0e4ac412c
fix: macOS-only Parallels smoke harness regression ( #75293 )
...
* fix: macOS-only Parallels smoke harness regression
* fix(parallels): keep macOS update smoke script owner-readable
* fix: macOS-only Parallels smoke harness regression
* test(parallels): exercise macOS guest script identity
Co-authored-by: clawsweeper[bot] <274271284+clawsweeper[bot]@users.noreply.github.com>
---------
Co-authored-by: openclaw-clawsweeper[bot] <280122609+openclaw-clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: clawsweeper <274271284+clawsweeper[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-28 14:12:57 -04:00
Vincent Koc
caa5ae32e9
fix(e2e): preserve Windows installer reboot results
2026-07-29 01:12:42 +08:00
Vincent Koc
6e275bf0b4
fix(e2e): force Windows smoke gateway stop
2026-07-29 00:27:25 +08:00
Vincent Koc
c56091e0a0
fix(e2e): harden Parallels guest preparation
2026-07-29 00:24:03 +08:00
Peter Steinberger
3a39dbcdfd
fix(agents): harden code mode module isolation ( #114742 )
2026-07-27 16:38:44 -04:00
Peter Steinberger
9c7d83117d
fix: browser CDP Docker lane rejects its fixture ( #114691 )
...
* test(e2e): drop retired browser profile color
* test(ci): remove duplicate Codex prewarm routing
2026-07-27 16:00:36 -04:00
Peter Steinberger
1695854877
fix(qa): isolate Mantis candidate execution ( #114465 )
...
* fix(qa): allow restricted Mantis worktree traversal
* fix(qa): pin Mantis harness checkout revision
* fix(qa): isolate Mantis candidate execution
* fix(qa): harden Mantis teardown
2026-07-27 12:11:34 -04:00
Peter Steinberger
45bad50e26
fix(qa): harden Mantis Telegram proof harness ( #114429 )
...
* fix(qa): harden Mantis Telegram proof harness
* fix(qa): require explicit Mantis dispatch
2026-07-27 04:33:06 -04:00
Peter Steinberger
669db2968f
refactor(agents): retire TOOLS.md into an AGENTS.md section with a doctor migration ( #113966 )
...
* fix(agents): stop retired attestation hashes from faking a vanished workspace
* feat(agents): migrate TOOLS.md content into the AGENTS.md tools section
* refactor(agents): drop TOOLS.md from the workspace bootstrap set
* refactor(policy): read tool policy entries from AGENTS.md
* docs: describe local tool notes as an AGENTS.md section
* test(codex): drop TOOLS.md developer-instruction coverage with the removed path
* test(agents): cover the TOOLS.md doctor migration behaviors
* refactor(doctor): satisfy TOOLS.md migration lint
* test(agents): split workspace attestation survival coverage
* refactor(codex): simplify workspace context basenames
* refactor(doctor): keep TOOLS.md migration helpers module-local
* docs: regenerate docs map
* fix(doctor): keep migration claims fresh
* fix(doctor): preserve nested tool notes
* refactor(doctor): split tools migration helpers
* refactor(doctor): limit TOOLS.md migration to workspace root
* style(doctor): keep migration under line limit
* fix(doctor): recover interrupted AGENTS publish
* docs(hooks): describe root-only TOOLS.md migration accurately
* fix(doctor): preserve migrated tool guidance visibility
* test(agents): regenerate prompt snapshots after rebase
* fix(policy): block evaluation while TOOLS.md is unmigrated
* fix(doctor): check merged bootstrap budget per agent
* fix(doctor): keep budget helper internal
* refactor(doctor): keep migration budget helpers to their consumers
2026-07-27 03:56:30 -04:00
Peter Steinberger
60aac74672
fix(openai): harden live and packaged onboarding ( #114288 )
2026-07-27 00:50:49 -04:00
Peter Steinberger
f9721b9809
fix(e2e): use the newest Windows smoke snapshot ( #114157 )
...
* fix(e2e): select newest Windows smoke snapshot
* test(e2e): preserve undated snapshot ordering
2026-07-26 15:34:04 -04:00
Peter Steinberger
96aa6be670
fix(e2e): harden Windows prerequisite downloads ( #114153 )
2026-07-26 15:01:59 -04:00
Peter Steinberger
c16c0dbef4
fix(release): allow macOS snapshot selection in candidate smoke ( #114144 )
2026-07-26 14:08:31 -04:00
Peter Steinberger
19a98c873c
refactor(auth): finish SQLite-only auth profile cutover ( #114033 )
...
* refactor(auth): finish SQLite-only profile cutover
* test(auth): isolate SQLite shadow fixtures
* test(auth): satisfy OAuth refresh lint
* test(auth): infer legacy sidecar fixtures
* fix(auth): fail closed on unreadable stores
* fix(auth): recheck migration readiness on lookup
* fix(auth): preserve compatibility owner checks
* fix(auth): align SQLite cutover proof
* style(qa): format SQLite auth helpers
* fix(auth): recover interrupted SQLite migrations
* fix(auth): bind materialized SQLite refs
* style(auth): clarify receipt hash value
* fix(auth): preserve state-only OAuth routing
* fix(auth): snapshot receipted migration sources
* fix(auth): fail closed across recovery races
* fix(auth): close legacy recovery gaps
* fix(auth): serialize SQLite refresh recovery
2026-07-26 07:27:54 -04:00
Peter Steinberger
f6131a4fbf
build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks ( #114006 )
...
* build(deps): remove npm shrinkwrap; mirror pnpm lock into transient package locks
npm 12 removed shrinkwrap (command + tarball/root loading). Delete all 82
committed npm-shrinkwrap.json files and stop publishing lockfiles; keep
pnpm-lock.yaml as the single reviewed dependency boundary. The generator
becomes scripts/generate-npm-package-lock.mjs and feeds plugin bundling via
a transient package-lock.json + npm ci (works on npm 11 and 12). Tarball
validation treats the published 2026.7.2 beta train as a shrinkwrap
transition; self-update npm detection now uses install topology instead of
the shipped shrinkwrap.
* fix(deps): repair lint, deadcode, and test-type lanes for the npm 12 migration
- sort integrity comparisons with an explicit comparator (oxlint)
- keep resolveBunGlobalNodeModules module-local (knip unused-export gate)
- model npm pack --json as npm<=11 array / npm 12 name-keyed object
- default calver destructuring in the tarball test fixture
2026-07-26 01:29:55 -04:00
Peter Steinberger
6e2cde0fba
fix(e2e): assert canonical agent entries after delete ( #113827 )
2026-07-25 12:55:46 -07:00
Peter Steinberger
f1538c6d6c
fix(release): validate complete package sets in candidate smoke ( #113600 )
...
* fix(release): pass only root dependencies to candidate smoke
* fix(release): stage plugin candidates for Parallels
* fix(release): bind plugin preflight package identity
* fix(test): stream upstream npm tarballs
* fix(test): retry post-update gateway startup
* fix(test): install fresh candidates through registry
* fix(test): route fresh candidates through registry
* test(release): update Parallels source contracts
* fix(test): split host and guest registry URLs
2026-07-25 07:59:06 -07:00
Peter Steinberger
eddd5224ad
fix(e2e): expose redacted packaged plugin failures ( #113635 )
...
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 04:48:08 -07:00
Peter Steinberger
57e2f220de
fix(ci): restore packaged OpenWebUI and update validation ( #113614 )
...
Co-authored-by: Peter Steinberger <steipete@golden-gate.local >
2026-07-25 04:14:41 -07:00
Peter Steinberger
5bea268128
feat(anthropic): complete Claude Opus 5 rollout ( #113392 )
...
* feat(models): add Claude Opus 5 support
* test(models): align Opus 5 setup fixtures
* test(models): update ambient Opus 5 detection
* fix(models): reconcile Opus 5 support with main
2026-07-24 14:55:36 -07:00
joshavant
bd559a98ed
fix(cron): migrate scheduled authority provenance
2026-07-24 01:24:03 -05:00
Peter Steinberger
3b7b2a2a1f
chore: update dependencies and migrate major contracts ( #112963 )
...
* build(deps): complete latest dependency migrations
* fix(deps): satisfy updated dependency types
* fix(deps): hold incompatible build tooling
* fix(deps): preserve portable tooling contracts
* build(deps): allow reviewed fresh transitive releases
* fix(deps): repair major upgrade validation
* build(deps): regenerate current dependency graph
* fix(logging): keep tslog adapter type private
* fix(agents): narrow grep subprocess handle
* fix(codex): prefer pinned managed binary
* fix(codex): fence managed native provenance
* build(deps): align codex ACP with managed harness
* fix(slack): use socket-mode Undici runtime
* fix(slack): detect cross-runtime responses
* fix(slack): bridge package-owned fetch types
* fix(deps): retain tslog v4 JSON contract
* build(plugin-sdk): refresh logging API manifest
2026-07-23 21:21:01 -07:00
Peter Steinberger
c5a2220d37
refactor(sessions): restructure per-agent SQLite schema ( #113071 )
...
* refactor(sessions): restructure agent session schema
* fix(sessions): preserve sharing across node ownership
* refactor: split session node artifact helpers
* test: track session cleanup temp directories
* fix(sessions): preserve fresher alias artifacts
* fix(sessions): reject placeholder membership writes
* test(sessions): align schema ownership fixtures
* fix(sessions): align incognito and heartbeat ownership
* test(sessions): preserve retained window rehoming coverage
2026-07-23 10:21:05 -07:00
Peter Steinberger
acd92f6a3d
chore(deps): refresh repository dependencies ( #112453 )
...
* build(deps): update QA broker dependency
* build(deps): refresh repository dependencies
* build(deps): reconcile rebased shrinkwraps
* test(plugins): remove stale loader test state
* test(deps): stabilize updated dependency coverage
* fix(swift): use caller-isolated TaskLocal overload
* build(deps): regenerate rebased shrinkwraps
* test(msteams): preserve DNS validation in fetch helper
* fix(deps): avoid vulnerable optional image stack
* test(deps): validate generated LRU override
* refactor(ui): extract chat resizable divider
* test(ui): update divider ownership path
* fix(matrix): retain restart-compatible SDK
* style(cron): format update test
2026-07-23 16:17:13 +00:00
Peter Steinberger
525a7f4c96
ci(release): restore full validation after config migrations ( #112740 )
...
* fix(browser): preserve scoped CDP authority policy
* test(release): migrate canonical config fixtures
* ci(release): repair acceptance harness drift
* ci(release): extend Anthropic setup budget
* test(release): align remaining CI contracts
* test(release): align Docker and QA contract tests
* docs(release): preserve validation evidence inputs
* test(plugins): align unprepared metadata reads
* ci(release): separate QA live suite filters
* test(release): bind cron MCP cleanup device
2026-07-23 08:46:55 -04:00
Peter Steinberger
a2be4efb63
refactor(transcripts): store meeting captures in SQLite ( #112910 )
...
* refactor(transcripts): move meeting transcripts to sqlite
* perf(transcripts): batch legacy utterance staging
* fix(transcripts): report recovery moves on migration failure
* fix(transcripts): refresh archive membership after recovery
* fix(transcripts): omit failed summary export paths
* fix(transcripts): type restore metadata tuple
* fix(transcripts): align migration contract gates
* fix(transcripts): verify case-aliased export ownership
* fix(transcripts): allowlist doctor verifier sqlite query
* fix(transcripts): preflight partial artifact recovery
* fix(transcripts): stabilize exports and legacy path checks
* fix(transcripts): resolve case-renamed doctor ownership
* fix(transcripts): harden canonical export recovery
* fix(transcripts): preserve pending import boundaries
* refactor(transcripts): split migration insert transaction
* perf(transcripts): query selected summary existence
2026-07-23 07:18:55 -04:00
Peter Steinberger
ec8f957f2e
fix(release): test candidate external channel plugins ( #112899 )
2026-07-23 00:53:23 -04:00
Peter Steinberger
b3e2af7eb2
refactor(scripts): remove orphaned secret provider proof ( #112875 )
2026-07-23 00:29:44 -04:00
Dallin Romney
74cc99f2d1
fix(release): publish extended-stable Docker channels safely ( #112494 )
...
* fix(release): isolate extended-stable Docker aliases
* fix(release): harden Docker channel promotion
* docs(release): pin Docker policy into tagged tree
* refactor(release): isolate Docker channel promotion
* fix(release): queue Docker publications
* fix(release): harden docker channel promotion
* docs(release): tighten extended-stable guidance
* fix(release): promote Docker aliases after verification
* chore(release): format maintainer instructions
* refactor(release): separate release version policy
* docs(release): clarify extended-stable gateway scope
* fix(release): harden Docker channel promotion
2026-07-23 10:03:11 +09:00
Peter Steinberger
62c148d7d0
refactor(e2e): remove stale proof scripts ( #112776 )
2026-07-22 15:31:36 -07:00
Josh Avant
3acc168c4f
fix(cron): persist explicit scheduled tool authority ( #112483 )
...
* fix(cron): persist explicit scheduled tool authority
* test(cron): cover explicit scheduled authority
* fix(cron): preserve legacy authority on routine edits
* test(cron): add explicit authority e2e matrix
* test(cron): harden explicit authority live proof
2026-07-22 02:28:49 -05:00
Peter Steinberger
edecdbd05e
refactor(config): config-surface reduction tranche 3 — product consolidations (review request) ( #111527 )
...
* refactor(config): consolidate media model lists
* refactor(config): unify memory configuration
* refactor(config): consolidate TTS ownership
* refactor(config): move typing policy to agents
* refactor(config): retire product-level config surfaces
* refactor(config): share scoped tool policy type
* chore(config): refresh generated baselines
* fix(config): honor agent typing overrides
* fix(config): migrate sibling config consumers
* refactor(infra): keep base64url decoder private
* fix(config): strip invalid legacy TTS values
* chore(config): refresh rebased baseline hash
* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move
* refactor(config): polish final layout names
* refactor(config): freeze retired tuning defaults
* feat(config): add fast mode default symmetry
* refactor(config): key agent entries by id
* docs(config): update final layout reference
* test(config): cover final layout migrations
* chore(config): refresh final layout baselines
* fix(config): align final layout runtime readers
* fix(config): align remaining readers
* fix(config): stabilize final layout migrations
* fix(config): finalize config projection proof
* fix(config): address final layout review
* docs(release): preserve historical config names
* fix(config): complete keyed agent migration
* fix(config): close final migration gaps
* fix(config): finish full-branch review
* fix(config): complete runtime secret detection
* fix(config): close final review findings
* fix(config): finish canonical docs and heartbeat migration
* fix(config): integrate latest main after rebase
* refactor(env): isolate test-only controls
* refactor(env): isolate build and development controls
* refactor(env): collapse process identity indirection
* refactor(env): remove duplicate config and temp aliases
* docs(env): define the operator-facing allowlist
* ci(env): ratchet production variable count
* fix(env): remove stale provider helper import
* fix(env): make ratchet sorting explicit
* test(env): keep test seam in dead-code audit
* test(env): cover ratchet growth and boundary; document surface budgets
* docs(config): document tier-eval consolidations
* docs(config): clarify speech preference ownership
* test(memory): align retired tuning fixtures
* refactor(memory): freeze engine heuristics
* refactor(config): apply tier-eval tranche
* refactor(tts): move persona shaping to providers
* refactor(compaction): move prompt policy to providers
* test(config): align hookified prompt fixtures
* chore(deadcode): classify test-only exports
* chore(github): remove unused spawn helper
* chore(deadcode): classify queue diagnostics
* chore(deadcode): remove unused lane snapshot export
* chore(plugin-sdk): ratchet consolidated surface
* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
wangmiao0668000666
998f0ed27d
fix(e2e): keep phase log tails UTF-8 safe ( #109923 )
...
* fix(e2e): keep phase log tails UTF-8 safe
The phase runner keeps a bounded in-memory log tail per phase and writes it
to stderr when a phase fails. The byte-based cut can land inside a multi-byte
UTF-8 character, and decoding from that offset emits U+FFFD replacement
characters at the start of the diagnostics tail. Reuse the decodeUtf8Tail
helper from scripts/e2e/lib/text-file-utils.mjs (#109669 ) so the retained
window starts on a character boundary.
Co-Authored-By: Claude <noreply@anthropic.com >
* fix(e2e): declare decodeUtf8Tail in text-file-utils types
phase-runner.ts imports decodeUtf8Tail from text-file-utils.mjs; the
adjacent declaration file must export it or check-test-types fails with
TS2305.
Co-Authored-By: Claude <noreply@anthropic.com >
* refactor(e2e): reuse tailText wrapper for phase log tails
Co-Authored-By: Claude <noreply@anthropic.com >
* test(e2e): focus phase tail regression
Co-authored-by: wangmiao0668000666 <wang.miao86@xydigit.com >
---------
Co-authored-by: Claude <noreply@anthropic.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-20 19:45:35 -07:00
Peter Steinberger
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
7aedca21b2
test(release): align built-in timing proofs ( #111483 )
2026-07-19 09:42:16 -07:00
Peter Steinberger
783a5d21cf
refactor(config): purge numeric tuning knobs behind built-in defaults ( #111382 )
2026-07-19 07:35:45 -07:00
Jason (Json)
baa8b9b24f
test(telegram): add MCP App Funnel proof fixture ( #111238 )
2026-07-19 00:14:36 -06:00
Peter Steinberger
98410d986e
refactor(state): move device identity into canonical SQLite state ( #110392 )
...
* refactor: store device identities in SQLite
* style: satisfy Swift identity lint limits
* test: harden device identity migration fixtures
* fix: harden SQLite device identity recovery
* chore: remove stale identity helper
* refactor: isolate device identity repair
* chore: remove stale migration import
* test: validate migrated identity key types
* fix: harden device identity repair
* style: format device identity assertion
* fix: derive repaired identity key from PEM
* style: remove redundant PEM conversions
* fix: align native identity store with schema v4
* fix(state): satisfy SQLite identity CI gates
* fix(state): coordinate native identity migration
* test(doctor): include native identity claim path
* fix(infra): preserve coordinator release error
* fix(state): clear identity validation gates
* refactor(apple): remove identity test-only APIs
* refactor(apple): remove dead identity error type
* test(apple): use canonical identity test seam
* test(macos): isolate gateway readiness identity
2026-07-18 17:43:56 +01:00
Peter Steinberger
3d1b771035
fix(ci): catch script declaration drift before merge ( #110248 )
...
* fix(ci): verify script declaration contracts
* fix(ci): harden declaration export analysis
* fix(ci): cover opaque script module exports
* test(ci): cover cyclic script declaration barrels
2026-07-18 02:54:26 +01:00
Dallin Romney
a9dc393f7e
test(qa): prove Codex auth product migration ( #109291 )
2026-07-17 16:10:23 -07:00
Peter Steinberger
84f5d6d978
fix(release): persist streamed Telegram result metadata
2026-07-17 22:11:23 +01:00
Peter Steinberger
b7dd330bd3
test(release): avoid secret-like fixture literal
2026-07-17 21:55:27 +01:00
Peter Steinberger
e7801deb57
fix(release): fail fast on flaky beta QA
2026-07-17 21:55:27 +01:00
Peter Steinberger
20866a3fde
test(release): clarify synthetic QA credentials
2026-07-17 21:55:27 +01:00
Peter Steinberger
596ff439c8
test(release): preserve npm onboarding diagnostics
2026-07-17 21:55:27 +01:00