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
ce078367e4
fix(docs): preserve plugin surface identifiers
2026-07-14 23:41:24 -04: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
86085563be
test(ci): isolate flaky shared-worker suites ( #107780 )
...
* test(ci): isolate flaky shared-worker suites
* test(ci): route isolated agent targets
2026-07-14 15:00:58 -07:00
Peter Steinberger
0b9e3e19fa
refactor(sessions): separate SQLite accessor owners ( #107772 )
...
* refactor(sessions): separate SQLite accessor owners
* refactor(sessions): keep SQLite helper types private
2026-07-14 14:23:20 -07:00
Peter Steinberger
a6a0716486
feat(setup): rename Crestodian to OpenClaw system agent
...
User-facing name is now OpenClaw (the system speaks); internal code name is
system-agent. Gateway methods crestodian.* -> openclaw.chat/openclaw.setup.*,
agent tool -> openclaw, reserved agent ids openclaw + retired crestodian.
openclaw setup routes: onboarding flags -> onboard, -m/--yes -> system agent,
bare configured interactive -> OpenClaw chat, unconfigured -> onboarding.
Hidden crestodian CLI and /crestodian TUI aliases kept; docs moved to
docs/cli/openclaw.md with redirect stub. macOS/Android strings in lockstep.
Refs #107237
2026-07-14 11:03:02 -07:00
Peter Steinberger
13a2b0707d
fix(scripts): preserve parser overrides
2026-07-14 10:21:56 -07:00
Peter Steinberger
0e3a46f8d4
refactor(scripts): use native TypeScript AST helpers
2026-07-14 10:21:56 -07:00
Peter Steinberger
f81f9d8570
chore: enforce max-lines suppression ratchet ( #107315 )
...
* ci: enforce max-lines suppression ratchet
* chore: prune stale max-lines suppression
* fix: close max-lines ratchet enforcement gaps
* fix: harden max-lines ratchet checks
* fix(ci): satisfy max-lines ratchet checks
* style: format max-lines declarations
* fix(ci): match oxlint suppression grammar
* test: isolate max-lines git fixtures
* chore: prune resolved max-lines debt
* test: skip newline path fixture on Windows
* fix: harden max-lines suppression ratchet
* chore: refresh max-lines baseline
* fix: close max-lines ratchet bypasses
* fix: derive ratchet base from PR merge tree
* fix: support older Git in staged ratchet
* fix: align max-lines declarations and baseline
* chore: refresh max-lines baseline for current main
* fix: exclude generated wizard locales from max-lines
* chore: prune resolved max-lines debt
2026-07-14 09:27:02 -07:00
Peter Steinberger
242cdca058
fix(docker): keep gateway ws client self-contained ( #107561 )
...
* fix(docker): keep gateway ws client self-contained
* test(raft): narrow optional runtime schema
* test(tlon): narrow signed URL mock input
* fix(tui): type searchable selector metadata
2026-07-14 07:42:17 -07:00
Peter Steinberger
c13aa612eb
fix(ws): normalize raw message payloads ( #107459 )
2026-07-14 05:38:38 -07:00
Peter Steinberger
7abb20fe33
fix(lint): buffer casts for nodebuffer ws message handlers
...
aae56539fa set binaryType=nodebuffer but left RawData-typed toString
calls; no-base-to-string fails check-lint repo-wide. Cast to Buffer like
the same commit's realtime-transcription site.
2026-07-14 05:18:39 -07:00
Peter Steinberger
aae56539fa
refactor(ws): use nodebuffer socket contracts
2026-07-14 05:03:57 -07:00
Peter Steinberger
ca83f1ca51
fix(ci): restore release validation after runtime migrations ( #107371 )
...
* test(ci): repair plugin prerelease validation
* test(zalo): preserve adapter narrowing in sender helpers
* test(ci): track current bundled startup metadata
* fix(google-meet): refresh plugin shrinkwrap
2026-07-14 03:52:44 -07:00
Dallin Romney
561cf56c53
refactor(workboard): share control ui contract ( #102271 )
...
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-14 02:33:22 -07:00
Peter Steinberger
47d37804a8
improve(ui): catch i18n catalog drift locally ( #107253 )
...
* ci(ui): verify i18n catalogs locally
* fix(ui): preserve scoped i18n sync errors
* refactor(ui): share i18n raw-copy verifier
* test(ui): cover i18n lint gate
* fix(ui): route lint threads to oxlint
2026-07-14 01:12:36 -07:00
Peter Steinberger
63f497a428
fix(build): refresh cached CLI help per build
2026-07-14 00:21:36 -07:00
Peter Steinberger
69a578034f
test: isolate provider auth parity suite ( #107167 )
2026-07-14 00:16:49 -07:00
Peter Steinberger
84500db379
refactor(plugin-sdk): isolate HTML entity runtime
2026-07-14 00:16:37 -07:00
Peter Steinberger
ec72fda21c
refactor(scripts): use dependency metadata parsers
2026-07-13 23:33:30 -07:00
Peter Steinberger
d8d2f83cc1
feat(terminal): open Codex/Claude catalog sessions in a terminal on their owning host
...
Catalog session rows (sidebar context menu + click), the built-in viewer
header, and a new "Open Codex/Claude sessions in" preference can launch the
native CLI (codex resume / claude --resume) in the operator terminal on the
machine that owns the session.
- Gateway-local sessions spawn through the existing terminal launch policy
(sandbox/enabled gates preserved) with the resume command in the session cwd.
- Paired-node sessions run through a new seq-ordered node PTY relay: a
duplex node-host command streams PTY output via node.invoke.progress and
receives keystrokes/resize via a new node.invoke.input event, behind the
unchanged terminal.* client protocol (TerminalSessionManager gains a backend
abstraction; node relay reuses the streaming-invoke controller).
- Owner boundary: each plugin owns its resume command and builds argv from a
validated thread id; the gateway routes node opens through the node command
allowlist and plugin invoke policy (no advertisement-only trust), and nodes
re-verify session eligibility before spawning.
- UI setting catalogOpenTarget + canOpenTerminal capability gate every entry
point; capability requires the owning host to actually have the CLI.
Node PATH is normalized before command-availability probes, Windows .cmd/.bat
shims spawn via ComSpec, and catalog terminal opens reattach persisted tabs
before opening the new tab.
2026-07-13 22:20:50 -07:00
Peter Steinberger
069915f173
test: accelerate sqlite state cli tests ( #107150 )
2026-07-13 22:12:21 -07:00
Peter Steinberger
2e58c2bc53
test: accelerate sqlite reliability suite ( #107134 )
2026-07-13 21:50:36 -07:00
Peter Steinberger
34c63c3c3a
fix(release): support evidence-backed late closeout
2026-07-14 00:27:34 +01: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
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
40b119f57a
refactor(build): run generated formatter through oxfmt bin
2026-07-13 11:44:28 -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
e30cc79b81
ci: remove redundant extension oxlint lanes
2026-07-13 11:02:51 -07:00
Peter Steinberger
4f2553be5f
fix(test): bound extension test inventory query ( #106632 )
2026-07-13 10:30:27 -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
8814e75cd6
perf(ci): start long node shards first ( #106522 )
2026-07-13 09:56:30 -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
Peter Steinberger
8aab4ff94d
refactor(state): split migration modules ( #106356 )
...
* refactor(state): split migration modules
* fix(state): relocate migration guard baselines
2026-07-13 05:13:42 -07:00
Peter Steinberger
4dd839c462
refactor(release): split cross-os checks ( #106309 )
2026-07-13 04:01:40 -07:00
Peter Steinberger
624977ec90
fix(ci): await async doctor compaction in the sqlite reliability runner
...
runDoctorStateSqliteCompact became async in #106210 but this caller
still read fields off the Promise, breaking check-test-types and the
bench-sqlite-reliability tooling test on main.
2026-07-13 03:51:25 -07:00
Peter Steinberger
4f287dd740
refactor(process): adopt Execa execution layer ( #105939 )
...
* refactor(process): adopt execa execution layer
* fix(process): preserve launch error semantics
* chore(process): ratchet exec size baseline
* fix(process): preserve Windows and error contracts
* chore(plugin-sdk): ratchet wildcard surface budget
* test(process): allow resolved Windows executable paths
* fix(process): preserve Windows shim completion
* test(process): isolate Execa mocks
* style(process): format Windows exec test
* style(process): apply Windows test formatting
* test(process): normalize Windows system path casing
* fix(process): harden execa edge handling
* test(tui): preserve ESM fixture semantics
* fix(process): preserve PATHEXT lookup contract
* fix(process): keep invocation type internal
2026-07-13 02:21:08 -07:00
Peter Steinberger
1136757174
refactor: consolidate bounded concurrency on p-limit and p-map ( #106002 )
...
* refactor: adopt p-limit and p-map for bounded concurrency
* chore: normalize lockfile ordering
* fix: preserve memory host concurrency export
* refactor: keep media apply within size budget
* fix: drain memory concurrency before failure
* fix: satisfy memory concurrency guards
* chore: scope memory host dead-code checks
* chore: lower concurrency LOC baselines
* fix: preserve concurrency API surfaces
* chore: reconcile concurrency LOC baseline
* test: keep memory concurrency gate portable
* style: simplify concurrency drain
* ci: refresh deadcode export baseline
2026-07-13 01:53:28 -07:00
Peter Steinberger
b1ce84b079
ci: reduce Blacksmith registrations for pull requests ( #106146 )
2026-07-13 01:32:25 -07:00
Peter Steinberger
98e3f729bc
refactor: remove dead plugin loader exports ( #105937 )
...
* refactor(plugins): trim activation and contract exports
* test(plugins): restore fixture cleanup
* refactor(plugins): trim install and loader exports
* test(plugins): fully reset loader caches
* refactor(plugins): trim metadata and catalog exports
* test(plugins): preserve catalog trust coverage
* refactor(plugins): trim provider and plugin exports
* refactor(plugins): trim runtime and tool exports
* test(plugins): update dead-export consumers
* test(plugins): remove empty dead-export suites
* refactor(plugins): align exports with split registry
* refactor(plugins): trim drifted loader exports
* style(plugins): format test fixtures
* refactor(scripts): use supported plugin APIs
* refactor(plugins): finish dead export cleanup
* chore(deadcode): refresh export baseline
* test(cli): mock production memory state
* chore(deadcode): sync latest export baseline
* fix(tests): keep plugin fixtures inside core
* chore(deadcode): refresh rebased export baseline
* chore(deadcode): sync current ratchets
* fix(plugins): retain reserved slot invariant
* fix(plugins): preserve dead-export invariants
* test(plugins): use neutral catalog query fixture
* test(plugins): satisfy catalog lint
* test(plugins): preserve integrity drift coverage
* fix(ci): register skill experience live proof
2026-07-13 01:29:33 -07:00
Peter Steinberger
0633afe6a5
fix(config): reject schema-only keys ( #106031 )
...
* fix(config): reject schema-only keys
* chore(config): refresh plugin SDK baseline
* test(config): remove stale remote enabled fixtures
2026-07-12 23:10:12 -07:00
Paul Campbell
008f04a656
feat(mxc): add Windows MXC sandbox backend ( #97086 )
...
* feat(mxc): add Windows MXC sandbox backend
Add the official MXC sandbox plugin package with Windows ProcessContainer execution, plugin-owned MXC SDK dependency packaging, host-backed filesystem bridge support, and configured MXC policy file loading via mxcPolicyPaths.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
* fix(mxc): preserve Windows binary override paths
* fix: remove stray sandbox barrel export
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Copilot-Session: 9ea19539-b8ca-44fb-93bd-b8496e3deb2c
* fix(mxc): address sandbox review feedback
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
* fix(mxc): satisfy test type checks
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
* fix(mxc): clarify protected skill enforcement
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
* test(mxc): align fail-closed expectations
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
* fix(mxc): satisfy extension lint
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
* fix(plugin-sdk): narrow fs-safe remove surface
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com >
* fix(mxc): repair rebased CI failures
* fix(scripts): declare shrinkwrap override normalizer
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
Co-authored-by: Gio Della-Libera <235387111+giodl73-repo@users.noreply.github.com >
Co-authored-by: Dallin Romney <dallinromney@gmail.com >
2026-07-12 23:07:25 -07:00
Peter Steinberger
28a4effd4c
improve(gateway): reduce startup work before readiness ( #105913 )
...
* perf(gateway): defer optional startup work
* refactor(gateway): isolate optional startup work
* fix(gateway): refresh deferred lifecycle state
* chore(gateway): ratchet startup file sizes
* fix(ci): reconcile dead export drift
2026-07-12 22:18:10 -07:00
Developers Digest
8809848b19
feat(firecrawl): add keyless Firecrawl Search (Free) provider + richer firecrawl_search options ( #97078 )
...
* feat(firecrawl): add keyless Firecrawl Search (Free) provider + richer firecrawl_search options
Add an opt-in, keyless 'firecrawl-free' web_search provider (Firecrawl
Search (Free)) mirroring the Parallel plugin's parallel-free pattern:
requiresCredential false, no autoDetectOrder, never auto-selected. The
free path is credential-isolated — it never resolves or sends any
Firecrawl API key (no Authorization header), so opting out of credentials
cannot leak a configured/paid key — and its results and cache key carry a
distinct 'firecrawl-free' provider identity. The keyed 'firecrawl'
provider and core search auto-select behavior are unchanged, honoring the
maintainers' opt-in policy for keyless search.
Registered in index.ts, the web-search-provider barrel, the
web-search-contract-api metadata artifact (the onboarding/setup source),
manifest contracts, the official external plugin catalog snapshot, and
the doctor/contract registries.
Also extend the firecrawl_search tool to /v2/search parity:
includeDomains/excludeDomains (mutually exclusive), tbs, location,
country, and raise the result cap to 100.
* docs: regenerate docs_map for firecrawl heading rename
---------
Co-authored-by: developersdigest <jonathan@sideguide.dev >
2026-07-12 21:04:43 -07:00
Peter Steinberger
d49acffa5e
refactor(infra): consolidate retry scheduling ( #105789 )
...
* refactor(infra): consolidate retry scheduling
* fix(build): wire shared retry package
* fix(build): resolve retry package in source graphs
* fix(infra): keep retry adapter dependency-free
2026-07-12 19:58:55 -07:00
Peter Steinberger
dce8eed0b9
ci(deadcode): restore enforced unused-export ratchet ( #105826 )
...
* ci(deadcode): restore export ratchet
* chore(deadcode): refresh export baseline
* refactor(sessions): remove obsolete patch writer
* refactor(deadcode): classify current export residue
* fix(deadcode): preserve exported signature types
* chore(deadcode): sync export baseline after rebase
* chore(deadcode): classify pairing test exports
* fix(ci): refresh plugin SDK declaration budget
2026-07-12 19:58:38 -07:00
Vincent Koc
4afcbea5c5
test(sqlite): harden compaction and restore reliability proof ( #105811 )
...
* test(sqlite): chain compaction and restore reliability proof
* test(sqlite): bound reliability stress storage
* test(sqlite): monitor transient WAL growth
2026-07-13 09:09:21 +08:00
Peter Steinberger
f9d7aa286e
refactor(sessions): reduce accessor boundary debt ( #105786 )
...
* refactor(sessions): publish rewrite updates through accessor
* refactor(sessions): patch suspensions through accessor
* refactor(acp): clarify accessor-backed session loads
* test(sessions): ratchet accessor boundary debt
* fix(sessions): preserve file-backed rewrite notifications
* test(sessions): retain file-backed rewrite debt
* fix(sessions): preserve transcript rewrite update identity
* test(sessions): restore rewrite debt baseline
2026-07-12 18:07:55 -07:00