Peter Steinberger
28d30e9dae
ci: stabilize release validation tests ( #108420 )
...
* test(codex): remove turn-watch timing race
* ci: pin workflow sanity shellcheck
* ci: run workflow sanity on blacksmith
* ci: serialize workflow sanity lint
* ci: bound workflow lint stalls
* ci: cap actionlint process fanout
* ci: report stalled workflow shellcheck
* ci: stabilize release validation checks
* ci: restore release workflow shellcheck
* test: preserve codex turn watch reset proof
2026-07-15 13:22:31 -07:00
Peter Steinberger
ff8a015981
test: tighten additional async polling ( #108450 )
2026-07-15 13:14:35 -07:00
Dallin Romney
8c77936e50
fix(release): propagate frozen-target guard and retry live timeouts ( #108418 )
...
* fix(release): preserve frozen package acceptance opt-in
* fix(release): retry transient live terminal timeouts
* fix(release): keep package dispatch input budget
* refactor(release): name frozen-target compatibility mode
* revert: keep frozen-target guard naming
2026-07-15 13:06:24 -07:00
Dallin Romney
77d07dc3e9
refactor(qa): migrate Telegram scenarios into QA Lab ( #108430 )
...
* refactor(qa): migrate Telegram scenarios into QA Lab
* refactor(qa): remove retired Telegram runner exports
2026-07-15 12:55:00 -07:00
xydt-tanshanshan
d201acd6e8
refactor(push-web): move web push store to shared SQLite state DB ( #103294 )
...
* refactor(push-web): move state to shared SQLite
Co-authored-by: hailory <hailory@xydigit.com >
* fix(push-web): harden legacy migration retries
* fix(push-web): format migration lock errors
* fix(push-web): gate runtime during legacy migration
* fix(push-web): keep store internals private
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: hailory <hailory@xydigit.com >
2026-07-15 12:54:22 -07:00
Peter Steinberger
d8b3e1c093
fix(release): compare evidence archive contents
2026-07-15 20:38:57 +01:00
Peter Steinberger
23d2f664fb
fix(release): retain npm provenance evidence
2026-07-15 20:02:53 +01:00
Peter Steinberger
f4f5bb15d4
fix(release): verify resumed npm publisher identity
2026-07-15 19:29:37 +01:00
Peter Steinberger
506bb14d22
test: tighten more async polling ( #108385 )
2026-07-15 10:49:43 -07:00
Peter Steinberger
a99b5a686b
fix(ci): authenticate live Codex Docker release probe ( #108400 )
...
* test(codex): route live Docker probe through OpenAI auth
* test(docker): assert bounded Codex error handling
2026-07-15 10:32:15 -07:00
Dallin Romney
ee51b35616
fix(release): support frozen Codex validation ( #108343 )
...
* fix(release): support frozen Codex validation
* fix(release): support frozen Codex validation
* fix(release): support frozen Codex validation
* fix(release): support frozen Codex validation
2026-07-15 10:05:02 -07:00
Peter Steinberger
0f7fbfa003
fix(release): bind bootstrap publish workflow identity
2026-07-15 17:41:54 +01:00
Peter Steinberger
9497450511
refactor: eliminate dead-export baseline ( #108376 )
...
Burn the grandfathered unused-export baseline to zero and enforce a hard-zero Knip gate.
2026-07-15 17:05:07 +01:00
Peter Steinberger
f41c143345
refactor(state): move skill upload staging to SQLite ( #108346 )
...
* refactor(state): move skill upload staging to sqlite
* test(skills): make archive mode assertion portable
* fix(skills): fence upload finalization by lease owner
* fix(skills): handle nullable lease expiry
* fix(skills): bound upload install leases
2026-07-15 08:40:46 -07:00
Peter Steinberger
688a129ed0
fix: keep frozen Docker planning dependency-free ( #108340 )
...
* fix(release): keep frozen Docker planning dependency-free
* fix(release): gate frozen scenario command execution
2026-07-15 08:15:13 -07:00
jincheng-xydt
b2e42e3645
fix(update): preserve pnpm and Bun global installs ( #107802 )
...
* fix(update): preserve pnpm and bun global installs
* fix(update): anchor pnpm updates to invoking install
* fix(update): recover skipped pnpm lifecycle
* fix(update): fail closed on ambiguous pnpm ownership
* fix(update): tolerate pnpm probe warnings
* fix(update): bind pnpm installs to project owners
* fix(update): isolate pnpm mutations from caller pins
* docs(changelog): credit pnpm 11 report
Co-authored-by: jincheng-xydt <xu.jincheng@xydigit.com >
* chore(changelog): defer release note ownership
* fix(update): make package-root fallback explicit
* test(update): split pnpm scenario coverage
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 08:03:35 -07:00
Peter Steinberger
3d76a4af92
refactor(deadcode): privatize runtime test seams ( #108338 )
...
* refactor(sessions): privatize runtime test seams
* refactor(commitments): privatize extraction test seams
* refactor(flows): privatize doctor health seams
* refactor(tasks): privatize registry test seams
* build(commitments): bundle Docker test support
* chore(deadcode): shrink runtime export baseline
2026-07-15 07:27:10 -07:00
Peter Steinberger
a748634aa9
test: isolate stateful unit-fast tests ( #108334 )
2026-07-15 07:14:35 -07:00
Peter Steinberger
4c667aac88
fix(release): harden frozen target validation ( #108296 )
...
* fix(release): harden frozen scenario planning
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): omit unsupported scenario-only lanes
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): fail closed on malformed target scenarios
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): report unsupported frozen lanes
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): defer frozen survivor inspection
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): report partial survivor omissions
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(ci): fetch shard fallback from workflow commit
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(release): gate frozen scenario omissions
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* test(release): auto-clean frozen target temp dirs
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
* fix(ci): satisfy frozen validation workflow lint
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
---------
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
2026-07-15 06:31:07 -07:00
Peter Steinberger
9cdc0c3495
test: tighten async polling intervals ( #108301 )
2026-07-15 06:14:54 -07:00
Peter Steinberger
e38cd62e0d
refactor(state): move managed image records to SQLite ( #108290 )
...
* refactor(state): move managed image records to sqlite
* refactor(state): narrow managed image store exports
* fix(state): preserve managed image media roots
* test(state): track managed image temp directories
2026-07-15 06:14:10 -07:00
Dallin Romney
ed05dae2d8
fix(release): support frozen Matrix QA profiles ( #108279 )
2026-07-15 05:01:29 -07:00
Peter Steinberger
44a0c093cf
fix(docs): expose generated taxonomy links
2026-07-15 07:28:58 -04:00
Dallin Romney
043e4d1ec4
fix(release): validate frozen targets with current workflows ( #108189 )
...
* fix(release): support frozen validation targets
* fix(release): filter frozen-target upgrade scenarios
2026-07-15 04:28:17 -07:00
Peter Steinberger
d223409c88
fix(ci): run all compact test bins serially ( #108266 )
2026-07-15 04:16:53 -07:00
Peter Steinberger
0393189243
chore(plugins): gate deprecation hygiene in CI and purge internal deprecated usage ( #108261 )
...
* chore(plugins): gate deprecation hygiene in CI and purge internal deprecated usage
* fix(agents): migrate auth-profiles oauth import to OAuthProviderId
* fix(whatsapp): use durability param in delivery-recovery test
* chore(scripts): declare shouldRunDeprecationHygieneChecks in check-changed types
* test(plugins): update runtime-api guard for ssrf policy rename
2026-07-15 04:15:23 -07:00
Peter Steinberger
ddc9ec3f36
feat(discord): opt-in Discord Activities widget support ( #107442 )
...
Adds a Discord Activities integration so an agent can show a self-contained
HTML widget to Discord users, opened as a sandboxed Activity inside the client.
Off by default: routes, the discord_widget tool, and the launch handler register
only when channels.discord.activities is configured. OAuth identifies the user
and gates on the account allowlist; widget lookup is capability- or
instance-validated; token exchange is rate-limited; widget HTML runs in a
no-network sandboxed iframe.
2026-07-15 04:07:46 -07:00
morluto
1a34950d9c
fix(commitments): keep heartbeats responsive with large queues ( #105780 )
...
* fix(commitments): migrate store to sqlite
Replace steady-state JSON persistence with typed shared-state rows and a doctor-only verified import for shipped legacy data.
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
* fix(commitments): satisfy migration gates
* fix(commitments): type sqlite counts defensively
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 03:58:03 -07:00
Peter Steinberger
c490117a9f
fix(pr): harden coordinator hosted gates ( #108153 )
...
* fix(pr): route hosted gate reads through cache
* test(control-ui): stabilize process readiness
* fix(ci): stabilize startup memory sampling
* fix(gateway): route OpenClaw approval listing
* fix(state): reuse schema repair transaction
* test(agents): assert host authority scope
* chore(plugin-sdk): refresh API baseline
* test(agents): assert delegate tool fixture
* test(sessions): stabilize concurrency worker startup
2026-07-15 03:45:37 -07:00
Peter Steinberger
54f70c5d8c
fix(release): unblock plugin bootstrap recovery ( #108243 )
2026-07-15 03:34:08 -07:00
Peter Steinberger
99c43b1647
fix(ci): run 4vcpu compact bins serially to stop spawn-starvation flakes ( #108239 )
2026-07-15 03:32:53 -07:00
Peter Steinberger
56eda48f20
test: speed up crabbox wrapper timing tests ( #108207 )
2026-07-15 03:31:32 -07:00
Peter Steinberger
f7718d9a91
test(release): cover protected plugin publish refs ( #108227 )
2026-07-15 03:14:59 -07:00
Peter Steinberger
9c61e29378
fix(ci): align plugin release workflow proof ( #108223 )
2026-07-15 02:59:48 -07:00
Peter Steinberger
9c8a006d0c
perf(ci): gate QA smoke by smoke-visible changes and isolate the prompt snapshot lane ( #108202 )
...
* perf(ci): diff-gate QA smoke by CLI import graph and isolate prompt snapshots lane
* fix(ci): run prompt snapshot lane unconditionally
* fix(ci): treat QA lane orchestration files as QA-impacting
2026-07-15 02:51:19 -07:00
Peter Steinberger
dfa246e6fd
fix(release): complete protected publish tooling
2026-07-15 10:43:00 +01:00
Peter Steinberger
75db23f3fc
fix: prevent stale rescue approvals from executing ( #108147 )
...
* fix(system-agent): persist rescue approvals in sqlite
Co-authored-by: Yung-Chen Tang <46495124+yungchentang@users.noreply.github.com >
* fix(system-agent): narrow rescue expiry clock
* test(system-agent): isolate rescue docker inference
* test(system-agent): align rescue docker doctor contract
* test(system-agent): accept canonical model shape
* fix(system-agent): refuse remote doctor repairs
* fix(infra): break rescue migration import cycle
* test(system-agent): lock rescue publish ordering
* test(system-agent): align rescue harness assertions
---------
Co-authored-by: Yung-Chen Tang <46495124+yungchentang@users.noreply.github.com >
2026-07-15 01:53:00 -07:00
Peter Steinberger
bb1a7e5069
fix(release): pin publish workflows to protected tags
2026-07-15 09:52:01 +01:00
Peter Steinberger
9c0adbf93a
fix(ci): run spawn-timing tooling suites at plan concurrency 1 ( #108171 )
2026-07-15 01:51:52 -07:00
Dallin Romney
6c4e76ea8b
ci(qa): reuse Matrix live workflow for releases ( #103604 )
...
* ci(qa): reuse Matrix live workflow for releases
* docs(testing): restore Tailscale isolation flag
* fix(ci): make Matrix artifact names ref-safe
* test(ci): type Matrix workflow profiles
* style(testing): format Tailscale isolation guidance
2026-07-15 01:48:59 -07:00
Dallin Romney
e9c8cad99e
fix(ci): support frozen Codex binding sidecars ( #108158 )
2026-07-15 01:38:30 -07:00
Dallin Romney
ad34552473
refactor(qa): migrate Matrix scenarios into QA Lab ( #103589 )
...
* refactor(qa): migrate Matrix scenarios into QA Lab
* fix(qa): build Matrix boundary declarations
* fix(qa): preserve Matrix preview boundaries
* fix(qa): preserve Matrix hot reload semantics
* fix(qa): harden Matrix destructive scenario failures
* fix(qa): harden Matrix scenario isolation
* fix(qa): close Matrix negative scenario blind spots
* fix(qa): isolate Matrix substrate state
* fix(qa): harden Matrix transport substrate
* fix(qa): preserve Matrix profile and event parity
* fix(qa): preserve explicit scenario models
* fix(qa): align Matrix scenario coverage taxonomy
* fix(qa): format Matrix allowlist cleanup
* fix(qa): satisfy migrated Matrix CI contracts
* fix(qa): reconcile Matrix migration with current main
* fix(qa): break scenario flow import cycle
* fix(qa): reconcile Matrix max-lines ownership
* fix(qa): address Matrix review boundaries
* fix(qa): remove stale Matrix lint suppression
* fix(qa): adopt split Matrix E2EE flows
* fix(qa): export Matrix scenario record guard
* fix(qa): align Matrix migration with privatized helpers
* refactor(qa): finish Matrix QA Lab ownership
* fix(qa): preserve Matrix suite defaults
* fix(qa): reconcile Matrix cleanup with current main
* test(qa): follow canonical Matrix profile size
* fix(qa): guard stale Matrix QA package output
* docs(qa): redirect retired Matrix QA pages
* refactor(qa): finish Matrix runner rename
* test(qa): assert Matrix defaults through profile resolver
* docs: refresh QA cleanup map
* fix(qa): privatize Matrix storage discovery
2026-07-15 01:22:20 -07:00
Peter Steinberger
57761ebe8c
perf(ci): balance node test shards and gate heavy CI lanes by changed scope ( #108091 )
2026-07-15 01:16:47 -07:00
Peter Steinberger
ac95af2c41
test: reuse release validation repo fixture ( #108129 )
2026-07-15 01:13:44 -07:00
Peter Steinberger
85963a2d58
fix(pr): preserve signed merge commits ( #108112 )
2026-07-15 00:41:18 -07:00
Peter Steinberger
7856a99aa5
test: speed Telegram archive fixture ( #108108 )
2026-07-15 00:34:38 -07:00
Peter Steinberger
666a907316
fix: preserve updates across pnpm and Bun lifecycle checks ( #108090 )
...
* fix(update): validate lifecycle runtimes
* fix(update): verify Bun lifecycle path
* fix(update): reject drive-relative Node paths
* test(update): align lifecycle argv expectations
2026-07-15 00:26:41 -07:00
Peter Steinberger
732fb5f9e6
fix(release): bind Telegram proof artifact identity
2026-07-15 08:02:17 +01:00
Yuval Dinodia
864bb18738
fix(cron): cap trigger script tool access ( #104430 )
...
* fix(cron): cap trigger script tool access
Persist the creator tool cap for any cron job with a trigger script and pass it to the headless trigger runtime. System event and command payloads retain the cap across cron updates.
* fix(cron): persist trigger tool cap for systemEvent and command payloads
The creator tool cap is stamped on systemEvent and command payloads whenever a
cron job carries a trigger script, but the SQLite codec dropped
payload.toolsAllow for those kinds. After a gateway restart the reloaded job
carried no cap and the trigger regained the full coding surface. Persist and
restore toolsAllow through the existing payload_tools_allow_json column for all
payload kinds, and add restart-aware round-trip coverage.
* ci: re-trigger workflows (transient self-hosted runner flake)
* fix(cron): use expectDefined for store test job access
* refactor(cron): hoist cron tool types, payload merge, and wire types into companion modules
Keeps the oversized cron files at or below their baseline line counts for the
changed-file TypeScript LOC ratchet on main. No behavior change.
* fix(cron): retain freshly stamped cap markers
* test(ci): align compact shard count
* fix(cron): make trigger cap updates atomic
* fix(cron): preserve explicit cap provenance
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
Co-authored-by: Peter Steinberger <peter@steipete.me >
2026-07-15 00:01:26 -07:00
Peter Steinberger
d139c0e854
test: speed PR operation lock fixtures ( #108078 )
2026-07-14 23:58:13 -07:00