Commit Graph

7750 Commits

Author SHA1 Message Date
Peter Steinberger 995c75baa0 fix(ci): restore current-main quality gates (#106751)
* fix(ci): restore Control UI quality gates

* fix(ci): repair dead export cleanup fallout

* fix(ci): repair latest main quality gates

* fix(ci): satisfy current-main gate contracts

* docs: format Cloud Workers guide

* test: isolate context lookup module
2026-07-13 13:54:03 -07:00
Peter Steinberger 6d84622920 refactor(agents): privatize model catalog types (#106801) 2026-07-13 13:45:48 -07:00
Peter Steinberger 90a545b9e6 refactor(slack): trim internal exports (#106794) 2026-07-13 13:37:21 -07:00
Peter Steinberger 359c8917ec refactor(commands): privatize setup types (#106771)
* refactor(commands): privatize setup types

* chore(deadcode): refresh export baseline
2026-07-13 12:57:29 -07:00
Peter Steinberger a3804782dc ci(ui): raise startup request budget 2026-07-13 12:51:36 -07:00
Peter Steinberger 6d299f383c refactor(memory-core): remove unused exports 2026-07-13 12:44:33 -07:00
Peter Steinberger eb60b2208c refactor(feishu): remove unused exports 2026-07-13 12:44:33 -07:00
Peter Steinberger 35a02653c8 refactor(qqbot): remove unused exports 2026-07-13 12:44:33 -07:00
Peter Steinberger bad37249f5 refactor(agents): privatize auth planning types (#106756)
* refactor(agents): privatize auth planning types

* chore(deadcode): refresh export baseline
2026-07-13 12:31:28 -07:00
Peter Steinberger a15c6af48e refactor(auto-reply): privatize command helpers (#106750)
* refactor(auto-reply): privatize command helpers

* chore(deadcode): refresh export baseline
2026-07-13 12:26:17 -07:00
Peter Steinberger d1684f48a3 refactor: delete dead infra and config exports (#106019)
* refactor: delete dead infra and config exports

* refactor: preserve live infra and config contracts

* refactor(config): remove obsolete file-store lifecycle APIs

* refactor(infra): finish current-main dead export cleanup
2026-07-13 12:00:47 -07:00
Peter Steinberger e3c5821d98 feat(ui): redesign Channels page with guided channel setup wizard (#106469)
* feat(ui): redesign Channels page with guided channel setup wizard

Adds wizard.start flow=channels gateway RPC (additive protocol change) that
drives the shared channel-setup wizard (openclaw channels add) over the
session step protocol. Control UI Channels page becomes a card hub with
plugin-art covers, guided per-channel setup modal (WhatsApp QR pairing via
web.login.*, BotFather/Slack/Discord helper links), and a detail overlay
hosting the full schema config form.

* test(ui): cover channel wizard controller; refresh channels view test props

* chore(mock): use non-token-shaped wizard placeholder

* test(gateway): scanner-safe auth local in channels wizard test

* fix(ui): cancel gateway wizard session on channels page disconnect

* fix(ui): adopt browse-all channel pick and guard dirty config before setup

* fix(ui): cancel gateway session created by a stale wizard.start

* fix(ui): adopt multiselect channel picks; drop redundant String()

* fix(ui): track all wizard-adopted channels so WhatsApp QR runs regardless of pick order

* feat(gateway): report configured channels on terminal channel-wizard result

Replaces the Control UI's channel-adoption heuristic with the authoritative
outcome: the channels flow reports its actual selection after config commit,
the wizard session surfaces it as an additive channels field on the terminal
wizard.next result, and the UI keys WhatsApp QR linking off that.

* refactor(ui): align channels hub with the unified settings design language

Hub becomes settings-language rows (44px art tiles, status dots, uppercase
section headings, hairline groups) instead of a card gallery; the detail
overlay hosts the migrated per-channel settings sections with Run setup in
the header. Wizard dialog and tile/cover styles move to spacing tokens.

* chore(i18n): translate channels hub/setup strings; refresh raw-copy baseline

* refactor: satisfy LOC ratchet and dead-export gates

Split mock-dev channel/plugin fixtures into their own modules, move wizard
runner types/defaults to server-methods/wizard.ts, extract the channels page
wizard host and nostr profile HTTP ops, and unexport internal-only types
(incl. the unused config-form SECTION_META barrel re-export).

* chore(i18n): retranslate channels strings on rebased locale bundles

* fix(test): drop redundant String() in channels wizard e2e

* fix: address channel-wizard review findings

- lock wizard cancellation before durable installs/config writes
- report configured channel accounts on the terminal wizard result and
  start WhatsApp QR pairing for that account (web.login accountId)
- forward request options through the browser gateway client so wizard
  RPC timeouts apply
- render skipped setup as a no-change completion
- keep detail/advanced config reachable for unconfigured channels
- surface the dirty-config warning inside the detail overlay
- adopt the picked channel for wizard title/links in browse-all flows

* fix(ui): local wizard RPC timeout; translate no-change completion strings
2026-07-13 11:49:42 -07:00
Peter Steinberger 40b119f57a refactor(build): run generated formatter through oxfmt bin 2026-07-13 11:44:28 -07:00
Peter Steinberger 59003634ad refactor(cron): retire cron_run_logs; ledger-owned retention and cancellation
Stops the legacy run-log dual-write, auto-imports remaining rows and drops
the table at state-DB open (table-presence guard: self-heals downgrade
round-trips), keeps the newest 2000 terminal runs per job in the ledger,
retires cron.runLog config via doctor, and moves live-run cancellation to
src/cron behind the shared task control seam.

Part 2 of 2 for #106041.
2026-07-13 11:41:27 -07:00
Peter Steinberger cdf4f2208b chore(deadcode): move resolveCronRunEndedAt baseline entry to event codec 2026-07-13 11:32:57 -07:00
Peter Steinberger b1f765ae8b fix(cron): baseline transitional cron-ledger exports; drop dead migration re-export
check-dependencies (knip) flagged run-log read exports left unused after the
reader flip plus test-only ledger/migration exports. Baseline the genuine
test-only/transitional exports; remove the redundant state-migrations barrel
re-export (state-db imports the migration from the sibling module directly).
2026-07-13 11:32:57 -07:00
Peter Steinberger b842be157a chore(cron): decompose oversized modules for the changed-file LOC ratchet
Extracts startup-run repair, timer outcome finalization, task record
normalization, legacy task-sidecar row codec, and state-schema helpers
into focused modules; exempts .generated.d.ts files from the ratchet
(policy gap: schema evolution regrows generated Kysely types).
2026-07-13 11:32:57 -07:00
Peter Steinberger bfe2786957 refactor(ui): remove dead exports (#105979)
* refactor(ui): remove dead exports

* chore(deadcode): refresh export baseline

* refactor(gateway): privatize chat media fields
2026-07-13 11:32:00 -07:00
Peter Steinberger db02a96c4c refactor(process): route bounded commands through Execa (#106495)
* refactor(process): centralize bounded command execution

* refactor(process): migrate core one-shot commands

* refactor(plugins): migrate one-shot commands

* fix(process): await Windows tree termination

* chore(plugin-sdk): refresh process runtime surface

* refactor(process): migrate remaining bounded commands

* refactor(process): normalize command result handling

* refactor(process): split execution responsibilities

* chore(plugin-sdk): refresh API baseline

* chore(process): remove release-owned changelog entry

* fix(process): narrow binary command input checks

* fix(process): cap sandbox command output

* fix(qa-lab): preserve exact node probe env

* chore(ci): refresh dead export baseline

* fix(process): preserve force-kill command deadlines

* fix(process): avoid post-exit timeout reclassification

* test(process): update scp staging wrapper mock

* test(process): update remaining wrapper mocks

* refactor(qa-lab): preserve Execa tar execution
2026-07-13 11:07:35 -07:00
Peter Steinberger 4c7efd2673 refactor(agents): privatize session state types (#106672)
* refactor(agents): privatize session state types

* chore(deadcode): shrink agents export baseline
2026-07-13 11:04:21 -07:00
Peter Steinberger e30cc79b81 ci: remove redundant extension oxlint lanes 2026-07-13 11:02:51 -07:00
Vincent Koc ee2efed993 refactor(commands): remove duplicate session target export (#106620) 2026-07-14 01:49:36 +08:00
Peter Steinberger 9544937b22 refactor(auto-reply): trim test facade exports (#106639) 2026-07-13 10:43:41 -07:00
Peter Steinberger 4f2553be5f fix(test): bound extension test inventory query (#106632) 2026-07-13 10:30:27 -07:00
Peter Steinberger 2b9991c748 refactor(agents): privatize native hook relay internals (#106634)
* refactor(agents): privatize native hook relay internals

* chore(ci): shrink dead-export baseline
2026-07-13 10:27:34 -07:00
Peter Steinberger 8d9950d8ae refactor(agents): split embedded runner orchestration (#106552)
* refactor(agents): split embedded runner orchestration

* test(agents): fix skill startup fixture type

* style(agents): format runner imports

* refactor(agents): remove stale attempt import

* refactor(agents): reuse attempt result slot type

* fix(test): avoid truncating extension test inventory
2026-07-13 10:22:38 -07:00
Peter Steinberger edbcf11451 refactor(auto-reply): privatize reply helpers (#106600) 2026-07-13 10:12:17 -07:00
Peter Steinberger 8814e75cd6 perf(ci): start long node shards first (#106522) 2026-07-13 09:56:30 -07:00
Peter Steinberger 5d12f6bfb5 refactor(policy): remove remaining unused exports (#106591)
* refactor(policy): remove unused exports

* chore(deadcode): regenerate policy export baseline
2026-07-13 09:47:31 -07:00
Vincent Koc 1708faf85b refactor(cli): remove obsolete gateway call options export (#106549) 2026-07-14 00:38:14 +08:00
Peter Steinberger dd4f36690a refactor: replace remaining worker pools with p-map (#106489)
* refactor: replace remaining worker pools with p-map

* test(tui): retry session rollover until accepted
2026-07-13 09:37:55 -07:00
Peter Steinberger a13796bcfd fix(docs-i18n): recognize isolated indented fences 2026-07-13 12:26:18 -04:00
Peter Steinberger 8867a9da0b refactor(extensions): remove unused Discord and QA Lab exports (#106286)
* refactor(extensions): remove unused major-plugin exports

* refactor(qa-lab): preserve existing test seams

* chore(deadcode): regenerate export baseline

* refactor(qa-lab): share evidence environment resolver
2026-07-13 09:25:45 -07:00
Vincent Koc 9619585e85 refactor(cli): collapse npm pinning helpers (#106499) 2026-07-14 00:12:02 +08:00
Peter Steinberger f0fe068da7 refactor(agents): trim MCP runtime exports (#106520)
Related: #105595
2026-07-13 08:49:16 -07:00
Peter Steinberger 9f546e2645 refactor: clear remaining plugin dead-export baseline (#106488)
* refactor: clear remaining plugin dead-export baseline

* refactor: expose plugin runtime type consumers to knip
2026-07-13 08:26:12 -07:00
Peter Steinberger 11f6247618 refactor(commands): privatize doctor helpers (#106478) 2026-07-13 08:16:29 -07:00
Peter Steinberger 2c8306a5be improve(android): make gateway QR pairing prominent in Settings
Mirror the iOS gateway settings ordering: nav-bar QR scan action,
Scan QR to Pair hero while unpaired, one Add Gateway panel (scan,
setup code + connect, discovered gateways with per-row connect),
paired gateways below, manual host/credential plumbing at the bottom.
Add facts rows (Discovered, Default Agent, Agents, Instance ID) and a
Diagnose action, plus a deterministic 'gateway' screenshot scene.

Closes #106186
2026-07-13 08:02:56 -07:00
Peter Steinberger d323e421c8 refactor(agents): trim fast-mode re-exports (#106463) 2026-07-13 08:00:58 -07:00
Peter Steinberger ab7f6dd3c9 refactor(deadcode): trim policy private exports (#106290) 2026-07-13 07:58:12 -07:00
Peter Steinberger 2ab8cbc66b refactor(config): simplify channel schema loading (#106462) 2026-07-13 07:57:23 -07:00
Vincent Koc 69554995c1 refactor(logging): privatize timezone validation helper (#106459) 2026-07-13 22:55:27 +08:00
Peter Steinberger 96522b9fce refactor(commands): trim internal helper exports (#106455) 2026-07-13 07:49:09 -07:00
Peter Steinberger f167089d61 feat(nodes): continue Claude catalog sessions on paired nodes via streaming CLI agent runs (#105833)
* feat(gateway): stream node.invoke progress with idle timeouts and cancel

* feat(node-host): opt-in approval-gated claude cli agent run command

* feat(agents): run node-placed claude-cli turns through streaming node invoke

* feat(anthropic): continue claude catalog sessions on advertising nodes

* docs(nodes): document paired-node claude agent runs and continuation

* chore(plugin-sdk): admit spawn-invocation helper into surface budget

* fix(nodes): harden streaming invoke and node run policy from review findings

* test(node-host): prove multi-token tool-policy argv fails closed

* fix(nodes): allowlist cancel event for apps and break node-host type cycle

* chore(protocol): regenerate Swift gateway models for node invoke progress

* chore(node-host): drop test-only export surface flagged by deadcode ratchet

* style(node-host): merge invoke-types imports

* refactor(nodes): split node agent run modules to satisfy the LOC ratchet

* chore(protocol): regenerate android gateway models and sync export baseline

* chore(plugin-sdk): admit spawn-invocation helper and inherited deprecated drift into surface budget

* chore(plugin-sdk): tolerate inherited agent-core deprecated export

* fix(anthropic): drop node param parser orphaned by upstream catalog split

* ci: sync unused-export baseline with healed main

* test(agents): adopt renamed cli backend prepare helper

* style(node-host): format claude run spawn invocation

* ci: retrigger checks

* chore(plugin-sdk): pin surface budgets to healed-base counts

* fix(protocol): restore untyped lazy validators after upstream style change
2026-07-13 07:39:22 -07:00
Vincent Koc 1b43d71440 refactor(channels): privatize approval channel list (#106447) 2026-07-13 22:35:26 +08:00
Peter Steinberger 0e96fc7e10 refactor(agents): trim bootstrap test exports (#106427)
* refactor(agents): trim bootstrap test exports

* test(agents): isolate bootstrap cache cases
2026-07-13 07:24:33 -07:00
Peter Steinberger 458746e1c2 chore(ci): enforce changed-file TypeScript LOC ratchet (#106387)
* ci: enforce changed-file TypeScript LOC ratchet

* ci: derive release-gate LOC base from PR

* test(ci): exclude repository test helpers from LOC ratchet

* ci: validate LOC ratchet on PR merge tree

* style: format release maintainer skill

* ci: run LOC ratchet for fast-only changes

* fix(ci): harden LOC ratchet comparisons

* fix(ci): cover native TypeScript in LOC ratchet

* fix(ci): compare LOC against tested merge tree

* test(ci): cover LOC manifest routing
2026-07-13 07:20:32 -07:00
Vincent Koc 60e8d4f021 refactor(queue): remove dead summary reset (#106440) 2026-07-13 22:14:37 +08:00
Vincent Koc c45553089a refactor(slack): trim private reply exports (#106431) 2026-07-13 21:53:34 +08:00
Peter Steinberger a965d28e04 refactor(cli): trim internal command exports (#106426) 2026-07-13 06:47:02 -07:00