Commit Graph

213 Commits

Author SHA1 Message Date
Peter Steinberger
3e44b5f5dd refactor(ui): split chat pane (#113406)
* refactor(ui): split chat pane

* refactor(ui): keep chat pane entrypoint local
2026-07-24 14:25:20 -07:00
Vincent Koc
c0c12da9f2 fix(qa): separate provider plans from runtime calls (#113399)
* fix(qa): separate provider plans from runtime calls

* fix(claws): keep profile limit outside env ratchet

* refactor(qa): remove obsolete capture comparators

* chore(release): leave notes to release workflow
2026-07-24 20:55:54 +00:00
Vincent Koc
663c4fba10 fix(sqlite): repair canonical indexes before database use (#113390)
* fix(sqlite): recover canonical indexes before open

* chore(sqlite): keep index contract types internal

* test(sqlite): keep unsafe index corruption fail closed
2026-07-25 04:18:06 +08:00
Peter Steinberger
9c2ae380bc refactor(ui): split chat message rendering (#113363)
* refactor(ui): split chat message rendering

* refactor(ui): tighten chat message exports
2026-07-24 09:41:53 -07:00
Peter Steinberger
049a17860c refactor(ui): split chat composer (#113338)
* refactor(ui): split chat composer

* refactor(ui): align composer split ownership

* test(ui): clarify custom combobox inventory
2026-07-24 08:11:54 -07:00
Peter Steinberger
6235ea55ac refactor(codex): split command handlers (#113335)
* refactor(codex): split command handlers

* refactor(codex): keep helper types private
2026-07-24 07:29:44 -07:00
Peter Steinberger
4cd327e31f refactor(agents): split subagent registry internals (#113297)
* refactor(agents): split subagent registry

* fix(agents): defer registry restore until exports initialize
2026-07-24 04:44:37 -07:00
Peter Steinberger
050475b9de refactor(agents): split tool search internals (#113296) 2026-07-24 03:04:14 -07:00
Vincent Koc
e3636852ba refactor(normalization): reuse trimmed list helpers (#113295) 2026-07-24 17:43:22 +08:00
Peter Steinberger
b233faa057 refactor(tasks): split task registry internals (#113279)
* refactor(tasks): split task registry internals

* test(tasks): align registry ownership boundary
2026-07-24 02:09:04 -07:00
Peter Steinberger
21f0cef5d5 refactor(matrix): split monitor handler pipeline (#113269)
* refactor(matrix): split monitor handler pipeline

* refactor(matrix): align extracted handler types

* refactor(matrix): make missing context explicit

* style(matrix): order extracted handler imports
2026-07-24 01:02:56 -07:00
Peter Steinberger
eac10a01d5 refactor(cli): split config command implementation (#113248)
* refactor(cli): split config command implementation

* refactor(cli): keep split helpers private

* style(cli): format private unset result
2026-07-24 00:27:00 -07:00
Peter Steinberger
a7d2f0bd68 refactor(memory-core): split short-term promotion (#113223) 2026-07-24 00:02:05 -07:00
Peter Steinberger
07e625dac3 refactor(telegram): split outbound send operations (#113222)
* refactor(telegram): split outbound send operations

* refactor(telegram): keep test handle in send barrel
2026-07-23 23:38:37 -07:00
Peter Steinberger
bb657eec93 refactor(config): retire redundant settings (#113174)
* refactor(config): retire redundant settings

* style: apply current formatter

* chore: update plugin sdk baseline

* fix: keep Codex tool caps context-aware

* chore: remove stale imports

* test: align WhatsApp QA debounce config

* fix(config): clean up retired config checks

* fix(ci): align config cleanup checks
2026-07-23 17:45:02 -07:00
joshavant
090bdab5b8 fix(ci): register iOS release script entries 2026-07-23 19:08:40 -05:00
Peter Steinberger
127b78142b refactor(auto-reply): split config dispatch pipeline (#113154)
* refactor(auto-reply): split config dispatch pipeline

* refactor(auto-reply): keep phase result types private
2026-07-23 15:31:02 -07:00
Peter Steinberger
06776e707b refactor(cron): split timer lifecycle (#113141) 2026-07-23 14:14:58 -07:00
Peter Steinberger
be815ae5c9 refactor(gateway): split session utilities (#113118)
* refactor(gateway): split session utilities

* fix(gateway): privatize thinking row projection
2026-07-23 12:26:10 -07:00
Peter Steinberger
13176b446a refactor(plugins): split gateway startup planning (#113129) 2026-07-23 11:50:17 -07:00
Peter Steinberger
1f051da39d refactor(browser): split Chrome MCP lifecycle (#113114) 2026-07-23 10:45:21 -07:00
Peter Steinberger
6f6c2acec3 refactor(infra): split outbound delivery services (#113099)
* refactor(infra): split outbound delivery services

* fix(infra): preserve outbound compatibility surface
2026-07-23 10:01:28 -07:00
Peter Steinberger
b09dd1fec9 refactor(auto-reply): split reply agent runner (#113072)
* refactor(auto-reply): split reply agent runner

* fix(auto-reply): keep split contracts acyclic

* fix(auto-reply): isolate result contracts
2026-07-23 09:58:29 -07:00
Peter Steinberger
c440ae3e86 refactor(sessions): collapse legacy JSON store (#113075)
* refactor(sessions): collapse legacy JSON store

* chore(sessions): ratchet legacy importer boundary

* fix(sessions): align cleanup checks
2026-07-23 09:36:48 -07:00
Peter Steinberger
dedf85a34d refactor(ui): split chat-send.ts along ack/request/drain/lifecycle seams (#113052)
* refactor(ui): split chat-send.ts along ack/request/drain/lifecycle seams

chat-send.ts was ~2,330 lines under a grandfathered max-lines
suppression, mixing ack normalization, wire requests/routing, the
stored-outbox drain scheduler, retry/steer actions, and the send
lifecycle. Mechanical extraction into owned modules:

- chat-send-contract.ts absorbs ack normalization (it owns the ack shape)
- chat-send-request.ts: wire requests + session routing
- chat-outbox-drain.ts: drain lanes, retry timers, head reconciliation —
  colocated with the outbox ownership boundary from the composer split
- chat-send-actions.ts / chat-send-queue-state.ts / chat-send-submit.ts:
  retry/steer actions, queue-state helpers, submission routing
- chat-send.ts keeps the send lifecycle (719 lines); its max-lines
  suppression and baseline entry are removed

No compatibility re-exports; cycles broken by hoisting ChatHost into the
contract module and injecting the drain's two lifecycle callbacks.

Closes #112742.

* fix(ui): extract chat-send ack shapes into a leaf module to break the madge type cycle
2026-07-23 08:51:29 -07:00
Peter Steinberger
585eba56e3 refactor(infra): split exec approval services (#113050)
* refactor(infra): split exec approval services

* refactor(infra): keep approval token policy local

* fix(infra): preserve approval split bindings

* refactor(infra): clarify approval decision exports

* chore(plugin-sdk): refresh approval source links

* style(infra): mark approval type import

* refactor(infra): remove approval module cycles

* refactor(infra): keep socket normalization internal

* style(infra): remove stale approval type import

* refactor(infra): isolate approval type contracts
2026-07-23 08:51:19 -07:00
Peter Steinberger
9cbbac8fc8 refactor(plugins): prune retired compatibility tombstones (#113025)
* refactor(plugins): prune retired compat tombstones

* chore: shrink cleanup ratchets

* test(tooling): model flattened agent-core exports

* test(system-agent): isolate TUI catalog discovery
2026-07-23 07:30:35 -07:00
Peter Steinberger
5bd719fb9c refactor(system-agent): split setup inference phases (#113028)
* refactor(system-agent): split setup inference phases

* fix(system-agent): preserve activation helper types

* fix(system-agent): keep read-only inference verification

* test(system-agent): track moved lint suppressions
2026-07-23 06:52:23 -07:00
Peter Steinberger
babf04ca0f refactor(ui): split terminal panel into chrome renderers and a PTY controller (#113020) 2026-07-23 06:35:27 -07:00
Peter Steinberger
f3b4f9cfa2 refactor(ui): split browser panel into chrome renderers and a lifecycle controller (#113017)
* refactor(ui): split browser panel into chrome renderers and a lifecycle controller

* fix(ui): keep browser panel mode internal

* refactor(ui): clarify normalized browser panel request
2026-07-23 08:42:51 -04:00
Peter Steinberger
9ca500db98 refactor(ui): split config form into per-domain field renderers (#113016)
* refactor(ui): split config form into per-domain field renderers

* fix(ui): retain config search type consumer
2026-07-23 08:30:43 -04:00
Peter Steinberger
28971b4143 refactor(ui): split chat markdown renderer into cohesive modules (#113015)
* refactor(ui): split chat markdown renderer into cohesive modules

* refactor(ui): keep markdown streaming split type private
2026-07-23 08:07:23 -04:00
Peter Steinberger
6ef77d7c7e refactor: expire July 24 plugin compat records (#112944) 2026-07-23 03:04:34 -04:00
Peter Steinberger
bac2bbd243 refactor(google-meet): split CLI modules (#112937)
* refactor(google-meet): split CLI modules

* test(google-meet): align CLI split routing

* refactor(google-meet): isolate CLI command contract
2026-07-23 03:00:34 -04:00
Jason (Json)
6504cf85f2 fix(ui): restore project hierarchy and session activity (#112924)
* fix(ui): restore catalog project type hierarchy

* feat(ui): show catalog session activity

* chore(ui): update startup budget baseline

* test(ui): isolate catalog activity coverage
2026-07-22 23:43:46 -06:00
Peter Steinberger
707343b726 fix(ci): rebase Control UI startup budget baseline onto CI-measured bytes
All four QA Smoke profiles fail on main since the #112880 ratchet landed:
startup JS gzip ~323,326-323,342 B vs baseline 322,526 + 512 B tolerance.
The overage comes from UI commits that landed after the baseline was
captured (#112859 #112866 #112853 #111861). Local macOS builds measure
~322,535 B; Linux CI is ~800 B larger, so the baseline must track the CI
measurement (max observed across profiles, run 29980596056).
2026-07-23 01:04:10 -04:00
Peter Steinberger
32014bd84f refactor(google-meet): split plugin entry modules (#112903) 2026-07-23 01:03:51 -04:00
Peter Steinberger
b3e2af7eb2 refactor(scripts): remove orphaned secret provider proof (#112875) 2026-07-23 00:29:44 -04:00
Peter Steinberger
dfc88210be refactor(google-meet): split Meet API client (#112873)
* refactor(google-meet): split Meet API client

* refactor(google-meet): keep internal API types private
2026-07-23 00:29:21 -04:00
Peter Steinberger
c11f175282 feat(ci): ratchet the Control UI startup JS budget against a committed baseline (#112880)
The startup JS gzip gate was a fixed ceiling that main drifted to within
1-3 KiB of, forcing repeated hand-bumps (315->317 KiB) and failing
feature PRs on drift they did not cause (#112649 burned two CI rounds).

check-control-ui-performance.mjs now also enforces a committed baseline
(config/control-ui-startup-budget-baseline.json) with a 512 B tolerance:
regressions beyond baseline+tolerance fail with an actionable message,
intentional increases become a reviewed one-line diff via
--update-baseline --reason, meaningfully lighter builds print a
lower-the-baseline hint, and a malformed/missing baseline fails closed.
The fixed ceiling stays as the cumulative-creep backstop.

Closes #112743.
2026-07-23 00:19:36 -04:00
Peter Steinberger
099d6351b3 refactor(sessions): canonical lineage model — creation provenance, fork ancestry, generation chain, typed row contract (#111861)
* fix(sessions): preserve spawn/fork lineage across implicit daily/idle rollover

* refactor(sessions): canonical creation model with forkSource ancestry and generation chain

* feat(sessions): stamp creation provenance across all creation paths and emit created events

* refactor(gateway): lock lineage patching, split control from navigation, add typed session-row contract

* docs(gateway): document creation provenance stamping and lineage patch tightening

* fix(sessions): keep provenance proof-only on wire fallbacks and strip node-local lineage from cron continuations

* fix(gateway): never journal a created event for session adoption

* fix(gateway): keep post-create work on adoption while gating the created event

* fix(sessions): restore trusted ensure-main provenance and stamp navigation parent at spawn

* fix(sessions): allow parentSessionKey through the direct child spawn patch

* fix(ci): break type cycles, satisfy export scan, regenerate Swift protocol models

* refactor(sessions): replace createdBy with createdActor

* fix(protocol): export session row type

* fix(sessions): preserve proven creation provenance

* fix(sessions): close lineage creation gaps

* test(sessions): align atomic spawn lineage coverage

* test(sessions): widen transcript search reconcile wait

* fix(sessions): stamp reset-created rows

* test(sessions): keep reset provenance coverage focused

* fix(sessions): journal chat-created rows

* test(ci): anchor release skill reads to repo

* test(ci): avoid cached module paths
2026-07-22 22:54:31 -04:00
Peter Steinberger
8ef067a216 refactor(config): move Discord and Teams schemas to plugins (#112812)
* refactor(config): move Discord and Teams schemas to plugins

* refactor(discord): privatize config schema fragments

* style(discord): format private schema fragments
2026-07-22 21:02:12 -04:00
Peter Steinberger
62c148d7d0 refactor(e2e): remove stale proof scripts (#112776) 2026-07-22 15:31:36 -07:00
Peter Steinberger
4501da6123 refactor(speech-core): split TTS runtime (#112768)
* refactor(speech-core): split TTS runtime

* refactor(speech-core): keep helper types private
2026-07-22 14:48:00 -07:00
Peter Steinberger
2b405755b1 fix(plugins): refresh prepared provider metadata (#112699)
* fix(plugins): refresh prepared provider metadata

* test(agents): tolerate minimal metadata snapshots

* test(agents): cover snapshot endpoint precedence
2026-07-22 11:07:35 -07:00
Peter Steinberger
3c4a1ec905 refactor(agents): move CLI backend adapters from config DSL to registerCliBackend plugins (review request) (#112539)
* refactor(agents): move CLI backend adapters into plugins

* test(agents): register CLI backend fixtures through plugins
2026-07-22 00:25:29 -07:00
Peter Steinberger
edecdbd05e refactor(config): config-surface reduction tranche 3 — product consolidations (review request) (#111527)
* refactor(config): consolidate media model lists

* refactor(config): unify memory configuration

* refactor(config): consolidate TTS ownership

* refactor(config): move typing policy to agents

* refactor(config): retire product-level config surfaces

* refactor(config): share scoped tool policy type

* chore(config): refresh generated baselines

* fix(config): honor agent typing overrides

* fix(config): migrate sibling config consumers

* refactor(infra): keep base64url decoder private

* fix(config): strip invalid legacy TTS values

* chore(config): refresh rebased baseline hash

* fix(doctor): route legacy messages.tts.realtime voice to talk during tts move

* refactor(config): polish final layout names

* refactor(config): freeze retired tuning defaults

* feat(config): add fast mode default symmetry

* refactor(config): key agent entries by id

* docs(config): update final layout reference

* test(config): cover final layout migrations

* chore(config): refresh final layout baselines

* fix(config): align final layout runtime readers

* fix(config): align remaining readers

* fix(config): stabilize final layout migrations

* fix(config): finalize config projection proof

* fix(config): address final layout review

* docs(release): preserve historical config names

* fix(config): complete keyed agent migration

* fix(config): close final migration gaps

* fix(config): finish full-branch review

* fix(config): complete runtime secret detection

* fix(config): close final review findings

* fix(config): finish canonical docs and heartbeat migration

* fix(config): integrate latest main after rebase

* refactor(env): isolate test-only controls

* refactor(env): isolate build and development controls

* refactor(env): collapse process identity indirection

* refactor(env): remove duplicate config and temp aliases

* docs(env): define the operator-facing allowlist

* ci(env): ratchet production variable count

* fix(env): remove stale provider helper import

* fix(env): make ratchet sorting explicit

* test(env): keep test seam in dead-code audit

* test(env): cover ratchet growth and boundary; document surface budgets

* docs(config): document tier-eval consolidations

* docs(config): clarify speech preference ownership

* test(memory): align retired tuning fixtures

* refactor(memory): freeze engine heuristics

* refactor(config): apply tier-eval tranche

* refactor(tts): move persona shaping to providers

* refactor(compaction): move prompt policy to providers

* test(config): align hookified prompt fixtures

* chore(deadcode): classify test-only exports

* chore(github): remove unused spawn helper

* chore(deadcode): classify queue diagnostics

* chore(deadcode): remove unused lane snapshot export

* chore(plugin-sdk): ratchet consolidated surface

* fix(config): integrate latest main after rebase
2026-07-21 20:28:43 -07:00
Peter Steinberger
0f066eec81 feat(dashboard): plugin widget kinds — native WorkBoard card and mini-board widgets (#112434)
* feat(board): add plugin widget kinds

* feat(ui): render native Workboard widgets

* fix(dashboard): compose plugin widgets with current main

* chore: internalize widget-kind contribution types

* fix(ui): retry plugin widget renderer loads

* fix(ui): harden Workboard widget refresh lifecycle

* fix(ci): clear plugin widget landing gates

* fix(boards): migrate plugin widget storage

* fix(db): migrate unreleased board widget constraint

* fix(ui): retry failed Workboard widget loads

* fix(ui): keep stale widget refresh cleanup inert

* fix(ci): align plugin widget landing guards
2026-07-21 17:59:20 -07:00
Peter Steinberger
f0c43dcf72 feat(ui): format international phone numbers for display (#112400)
* feat(ui): format phone numbers for display

* ci: track normalization package exports in Knip
2026-07-21 17:10:25 -07:00
Vincent Koc
1d28128c20 chore(ci): audit dependency fingerprint exports (#112190) 2026-07-21 15:18:09 +08:00