Commit Graph

67970 Commits

Author SHA1 Message Date
Peter Steinberger
4e689a219d test: speed async lifecycle and parity coverage (#106605)
* test: speed up async lifecycle suites

* test: stabilize async speedups

* test: remove duplicated provider auth parity suite
2026-07-13 15:40:16 -07:00
Peter Steinberger
2e0f6d5304 fix: recover browser routing and Discord voice context 2026-07-13 23:38:56 +01:00
Peter Steinberger
334e7f3f21 feat(apps): add native mobile Automations parity (#106355)
* fix(apps): address native Skills review feedback

* feat(apps): add native Automations parity

* fix(ios): preserve automation editor selection

* fix(android): page automation discovery

* chore(apps): refresh native source inventory

* fix(ios): refresh invalid automation diagnostics

* chore(apps): sync native localization

* fix(cron): stabilize paginated snapshots

* refactor(cron): split pagination helpers

* fix(apps): address final native review feedback

* chore(apps): refresh native source inventory

* fix(ios): dedupe automation list actions

* chore: keep release note in PR context

* fix(ci): repair current main architecture gates

* fix(ios): default new skill requirement fields

* fix(ios): retain queued automation reservations
2026-07-13 15:35:32 -07:00
Peter Steinberger
5c9e09af3a style(codex): format prompt projection 2026-07-13 15:32:59 -07:00
Peter Steinberger
51fece4960 fix(codex): preserve failure-path ownership 2026-07-13 15:32:59 -07:00
Peter Steinberger
323a9fbe29 refactor(codex): split app server run attempt 2026-07-13 15:32:59 -07:00
Peter Steinberger
4319ddbe8c feat(control-ui): import Codex and Claude Code memory (#106406)
* feat(control-ui): import coding assistant memory

* test(migrate): clean memory import temp dirs

* chore: move memory import note to PR body

* build: refresh memory import generated artifacts

* fix(control-ui): complete memory import checks

* build(control-ui): localize memory recovery labels

* fix(control-ui): harden memory import recovery

* refactor(migrate): keep memory import surfaces bounded

* fix(control-ui): use canonical agent row type

* fix(codex): drop dead migration type exports

* fix(migrate): restrict imported memory permissions

* fix(control-ui): preserve memory import recovery state

* fix(control-ui): retain memory import results

* build(control-ui): preserve translation memory history

* fix(control-ui): bind memory import state to agent

* fix(control-ui): unlock memory import after refresh

* test(gateway): preserve memory method suffix

* fix(migrate): bind reviewed memory imports

* fix(migrate): make memory imports retry-safe

* perf(ui): keep memory import lazy

* build: refresh generated artifacts after rebase

* chore: keep migration runtime within LOC guard

* build: refresh Swift protocol model
2026-07-13 15:30:06 -07:00
Peter Steinberger
4568606490 refactor(telegram): privatize doctor helpers (#106861) 2026-07-13 15:29:06 -07:00
Peter Steinberger
70833dab7f ci: scope PR Node tests to changed targets (#106633)
* ci: scope PR Node tests to changed targets

* ci: bound targeted Node test plans

* test: cover changed path manifest input

* fix(ui): preserve model providers lazy boundary

* ci: cover public SDK re-export consumers

* ci: reject unresolved changed test targets

* ci: cover public SDK wrapper imports

* ci: preserve global checks in targeted plans

* docs(ci): clarify targeted boundary coverage

* test(plugins): declare computed runtime dependencies
2026-07-13 15:26:02 -07:00
Peter Steinberger
95da05ddce fix(oc-path): preserve JSONC insertion formatting 2026-07-13 15:25:53 -07:00
Peter Steinberger
dc8ef09bbe refactor(diagnostics-otel): keep extracted helpers private 2026-07-13 15:25:11 -07:00
Peter Steinberger
6454b07b17 refactor(diagnostics-otel): slim service orchestration 2026-07-13 15:25:11 -07:00
Peter Steinberger
00af5a5989 refactor(diagnostics-otel): extract event recorders 2026-07-13 15:25:11 -07:00
Peter Steinberger
351c069ed2 refactor(diagnostics-otel): extract telemetry foundations 2026-07-13 15:25:11 -07:00
Vincent Koc
a8548a1191 refactor(shared): narrow entry status API (#106856) 2026-07-14 06:24:21 +08:00
Peter Steinberger
bc8a44bc41 refactor(agents): extract attempt prompt submission 2026-07-13 15:24:18 -07:00
Peter Steinberger
00b38ebc20 feat(web): show session branch row for local changed files (#106835)
* feat(web): show session branch row for local changed files

The pre-PR branch row above the composer only appeared once the branch
was pushed and ahead of the default branch. Sessions with local work
(committed, uncommitted, or untracked changes) showed nothing.

The gateway now emits the branch payload whenever the working tree has
changed files vs the default-branch merge base; createUrl is withheld
until GitHub's pull/new page has something to compare, and the UI only
renders the Create PR link when it is present.

* refactor(gateway): keep control-ui-session-prs under LOC ratchet

* docs(gateway): note explicit-base diff counts conflict paths
2026-07-13 15:17:37 -07:00
Peter Steinberger
03455c9cd0 refactor(auto-reply): privatize finalization timeout (#106853) 2026-07-13 15:17:11 -07:00
wangmiao0668000666
5f681a1cb8 fix(memory-core): clear pending-update wait timer after update settles (#106173)
* fix(memory-core): clear pending-update wait timer after update settles

* test(memory-core): wrap setImmediate Promise executor in block body

`oxlint(no-promise-executor-return)` (enabled in the bundled-extension
config used by `pnpm lint:extensions:bundled` /`check-lint` /
`check-additional-extension-bundled`) flags the implicit return from
`new Promise((resolve) => setImmediate(resolve))`. The arrow function
is expression-bodied and returns the Immediate handle, which the rule
treats as a return inside a Promise executor.

Switch both occurrences in the regression guard to block bodies so the
executor callback does not return a value. Behavior is unchanged:
setImmediate still fires resolve on the next macrotask; the regression
assertion (process.getActiveResourcesInfo() delta) still passes.

* test(memory-core): track pending wait timer cleanup

* refactor(memory-core): keep timer cleanup LOC-neutral

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
Co-authored-by: Peter Steinberger <peter@steipete.me>
2026-07-13 15:16:19 -07:00
ruel225
b6330edbe4 fix(sdk): add prototype-pollution guard to migration config merge (#103059) (#106116)
* fix(sdk): add prototype-pollution guard to migration config merge

mergeMigrationConfigValue and writeMigrationConfigPath had no
isBlockedObjectKey guard, allowing __proto__/constructor/prototype
keys from imported config files to trigger prototype pollution.

Add the same guard used by the sibling config-path writer
(setConfigValueAtPath/parseConfigPath) to reject blocked object
keys before they reach a bracket assignment.

Fixes #103059

* fix(sdk): harden migration config patches

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 15:14:58 -07:00
Peter Steinberger
e69df7ef22 refactor(cli): privatize internal exports (#106848) 2026-07-13 15:09:26 -07:00
Peter Steinberger
710d1eb443 refactor(agents): extract attempt prompt preflight 2026-07-13 15:03:45 -07:00
Peter Steinberger
99a7ac8743 refactor(cli): share Clack select styling 2026-07-13 15:01:41 -07:00
Peter Steinberger
856e1ab8d9 fix(ci): bind release target context (#106836) 2026-07-13 15:00:03 -07:00
Peter Steinberger
3c58dba07b refactor(ui): privatize chat settings patch tracker (#106842) 2026-07-13 14:58:59 -07:00
Peter Steinberger
76834210f8 fix(lobster): restore literal dep reference for runtime contract
70ab6b324d dropped the last literal "@clawdbot/lobster" mention from the
runner while keeping the join-built dynamic import, so the unused-direct-
dependency contract started failing on main. Document the join trick with
the literal package path so the contract sees the dependency again.
2026-07-13 14:55:36 -07:00
Vincent Koc
898ef1f45c refactor(macos): remove write-only voice wake state (#106468) 2026-07-14 05:54:25 +08:00
Vincent Koc
d08228eee1 refactor(shared): privatize requirement helpers (#106837) 2026-07-14 05:50:55 +08:00
Peter Steinberger
908230a537 fix(ui): keep tool-only turn details visible (#106791)
* fix(ui): keep tool-only turn details visible

* refactor(ui): keep tool card component size neutral

* style(ui): format tool turn e2e test

* chore: leave release notes to release automation
2026-07-13 14:42:09 -07:00
Qiong
8592b87c39 fix(node-pairing): require operator.admin to approve fs.listDir nodes (#105936) (#106004)
* fix(node-pairing): require operator.admin to approve fs.listDir nodes (#105936)

* fix(gateway): align node command authorization

---------

Co-authored-by: joshavant <830519+joshavant@users.noreply.github.com>
2026-07-13 16:40:55 -05:00
Peter Steinberger
030e7b9121 test(ui): deduplicate MCP security coverage (#106762)
* fix(ci): repair checks after dead export cleanup

* fix(ci): classify SQLite schema and migration boundaries

* fix(ci): avoid duplicate SQLite guard classification
2026-07-13 14:40:17 -07:00
Peter Steinberger
2d362a9b01 fix(ui): show mock task transcripts (#106774) 2026-07-13 14:39:47 -07:00
Peter Steinberger
70ab6b324d refactor(lobster): use canonical core export 2026-07-13 14:39:18 -07:00
Josh Avant
65aa778171 fix: recover message sessions after reply finalization stalls (#106792)
* fix(auto-reply): bound reply finalization ownership

* fix(auto-reply): clean finalization exports

* fix(auto-reply): satisfy finalization lint
2026-07-13 16:36:35 -05:00
Peter Steinberger
a7e646f8b3 fix(ui): keep chat scrollbar flush with the sidebar divider (#106775) 2026-07-13 14:35:35 -07:00
Piotr Durlej
48279d46ca fix(signal): detect native bot mentions in group gating (#96738)
* fix(signal): detect native bot mentions in group gating

* fix(signal): accept ordinary-text native mentions

* chore(signal): defer release note to release process

* fix(signal): satisfy mention gating quality gates

* test(signal): cover public mention facts helper

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-13 14:35:23 -07:00
Peter Steinberger
390ba9531c fix: model probes find credentials stored under auth aliases (#106736)
* fix(models): resolve probe credentials through auth aliases

* fix(models): preserve alias-stored probe profiles
2026-07-13 14:34:01 -07:00
Vincent Koc
0f3dc25a3e refactor(cli): privatize precomputed help parser (#106692) 2026-07-14 05:33:19 +08:00
Peter Steinberger
d1bb38345e ci: preserve release target context (#106783) 2026-07-13 14:32:59 -07:00
Peter Steinberger
e858d8e6c6 fix: keep unresolved API-key providers visible (#106754)
* fix(gateway): keep unresolved API-key providers visible

* style: format models auth status fix

* fix(gateway): exclude ambient auth markers from status

* test(gateway): type auth health summary mock

* test(gateway): satisfy auth status lint
2026-07-13 14:31:50 -07:00
Peter Steinberger
5303174156 fix: redact migration terminal output (#106806) 2026-07-13 14:31:23 -07:00
Peter Steinberger
550d00d3b5 refactor(agents): extract attempt timeout phase 2026-07-13 14:30:13 -07:00
Peter Steinberger
3982424daa fix: main build passes strict checks (#106772)
* fix: restore main build checks

* chore: drop superseded main fixes

* fix: restore architecture and lint checks

* test: align runtime plugin install mocks

* style: format current main files

* test: assert transcript policy caching directly

* fix: deduplicate SQLite guardrail allowlist
2026-07-13 14:28:48 -07:00
Peter Steinberger
9b64c861e5 fix(chat): prevent reasoning races after model changes (#106534)
* fix(chat): serialize session setting changes

* fix(chat): bind settings mutations to gateway routes

* fix(chat): align settings lanes with shared requests

* fix(ios): preserve injected session mutations

* fix(chat): preserve authoritative settings refreshes

* fix(chat): reconcile authoritative settings state

* fix(ci): satisfy session settings quality gates

* fix(android): regenerate native string resources

* fix(ci): update session settings export baseline

* fix(ci): reconcile dead export baseline

* fix(android): resume outbox after settings lane

* chore(i18n): refresh native source inventory

* chore(i18n): refresh rebased native inventory

* chore(i18n): sync control UI locales

* chore: keep release notes in pull request

* style(macos): fix settings comment format

* fix(ai): keep Google thinking type internal
2026-07-13 14:27:54 -07:00
Peter Steinberger
08d7440442 fix(channels): warn on scalar streaming fallback (#106796) 2026-07-13 14:27:39 -07:00
Peter Steinberger
2198591d0f fix(ui): self-learning works after concurrent config changes (#106764)
* fix(ui): retry stale self-learning config updates

* chore: keep release notes out of the PR
2026-07-13 14:27:29 -07:00
Peter Steinberger
821ec6da45 refactor(agents): remove duplicate session tool exports (#106828) 2026-07-13 14:24:29 -07:00
Peter Steinberger
b4343426f1 docs: make CI polling sparse (#106821) 2026-07-13 14:19:54 -07:00
Peter Steinberger
771d370033 fix(ci): remove dead Google thinking type export (#106823) 2026-07-13 14:19:26 -07:00
Peter Steinberger
e2d6055371 refactor(media): inline CAF MIME fallback 2026-07-13 14:16:34 -07:00