Commit Graph

6492 Commits

Author SHA1 Message Date
Peter Steinberger
e323c70ada refactor(cli): trim internal dead exports (#107654)
* refactor(cli): trim internal helper exports

* chore(deadcode): refresh CLI export baseline
2026-07-14 09:28:16 -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
b146ef8a59 refactor(cron): trim internal export surface (#107640)
* refactor(cron): trim internal export surface

* chore(deadcode): refresh cron export baseline
2026-07-14 09:02:18 -07:00
Peter Steinberger
2ecc6b6b6b fix(ui): show restart banner for unapplied config (#107577)
* fix(ui): derive config apply state from gateway

* test(ui): align applied config hash coverage

* test(ui): follow config autosave flow

* fix(ui): guard applied config refreshes

* fix(ui): reconcile patched config revisions

* fix(ui): prevent stale config apply polling

* chore: leave release notes to release flow

* refactor(config): split applied revision helpers

* style(config): format gateway methods

* fix(i18n): refresh Korean native glossary hash
2026-07-14 08:43:35 -07:00
Peter Steinberger
d092feaf63 refactor(commands): trim internal dead exports (#107621)
* refactor(commands): trim internal dead exports

* chore(deadcode): refresh commands export baseline
2026-07-14 08:36:41 -07:00
Peter Steinberger
a62d7aaaa5 refactor(agents): trim internal constants and facades (#107594) 2026-07-14 07:55:13 -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
b514c54ffc refactor(agents): trim internal boundary exports (#107584) 2026-07-14 07:35:37 -07:00
Peter Steinberger
ab0ccc244b refactor(agents): trim message turn exports (#107578) 2026-07-14 07:17:15 -07:00
Peter Steinberger
fed60958c0 refactor(agents): trim model provider exports (#107570) 2026-07-14 07:00:20 -07:00
Peter Steinberger
8cd9ad023b fix(docs-i18n): preserve product link labels 2026-07-14 09:48:47 -04:00
Peter Steinberger
95c6addca2 fix(release): declare evidence API helpers 2026-07-14 09:48:37 -04:00
Peter Steinberger
56fb30a553 refactor(media): trim runtime exports (#107560) 2026-07-14 06:47:49 -07:00
Peter Steinberger
e4aa176c82 refactor(raft): privatize config schema (#107554) 2026-07-14 06:37:10 -07:00
Peter Steinberger
46aa612f5d refactor(docs): use native MDX defaults 2026-07-14 06:36:51 -07:00
Peter Steinberger
0b78116299 fix(release): stream evidence artifact downloads 2026-07-14 09:35:58 -04:00
Peter Steinberger
cfd4ecb217 fix(release): use active gh authentication for evidence 2026-07-14 09:35:58 -04:00
Peter Steinberger
090cb49122 refactor(duckduckgo): privatize safe-search default (#107542) 2026-07-14 06:27:12 -07:00
Peter Steinberger
3ac26b4593 refactor(tavily): remove internal export seams (#107540) 2026-07-14 06:17:36 -07:00
Peter Steinberger
c8e94b202e refactor(firecrawl): remove internal export seams (#107485) 2026-07-14 06:08:53 -07:00
Peter Steinberger
7b16b35cb3 refactor(media-understanding): remove internal export seams (#107476) 2026-07-14 05:57:08 -07:00
Peter Steinberger
9de11f098e fix(release): forward-port July guards and restore main validation (#107462)
* fix(installer): validate upgraded Windows SQLite runtime

* fix(release): lock packed AI runtime dependency

* test(mattermost): tolerate additional fallback diagnostics

* test(live): make Claude resume proof explicit

* test(plugins): repair exact-main prerelease coverage

* test(release): restore root test type coverage

---------

Co-authored-by: Vincent Koc <vincentkoc@ieee.org>
Co-authored-by: Vincent Koc <25068+vincentkoc@users.noreply.github.com>
2026-07-14 05:41:24 -07:00
Peter Steinberger
c13aa612eb fix(ws): normalize raw message payloads (#107459) 2026-07-14 05:38:38 -07:00
Peter Steinberger
d6fc3d34e2 improve(ui): auto-save config edits, flatten config pages, single restart affordance (#107458) 2026-07-14 05:31:41 -07:00
Peter Steinberger
98de5832a7 refactor(process): remove internal export seams (#107456) 2026-07-14 05:23:29 -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
9d79d85f46 feat(workboard): refresh Control UI from live changes (#99051)
* feat(workboard): refresh control ui from live changes

* refactor(workboard): tighten live invalidation path

* chore(workboard): preserve locale catalog state

* refactor(gateway): keep broadcaster runtime object

* refactor(plugin-sdk): own gateway event types

* test(workboard): bind reconciliation mocks

* test(release): declare recovery helpers

* fix(workboard): cancel direct loads on teardown
2026-07-14 05:17:23 -07:00
Peter Steinberger
52b56c1f31 fix(maint): honor recent green PR cohorts (#107411) 2026-07-14 05:11:57 -07:00
Peter Steinberger
ea2a757933 refactor(wizard): remove test-only exports (#107445) 2026-07-14 05:10:03 -07:00
Peter Steinberger
aae56539fa refactor(ws): use nodebuffer socket contracts 2026-07-14 05:03:57 -07:00
Peter Steinberger
2a77b0b1d5 refactor(fleet): remove internal exports (#107438) 2026-07-14 04:56:37 -07:00
Peter Steinberger
6bea5ec113 refactor(talk): remove consult test dependency seam (#107432) 2026-07-14 04:49:11 -07:00
Peter Steinberger
c4a2db93d9 refactor(status): privatize channel feature rendering (#107428) 2026-07-14 04:40:29 -07:00
Ayaan Zaidi
7d99de8e32 refactor(mcp): split session runtime modules for the LOC ratchet
Mechanical: manager, combined facade, install path, lifecycle, config
loading, and resolver types move to focused modules; the runtime facade
re-exports its prior surface so importers are unchanged. Deletes dead
tools-barrel re-exports flagged by check-dependencies. No behavior
change.
2026-07-14 17:09:53 +05:30
Ayaan Zaidi
8b66fe773f feat(mcp): deliver requester-scoped MCP to shared-thread harnesses
Requester-scoped servers never enter harness-native MCP config: Codex
thread and CLI user-MCP projections partition them out (fail-closed,
static-partition fingerprints stay sender-independent so shared threads
never rotate). Codex delivers them as per-attempt dynamic tools through
a scoped-only runtime path on the same core manager, with a
session-stable advertised catalog so authed and unauthed senders share
one spec surface; unauthed calls get a clean not-connected tool error.
New SDK seam materializeRequesterScopedMcpToolsForHarnessRun lets any
future harness consume the same contract.
2026-07-14 17:09:53 +05:30
Ayaan Zaidi
834561ad67 feat(mcp): resolve MCP server connections per trusted requester
Plugins can register api.registerMcpServerConnectionResolver({serverName,
resolve}) to bind an MCP server's transport (url/headers) to the trusted
sender of each message. Server identity stays static; only the connection
is per-requester. Runtimes are cached per (sessionId, channel, accountId,
senderId); runs without a trusted requester fail closed (cron, subagent,
heartbeat). Resolved credentials never enter fingerprints or logs. Static
servers keep the existing session-scoped lifecycle byte-for-byte.

Enables per-user hosted MCP sessions (e.g. per-user OAuth email/calendar)
in multi-sender channels like Slack.

Refs #106229
2026-07-14 17:09:53 +05:30
Peter Steinberger
1b02289fcf refactor(flows): trim internal export surface (#107420) 2026-07-14 04:32:33 -07:00
Peter Steinberger
2cc49503a6 refactor(hooks): trim internal export surface (#107412) 2026-07-14 04:22:46 -07:00
Peter Steinberger
3b946e09da refactor(logging): trim internal export surface (#107407) 2026-07-14 04:12:23 -07:00
Peter Steinberger
236a6b815c refactor(diffs): trim internal export surface (#107400) 2026-07-14 04:02:26 -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
Ayaan Zaidi
319a796079 fix(gateway): never leave the restart admission fence closed without a restart
A failed, refused, superseded, or thrown restart emission could leave the
reversible restart-signal admission fence closed forever: concurrent emitters
could overwrite the live rollback lease with a dead stand-in, the fenced body
had no try/finally, and the outer catch swallowed errors precisely because the
stuck fence made isGatewayRestartDraining() true. The gateway then rejected
every new task with GatewayDrainingError - silently - until an operator
restarted the process.

beginGatewayRestartSignalAdmission now returns null instead of stand-in
leases (single fence owner), emitPreparedGatewayRestart reopens the fence on
every non-delivery path via try/finally while preserving it whenever a queued
SIGUSR1 is unconsumed, refused-signal cleanup force-clears orphaned fences,
and admission close/reopen transitions are logged with their reason. The
self-contained SQLite restart-intent persistence moves to restart-intent.ts
to keep restart.ts within the LOC ratchet.

Fixes #107322
2026-07-14 16:14:48 +05:30
Peter Steinberger
26fe6e8ea3 refactor(audit): trim internal input types (#107390) 2026-07-14 03:43:49 -07:00
Peter Steinberger
50e777bc25 refactor(tasks): trim internal export surface (#107385) 2026-07-14 03:33:52 -07:00
Peter Steinberger
5bc101bab2 fix(deadcode): remove stale UI baseline rows (#107383) 2026-07-14 03:31:48 -07:00
Peter Steinberger
5f75c05192 fix(deadcode): baseline new-session UI exports from #107358
check-dependencies failed on main and every PR because #107358 landed
four unused UI exports without a baseline update.
2026-07-14 03:25:29 -07:00
Peter Steinberger
20f145f9c1 fix(mac): enable terminal actions for paired-node sessions (#107361)
* fix(mac): enable paired-node terminal sessions

* fix(ci): align node worker bridge checks
2026-07-14 03:22:28 -07:00
Peter Steinberger
d8f705c0a2 refactor(skills): trim internal exports (#107353)
* refactor(skills): trim internal exports

* test(skills): derive mismatch fixture type
2026-07-14 02:58:34 -07:00
Peter Steinberger
103d9ceb5e refactor(secrets): trim internal exports (#107342) 2026-07-14 02:38:46 -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