Commit Graph

6286 Commits

Author SHA1 Message Date
Peter Steinberger
2ecd485cd5 refactor(ui): deduplicate layout, clipboard, and polling scaffolds (#106003)
* refactor(ui): share dock panel layout

* refactor(ui): centralize clipboard writes

* refactor(ui): centralize polling lifecycle

* refactor(ui): reuse shared byte formatter

* chore(ci): refresh UI LOC ratchet

* fix(ui): keep dock layout type internal
2026-07-12 22:05:09 -07:00
Peter Steinberger
2a6ccac40c ci: tolerate inherited TypeScript LOC drift (#106042)
* ci: reconcile LOC baseline drift safely

* ci: tolerate pre-existing LOC drift
2026-07-12 22:04:36 -07:00
Ayaan Zaidi
143fed81c1 feat(sessions): reopen history around search hits 2026-07-13 10:27:29 +05:30
Peter Steinberger
415bd25313 fix(ci): repair TypeScript LOC ratchet baseline (#105991) 2026-07-12 21:37:45 -07:00
Peter Steinberger
4fe5002191 fix(docs-i18n): block marker leaks at output 2026-07-13 00:18:33 -04:00
Peter Steinberger
4d06181c7a ci: drop stale sidebar export baselines 2026-07-13 00:18:28 -04:00
Peter Steinberger
c808b01a04 ci: refresh ratchet after main advance 2026-07-13 00:13:14 -04:00
Peter Steinberger
3bac8923e6 ci: clear unused export drift 2026-07-13 00:12:36 -04:00
Peter Steinberger
9df42e1d67 ci: repair main ratchet drift 2026-07-13 00:12:36 -04:00
Peter Steinberger
e43bd3d57b refactor(ui): localize lobster pet internals (#105955)
* refactor(ui): localize lobster pet internals

* chore(deadcode): reconcile current UI export drift
2026-07-12 21:08:24 -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
156f4c89ed refactor(ui): fold sidebar More section into a popup menu (#105906)
The sidebar's expandable "MORE" section (uppercase header, chevron, persisted
sidebarMoreExpanded pref, dedicated "Edit pinned items" row) collapses into a
single More nav row that opens a transient popup menu with the unpinned
routes, dynamic plugin tabs, and the pin editor entry. Menu rows are real
anchors, so Cmd/middle-click keeps native link behavior; the More row carries
the active highlight when the current route lives inside the menu. The
sessions list gets the reclaimed vertical space, and one persisted setting is
gone (stale keys are ignored on load). The nav rows and menus move to
app-sidebar-nav-menus.ts to keep app-sidebar.ts under the TS LOC ratchet.

Docs: docs/web/control-ui.md sidebar-navigation section updated.

Fixes #105905
2026-07-12 20:33:51 -07:00
Peter Steinberger
0d90ca6b5d refactor(config): retire flat and scalar streaming keys from matrix, feishu, and qqbot (#105808)
* feat(doctor): migrate legacy matrix/feishu/qqbot streaming spellings to nested config

* test(matrix): shorten setup fixture tokens below the review secret-scanner threshold

* refactor(config): retire flat/scalar streaming keys from matrix, feishu, and qqbot

* docs: describe nested-only streaming config for matrix, feishu, and qqbot

* fix(qa-matrix): compose nested streaming config for the matrix QA harness

* test(feishu): compose negative webhook fixtures outside the GHSA opengrep pattern

* docs: refresh generated docs map

* test(feishu): compose negative webhook fixtures from lint-clean bases outside the GHSA opengrep pattern

* fix(qa-lab): rewrite crabline flat streaming config into the nested channel shape

* chore(config): regenerate channel config metadata and plugin-sdk API baseline for nested-only streaming

* chore(plugin-sdk): absorb main-side deprecated pairing/conversation pin drift

* fix(qa-lab): consume Crabline nested streaming config
2026-07-12 20:33:14 -07:00
Peter Steinberger
a674ce5e0d refactor(plugins): trim path safety facade (#105876)
* refactor(plugins): trim path safety facade

* chore(deadcode): reconcile export baseline

* chore(deadcode): refresh baseline after main sync

* chore(deadcode): align baseline with linux scan
2026-07-12 20:24:58 -07:00
Vincent Koc
08ab604a1e refactor(discord): remove model picker barrel (#105908) 2026-07-13 10:59:59 +08: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
Peter Steinberger
c3dbaf4375 refactor: split hot TypeScript modules and add LOC ratchet (#105894)
* refactor: split high-churn agent and chat modules

* ci: enforce TypeScript LOC ratchet

* ci: anchor LOC baseline updates to merge base

* test: cover LOC ratchet check plans

* chore: refresh TypeScript LOC baseline
2026-07-12 19:57:42 -07:00
Peter Steinberger
2186cdf36e fix(i18n): restore Text(title) wrapper contract for settings accessibility labels
0aabf56242 relaxed the wrapper contract to .accessibilityLabel(title) while
the same pattern stayed in RAW_LOCALIZATION_BYPASSES, and #105859 then
restored Text(title) in SettingsProTabSections.swift, leaving main's
apple-app-i18n guard failing in both directions. Revert the contract to the
original required pattern; both guard tables validate against current main.
2026-07-12 19:47:54 -07:00
Vincent Koc
f26793ca54 refactor(qa-lab): trim process metric parser exports (#105891) 2026-07-13 10:42:29 +08:00
Peter Steinberger
c81ae0412c fix(ios): localize Settings accessibility labels (#105859)
* fix(ios): preserve localized accessibility labels

* chore(i18n): refresh native source inventory
2026-07-12 19:33:27 -07:00
Vincent Koc
e9e7d385e0 refactor(plugin-runtime): trim task facade exports (#105878) 2026-07-13 10:25:52 +08:00
Ayaan Zaidi
0aabf56242 chore(i18n): track accessibilityLabel(title) wrapper contract
5e9bc0916f switched two SettingsProTabSections accessibility labels
from .accessibilityLabel(Text(title)) to .accessibilityLabel(title);
title is LocalizedStringKey so lookup stays localized, but the wrapper
contract in apple-app-i18n.ts still required the old spelling and the
tooling shard only runs on PRs, so main broke silently.
2026-07-13 07:46:38 +05:30
Peter Steinberger
38e636542d fix(gateway): keep watch logs visible in tmux 2026-07-13 03:14:49 +01:00
Vincent Koc
afb282ee68 refactor(infra): trim Windows firewall exports (#105856) 2026-07-13 10:06:10 +08:00
Peter Steinberger
c3ee86a068 refactor(browser): localize internal support types (#105839) 2026-07-12 18:59:01 -07:00
Peter Steinberger
58e8440190 fix(docs-i18n): reject leaked placeholder variants 2026-07-12 21:53:44 -04:00
Vincent Koc
8091292e3e refactor(infra): trim advertised host exports (#105834) 2026-07-13 09:40:34 +08:00
Peter Steinberger
43901be298 refactor(agents): trim embedded helper dead exports (#105815)
* refactor(agents): trim embedded helper exports

* chore(deadcode): refresh export baseline

* chore(deadcode): sync export baseline

* chore(deadcode): reconcile export baseline
2026-07-12 18:34:45 -07:00
Peter Steinberger
3613b83c6c refactor(browser): trim private Playwright exports (#105794)
* refactor(browser): trim private Playwright exports

* chore(deadcode): refresh export baseline

* chore(deadcode): refresh current baseline

* chore(deadcode): refresh latest baseline
2026-07-12 18:30:34 -07:00
Vincent Koc
f1a64741b5 refactor(plugins): trim registry exports (#105812) 2026-07-13 09:16:54 +08: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
774d5249cc test: eliminate unchecked TypeScript casts (#105804) 2026-07-12 18:08:26 -07: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
Vincent Koc
6c88469110 refactor(msteams): remove obsolete sso invoke stack (#105799) 2026-07-13 08:59:08 +08:00
Vincent Koc
5c49055293 fix(release): allow larger plugin publication manifests (#105800) 2026-07-13 08:55:23 +08:00
Peter Steinberger
fbade914f5 refactor(plugins): decompose plugin registry (#105783)
* refactor(plugins): decompose plugin registry

* chore(plugins): move session accessor debt baseline
2026-07-12 17:44:27 -07:00
Peter Steinberger
95c3182030 refactor(agents): trim auth-profile dead exports (#105788)
* refactor(agents): trim auth profile exports

* chore(deadcode): refresh export baseline
2026-07-12 17:38:39 -07:00
Peter Steinberger
e01d1e85f3 ci(swift): enforce shared OpenClawKit dead-code coverage (#105770)
* ci(swift): enforce shared kit dead-code coverage

* chore(i18n): sync native source inventory

* ci(swift): install pinned iOS scan tools
2026-07-12 17:35:47 -07:00
Vincent Koc
8f7295ee35 refactor(gateway): trim session utils exports (#105782) 2026-07-13 08:33:36 +08:00
VectorPeak
b4d3a038a2 fix: run ts-topology entrypoint on Windows (#105397)
* fix: run ts-topology entrypoint on Windows

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>

* refactor: tighten ts-topology entrypoint guard

---------

Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-12 17:26:04 -07:00
Peter Steinberger
867284dfa3 refactor(deadcode): delete package and script exports (#105776)
Refs #105733
2026-07-12 17:24:45 -07:00
Vincent Koc
c9012f2037 refactor(ui): trim private API type exports (#105772) 2026-07-13 08:11:24 +08:00
Peter Steinberger
cee3e30c68 fix(docs-i18n): mask fenced literals before translation 2026-07-12 20:10:31 -04:00
Peter Steinberger
1c33c52f1b refactor(mcp): trim private app exports (#105771) 2026-07-12 17:07:58 -07:00
Vincent Koc
01501f717a refactor(nostr): trim private test seams (#105756) 2026-07-13 08:03:54 +08:00
Vincent Koc
b7a7f3fa71 refactor(ai): trim private Responses exports (#105720) 2026-07-13 07:46:35 +08:00
Peter Steinberger
ada0dee301 refactor(agents): hide unused runtime-plan helper types (#105755)
* refactor(agents): hide runtime plan helper types

* chore(deadcode): refresh export baseline
2026-07-12 16:44:31 -07:00
Peter Steinberger
c1d6d31855 refactor(deadcode): repair export baseline drift (#105739) 2026-07-12 16:24:31 -07:00
Vincent Koc
d8380b8372 test(sqlite): add concurrent snapshot reliability proof (#105740)
Co-authored-by: Gio Della-Libera <giodl73@gmail.com>
2026-07-13 07:21:02 +08:00