Alix-007
3009338a9a
fix(e2e): stop multi-node health checks hanging past deadline ( #108065 )
...
* fix(e2e): bound multi-node health probes
* test(e2e): track multi-node timeout temp files
2026-07-15 22:47:43 -07:00
Peter Steinberger
da59d6ade9
feat(onboarding): detect local inference providers ( #108605 )
...
* feat(onboarding): detect local inference providers
* fix(onboarding): satisfy inference choice lint
* chore(i18n): refresh onboarding locales
* chore: leave changelog to release automation
* chore(plugin-sdk): refresh API baseline
* fix(onboarding): preserve source config during local activation
2026-07-15 22:46:16 -07:00
Peter Steinberger
a6125b7868
perf(ci): split QA smoke into four profile parts and time tsdown invocations ( #108638 )
2026-07-15 22:41:02 -07:00
Peter Steinberger
bae9752c5a
refactor(deadcode): enforce repository hard zero ( #108641 )
2026-07-15 22:40:00 -07:00
Peter Steinberger
e7cba0e4d5
fix: provider dead exports no longer block changed checks ( #108592 )
...
* fix(ci): clean provider dead exports
* test(extensions): satisfy provider contract types
* refactor(openai): tighten provider runtime factory
2026-07-15 22:33:54 -07:00
Alix-007
527711d27c
fix(crabbox): bound IMDS identity checks ( #108165 )
2026-07-15 22:32:29 -07:00
Peter Steinberger
513200125d
feat(channels): render live plan checklists from typed update_plan snapshots ( #108597 )
...
* feat(channels): render live plan checklists from typed update_plan snapshots
Codex, Copilot, CLI, and embedded update_plan events now carry typed
{step, status} snapshots end to end instead of flattened strings. Slack,
Discord, Telegram, Matrix, and MS Teams render a live checklist in
progress drafts; Slack native task cards show the real plan with
position-keyed rows and id reconciliation. The embedded update_plan tool
is default-on for every model (tools.experimental.planTool: false opts
out). The shipped onPlanUpdate steps: string[] SDK field stays populated
during a deprecation window alongside the canonical planSteps.
* fix(auto-reply): align plan bridge types with SDK callback contract
* fix(auto-reply): split agent event bridge module and fix plan type boundaries
* fix(channels): satisfy oxlint on plan checklist helpers
2026-07-15 22:00:21 -07:00
Peter Steinberger
251b6f8d8c
perf(ci): parallel format check and build-input-precise artifact gating ( #108594 )
2026-07-15 21:12:55 -07:00
Peter Steinberger
154d1277e1
fix(qa): repair package Telegram harness boundaries ( #108499 )
...
* fix(qa): keep packaged entry off private transport
* fix(qa): lazy-load private transport runtime
* fix(qa): pass relative package artifact path
* fix(qa): isolate packaged bus protocol
* fix(qa): mount package scenario catalog
2026-07-15 19:24:55 -07:00
Peter Steinberger
a14fad5ff8
fix(docs-i18n): preserve list marker structure
2026-07-15 21:47:53 -04:00
morluto
16801bf4f0
fix(agents): prevent subagent registry resurrection ( #105793 )
...
* fix(agents): retire legacy subagent registry JSON
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
* fix(agents): keep migration decision internal
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
* style(agents): format migration decision type
Co-authored-by: morluto <76467478+morluto@users.noreply.github.com >
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-15 17:01:42 -07:00
Dallin Romney
2d9b78fff7
refactor(qa): canonicalize live scenario coverage ( #108464 )
2026-07-15 16:50:41 -07:00
Peter Steinberger
4d4b1762fc
fix(docs-i18n): stabilize split validation
2026-07-15 19:24:41 -04:00
Peter Steinberger
8aa2392003
refactor(deadcode): harden unused export coverage ( #108484 )
2026-07-15 15:49:30 -07:00
Peter Steinberger
6252f9b1f7
improve(ci): speed warm Node shards with sticky bind mount ( #108386 )
...
* perf(ci): bind sticky dependency disk into test shards
* chore(ci): restore workflow guard coverage
* perf(ci): skip pnpm install on exact sticky hits
* fix(ci): require stock layout for sticky dependencies
* perf(ci): bypass pnpm for test shard launches
* fix(ci): declare direct shard runner command
* fix(ci): bypass pnpm in warm shard builds
* fix(ci): invalidate sticky deps on pnpm config
* ci: document sticky failure guard
2026-07-15 15:41:24 -07:00
Peter Steinberger
3ee408b7b5
fix(qa): isolate Crabline from package live lanes ( #108472 )
...
* fix(qa): isolate Crabline from package live lanes
* fix(qa): narrow optional smoke runtime
* ci(release): avoid unrelated Crabline install
2026-07-15 15:09:07 -07:00
Dallin Romney
379aca9f35
fix(release): use trusted frozen installer harness ( #108467 )
...
* fix(release): use trusted frozen installer harness
* test(release): align installer harness assertions
2026-07-15 15:08:52 -07:00
Peter Steinberger
f2fa99a414
fix(ci): install Crabline for package Telegram harness ( #108468 )
2026-07-15 14:41:04 -07:00
Peter Steinberger
766742c674
refactor(node-host): move configuration to shared SQLite ( #108457 )
...
* refactor(node-host): move config to shared SQLite
* test(node-host): satisfy migration gates
2026-07-15 14:02:23 -07:00
Peter Steinberger
b58a64bbfa
fix(release): scan SQLite installer transcripts ( #108458 )
2026-07-15 13:52:05 -07:00
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
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
23d2f664fb
fix(release): retain npm provenance evidence
2026-07-15 20:02:53 +01:00
Peter Steinberger
bbb62d8510
chore(plugins): window unused and bundled-only public plugin-sdk subpaths ( #108415 )
...
* chore(plugins): window unused and bundled-only public plugin-sdk subpaths
* fix(plugins): keep literal compat codes in windowed subpath seeds
2026-07-15 11:21:59 -07:00
Peter Steinberger
2d7be9e84f
fix(docs-i18n): protect split product links
2026-07-15 13:50:06 -04: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
Peter Steinberger
1d2777548d
fix(release): retry stale npm provenance
2026-07-15 18:24:39 +01: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
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
4e78d91c0f
refactor(sessions): split session accessor by ownership ( #108247 )
2026-07-15 06:47:29 -07:00
Peter Steinberger
674dd37cd0
refactor(deadcode): privatize core test seams ( #108325 )
...
* refactor(entry): privatize compile cache internals
* refactor(logging): privatize diagnostic test seams
* refactor(plugin-state): privatize store test seams
* refactor(skills): privatize lifecycle test seams
* refactor(node-host): privatize invoke test seam
* refactor(system-agent): privatize turn test seam
* chore(deadcode): shrink core test seam baseline
2026-07-15 06:37:40 -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
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
Peter Steinberger
3ea45589ba
refactor(agents): trim CLI and transport export seams ( #108309 )
...
* refactor(agents): trim CLI and transport export seams
* chore(deadcode): shrink agents CLI transport baseline
2026-07-15 14:02:29 +01:00
Peter Steinberger
2808507c3b
refactor(agents): privatize runtime test seams ( #108295 )
...
Shrinks the dead-export baseline from 156 to 151 entries.
2026-07-15 05:36:35 -07:00
Peter Steinberger
855659a1dd
refactor(agents): privatize state reset seams ( #108285 )
...
* refactor(agents): privatize state reset seams
* chore(deadcode): shrink agents state seam baseline
2026-07-15 05:09:45 -07:00
Peter Steinberger
d49e12eb36
refactor(agents): privatize CLI runner and live auth helpers ( #108282 )
...
* refactor(agents): internalize live auth helpers
* refactor(agents): privatize CLI runner test seams
* chore(deadcode): shrink CLI runner export baseline
2026-07-15 04:50:35 -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
20d6ddc4c7
refactor(agents): privatize models config test seams ( #108275 )
...
* refactor(agents): privatize models config test seams
* chore(deadcode): shrink models config export baseline
2026-07-15 04:27:39 -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