Commit Graph

4817 Commits

Author SHA1 Message Date
Peter Steinberger b080dd1e76 refactor: consolidate coercion contracts (#122458)
* refactor: consolidate coercion contracts

Centralize exact string, record, numeric, date, Boolean, argument, and structured-error coercions while preserving call-site semantics.

Migrate canonical-name collisions and deprecated internal SDK bypasses, deleting 55 net production/tooling lines. Expand declaration ownership enforcement to 101 allowed helpers and add a narrow export-completeness audit.

* fix: preserve standalone script coercions

Keep copied Control UI tooling self-contained and retain the trusted release harness module-relative source seam when the harness runs against an old target cwd.
2026-08-11 23:26:37 -07:00
Peter Steinberger f166d4ee98 fix(ui): repair shared test isolation (#122451) 2026-08-11 22:26:52 -07:00
Vyctor H. Brzezowski dd57cfb6c1 fix(ui): show catalog labels in hidden section settings (#122320)
* test(ui): reproduce hidden catalog id labels

* fix(ui): label hidden session catalogs

* test(ui): capture hidden catalog label evidence

* test(ui): harden hidden catalog label proof
2026-08-12 02:18:05 -03:00
Vyctor H. Brzezowski 0295b7ab54 fix(ui): gate model shortcuts by search focus (#122316)
* improve(ui): unify model picker shortcut hints

* fix(ui): gate model shortcuts by search focus

* fix(ui): focus model trigger on open
2026-08-12 02:14:47 -03:00
Peter Steinberger 1c46d517c4 fix(ui): confirm WhatsApp logout (#122437)
Require an account-bound confirmation before deleting WhatsApp credentials, and revalidate Gateway ownership plus account state after the modal resolves.
2026-08-11 22:07:35 -07:00
Peter Steinberger f6459a3255 refactor(ui): split chat thread into transcript owners (#122420)
* refactor(ui): split chat thread into transcript owners

* refactor(ui): delete orphaned pinned-messages surface

* chore(lint): ratchet max-lines baseline after chat-thread split

* fix(ui): tighten transcript owner type boundaries

* refactor(ui): prune pinned-message orphans
2026-08-11 21:49:47 -07:00
Peter Steinberger 6b0be0215f refactor(ui): split new-session page into draft owners (#122413)
* refactor(ui): split new-session page into draft owners

* refactor(ui): delete duplicated draft plumbing

* chore(lint): ratchet max-lines baseline after new-session split
2026-08-11 21:15:32 -07:00
Peter Steinberger 0e6f38178a refactor(ui): simplify model effort profile flow (#122412)
* refactor(ui): simplify model effort profile flow

consolidate the Gateway profile shape, remove New Session's synthetic row, and retain boundary regression coverage.

* fix(gateway): preserve thinking projection order

Keep deterministic response bytes while consuming the canonical thinking profile.
2026-08-11 21:08:26 -07:00
Vyctor H. Brzezowski 2a1eba7713 fix(ui): show local project icons in the chat header (#122406)
* fix(ui): resolve project icons from deterministic paths

Prepare project icon bytes during chat startup and serve only the process-stable snapshot. Keep all filesystem work asynchronous and lift the breadcrumb trail onto the topbar's optical axis.

* fix(ui): keep project icon paths web-focused

Drop the IDE-specific icon convention so every candidate remains an explicit web project path.

* fix(ui): preserve project icon compatibility

Restore existing web icon paths and refresh bounded session snapshots when they are served. Keep the IDE-specific path excluded per the final product decision.
2026-08-12 00:52:44 -03:00
Vyctor H. Brzezowski 5583459475 improve(ui): use diff icon for session changes (#122399) 2026-08-12 00:26:22 -03:00
Vyctor H. Brzezowski fe1dafbada fix(ui): show nested session parent in chat header (#122335)
* fix(ui): show nested session parent in chat header

* fix(ui): cap nested chat breadcrumb width

* test(ui): avoid breadcrumb geometry shadowing

* chore(ui): keep breadcrumb comment issue-agnostic
2026-08-12 00:18:11 -03:00
Vyctor H. Brzezowski 56e6221a81 fix(ui): align chat disclosure gutters (#122286) 2026-08-11 23:40:36 -03:00
Shakker 05d0d980d8 fix: fence companion context snapshots 2026-08-12 03:26:33 +01:00
Shakker 0e78a64df5 fix: simplify session companion grounding 2026-08-12 03:26:33 +01:00
Vyctor H. Brzezowski 7630d060f8 improve(ui): quiet slash command menu hierarchy (#122237)
* improve(ui): quiet slash command menu hierarchy

* improve(ui): compact slash command menu

* improve(ui): polish slash command rows

* improve(ui): streamline slash command sheet

* chore(ui): refresh command copy baseline

* fix(ui): keep skill selection in view

* test(ui): type skill menu viewport stub
2026-08-11 23:00:58 -03:00
Peter Steinberger 8876528f7c feat: clone GitHub projects from session picker (#121818)
* feat(projects): add managed GitHub clones

* feat(ui): clone GitHub projects from session picker

* fix(projects): integrate current gateway owners

* fix(protocol): derive Swift error detail accessors

* fix(ui): gate project cloning by scope

* test(gateway): isolate session prewarm probes

* revert: drop duplicate session prewarm repair
2026-08-11 18:49:16 -07:00
Vyctor H. Brzezowski 7c83fc1729 fix(ui): show a placeholder for remote markdown images (#122312)
* fix(ui): show remote image placeholders in chat

Keep remote Markdown images fetch-blocked while giving users a visible outcome and an explicit HTTPS open action.

* fix(ui): preserve links around image placeholders
2026-08-11 22:48:20 -03:00
Vyctor H. Brzezowski 89bae11799 fix(ui): fit short Canvas previews (#122294) 2026-08-11 22:43:07 -03:00
Vyctor H. Brzezowski bbb5164ec9 fix(ui): keep chat sharing menu compact (#122322)
* fix(ui): keep chat sharing menu compact

* fix(ui): refine sharing menu sections

* fix(ui): use one sharing menu scroll
2026-08-11 22:34:46 -03:00
Vyctor H. Brzezowski 9dfc26ba63 fix(ui): fit chat table cards to their columns (#122297)
* test(ui): cover chat table card width

* fix(ui): fit chat table cards to columns
2026-08-11 22:10:23 -03:00
Vyctor H. Brzezowski ff73a14f5a fix(ui): match chat transcript text rendering to prototype (#122328)
* fix(ui): match chat transcript letter spacing

* test(ui): match computed zero letter spacing

* fix(ui): scope transcript letter spacing

* test(ui): compare inherited transcript tracking

* fix(ui): scope transcript letter spacing
2026-08-11 21:45:19 -03:00
Peter Steinberger 964c8c84c1 refactor: consolidate coercion ownership (#122299)
* refactor: consolidate coercion ownership

Centralize four canonical coercion helpers, migrate exact core and plugin duplicates through narrow Plugin SDK facades, and enforce declaration and plugin-normalization ownership boundaries.

The sweep adds eight focused SDK exports while deleting more production and tooling code than it adds. User-visible behavior is unchanged except for safer equivalent object and UI parsing at existing boundaries.

* fix: guard integer option ownership

Register resolveIntegerOption with the canonical function owner and extend the declaration-guard fixture so future local duplicates fail validation.

* fix: keep integer helpers on numeric facade

Remove the unshipped duplicate string-coerce exports and route every affected plugin consumer through the existing number-runtime contract.

* fix: point numeric coercion to number runtime

Make boundary and declaration diagnostics recommend the canonical numeric facade, with failing-before coverage for both guidance paths.
2026-08-11 17:14:53 -07:00
Peter Steinberger cd0a1235a3 feat: sync new-session preferences and recents by identity (#121816)
* feat(gateway): add identity preferences and project recents

* feat(ui): sync new-session identity state

* docs: explain identity-scoped session state

* test: track preference temp directories

* fix(gateway): preserve identity preference boundaries

* chore(protocol): refresh identity preference bindings

* test: refresh historical schema hashes

* style(gateway): format method order assertion

* fix(protocol): emit project recent Swift models

* test(gateway): track preference RPC release train

* fix(gateway): harden identity preference state

* fix(state): keep preference errors internal

* chore: refresh split plugin SDK baseline

* fix(gateway): use core session store loader

* refactor(state): fold additive migration checks

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* test(ui): relocate identity recents e2e

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline

* chore: regenerate plugin SDK baseline
2026-08-11 16:52:59 -07:00
joshavant 3776770a29 fix(ui): keep run inspector evidence reachable 2026-08-11 18:44:38 -05:00
joshavant 77f9bcd484 test(ui): satisfy Activity layout lint 2026-08-11 18:44:38 -05:00
joshavant d32a290b7c fix(ui): preserve live Activity viewport 2026-08-11 18:44:38 -05:00
joshavant 5751562bfe fix(ui): retain shared Activity status copy 2026-08-11 18:44:38 -05:00
joshavant 9008f9b0e2 fix(ui): paginate ambiguous run candidates 2026-08-11 18:44:38 -05:00
joshavant 5f7ea6b548 fix(ui): lazy-load run inspector copy 2026-08-11 18:44:38 -05:00
joshavant acb7f7192a fix(ui): support exact run execution selection 2026-08-11 18:44:38 -05:00
joshavant 0f1a549a51 fix(ui): label Activity tab panel 2026-08-11 18:44:38 -05:00
joshavant a2ca2ac8e7 fix(ui): use shared Activity tabs 2026-08-11 18:44:38 -05:00
joshavant 7ab5d99a6c feat(ui): add durable run inspector 2026-08-11 18:44:38 -05:00
Peter Steinberger db9bdb4a11 fix(gateway): preserve session identity through archive transitions (#121169)
* fix(sessions): fence lifecycle mutations by identity

* fix(sessions): finalize lifecycle identity fences
2026-08-11 16:43:10 -07:00
Shakker 24ad2e5d43 fix: bound companion settlement context 2026-08-12 01:17:17 +02:00
Shakker 8dc5016460 fix: make companion context fail closed 2026-08-12 01:17:17 +02:00
Shakker 72528033b2 refactor: preserve companion context boundaries 2026-08-12 01:17:17 +02:00
Shakker 281fe1e502 refactor: use canonical companion context owners 2026-08-12 01:17:17 +02:00
Shakker 6932cd6980 fix: reconcile companion progress ownership 2026-08-12 01:17:17 +02:00
Shakker 70fbc35da2 fix: ground session companion context 2026-08-12 01:17:17 +02:00
Vyctor H. Brzezowski d8488a9406 fix(ui): keep short JSON code blocks visible (#122313) 2026-08-11 20:08:43 -03:00
Vyctor H. Brzezowski ec86b02b9e fix(ui): render disallowed link schemes as plain text (#122311)
Preserve readable Markdown labels while removing link wrappers for destinations the Control UI will not navigate.
2026-08-11 20:03:08 -03:00
Vyctor H. Brzezowski 944b81b2dc fix(ui): keep chat Markdown block rhythm consistent (#122289)
Fixes #122269
2026-08-11 19:57:11 -03:00
joshavant b76b9e1a75 fix(ui): retain identity while agent roster loads 2026-08-11 17:54:28 -05:00
joshavant 2fbf4fdbe6 fix(ui): preserve configured agent labels 2026-08-11 17:54:28 -05:00
Josh Lehman 585503896d fix: preserve WebChat reply context after reloads (#122169) 2026-08-11 15:42:01 -07:00
Vyctor H. Brzezowski 89df45c0f5 fix(ui): make DONE moves visibly reversible (#122303)
* fix(ui): make group category moves reversible

* fix(ui): address native Groups drag review
2026-08-11 19:39:07 -03:00
Vyctor H. Brzezowski 67262b70dc fix(ui): keep inline-code punctuation attached (#122291)
* test(ui): cover inline code punctuation spacing

* fix(ui): tighten inline code punctuation spacing

* test(ui): tolerate browser font metrics
2026-08-11 19:30:14 -03:00
Vyctor H. Brzezowski 285e58e5ef fix(ui): label patch file operations accurately (#122287) 2026-08-11 19:23:27 -03:00
Vyctor H. Brzezowski 65f4320147 fix(ui): humanize bare GitHub item links (#122285) 2026-08-11 19:16:07 -03:00