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
3e4b3b370f
test(hooks): isolate Gmail setup module cache ( #108150 )
...
* test(hooks): isolate Gmail setup module cache
* chore(deadcode): refresh export baseline
2026-07-15 01:18:23 -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
Leon-SK668
9b6361a50c
fix(android): preserve emoji in voice error status ( #108101 )
...
* fix(android): preserve emoji in voice error status
* chore(android): sync native i18n inventory
* fix(android): align voice status i18n allowlist
2026-07-15 01:16:27 -07:00
Peter Steinberger
a7456edf94
refactor(proxy-capture): privatize server helpers ( #108139 )
...
* refactor(proxy-capture): privatize server helpers
* chore(deadcode): refresh export baseline
2026-07-15 01:07:57 -07:00
Peter Steinberger
f3c191039a
refactor(music-generation): privatize mode resolver ( #108132 )
...
* refactor(music-generation): privatize mode resolver
* chore(deadcode): refresh export baseline
2026-07-15 00:59:15 -07:00
Peter Steinberger
fda08e26de
refactor(gateway): privatize terminal shell quoting ( #108125 )
...
* refactor(gateway): privatize terminal shell quoting
* chore(deadcode): refresh export baseline
2026-07-15 00:50:01 -07:00
Peter Steinberger
46393fb3dc
refactor(status): privatize session cost line ( #108118 )
...
* refactor(status): privatize session cost line
* chore(deadcode): refresh export baseline
2026-07-15 00:41:45 -07:00
Peter Steinberger
85963a2d58
fix(pr): preserve signed merge commits ( #108112 )
2026-07-15 00:41:18 -07:00
Peter Steinberger
658fdaea5b
refactor(audit): remove internal test exports ( #108111 )
...
* refactor(audit): remove internal test exports
* chore(deadcode): refresh export baseline
2026-07-15 00:30:16 -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
723c2f81ad
refactor(llm): privatize provider internals ( #108099 )
...
* refactor(llm): privatize provider internals
* chore(deadcode): refresh export baseline
2026-07-15 00:11:43 -07:00
Peter Steinberger
6beb726be7
fix(docs): preserve inline code literals
2026-07-15 03:10:11 -04:00
Peter Steinberger
732fb5f9e6
fix(release): bind Telegram proof artifact identity
2026-07-15 08:02:17 +01:00
Peter Steinberger
5779422283
refactor(packaging): remove unused inventory override
2026-07-14 23:56:09 -07:00
Dallin Romney
f0109f430c
fix(release): retry transient live provider failures ( #108015 )
2026-07-14 23:55:32 -07:00
Peter Steinberger
92d06e51bb
refactor(mcp): trim internal server exports ( #108076 )
...
* refactor(mcp): remove dead internal exports
* chore(deadcode): refresh export baseline
2026-07-14 23:47:38 -07:00
Peter Steinberger
92fc907ffb
fix: preserve TUI restore state without JSON races ( #108058 )
...
* refactor(tui): move last session state to sqlite
* chore: keep release notes in PR body
* test: update doctor migration fixture
* chore: satisfy dead code export gate
2026-07-14 23:46:22 -07:00
Peter Steinberger
0240327fe7
refactor(security): privatize audit internals ( #108067 )
...
* refactor(security): privatize audit internals
* chore(deadcode): shrink security export baseline
2026-07-14 23:28:04 -07:00
Peter Steinberger
23c0a7b612
fix: preserve working installs on unsupported Node ( #106994 )
...
* fix(update): preserve installs on unsupported Node
* fix(update): verify skipped install scripts
* refactor(update): share global install preflight
* fix(update): validate Bun-installed Node runtime
* fix(update): classify install preflight failures
* refactor(update): normalize install failure reasons
* style(update): format updater policy test
* fix(update): preserve pnpm script policy safety
* fix(update): classify hosted git sources
* chore: leave release notes to release flow
* fix(release): defer package inventory helper loading
* style(release): keep inventory loader LOC-neutral
* fix(update): validate staged package lifecycle
* fix(update): match packed lifecycle contract
* fix(update): harden Bun package activation
* test(update): model packed Bun lifecycle
* style(update): avoid lifecycle name shadowing
* fix(update): remove unsafe Bun staging experiment
* fix(update): satisfy updater type checks
* fix(update): preserve packed npm package name
* fix(update): preserve checkout failure status
* fix(update): disable scripts while packing candidates
* fix(update): preflight source package engines safely
* fix(update): preserve legacy npm downgrades
* fix(update): pin npm packing to selected Node
* fix(update): stage npm activation before replacing live package
* fix(update): guard non-npm source activation
* refactor(update): isolate npm staging helpers
* fix(update): harden staged package lifecycle
* test(update): satisfy merged type gates
* fix(update): privatize runtime npm helper
* fix(ci): satisfy merged lint and type gates
* docs(changelog): defer updater note to release
* fix(update): guard package activation runtime
* fix(update): preserve installs on unsupported Node
* test(update): reject prerelease Node runtimes
* test(update): use shared temp cleanup
* fix(update): fail closed when install scripts are skipped
* fix(update): pack install guard in docker artifacts
* fix(ci): keep install guard export tooling-local
2026-07-14 23:19:48 -07:00
Dallin Romney
c421a3b2e6
feat: add reusable Parallels Windows test setup ( #107881 )
...
* test: route Parallels Windows setup
* test: own Parallels Windows baseline setup
* docs: point Windows proof to Parallels sidecar
2026-07-14 23:15:57 -07:00
Peter Steinberger
ed49673307
fix(release): prepare trusted harness dependencies
2026-07-15 07:11:59 +01:00
Peter Steinberger
34b8a3fda0
fix(release): isolate trusted candidate dependencies
2026-07-15 07:08:00 +01:00
Peter Steinberger
7f1baa6d75
refactor(codex): trim session catalog exports ( #108045 )
...
* refactor(codex): privatize session catalog helpers
* chore(deadcode): refresh export baseline
2026-07-14 22:59:46 -07:00
Peter Steinberger
c8733ea674
fix(release): run candidate smoke from trusted tooling
2026-07-15 06:56:04 +01:00
Peter Steinberger
2e73cff6ca
fix(maint): keep PR maintenance delta-only ( #108018 )
...
* fix(maint): keep fork prep sync delta-only
* fix(ci): use exact merge parent for PR diffs
* fix(ci): pass docs diff base through environment
* test(ci): cover environment-mediated docs base
2026-07-14 22:49:33 -07:00
Peter Steinberger
5bbf30b852
refactor(canvas): remove internal A2UI handler factory ( #108038 )
...
* refactor(canvas): remove internal A2UI handler factory
* chore(deadcode): refresh export baseline
2026-07-14 22:41:27 -07:00
Peter Steinberger
9275f476f4
fix(release): retry flaky fresh Parallels lanes
2026-07-15 06:24:32 +01:00
Peter Steinberger
1967e4c04d
refactor(telegram): privatize internal plugin surfaces ( #108026 )
...
* refactor(telegram): privatize internal plugin surfaces
* chore(deadcode): refresh export baseline
2026-07-14 22:20:46 -07:00
Peter Steinberger
eebc0dbc33
refactor(auto-reply): split agent runner execution ( #107985 )
...
* refactor(auto-reply): split agent runner execution
* style(auto-reply): satisfy promise executor lint
* fix(ci): align refactor baselines and test types
* fix(ci): prune stale max-lines baseline
2026-07-14 22:20:25 -07:00
xydt-tanshanshan
f638cbd0f9
fix(doctor): preserve allowlist entries for version-bound runtime plugins during stale config scan ( #107285 )
...
* fix(doctor): preserve allowlist entries for version-bound runtime plugins (codex) during stale config scan
* fix(doctor): restore codex to scanner stale expectation, protect at repair-sequencing
Scanner now flags codex in plugins.allow as stale so diagnostics are visible.
Repair-sequencing preserves the entry via preservePluginIds which already
includes VERSION_BOUND_RUNTIME_PLUGIN_IDS.
* fix(doctor): scope version-bound runtime plugin preservation to allow surface only
ClawSweeper P2: VERSION_BOUND_RUNTIME_PLUGIN_IDS was applied globally
across all stale config surfaces (deny, entries, slots, channels, etc.),
but only plugins.allow needs preservation. Move to a surface-scoped
parameter surfacePreservePluginIds so codex is preserved only in allow.
* fix(doctor): harden version-bound allowlist repair
* fix(doctor): retain version-bound plugin policy
* fix(doctor): align version-bound plugin diagnostics
Co-authored-by: hailory <hailory@xydigit.com >
---------
Co-authored-by: hailory <hailory@xydigit.com >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 22:14:11 -07:00
Peter Steinberger
e9fc23ad1f
refactor(plugin-sdk): remove private testing barrel ahead of window ( #108020 )
2026-07-14 22:13:37 -07:00
Peter Steinberger
290836cafd
refactor(config): split config I/O responsibilities ( #107983 )
...
* refactor(config): split config I/O
* fix(config): align split modules with guardrails
* fix(config): remove dead write metadata helper
* style(config): format write safety imports
* fix(config): preserve comment-loss warning on split writes
2026-07-14 22:11:22 -07:00
Peter Steinberger
aac4c16f84
refactor(doctor): split Codex route diagnostics ( #107955 )
2026-07-14 22:02:56 -07:00
Peter Steinberger
3932a6038c
refactor(discord): privatize internal plugin surfaces ( #108003 )
...
* refactor(discord): privatize internal plugin surfaces
* chore(deadcode): update export baseline
2026-07-14 21:26:00 -07:00
Peter Steinberger
6c0725e0d9
fix(release): tolerate exhausted GitHub read quota
2026-07-15 05:21:30 +01:00
Peter Steinberger
2372c71697
fix(release): preserve candidate Node runtime
2026-07-15 05:03:43 +01:00
Peter Steinberger
5fa348f3ed
fix(release): pin max-lines debt to branch merge base
2026-07-15 05:03:43 +01:00
Peter Steinberger
938bddddc1
refactor: privatize QA Matrix and Workspaces internals ( #107973 )
...
* refactor(qa-matrix): replace testing export facades
* refactor(workspaces): remove broadcast reset export
* chore(deadcode): shrink unused export baseline
2026-07-14 20:48:46 -07:00
Alix-007
e9d76ae2a7
fix(qa-lab): prevent dashboard API hangs ( #107701 )
2026-07-14 20:45:57 -07:00
Peter Steinberger
ce078367e4
fix(docs): preserve plugin surface identifiers
2026-07-14 23:41:24 -04:00
Peter Steinberger
b50822aab5
refactor(channels): remove Google Chat and Matrix test exports ( #107951 )
...
* refactor(googlechat): privatize internal test seams
* refactor(matrix): remove internal test exports
* chore(deadcode): refresh export baseline
2026-07-14 20:06:39 -07:00
Peter Steinberger
ed12937cbd
refactor(plugin-sdk)!: delete the zero-consumer channel-ingress facade, AccessFacts projections, and dead dispatch aliases ( #107906 )
...
* refactor(plugin-sdk)!: delete the zero-consumer channel-ingress facade, AccessFacts projections, and dead dispatch aliases
* chore(plugin-sdk): refresh API baseline hash for the facade deletions
* fix(channels): drop dead AccessFacts field writes stranded by the facade deletion
* chore(plugin-sdk): refresh API baseline hash after rebase
2026-07-14 19:43:18 -07:00
Peter Steinberger
6d3eff97a0
refactor(channels): privatize Mattermost and MSTeams test seams ( #107924 )
...
* refactor(mattermost): privatize internal test seams
* refactor(msteams): privatize internal test seams
* docs(mattermost): fix public API import path
* refactor(deadcode): shrink export baseline
2026-07-14 19:11:46 -07:00
Peter Steinberger
5579f009fb
refactor(channels): converge internal group-policy drift onto the scope tree ( #107865 )
...
* refactor(channels): converge internal group-policy drift onto the scope tree
* chore(plugin-sdk): refresh API baseline hash for scope-key exports
* fix(config): avoid shadowing the scopeKey export in the case-insensitive lookup
2026-07-14 18:30:04 -07:00
Peter Steinberger
e905a682f7
feat(agents): session self-service tools
...
New grouped sessions tool (patch: label/pin/archive/model/thinking; group
CRUD; owner-gated; no reset/delete/compact). sessions_spawn gains visible +
worktree via sessions.create with admission reservation and abort-confirmed
rollback; a started run with no run id is aborted and deleted rather than
left orphaned. subagents tool reads the unified task_runs ledger tree-scoped
(subagent/acp/media/cron) and cancels detached runs, enforcing the
controlScope gate for leaf callers. session_status gains a cost line.
Agent-origin model patches record a fallback marker; runs failing on
auth/billing/model_not_found revert to the last working model (transient
errors never revert), and an independent thinkingLevel change realigns the
marker so revert cannot clobber it.
Refs #107237
2026-07-14 18:12:22 -07:00
Peter Steinberger
1fd4009e41
perf: speed type suppression inventory ( #107874 )
2026-07-14 18:08:33 -07:00
Peter Steinberger
75d029dae2
refactor: privatize Linux Canvas and Node Host internals ( #107884 )
...
* refactor(linux-canvas): privatize internal command surfaces
* refactor(node-host): privatize runtime manifest type
* chore(deadcode): shrink export baseline
2026-07-14 18:00:16 -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
ced61db64a
fix(ci): preserve OCM workspace prepack ( #107844 )
...
* fix(ci): preserve OCM workspace prepack
* fix(ci): bind OCM prepack to pack context
* fix(ci): avoid path import shadowing
2026-07-14 17:28:45 -07:00